; LLVM IR from theolundqvist/parallax-voxel-ray-marcher :: src/external/Dear 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.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiInputTextCallbackData = type { i32, i32, ptr, i16, i32, ptr, i32, i32, i8, i32, i32, i32 }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiWindow = type <{ ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, [2 x i8], i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.3, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 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, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, i32, i16, i16, i32, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.0, ptr, ptr, i32, i32, i32, i32, i32, float, float, [4 x i8], %struct.ImVector.1, %struct.ImVector.1, %struct.ImGuiStackSizes, [2 x i8] }>
%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.ImGuiStackSizes = type { i16, i16, i16, i16, i16, i16, i16 }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImGuiStorage = type { %struct.ImVector.2 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.10 }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiContext = type <{ i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, [3 x i8], i32, ptr, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.11, %struct.ImGuiStorage, i32, %struct.ImVec2, [4 x i8], ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, [4 x i8], i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector, %struct.ImVector.15, %struct.ImVector.16, %struct.ImVector.17, %struct.ImVector.17, %struct.ImVector.18, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, [3 x i8], i32, i32, i32, i32, i32, i32, [4 x i8], %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, i32, [4 x i8], ptr, ptr, ptr, float, float, i8, [7 x i8], ptr, ptr, i32, i32, i32, i32, i8, [3 x i8], float, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.19, [16 x i8], ptr, i32, [4 x i8], %struct.ImPool, %struct.ImVector.21, %struct.ImVector.1, %struct.ImVector.10, ptr, %struct.ImPool.22, %struct.ImVector.24, %struct.ImVector.25, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, [3 x float], %struct.ImVec4, %struct.ImGuiComboPreviewData, float, i8, i8, [2 x i8], float, float, float, float, i32, float, [4 x i8], %struct.ImVector.26, %struct.ImVector, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.28, %struct.ImChunkStream, %struct.ImChunkStream.29, %struct.ImVector.30, i32, i8, [3 x i8], i32, [4 x i8], ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [120 x float], i32, i32, float, i32, i32, i32, [3073 x i8], [3 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [20 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [20 x float], [20 x float], float, i16, %struct.ImVector.5 }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type <{ ptr, i32, i32, %struct.ImRect, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.20, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImPool.22 = type { %struct.ImVector.23, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { i32, i32, i32, %struct.ImVector.5, %struct.ImVector.26, %struct.ImVector.26, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, ptr, ptr }
%"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.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.27, ptr, ptr, ptr, i16, i16, i16, i16, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.26 }
%struct.ImChunkStream.29 = type { %struct.ImVector.26 }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.26 }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i32, i32 }
%struct.ImFontGlyph = type { i32, float, float, float, float, float, float, float, float, float }

@GImGui = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.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.67 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [29 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #6

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #6

declare void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16), float noundef) #6

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

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

declare void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef) #6

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

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

declare void @_ZN5ImGui13ClearActiveIDEv() #6

declare noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(937), ptr noundef, ptr noundef) #6

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) #6

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

; 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 void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #6

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

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

declare void @_ZN5ImGui10BeginGroupEv() #6

declare void @_ZN5ImGui8EndGroupEv() #6

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

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

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

179:                                              ; preds = %8
  %180 = load ptr, ptr %12, align 8, !tbaa !5
  %181 = icmp ne ptr %180, null
  br i1 %181, label %182, label %185

182:                                              ; preds = %179
  %183 = load i32, ptr %13, align 4, !tbaa !9
  %184 = icmp sge i32 %183, 0
  br label %185

185:                                              ; preds = %182, %179
  %186 = phi i1 [ false, %179 ], [ %184, %182 ]
  br i1 %186, label %187, label %188

187:                                              ; preds = %185
  br label %190

188:                                              ; preds = %185
  call void @__assert_fail(ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 3940, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

189:                                              ; No predecessors!
  br label %190

190:                                              ; preds = %189, %187
  %191 = load i32, ptr %15, align 4, !tbaa !9
  %192 = and i32 %191, 128
  %193 = icmp ne i32 %192, 0
  br i1 %193, label %194, label %198

194:                                              ; preds = %190
  %195 = load i32, ptr %15, align 4, !tbaa !9
  %196 = and i32 %195, 67108864
  %197 = icmp ne i32 %196, 0
  br label %198

198:                                              ; preds = %194, %190
  %199 = phi i1 [ false, %190 ], [ %197, %194 ]
  %200 = xor i1 %199, true
  br i1 %200, label %201, label %202

201:                                              ; preds = %198
  br label %204

202:                                              ; preds = %198
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 3941, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

203:                                              ; No predecessors!
  br label %204

204:                                              ; preds = %203, %201
  %205 = load i32, ptr %15, align 4, !tbaa !9
  %206 = and i32 %205, 64
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %212

208:                                              ; preds = %204
  %209 = load i32, ptr %15, align 4, !tbaa !9
  %210 = and i32 %209, 1024
  %211 = icmp ne i32 %210, 0
  br label %212

212:                                              ; preds = %208, %204
  %213 = phi i1 [ false, %204 ], [ %211, %208 ]
  %214 = xor i1 %213, true
  br i1 %214, label %215, label %216

215:                                              ; preds = %212
  br label %218

216:                                              ; preds = %212
  call void @__assert_fail(ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 3942, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

217:                                              ; No predecessors!
  br label %218

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

246:                                              ; preds = %218
  %247 = load ptr, ptr %16, align 8, !tbaa !5
  %248 = icmp ne ptr %247, null
  br i1 %248, label %249, label %250

249:                                              ; preds = %246
  br label %252

250:                                              ; preds = %246
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 3955, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

251:                                              ; No predecessors!
  br label %252

252:                                              ; preds = %251, %249
  br label %253

253:                                              ; preds = %252, %218
  %254 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %257

256:                                              ; preds = %253
  call void @_ZN5ImGui10BeginGroupEv()
  br label %257

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

267:                                              ; preds = %257
  %268 = load ptr, ptr %20, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ImGuiContext, ptr %268, i32 0, i32 6
  %270 = load float, ptr %269, align 8, !tbaa !46
  %271 = fmul float %270, 8.000000e+00
  br label %275

272:                                              ; preds = %257
  %273 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 1
  %274 = load float, ptr %273, align 4, !tbaa !90
  br label %275

275:                                              ; preds = %272, %267
  %276 = phi float [ %271, %267 ], [ %274, %272 ]
  %277 = load ptr, ptr %22, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiStyle, ptr %277, i32 0, i32 12
  %279 = getelementptr inbounds %struct.ImVec2, ptr %278, i32 0, i32 1
  %280 = load float, ptr %279, align 4, !tbaa !91
  %281 = call float @llvm.fmuladd.f32(float %280, float 2.000000e+00, float %276)
  %282 = load <2 x float>, ptr %32, align 4
  %283 = call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %282, float noundef %264, float noundef %281)
  store <2 x float> %283, ptr %31, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #14
  %284 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 0
  %285 = load float, ptr %284, align 4, !tbaa !92
  %286 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %287 = load float, ptr %286, align 4, !tbaa !92
  %288 = fcmp ogt float %287, 0.000000e+00
  br i1 %288, label %289, label %297

289:                                              ; preds = %275
  %290 = load ptr, ptr %22, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.ImGuiStyle, ptr %290, i32 0, i32 16
  %292 = getelementptr inbounds %struct.ImVec2, ptr %291, i32 0, i32 0
  %293 = load float, ptr %292, align 4, !tbaa !93
  %294 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %295 = load float, ptr %294, align 4, !tbaa !92
  %296 = fadd float %293, %295
  br label %298

297:                                              ; preds = %275
  br label %298

298:                                              ; preds = %297, %289
  %299 = phi float [ %296, %289 ], [ 0.000000e+00, %297 ]
  %300 = fadd float %285, %299
  %301 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 1
  %302 = load float, ptr %301, align 4, !tbaa !90
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %300, float noundef %302)
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #14
  %303 = load ptr, ptr %18, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.ImGuiWindow, ptr %303, i32 0, i32 54
  %305 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %304, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #14
  %306 = load ptr, ptr %18, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ImGuiWindow, ptr %306, i32 0, i32 54
  %308 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %307, i32 0, i32 0
  %309 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %308, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %309, ptr %35, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %34, ptr noundef nonnull align 4 dereferenceable(8) %305, ptr noundef nonnull align 4 dereferenceable(8) %35)
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #14
  %310 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #14
  %311 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %312 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %311, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %312, ptr %37, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(8) %310, ptr noundef nonnull align 4 dereferenceable(8) %37)
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #14
  %313 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %313, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %31, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #14
  store i32 0, ptr %40, align 4, !tbaa !9
  %314 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %315 = trunc i8 %314 to i1
  br i1 %315, label %316, label %378

316:                                              ; preds = %298
  %317 = load i32, ptr %29, align 4, !tbaa !9
  %318 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %317, ptr noundef %34, i32 noundef 1)
  br i1 %318, label %324, label %319

319:                                              ; preds = %316
  %320 = load ptr, ptr %22, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.ImGuiStyle, ptr %320, i32 0, i32 12
  %322 = getelementptr inbounds %struct.ImVec2, ptr %321, i32 0, i32 1
  %323 = load float, ptr %322, align 4, !tbaa !91
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %323)
  call void @_ZN5ImGui8EndGroupEv()
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3260

324:                                              ; preds = %316
  %325 = load ptr, ptr %20, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.ImGuiContext, ptr %325, i32 0, i32 72
  %327 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %326, i32 0, i32 2
  %328 = load i32, ptr %327, align 8, !tbaa !94
  store i32 %328, ptr %40, align 4, !tbaa !9
  %329 = load ptr, ptr %22, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ImGuiStyle, ptr %329, i32 0, i32 40
  %331 = getelementptr inbounds [53 x %struct.ImVec4], ptr %330, i64 0, i64 7
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %331)
  %332 = load ptr, ptr %22, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.ImGuiStyle, ptr %332, i32 0, i32 13
  %334 = load float, ptr %333, align 4, !tbaa !95
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %334)
  %335 = load ptr, ptr %22, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.ImGuiStyle, ptr %335, i32 0, i32 14
  %337 = load float, ptr %336, align 4, !tbaa !96
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %337)
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #14
  %338 = load ptr, ptr %10, align 8, !tbaa !5
  %339 = load i32, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #14
  %340 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %34)
  store <2 x float> %340, ptr %42, align 4
  %341 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2bi(ptr noundef %338, i32 noundef %339, ptr noundef nonnull align 4 dereferenceable(8) %42, i1 noundef zeroext true, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #14
  %342 = zext i1 %341 to i8
  store i8 %342, ptr %41, align 1, !tbaa !43
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 2)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  %343 = load i8, ptr %41, align 1, !tbaa !43, !range !41, !noundef !42
  %344 = trunc i8 %343 to i1
  br i1 %344, label %346, label %345

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

346:                                              ; preds = %324
  %347 = load ptr, ptr %20, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.ImGuiContext, ptr %347, i32 0, i32 29
  %349 = load ptr, ptr %348, align 8, !tbaa !97
  store ptr %349, ptr %38, align 8, !tbaa !5
  %350 = load ptr, ptr %38, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ImGuiWindow, ptr %350, i32 0, i32 54
  %352 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %351, i32 0, i32 12
  %353 = load i32, ptr %352, align 4, !tbaa !98
  %354 = shl i32 1, %353
  %355 = load ptr, ptr %38, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.ImGuiWindow, ptr %355, i32 0, i32 54
  %357 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %356, i32 0, i32 14
  %358 = load i16, ptr %357, align 2, !tbaa !99
  %359 = sext i16 %358 to i32
  %360 = or i32 %359, %354
  %361 = trunc i32 %360 to i16
  store i16 %361, ptr %357, align 2, !tbaa !99
  %362 = load ptr, ptr %22, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiStyle, ptr %362, i32 0, i32 12
  %364 = load ptr, ptr %38, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.ImGuiWindow, ptr %364, i32 0, i32 54
  %366 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %365, i32 0, i32 0
  %367 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %366, ptr noundef nonnull align 4 dereferenceable(8) %363)
  %368 = load ptr, ptr %38, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.ImGuiWindow, ptr %368, i32 0, i32 20
  %370 = getelementptr inbounds %struct.ImVec2, ptr %369, i32 0, i32 0
  %371 = load float, ptr %370, align 4, !tbaa !100
  %372 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %373 = load float, ptr %372, align 4, !tbaa !92
  %374 = fsub float %373, %371
  store float %374, ptr %372, align 4, !tbaa !92
  store i32 0, ptr %19, align 4
  br label %375

375:                                              ; preds = %346, %345
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #14
  %376 = load i32, ptr %19, align 4
  switch i32 %376, label %3260 [
    i32 0, label %377
  ]

377:                                              ; preds = %375
  br label %396

378:                                              ; preds = %298
  %379 = load ptr, ptr %22, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiStyle, ptr %379, i32 0, i32 12
  %381 = getelementptr inbounds %struct.ImVec2, ptr %380, i32 0, i32 1
  %382 = load float, ptr %381, align 4, !tbaa !91
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %382)
  %383 = load i32, ptr %15, align 4, !tbaa !9
  %384 = and i32 %383, 268435456
  %385 = icmp ne i32 %384, 0
  br i1 %385, label %391, label %386

386:                                              ; preds = %378
  %387 = load i32, ptr %29, align 4, !tbaa !9
  %388 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %387, ptr noundef %34, i32 noundef 1)
  br i1 %388, label %390, label %389

389:                                              ; preds = %386
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3260

390:                                              ; preds = %386
  br label %391

391:                                              ; preds = %390, %378
  %392 = load ptr, ptr %20, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.ImGuiContext, ptr %392, i32 0, i32 72
  %394 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %393, i32 0, i32 2
  %395 = load i32, ptr %394, align 8, !tbaa !94
  store i32 %395, ptr %40, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %391, %377
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #14
  %397 = load i32, ptr %29, align 4, !tbaa !9
  %398 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %397)
  %399 = zext i1 %398 to i8
  store i8 %399, ptr %43, align 1, !tbaa !43
  %400 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %401 = trunc i8 %400 to i1
  br i1 %401, label %402, label %405

402:                                              ; preds = %396
  %403 = load ptr, ptr %20, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.ImGuiContext, ptr %403, i32 0, i32 142
  store i32 1, ptr %404, align 8, !tbaa !101
  br label %405

405:                                              ; preds = %402, %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #14
  %406 = load i32, ptr %29, align 4, !tbaa !9
  %407 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %406)
  store ptr %407, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #14
  %408 = load i32, ptr %40, align 4, !tbaa !9
  %409 = and i32 %408, 256
  %410 = icmp ne i32 %409, 0
  %411 = zext i1 %410 to i8
  store i8 %411, ptr %45, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #14
  %412 = load i32, ptr %40, align 4, !tbaa !9
  %413 = and i32 %412, 512
  %414 = icmp ne i32 %413, 0
  %415 = zext i1 %414 to i8
  store i8 %415, ptr %46, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #14
  %416 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %417 = trunc i8 %416 to i1
  br i1 %417, label %418, label %424

418:                                              ; preds = %405
  %419 = load ptr, ptr %21, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ImGuiIO, ptr %419, i32 0, i32 65
  %421 = getelementptr inbounds [5 x i8], ptr %420, i64 0, i64 0
  %422 = load i8, ptr %421, align 8, !tbaa !43, !range !41, !noundef !42
  %423 = trunc i8 %422 to i1
  br label %424

424:                                              ; preds = %418, %405
  %425 = phi i1 [ false, %405 ], [ %423, %418 ]
  %426 = zext i1 %425 to i8
  store i8 %426, ptr %47, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #14
  %427 = load ptr, ptr %20, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.ImGuiContext, ptr %427, i32 0, i32 44
  %429 = load i32, ptr %428, align 8, !tbaa !102
  %430 = load i32, ptr %29, align 4, !tbaa !9
  %431 = icmp ne i32 %429, %430
  br i1 %431, label %432, label %453

432:                                              ; preds = %424
  %433 = load ptr, ptr %20, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.ImGuiContext, ptr %433, i32 0, i32 90
  %435 = load i32, ptr %434, align 4, !tbaa !103
  %436 = load i32, ptr %29, align 4, !tbaa !9
  %437 = icmp eq i32 %435, %436
  br i1 %437, label %451, label %438

438:                                              ; preds = %432
  %439 = load ptr, ptr %20, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.ImGuiContext, ptr %439, i32 0, i32 87
  %441 = load i32, ptr %440, align 8, !tbaa !104
  %442 = load i32, ptr %29, align 4, !tbaa !9
  %443 = icmp eq i32 %441, %442
  br i1 %443, label %444, label %449

444:                                              ; preds = %438
  %445 = load ptr, ptr %20, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiContext, ptr %445, i32 0, i32 96
  %447 = load i32, ptr %446, align 4, !tbaa !105
  %448 = icmp eq i32 %447, 2
  br label %449

449:                                              ; preds = %444, %438
  %450 = phi i1 [ false, %438 ], [ %448, %444 ]
  br label %451

451:                                              ; preds = %449, %432
  %452 = phi i1 [ true, %432 ], [ %450, %449 ]
  br label %453

453:                                              ; preds = %451, %424
  %454 = phi i1 [ false, %424 ], [ %452, %451 ]
  %455 = zext i1 %454 to i8
  store i8 %455, ptr %48, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #14
  %456 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %473

458:                                              ; preds = %453
  %459 = load ptr, ptr %44, align 8, !tbaa !5
  %460 = icmp ne ptr %459, null
  br i1 %460, label %461, label %473

461:                                              ; preds = %458
  %462 = load ptr, ptr %20, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.ImGuiContext, ptr %462, i32 0, i32 44
  %464 = load i32, ptr %463, align 8, !tbaa !102
  %465 = icmp eq i32 %464, 0
  br i1 %465, label %466, label %473

466:                                              ; preds = %461
  %467 = load ptr, ptr %20, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.ImGuiContext, ptr %467, i32 0, i32 63
  %469 = load i32, ptr %468, align 8, !tbaa !106
  %470 = load ptr, ptr %38, align 8, !tbaa !5
  %471 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef %470, i32 noundef 1)
  %472 = icmp eq i32 %469, %471
  br label %473

473:                                              ; preds = %466, %461, %458, %453
  %474 = phi i1 [ false, %461 ], [ false, %458 ], [ false, %453 ], [ %472, %466 ]
  %475 = zext i1 %474 to i8
  store i8 %475, ptr %49, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #14
  %476 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %477 = trunc i8 %476 to i1
  br i1 %477, label %478, label %488

478:                                              ; preds = %473
  %479 = load ptr, ptr %44, align 8, !tbaa !5
  %480 = icmp ne ptr %479, null
  br i1 %480, label %481, label %488

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

488:                                              ; preds = %481, %478, %473
  %489 = phi i1 [ false, %478 ], [ false, %473 ], [ %487, %481 ]
  %490 = zext i1 %489 to i8
  store i8 %490, ptr %50, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #14
  store i8 0, ptr %51, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #14
  %491 = load ptr, ptr %20, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.ImGuiContext, ptr %491, i32 0, i32 44
  %493 = load i32, ptr %492, align 8, !tbaa !102
  %494 = load i32, ptr %29, align 4, !tbaa !9
  %495 = icmp ne i32 %493, %494
  br i1 %495, label %496, label %507

496:                                              ; preds = %488
  %497 = load i32, ptr %15, align 4, !tbaa !9
  %498 = and i32 %497, 16
  %499 = icmp ne i32 %498, 0
  br i1 %499, label %503, label %500

500:                                              ; preds = %496
  %501 = load i8, ptr %48, align 1, !tbaa !43, !range !41, !noundef !42
  %502 = trunc i8 %501 to i1
  br i1 %502, label %503, label %507

503:                                              ; preds = %500, %496
  %504 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %505 = trunc i8 %504 to i1
  %506 = xor i1 %505, true
  br label %507

507:                                              ; preds = %503, %500, %488
  %508 = phi i1 [ false, %500 ], [ false, %488 ], [ %506, %503 ]
  %509 = zext i1 %508 to i8
  store i8 %509, ptr %52, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #14
  %510 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %511 = trunc i8 %510 to i1
  br i1 %511, label %512, label %517

512:                                              ; preds = %507
  %513 = load ptr, ptr %38, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.ImGuiWindow, ptr %513, i32 0, i32 15
  %515 = getelementptr inbounds %struct.ImVec2, ptr %514, i32 0, i32 1
  %516 = load float, ptr %515, align 4, !tbaa !107
  br label %518

517:                                              ; preds = %507
  br label %518

518:                                              ; preds = %517, %512
  %519 = phi float [ %516, %512 ], [ 0x47EFFFFFE0000000, %517 ]
  store float %519, ptr %53, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #14
  %520 = load ptr, ptr %44, align 8, !tbaa !5
  %521 = icmp ne ptr %520, null
  br i1 %521, label %522, label %533

522:                                              ; preds = %518
  %523 = load ptr, ptr %44, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %523, i32 0, i32 9
  %525 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %524, i32 0, i32 8
  %526 = load i8, ptr %525, align 1, !tbaa !108
  %527 = zext i8 %526 to i32
  %528 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %529 = trunc i8 %528 to i1
  %530 = xor i1 %529, true
  %531 = zext i1 %530 to i32
  %532 = icmp ne i32 %527, %531
  br label %533

533:                                              ; preds = %522, %518
  %534 = phi i1 [ false, %518 ], [ %532, %522 ]
  %535 = zext i1 %534 to i8
  store i8 %535, ptr %54, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #14
  %536 = load i8, ptr %47, align 1, !tbaa !43, !range !41, !noundef !42
  %537 = trunc i8 %536 to i1
  br i1 %537, label %550, label %538

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

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

544:                                              ; preds = %541
  %545 = load i8, ptr %45, align 1, !tbaa !43, !range !41, !noundef !42
  %546 = trunc i8 %545 to i1
  br i1 %546, label %550, label %547

547:                                              ; preds = %544
  %548 = load i8, ptr %46, align 1, !tbaa !43, !range !41, !noundef !42
  %549 = trunc i8 %548 to i1
  br label %550

550:                                              ; preds = %547, %544, %541, %538, %533
  %551 = phi i1 [ true, %544 ], [ true, %541 ], [ true, %538 ], [ true, %533 ], [ %549, %547 ]
  %552 = zext i1 %551 to i8
  store i8 %552, ptr %55, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #14
  %553 = load i8, ptr %55, align 1, !tbaa !43, !range !41, !noundef !42
  %554 = trunc i8 %553 to i1
  br i1 %554, label %558, label %555

555:                                              ; preds = %550
  %556 = load i8, ptr %50, align 1, !tbaa !43, !range !41, !noundef !42
  %557 = trunc i8 %556 to i1
  br label %558

558:                                              ; preds = %555, %550
  %559 = phi i1 [ true, %550 ], [ %557, %555 ]
  %560 = zext i1 %559 to i8
  store i8 %560, ptr %56, align 1, !tbaa !43
  %561 = load i8, ptr %56, align 1, !tbaa !43, !range !41, !noundef !42
  %562 = trunc i8 %561 to i1
  br i1 %562, label %563, label %569

563:                                              ; preds = %558
  %564 = load ptr, ptr %20, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.ImGuiContext, ptr %564, i32 0, i32 44
  %566 = load i32, ptr %565, align 8, !tbaa !102
  %567 = load i32, ptr %29, align 4, !tbaa !9
  %568 = icmp ne i32 %566, %567
  br i1 %568, label %572, label %569

569:                                              ; preds = %563, %558
  %570 = load i8, ptr %54, align 1, !tbaa !43, !range !41, !noundef !42
  %571 = trunc i8 %570 to i1
  br i1 %571, label %572, label %675

572:                                              ; preds = %569, %563
  %573 = load ptr, ptr %20, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.ImGuiContext, ptr %573, i32 0, i32 175
  store ptr %574, ptr %44, align 8, !tbaa !5
  %575 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %575)
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #14
  %576 = load ptr, ptr %12, align 8, !tbaa !5
  %577 = call i64 @strlen(ptr noundef %576) #16
  %578 = trunc i64 %577 to i32
  store i32 %578, ptr %57, align 4, !tbaa !9
  %579 = load ptr, ptr %44, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %579, i32 0, i32 5
  %581 = load i32, ptr %57, align 4, !tbaa !9
  %582 = add nsw i32 %581, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %580, i32 noundef %582)
  %583 = load ptr, ptr %44, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %583, i32 0, i32 5
  %585 = getelementptr inbounds %struct.ImVector.26, ptr %584, i32 0, i32 2
  %586 = load ptr, ptr %585, align 8, !tbaa !109
  %587 = load ptr, ptr %12, align 8, !tbaa !5
  %588 = load i32, ptr %57, align 4, !tbaa !9
  %589 = add nsw i32 %588, 1
  %590 = sext i32 %589 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %586, ptr align 1 %587, i64 %590, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #14
  store ptr null, ptr %58, align 8, !tbaa !5
  %591 = load ptr, ptr %44, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %591, i32 0, i32 3
  %593 = load i32, ptr %13, align 4, !tbaa !9
  %594 = add nsw i32 %593, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %592, i32 noundef %594)
  %595 = load ptr, ptr %44, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %595, i32 0, i32 4
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %596, i32 noundef 0)
  %597 = load ptr, ptr %44, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %597, i32 0, i32 6
  store i8 0, ptr %598, align 8, !tbaa !110
  %599 = load ptr, ptr %44, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %599, i32 0, i32 3
  %601 = getelementptr inbounds %struct.ImVector.5, ptr %600, i32 0, i32 2
  %602 = load ptr, ptr %601, align 8, !tbaa !111
  %603 = load i32, ptr %13, align 4, !tbaa !9
  %604 = load ptr, ptr %12, align 8, !tbaa !5
  %605 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %602, i32 noundef %603, ptr noundef %604, ptr noundef null, ptr noundef %58)
  %606 = load ptr, ptr %44, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %606, i32 0, i32 1
  store i32 %605, ptr %607, align 4, !tbaa !112
  %608 = load ptr, ptr %58, align 8, !tbaa !5
  %609 = load ptr, ptr %12, align 8, !tbaa !5
  %610 = ptrtoint ptr %608 to i64
  %611 = ptrtoint ptr %609 to i64
  %612 = sub i64 %610, %611
  %613 = trunc i64 %612 to i32
  %614 = load ptr, ptr %44, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %614, i32 0, i32 2
  store i32 %613, ptr %615, align 8, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #14
  %616 = load ptr, ptr %44, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %616, i32 0, i32 0
  %618 = load i32, ptr %617, align 8, !tbaa !114
  %619 = load i32, ptr %29, align 4, !tbaa !9
  %620 = icmp eq i32 %618, %619
  br i1 %620, label %621, label %625

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

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

630:                                              ; preds = %625
  %631 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %631)
  br label %651

632:                                              ; preds = %625
  %633 = load i32, ptr %29, align 4, !tbaa !9
  %634 = load ptr, ptr %44, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %634, i32 0, i32 0
  store i32 %633, ptr %635, align 8, !tbaa !114
  %636 = load ptr, ptr %44, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %636, i32 0, i32 8
  store float 0.000000e+00, ptr %637, align 8, !tbaa !115
  %638 = load ptr, ptr %44, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %638, i32 0, i32 9
  %640 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %641 = trunc i8 %640 to i1
  %642 = xor i1 %641, true
  %643 = zext i1 %642 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef %639, i32 noundef %643)
  %644 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %645 = trunc i8 %644 to i1
  br i1 %645, label %650, label %646

646:                                              ; preds = %632
  %647 = load i8, ptr %45, align 1, !tbaa !43, !range !41, !noundef !42
  %648 = trunc i8 %647 to i1
  br i1 %648, label %649, label %650

649:                                              ; preds = %646
  store i8 1, ptr %52, align 1, !tbaa !43
  br label %650

650:                                              ; preds = %649, %646, %632
  br label %651

651:                                              ; preds = %650, %630
  %652 = load i32, ptr %15, align 4, !tbaa !9
  %653 = and i32 %652, 8192
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %659

655:                                              ; preds = %651
  %656 = load ptr, ptr %44, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %656, i32 0, i32 9
  %658 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %657, i32 0, i32 3
  store i8 1, ptr %658, align 4, !tbaa !116
  br label %659

659:                                              ; preds = %655, %651
  %660 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %661 = trunc i8 %660 to i1
  br i1 %661, label %674, label %662

662:                                              ; preds = %659
  %663 = load i8, ptr %46, align 1, !tbaa !43, !range !41, !noundef !42
  %664 = trunc i8 %663 to i1
  br i1 %664, label %673, label %665

665:                                              ; preds = %662
  %666 = load i8, ptr %47, align 1, !tbaa !43, !range !41, !noundef !42
  %667 = trunc i8 %666 to i1
  br i1 %667, label %668, label %674

668:                                              ; preds = %665
  %669 = load ptr, ptr %21, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.ImGuiIO, ptr %669, i32 0, i32 40
  %671 = load i8, ptr %670, align 8, !tbaa !117, !range !41, !noundef !42
  %672 = trunc i8 %671 to i1
  br i1 %672, label %673, label %674

673:                                              ; preds = %668, %662
  store i8 1, ptr %52, align 1, !tbaa !43
  br label %674

674:                                              ; preds = %673, %668, %665, %659
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #14
  br label %675

675:                                              ; preds = %674, %569
  %676 = load ptr, ptr %20, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.ImGuiContext, ptr %676, i32 0, i32 44
  %678 = load i32, ptr %677, align 8, !tbaa !102
  %679 = load i32, ptr %29, align 4, !tbaa !9
  %680 = icmp ne i32 %678, %679
  br i1 %680, label %681, label %745

681:                                              ; preds = %675
  %682 = load i8, ptr %55, align 1, !tbaa !43, !range !41, !noundef !42
  %683 = trunc i8 %682 to i1
  br i1 %683, label %684, label %745

684:                                              ; preds = %681
  %685 = load ptr, ptr %44, align 8, !tbaa !5
  %686 = icmp ne ptr %685, null
  br i1 %686, label %687, label %693

687:                                              ; preds = %684
  %688 = load ptr, ptr %44, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %688, i32 0, i32 0
  %690 = load i32, ptr %689, align 8, !tbaa !114
  %691 = load i32, ptr %29, align 4, !tbaa !9
  %692 = icmp eq i32 %690, %691
  br label %693

693:                                              ; preds = %687, %684
  %694 = phi i1 [ false, %684 ], [ %692, %687 ]
  br i1 %694, label %695, label %696

695:                                              ; preds = %693
  br label %698

696:                                              ; preds = %693
  call void @__assert_fail(ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 4075, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

697:                                              ; No predecessors!
  br label %698

698:                                              ; preds = %697, %695
  %699 = load i32, ptr %29, align 4, !tbaa !9
  %700 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %699, ptr noundef %700)
  %701 = load i32, ptr %29, align 4, !tbaa !9
  %702 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %701, ptr noundef %702)
  %703 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %703)
  %704 = load ptr, ptr %20, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.ImGuiContext, ptr %704, i32 0, i32 55
  %706 = load i32, ptr %705, align 4, !tbaa !118
  %707 = or i32 %706, 3
  store i32 %707, ptr %705, align 4, !tbaa !118
  %708 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %709 = trunc i8 %708 to i1
  br i1 %709, label %714, label %710

710:                                              ; preds = %698
  %711 = load i32, ptr %15, align 4, !tbaa !9
  %712 = and i32 %711, 128
  %713 = icmp ne i32 %712, 0
  br i1 %713, label %714, label %719

714:                                              ; preds = %710, %698
  %715 = load ptr, ptr %20, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.ImGuiContext, ptr %715, i32 0, i32 55
  %717 = load i32, ptr %716, align 4, !tbaa !118
  %718 = or i32 %717, 12
  store i32 %718, ptr %716, align 4, !tbaa !118
  br label %719

719:                                              ; preds = %714, %710
  %720 = load ptr, ptr %20, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.ImGuiContext, ptr %720, i32 0, i32 56
  %722 = load i32, ptr %721, align 8, !tbaa !119
  %723 = or i32 %722, 2
  store i32 %723, ptr %721, align 8, !tbaa !119
  %724 = load ptr, ptr %20, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiContext, ptr %724, i32 0, i32 58
  %726 = load i64, ptr %725, align 8, !tbaa !120
  %727 = or i64 %726, 384
  store i64 %727, ptr %725, align 8, !tbaa !120
  %728 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %729 = trunc i8 %728 to i1
  br i1 %729, label %730, label %735

730:                                              ; preds = %719
  %731 = load ptr, ptr %20, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.ImGuiContext, ptr %731, i32 0, i32 58
  %733 = load i64, ptr %732, align 8, !tbaa !120
  %734 = or i64 %733, 96
  store i64 %734, ptr %732, align 8, !tbaa !120
  br label %735

735:                                              ; preds = %730, %719
  %736 = load i32, ptr %15, align 4, !tbaa !9
  %737 = and i32 %736, 1088
  %738 = icmp ne i32 %737, 0
  br i1 %738, label %739, label %744

739:                                              ; preds = %735
  %740 = load ptr, ptr %20, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.ImGuiContext, ptr %740, i32 0, i32 58
  %742 = load i64, ptr %741, align 8, !tbaa !120
  %743 = or i64 %742, 1
  store i64 %743, ptr %741, align 8, !tbaa !120
  br label %744

744:                                              ; preds = %739, %735
  br label %745

745:                                              ; preds = %744, %681, %675
  %746 = load ptr, ptr %20, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiContext, ptr %746, i32 0, i32 44
  %748 = load i32, ptr %747, align 8, !tbaa !102
  %749 = load i32, ptr %29, align 4, !tbaa !9
  %750 = icmp eq i32 %748, %749
  br i1 %750, label %751, label %755

751:                                              ; preds = %745
  %752 = load ptr, ptr %44, align 8, !tbaa !5
  %753 = icmp eq ptr %752, null
  br i1 %753, label %754, label %755

754:                                              ; preds = %751
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %755

755:                                              ; preds = %754, %751, %745
  %756 = load ptr, ptr %20, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.ImGuiContext, ptr %756, i32 0, i32 44
  %758 = load i32, ptr %757, align 8, !tbaa !102
  %759 = load i32, ptr %29, align 4, !tbaa !9
  %760 = icmp eq i32 %758, %759
  br i1 %760, label %761, label %774

761:                                              ; preds = %755
  %762 = load ptr, ptr %21, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImGuiIO, ptr %762, i32 0, i32 65
  %764 = getelementptr inbounds [5 x i8], ptr %763, i64 0, i64 0
  %765 = load i8, ptr %764, align 8, !tbaa !43, !range !41, !noundef !42
  %766 = trunc i8 %765 to i1
  br i1 %766, label %767, label %774

767:                                              ; preds = %761
  %768 = load i8, ptr %56, align 1, !tbaa !43, !range !41, !noundef !42
  %769 = trunc i8 %768 to i1
  br i1 %769, label %774, label %770

770:                                              ; preds = %767
  %771 = load i8, ptr %55, align 1, !tbaa !43, !range !41, !noundef !42
  %772 = trunc i8 %771 to i1
  br i1 %772, label %774, label %773

773:                                              ; preds = %770
  store i8 1, ptr %51, align 1, !tbaa !43
  br label %774

774:                                              ; preds = %773, %770, %767, %761, %755
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #14
  %775 = load ptr, ptr %20, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.ImGuiContext, ptr %775, i32 0, i32 44
  %777 = load i32, ptr %776, align 8, !tbaa !102
  %778 = load i32, ptr %29, align 4, !tbaa !9
  %779 = icmp eq i32 %777, %778
  br i1 %779, label %788, label %780

780:                                              ; preds = %774
  %781 = load ptr, ptr %44, align 8, !tbaa !5
  %782 = icmp ne ptr %781, null
  br i1 %782, label %783, label %786

783:                                              ; preds = %780
  %784 = load i8, ptr %50, align 1, !tbaa !43, !range !41, !noundef !42
  %785 = trunc i8 %784 to i1
  br label %786

786:                                              ; preds = %783, %780
  %787 = phi i1 [ false, %780 ], [ %785, %783 ]
  br label %788

788:                                              ; preds = %786, %774
  %789 = phi i1 [ true, %774 ], [ %787, %786 ]
  %790 = zext i1 %789 to i8
  store i8 %790, ptr %60, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #14
  %791 = load ptr, ptr %44, align 8, !tbaa !5
  %792 = icmp ne ptr %791, null
  br i1 %792, label %793, label %799

793:                                              ; preds = %788
  %794 = load ptr, ptr %44, align 8, !tbaa !5
  %795 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %794)
  br i1 %795, label %796, label %799

796:                                              ; preds = %793
  %797 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %798 = trunc i8 %797 to i1
  br label %799

799:                                              ; preds = %796, %793, %788
  %800 = phi i1 [ false, %793 ], [ false, %788 ], [ %798, %796 ]
  %801 = zext i1 %800 to i8
  store i8 %801, ptr %61, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #14
  store i8 0, ptr %62, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #14
  store i8 0, ptr %63, align 1, !tbaa !43
  %802 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %803 = trunc i8 %802 to i1
  br i1 %803, label %804, label %848

804:                                              ; preds = %799
  %805 = load ptr, ptr %44, align 8, !tbaa !5
  %806 = icmp ne ptr %805, null
  br i1 %806, label %807, label %848

807:                                              ; preds = %804
  %808 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %809 = trunc i8 %808 to i1
  br i1 %809, label %813, label %810

810:                                              ; preds = %807
  %811 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %812 = trunc i8 %811 to i1
  br i1 %812, label %813, label %848

813:                                              ; preds = %810, %807
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #14
  store ptr null, ptr %64, align 8, !tbaa !5
  %814 = load ptr, ptr %44, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %814, i32 0, i32 3
  %816 = load i32, ptr %13, align 4, !tbaa !9
  %817 = add nsw i32 %816, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %815, i32 noundef %817)
  %818 = load ptr, ptr %44, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %818, i32 0, i32 3
  %820 = getelementptr inbounds %struct.ImVector.5, ptr %819, i32 0, i32 2
  %821 = load ptr, ptr %820, align 8, !tbaa !111
  %822 = load ptr, ptr %44, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %822, i32 0, i32 3
  %824 = getelementptr inbounds %struct.ImVector.5, ptr %823, i32 0, i32 0
  %825 = load i32, ptr %824, align 8, !tbaa !121
  %826 = load ptr, ptr %12, align 8, !tbaa !5
  %827 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %821, i32 noundef %825, ptr noundef %826, ptr noundef null, ptr noundef %64)
  %828 = load ptr, ptr %44, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %828, i32 0, i32 1
  store i32 %827, ptr %829, align 4, !tbaa !112
  %830 = load ptr, ptr %64, align 8, !tbaa !5
  %831 = load ptr, ptr %12, align 8, !tbaa !5
  %832 = ptrtoint ptr %830 to i64
  %833 = ptrtoint ptr %831 to i64
  %834 = sub i64 %832, %833
  %835 = trunc i64 %834 to i32
  %836 = load ptr, ptr %44, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %836, i32 0, i32 2
  store i32 %835, ptr %837, align 8, !tbaa !113
  %838 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %838)
  %839 = load ptr, ptr %44, align 8, !tbaa !5
  %840 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %839)
  %841 = zext i1 %840 to i32
  %842 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %843 = trunc i8 %842 to i1
  %844 = zext i1 %843 to i32
  %845 = and i32 %844, %841
  %846 = icmp ne i32 %845, 0
  %847 = zext i1 %846 to i8
  store i8 %847, ptr %61, align 1, !tbaa !43
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #14
  br label %848

848:                                              ; preds = %813, %810, %804, %799
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #14
  %849 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %850 = trunc i8 %849 to i1
  br i1 %850, label %860, label %851

851:                                              ; preds = %848
  %852 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %853 = trunc i8 %852 to i1
  br i1 %853, label %860, label %854

854:                                              ; preds = %851
  %855 = load ptr, ptr %20, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.ImGuiContext, ptr %855, i32 0, i32 44
  %857 = load i32, ptr %856, align 8, !tbaa !102
  %858 = load i32, ptr %29, align 4, !tbaa !9
  %859 = icmp eq i32 %857, %858
  br i1 %859, label %860, label %871

860:                                              ; preds = %854, %851, %848
  %861 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %862 = trunc i8 %861 to i1
  br i1 %862, label %871, label %863

863:                                              ; preds = %860
  %864 = load ptr, ptr %44, align 8, !tbaa !5
  %865 = icmp ne ptr %864, null
  br i1 %865, label %866, label %871

866:                                              ; preds = %863
  %867 = load ptr, ptr %44, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %867, i32 0, i32 6
  %869 = load i8, ptr %868, align 8, !tbaa !110, !range !41, !noundef !42
  %870 = trunc i8 %869 to i1
  br label %871

871:                                              ; preds = %866, %863, %860, %854
  %872 = phi i1 [ false, %863 ], [ false, %860 ], [ false, %854 ], [ %870, %866 ]
  %873 = zext i1 %872 to i8
  store i8 %873, ptr %65, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #14
  %874 = load ptr, ptr %11, align 8, !tbaa !5
  %875 = icmp ne ptr %874, null
  br i1 %875, label %876, label %892

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

879:                                              ; preds = %876
  %880 = load ptr, ptr %44, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %880, i32 0, i32 4
  %882 = getelementptr inbounds %struct.ImVector.26, ptr %881, i32 0, i32 2
  %883 = load ptr, ptr %882, align 8, !tbaa !122
  br label %886

884:                                              ; preds = %876
  %885 = load ptr, ptr %12, align 8, !tbaa !5
  br label %886

886:                                              ; preds = %884, %879
  %887 = phi ptr [ %883, %879 ], [ %885, %884 ]
  %888 = getelementptr inbounds i8, ptr %887, i64 0
  %889 = load i8, ptr %888, align 1, !tbaa !123
  %890 = sext i8 %889 to i32
  %891 = icmp eq i32 %890, 0
  br label %892

892:                                              ; preds = %886, %871
  %893 = phi i1 [ false, %871 ], [ %891, %886 ]
  %894 = zext i1 %893 to i8
  store i8 %894, ptr %66, align 1, !tbaa !43
  %895 = load i8, ptr %26, align 1, !tbaa !43, !range !41, !noundef !42
  %896 = trunc i8 %895 to i1
  br i1 %896, label %897, label %968

897:                                              ; preds = %892
  %898 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %899 = trunc i8 %898 to i1
  br i1 %899, label %968, label %900

900:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #14
  %901 = load ptr, ptr %20, align 8, !tbaa !5
  %902 = getelementptr inbounds %struct.ImGuiContext, ptr %901, i32 0, i32 5
  %903 = load ptr, ptr %902, align 8, !tbaa !124
  %904 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(110) %903, i16 noundef zeroext 42)
  store ptr %904, ptr %67, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #14
  %905 = load ptr, ptr %20, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiContext, ptr %905, i32 0, i32 176
  store ptr %906, ptr %68, align 8, !tbaa !5
  %907 = load ptr, ptr %20, align 8, !tbaa !5
  %908 = getelementptr inbounds %struct.ImGuiContext, ptr %907, i32 0, i32 5
  %909 = load ptr, ptr %908, align 8, !tbaa !124
  %910 = getelementptr inbounds %struct.ImFont, ptr %909, i32 0, i32 2
  %911 = load float, ptr %910, align 4, !tbaa !125
  %912 = load ptr, ptr %68, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImFont, ptr %912, i32 0, i32 2
  store float %911, ptr %913, align 4, !tbaa !125
  %914 = load ptr, ptr %20, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.ImGuiContext, ptr %914, i32 0, i32 5
  %916 = load ptr, ptr %915, align 8, !tbaa !124
  %917 = getelementptr inbounds %struct.ImFont, ptr %916, i32 0, i32 14
  %918 = load float, ptr %917, align 4, !tbaa !126
  %919 = load ptr, ptr %68, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImFont, ptr %919, i32 0, i32 14
  store float %918, ptr %920, align 4, !tbaa !126
  %921 = load ptr, ptr %20, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.ImGuiContext, ptr %921, i32 0, i32 5
  %923 = load ptr, ptr %922, align 8, !tbaa !124
  %924 = getelementptr inbounds %struct.ImFont, ptr %923, i32 0, i32 15
  %925 = load float, ptr %924, align 8, !tbaa !127
  %926 = load ptr, ptr %68, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.ImFont, ptr %926, i32 0, i32 15
  store float %925, ptr %927, align 8, !tbaa !127
  %928 = load ptr, ptr %20, align 8, !tbaa !5
  %929 = getelementptr inbounds %struct.ImGuiContext, ptr %928, i32 0, i32 5
  %930 = load ptr, ptr %929, align 8, !tbaa !124
  %931 = getelementptr inbounds %struct.ImFont, ptr %930, i32 0, i32 16
  %932 = load float, ptr %931, align 4, !tbaa !128
  %933 = load ptr, ptr %68, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.ImFont, ptr %933, i32 0, i32 16
  store float %932, ptr %934, align 4, !tbaa !128
  %935 = load ptr, ptr %20, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiContext, ptr %935, i32 0, i32 5
  %937 = load ptr, ptr %936, align 8, !tbaa !124
  %938 = getelementptr inbounds %struct.ImFont, ptr %937, i32 0, i32 6
  %939 = load ptr, ptr %938, align 8, !tbaa !129
  %940 = load ptr, ptr %68, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.ImFont, ptr %940, i32 0, i32 6
  store ptr %939, ptr %941, align 8, !tbaa !129
  %942 = load ptr, ptr %67, align 8, !tbaa !5
  %943 = load ptr, ptr %68, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.ImFont, ptr %943, i32 0, i32 5
  store ptr %942, ptr %944, align 8, !tbaa !130
  %945 = load ptr, ptr %67, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImFontGlyph, ptr %945, i32 0, i32 1
  %947 = load float, ptr %946, align 4, !tbaa !131
  %948 = load ptr, ptr %68, align 8, !tbaa !5
  %949 = getelementptr inbounds %struct.ImFont, ptr %948, i32 0, i32 1
  store float %947, ptr %949, align 8, !tbaa !133
  %950 = load ptr, ptr %68, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImFont, ptr %950, i32 0, i32 4
  %952 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %951)
  br i1 %952, label %953, label %961

953:                                              ; preds = %900
  %954 = load ptr, ptr %68, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.ImFont, ptr %954, i32 0, i32 0
  %956 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %955)
  br i1 %956, label %957, label %961

957:                                              ; preds = %953
  %958 = load ptr, ptr %68, align 8, !tbaa !5
  %959 = getelementptr inbounds %struct.ImFont, ptr %958, i32 0, i32 3
  %960 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %959)
  br label %961

961:                                              ; preds = %957, %953, %900
  %962 = phi i1 [ false, %953 ], [ false, %900 ], [ %960, %957 ]
  br i1 %962, label %963, label %964

963:                                              ; preds = %961
  br label %966

964:                                              ; preds = %961
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 4135, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

965:                                              ; No predecessors!
  br label %966

966:                                              ; preds = %965, %963
  %967 = load ptr, ptr %68, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %967)
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #14
  br label %968

968:                                              ; preds = %966, %897, %892
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #14
  store i32 0, ptr %69, align 4, !tbaa !9
  %969 = load ptr, ptr %20, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiContext, ptr %969, i32 0, i32 44
  %971 = load i32, ptr %970, align 8, !tbaa !102
  %972 = load i32, ptr %29, align 4, !tbaa !9
  %973 = icmp eq i32 %971, %972
  br i1 %973, label %974, label %1268

974:                                              ; preds = %968
  %975 = load ptr, ptr %44, align 8, !tbaa !5
  %976 = icmp ne ptr %975, null
  br i1 %976, label %977, label %978

977:                                              ; preds = %974
  br label %980

978:                                              ; preds = %974
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 4143, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

979:                                              ; No predecessors!
  br label %980

980:                                              ; preds = %979, %977
  %981 = load ptr, ptr %44, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %981, i32 0, i32 2
  %983 = load i32, ptr %982, align 8, !tbaa !113
  store i32 %983, ptr %69, align 4, !tbaa !9
  %984 = load ptr, ptr %44, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %984, i32 0, i32 13
  store i8 0, ptr %985, align 2, !tbaa !134
  %986 = load i32, ptr %13, align 4, !tbaa !9
  %987 = load ptr, ptr %44, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %987, i32 0, i32 7
  store i32 %986, ptr %988, align 4, !tbaa !135
  %989 = load i32, ptr %15, align 4, !tbaa !9
  %990 = load ptr, ptr %44, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %990, i32 0, i32 14
  store i32 %989, ptr %991, align 8, !tbaa !136
  %992 = load ptr, ptr %16, align 8, !tbaa !5
  %993 = load ptr, ptr %44, align 8, !tbaa !5
  %994 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %993, i32 0, i32 15
  store ptr %992, ptr %994, align 8, !tbaa !137
  %995 = load ptr, ptr %17, align 8, !tbaa !5
  %996 = load ptr, ptr %44, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %996, i32 0, i32 16
  store ptr %995, ptr %997, align 8, !tbaa !138
  %998 = load ptr, ptr %21, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.ImGuiIO, ptr %998, i32 0, i32 37
  %1000 = getelementptr inbounds [5 x i8], ptr %999, i64 0, i64 0
  %1001 = load i8, ptr %1000, align 8, !tbaa !43, !range !41, !noundef !42
  %1002 = trunc i8 %1001 to i1
  %1003 = xor i1 %1002, true
  %1004 = load ptr, ptr %20, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.ImGuiContext, ptr %1004, i32 0, i32 48
  %1006 = zext i1 %1003 to i8
  store i8 %1006, ptr %1005, align 1, !tbaa !139
  %1007 = load ptr, ptr %20, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.ImGuiContext, ptr %1007, i32 0, i32 233
  store i32 1, ptr %1008, align 8, !tbaa !140
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #14
  %1009 = load ptr, ptr %21, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.ImGuiIO, ptr %1009, i32 0, i32 36
  %1011 = getelementptr inbounds %struct.ImVec2, ptr %1010, i32 0, i32 0
  %1012 = load float, ptr %1011, align 8, !tbaa !141
  %1013 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %1014 = getelementptr inbounds %struct.ImVec2, ptr %1013, i32 0, i32 0
  %1015 = load float, ptr %1014, align 4, !tbaa !142
  %1016 = fsub float %1012, %1015
  %1017 = load ptr, ptr %22, align 8, !tbaa !5
  %1018 = getelementptr inbounds %struct.ImGuiStyle, ptr %1017, i32 0, i32 12
  %1019 = getelementptr inbounds %struct.ImVec2, ptr %1018, i32 0, i32 0
  %1020 = load float, ptr %1019, align 4, !tbaa !143
  %1021 = fsub float %1016, %1020
  %1022 = load ptr, ptr %44, align 8, !tbaa !5
  %1023 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1022, i32 0, i32 8
  %1024 = load float, ptr %1023, align 8, !tbaa !115
  %1025 = fadd float %1021, %1024
  store float %1025, ptr %70, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #14
  %1026 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1027 = trunc i8 %1026 to i1
  br i1 %1027, label %1028, label %1039

1028:                                             ; preds = %980
  %1029 = load ptr, ptr %21, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.ImGuiIO, ptr %1029, i32 0, i32 36
  %1031 = getelementptr inbounds %struct.ImVec2, ptr %1030, i32 0, i32 1
  %1032 = load float, ptr %1031, align 4, !tbaa !144
  %1033 = load ptr, ptr %38, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.ImGuiWindow, ptr %1033, i32 0, i32 54
  %1035 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1034, i32 0, i32 0
  %1036 = getelementptr inbounds %struct.ImVec2, ptr %1035, i32 0, i32 1
  %1037 = load float, ptr %1036, align 4, !tbaa !145
  %1038 = fsub float %1032, %1037
  br label %1044

1039:                                             ; preds = %980
  %1040 = load ptr, ptr %20, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.ImGuiContext, ptr %1040, i32 0, i32 6
  %1042 = load float, ptr %1041, align 8, !tbaa !46
  %1043 = fmul float %1042, 5.000000e-01
  br label %1044

1044:                                             ; preds = %1039, %1028
  %1045 = phi float [ %1038, %1028 ], [ %1043, %1039 ]
  store float %1045, ptr %71, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #14
  %1046 = load ptr, ptr %21, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.ImGuiIO, ptr %1046, i32 0, i32 20
  %1048 = load i8, ptr %1047, align 1, !tbaa !146, !range !41, !noundef !42
  %1049 = trunc i8 %1048 to i1
  %1050 = zext i1 %1049 to i8
  store i8 %1050, ptr %72, align 1, !tbaa !43
  %1051 = load i8, ptr %52, align 1, !tbaa !43, !range !41, !noundef !42
  %1052 = trunc i8 %1051 to i1
  br i1 %1052, label %1065, label %1053

1053:                                             ; preds = %1044
  %1054 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %1055 = trunc i8 %1054 to i1
  br i1 %1055, label %1056, label %1069

1056:                                             ; preds = %1053
  %1057 = load i8, ptr %72, align 1, !tbaa !43, !range !41, !noundef !42
  %1058 = trunc i8 %1057 to i1
  br i1 %1058, label %1069, label %1059

1059:                                             ; preds = %1056
  %1060 = load ptr, ptr %21, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.ImGuiIO, ptr %1060, i32 0, i32 66
  %1062 = getelementptr inbounds [5 x i8], ptr %1061, i64 0, i64 0
  %1063 = load i8, ptr %1062, align 1, !tbaa !43, !range !41, !noundef !42
  %1064 = trunc i8 %1063 to i1
  br i1 %1064, label %1065, label %1069

1065:                                             ; preds = %1059, %1044
  %1066 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1066)
  %1067 = load ptr, ptr %44, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1067, i32 0, i32 12
  store i8 1, ptr %1068, align 1, !tbaa !147
  br label %1141

1069:                                             ; preds = %1059, %1056, %1053
  %1070 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %1071 = trunc i8 %1070 to i1
  br i1 %1071, label %1072, label %1084

1072:                                             ; preds = %1069
  %1073 = load i8, ptr %72, align 1, !tbaa !43, !range !41, !noundef !42
  %1074 = trunc i8 %1073 to i1
  br i1 %1074, label %1075, label %1084

1075:                                             ; preds = %1072
  %1076 = load ptr, ptr %21, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.ImGuiIO, ptr %1076, i32 0, i32 66
  %1078 = getelementptr inbounds [5 x i8], ptr %1077, i64 0, i64 0
  %1079 = load i8, ptr %1078, align 1, !tbaa !43, !range !41, !noundef !42
  %1080 = trunc i8 %1079 to i1
  br i1 %1080, label %1081, label %1084

1081:                                             ; preds = %1075
  %1082 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1082, i32 noundef 2097164)
  %1083 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1083, i32 noundef 6291469)
  br label %1140

1084:                                             ; preds = %1075, %1072, %1069
  %1085 = load ptr, ptr %21, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.ImGuiIO, ptr %1085, i32 0, i32 65
  %1087 = getelementptr inbounds [5 x i8], ptr %1086, i64 0, i64 0
  %1088 = load i8, ptr %1087, align 8, !tbaa !43, !range !41, !noundef !42
  %1089 = trunc i8 %1088 to i1
  br i1 %1089, label %1090, label %1106

1090:                                             ; preds = %1084
  %1091 = load ptr, ptr %44, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1091, i32 0, i32 12
  %1093 = load i8, ptr %1092, align 1, !tbaa !147, !range !41, !noundef !42
  %1094 = trunc i8 %1093 to i1
  br i1 %1094, label %1106, label %1095

1095:                                             ; preds = %1090
  %1096 = load i8, ptr %43, align 1, !tbaa !43, !range !41, !noundef !42
  %1097 = trunc i8 %1096 to i1
  br i1 %1097, label %1098, label %1105

1098:                                             ; preds = %1095
  %1099 = load ptr, ptr %44, align 8, !tbaa !5
  %1100 = load ptr, ptr %44, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1100, i32 0, i32 9
  %1102 = load float, ptr %70, align 4, !tbaa !45
  %1103 = load float, ptr %71, align 4, !tbaa !45
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1099, ptr noundef %1101, float noundef %1102, float noundef %1103)
  %1104 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %1104)
  br label %1105

1105:                                             ; preds = %1098, %1095
  br label %1139

1106:                                             ; preds = %1090, %1084
  %1107 = load ptr, ptr %21, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.ImGuiIO, ptr %1107, i32 0, i32 37
  %1109 = getelementptr inbounds [5 x i8], ptr %1108, i64 0, i64 0
  %1110 = load i8, ptr %1109, align 8, !tbaa !43, !range !41, !noundef !42
  %1111 = trunc i8 %1110 to i1
  br i1 %1111, label %1112, label %1138

1112:                                             ; preds = %1106
  %1113 = load ptr, ptr %44, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1113, i32 0, i32 12
  %1115 = load i8, ptr %1114, align 1, !tbaa !147, !range !41, !noundef !42
  %1116 = trunc i8 %1115 to i1
  br i1 %1116, label %1138, label %1117

1117:                                             ; preds = %1112
  %1118 = load ptr, ptr %21, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.ImGuiIO, ptr %1118, i32 0, i32 59
  %1120 = getelementptr inbounds %struct.ImVec2, ptr %1119, i32 0, i32 0
  %1121 = load float, ptr %1120, align 4, !tbaa !148
  %1122 = fcmp une float %1121, 0.000000e+00
  br i1 %1122, label %1129, label %1123

1123:                                             ; preds = %1117
  %1124 = load ptr, ptr %21, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.ImGuiIO, ptr %1124, i32 0, i32 59
  %1126 = getelementptr inbounds %struct.ImVec2, ptr %1125, i32 0, i32 1
  %1127 = load float, ptr %1126, align 4, !tbaa !149
  %1128 = fcmp une float %1127, 0.000000e+00
  br i1 %1128, label %1129, label %1138

1129:                                             ; preds = %1123, %1117
  %1130 = load ptr, ptr %44, align 8, !tbaa !5
  %1131 = load ptr, ptr %44, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1131, i32 0, i32 9
  %1133 = load float, ptr %70, align 4, !tbaa !45
  %1134 = load float, ptr %71, align 4, !tbaa !45
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1130, ptr noundef %1132, float noundef %1133, float noundef %1134)
  %1135 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %1135)
  %1136 = load ptr, ptr %44, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1136, i32 0, i32 11
  store i8 1, ptr %1137, align 4, !tbaa !150
  br label %1138

1138:                                             ; preds = %1129, %1123, %1112, %1106
  br label %1139

1139:                                             ; preds = %1138, %1105
  br label %1140

1140:                                             ; preds = %1139, %1081
  br label %1141

1141:                                             ; preds = %1140, %1065
  %1142 = load ptr, ptr %44, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1142, i32 0, i32 12
  %1144 = load i8, ptr %1143, align 1, !tbaa !147, !range !41, !noundef !42
  %1145 = trunc i8 %1144 to i1
  br i1 %1145, label %1146, label %1155

1146:                                             ; preds = %1141
  %1147 = load ptr, ptr %21, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.ImGuiIO, ptr %1147, i32 0, i32 37
  %1149 = getelementptr inbounds [5 x i8], ptr %1148, i64 0, i64 0
  %1150 = load i8, ptr %1149, align 8, !tbaa !43, !range !41, !noundef !42
  %1151 = trunc i8 %1150 to i1
  br i1 %1151, label %1155, label %1152

1152:                                             ; preds = %1146
  %1153 = load ptr, ptr %44, align 8, !tbaa !5
  %1154 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1153, i32 0, i32 12
  store i8 0, ptr %1154, align 1, !tbaa !147
  br label %1155

1155:                                             ; preds = %1152, %1146, %1141
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #14
  %1156 = load ptr, ptr %21, align 8, !tbaa !5
  %1157 = getelementptr inbounds %struct.ImGuiIO, ptr %1156, i32 0, i32 40
  %1158 = load i8, ptr %1157, align 8, !tbaa !117, !range !41, !noundef !42
  %1159 = trunc i8 %1158 to i1
  br i1 %1159, label %1160, label %1165

1160:                                             ; preds = %1155
  %1161 = load ptr, ptr %21, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.ImGuiIO, ptr %1161, i32 0, i32 42
  %1163 = load i8, ptr %1162, align 2, !tbaa !151, !range !41, !noundef !42
  %1164 = trunc i8 %1163 to i1
  br i1 %1164, label %1165, label %1175

1165:                                             ; preds = %1160, %1155
  %1166 = load i8, ptr %72, align 1, !tbaa !43, !range !41, !noundef !42
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1168, label %1173

1168:                                             ; preds = %1165
  %1169 = load ptr, ptr %21, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.ImGuiIO, ptr %1169, i32 0, i32 43
  %1171 = load i8, ptr %1170, align 1, !tbaa !152, !range !41, !noundef !42
  %1172 = trunc i8 %1171 to i1
  br label %1173

1173:                                             ; preds = %1168, %1165
  %1174 = phi i1 [ false, %1165 ], [ %1172, %1168 ]
  br label %1175

1175:                                             ; preds = %1173, %1160
  %1176 = phi i1 [ true, %1160 ], [ %1174, %1173 ]
  %1177 = zext i1 %1176 to i8
  store i8 %1177, ptr %73, align 1, !tbaa !43
  %1178 = load i32, ptr %15, align 4, !tbaa !9
  %1179 = and i32 %1178, 1024
  %1180 = icmp ne i32 %1179, 0
  br i1 %1180, label %1181, label %1209

1181:                                             ; preds = %1175
  %1182 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  br i1 %1182, label %1183, label %1209

1183:                                             ; preds = %1181
  %1184 = load i8, ptr %73, align 1, !tbaa !43, !range !41, !noundef !42
  %1185 = trunc i8 %1184 to i1
  br i1 %1185, label %1209, label %1186

1186:                                             ; preds = %1183
  %1187 = load ptr, ptr %21, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiIO, ptr %1187, i32 0, i32 41
  %1189 = load i8, ptr %1188, align 1, !tbaa !153, !range !41, !noundef !42
  %1190 = trunc i8 %1189 to i1
  br i1 %1190, label %1209, label %1191

1191:                                             ; preds = %1186
  %1192 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1193 = trunc i8 %1192 to i1
  br i1 %1193, label %1209, label %1194

1194:                                             ; preds = %1191
  %1195 = load ptr, ptr %21, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiIO, ptr %1195, i32 0, i32 80
  call void @llvm.lifetime.start.p0(i64 2, ptr %74) #14
  store i16 9, ptr %74, align 2, !tbaa !154
  %1197 = call noundef zeroext i1 @_ZNK8ImVectorItE8containsERKt(ptr noundef nonnull align 8 dereferenceable(16) %1196, ptr noundef nonnull align 2 dereferenceable(2) %74)
  %1198 = xor i1 %1197, true
  call void @llvm.lifetime.end.p0(i64 2, ptr %74) #14
  br i1 %1198, label %1199, label %1208

1199:                                             ; preds = %1194
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #14
  store i32 9, ptr %75, align 4, !tbaa !9
  %1200 = load i32, ptr %15, align 4, !tbaa !9
  %1201 = load ptr, ptr %16, align 8, !tbaa !5
  %1202 = load ptr, ptr %17, align 8, !tbaa !5
  %1203 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %75, i32 noundef %1200, ptr noundef %1201, ptr noundef %1202, i32 noundef 2)
  br i1 %1203, label %1204, label %1207

1204:                                             ; preds = %1199
  %1205 = load ptr, ptr %44, align 8, !tbaa !5
  %1206 = load i32, ptr %75, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1205, i32 noundef %1206)
  br label %1207

1207:                                             ; preds = %1204, %1199
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #14
  br label %1208

1208:                                             ; preds = %1207, %1194
  br label %1209

1209:                                             ; preds = %1208, %1191, %1186, %1183, %1181, %1175
  %1210 = load ptr, ptr %21, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.ImGuiIO, ptr %1210, i32 0, i32 80
  %1212 = getelementptr inbounds %struct.ImVector.5, ptr %1211, i32 0, i32 0
  %1213 = load i32, ptr %1212, align 8, !tbaa !155
  %1214 = icmp sgt i32 %1213, 0
  br i1 %1214, label %1215, label %1267

1215:                                             ; preds = %1209
  %1216 = load i8, ptr %73, align 1, !tbaa !43, !range !41, !noundef !42
  %1217 = trunc i8 %1216 to i1
  br i1 %1217, label %1264, label %1218

1218:                                             ; preds = %1215
  %1219 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1220 = trunc i8 %1219 to i1
  br i1 %1220, label %1264, label %1221

1221:                                             ; preds = %1218
  %1222 = load i8, ptr %48, align 1, !tbaa !43, !range !41, !noundef !42
  %1223 = trunc i8 %1222 to i1
  br i1 %1223, label %1264, label %1224

1224:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #14
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %1225

1225:                                             ; preds = %1260, %1224
  %1226 = load i32, ptr %76, align 4, !tbaa !9
  %1227 = load ptr, ptr %21, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.ImGuiIO, ptr %1227, i32 0, i32 80
  %1229 = getelementptr inbounds %struct.ImVector.5, ptr %1228, i32 0, i32 0
  %1230 = load i32, ptr %1229, align 8, !tbaa !155
  %1231 = icmp slt i32 %1226, %1230
  br i1 %1231, label %1233, label %1232

1232:                                             ; preds = %1225
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #14
  br label %1263

1233:                                             ; preds = %1225
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #14
  %1234 = load ptr, ptr %21, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiIO, ptr %1234, i32 0, i32 80
  %1236 = load i32, ptr %76, align 4, !tbaa !9
  %1237 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1235, i32 noundef %1236)
  %1238 = load i16, ptr %1237, align 2, !tbaa !154
  %1239 = zext i16 %1238 to i32
  store i32 %1239, ptr %77, align 4, !tbaa !9
  %1240 = load i32, ptr %77, align 4, !tbaa !9
  %1241 = icmp eq i32 %1240, 9
  br i1 %1241, label %1242, label %1248

1242:                                             ; preds = %1233
  %1243 = load ptr, ptr %21, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiIO, ptr %1243, i32 0, i32 41
  %1245 = load i8, ptr %1244, align 1, !tbaa !153, !range !41, !noundef !42
  %1246 = trunc i8 %1245 to i1
  br i1 %1246, label %1247, label %1248

1247:                                             ; preds = %1242
  store i32 4, ptr %19, align 4
  br label %1257

1248:                                             ; preds = %1242, %1233
  %1249 = load i32, ptr %15, align 4, !tbaa !9
  %1250 = load ptr, ptr %16, align 8, !tbaa !5
  %1251 = load ptr, ptr %17, align 8, !tbaa !5
  %1252 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %77, i32 noundef %1249, ptr noundef %1250, ptr noundef %1251, i32 noundef 2)
  br i1 %1252, label %1253, label %1256

1253:                                             ; preds = %1248
  %1254 = load ptr, ptr %44, align 8, !tbaa !5
  %1255 = load i32, ptr %77, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1254, i32 noundef %1255)
  br label %1256

1256:                                             ; preds = %1253, %1248
  store i32 0, ptr %19, align 4
  br label %1257

1257:                                             ; preds = %1256, %1247
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #14
  %1258 = load i32, ptr %19, align 4
  switch i32 %1258, label %3268 [
    i32 0, label %1259
    i32 4, label %1260
  ]

1259:                                             ; preds = %1257
  br label %1260

1260:                                             ; preds = %1259, %1257
  %1261 = load i32, ptr %76, align 4, !tbaa !9
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr %76, align 4, !tbaa !9
  br label %1225, !llvm.loop !156

1263:                                             ; preds = %1232
  br label %1264

1264:                                             ; preds = %1263, %1221, %1218, %1215
  %1265 = load ptr, ptr %21, align 8, !tbaa !5
  %1266 = getelementptr inbounds %struct.ImGuiIO, ptr %1265, i32 0, i32 80
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1266, i32 noundef 0)
  br label %1267

1267:                                             ; preds = %1264, %1209
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #14
  br label %1268

1268:                                             ; preds = %1267, %968
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #14
  store i8 0, ptr %78, align 1, !tbaa !43
  %1269 = load ptr, ptr %20, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.ImGuiContext, ptr %1269, i32 0, i32 44
  %1271 = load i32, ptr %1270, align 8, !tbaa !102
  %1272 = load i32, ptr %29, align 4, !tbaa !9
  %1273 = icmp eq i32 %1271, %1272
  br i1 %1273, label %1274, label %1969

1274:                                             ; preds = %1268
  %1275 = load ptr, ptr %20, align 8, !tbaa !5
  %1276 = getelementptr inbounds %struct.ImGuiContext, ptr %1275, i32 0, i32 47
  %1277 = load i8, ptr %1276, align 4, !tbaa !158, !range !41, !noundef !42
  %1278 = trunc i8 %1277 to i1
  br i1 %1278, label %1969, label %1279

1279:                                             ; preds = %1274
  %1280 = load i8, ptr %51, align 1, !tbaa !43, !range !41, !noundef !42
  %1281 = trunc i8 %1280 to i1
  br i1 %1281, label %1969, label %1282

1282:                                             ; preds = %1279
  %1283 = load ptr, ptr %44, align 8, !tbaa !5
  %1284 = icmp ne ptr %1283, null
  br i1 %1284, label %1285, label %1286

1285:                                             ; preds = %1282
  br label %1288

1286:                                             ; preds = %1282
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 4224, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

1287:                                             ; No predecessors!
  br label %1288

1288:                                             ; preds = %1287, %1285
  %1289 = load ptr, ptr %21, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.ImGuiIO, ptr %1289, i32 0, i32 60
  %1291 = load i32, ptr %1290, align 4, !tbaa !159
  %1292 = call noundef i32 @_ZN5ImGui20GetMergedKeyModFlagsEv()
  %1293 = icmp eq i32 %1291, %1292
  br i1 %1293, label %1294, label %1295

1294:                                             ; preds = %1288
  br label %1295

1295:                                             ; preds = %1294, %1288
  %1296 = phi i1 [ false, %1288 ], [ true, %1294 ]
  br i1 %1296, label %1297, label %1298

1297:                                             ; preds = %1295
  br label %1300

1298:                                             ; preds = %1295
  call void @__assert_fail(ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 4225, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

1299:                                             ; No predecessors!
  br label %1300

1300:                                             ; preds = %1299, %1297
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #14
  %1301 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %1302 = load float, ptr %1301, align 4, !tbaa !90
  %1303 = load ptr, ptr %22, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.ImGuiStyle, ptr %1303, i32 0, i32 12
  %1305 = getelementptr inbounds %struct.ImVec2, ptr %1304, i32 0, i32 1
  %1306 = load float, ptr %1305, align 4, !tbaa !91
  %1307 = fsub float %1302, %1306
  %1308 = load ptr, ptr %20, align 8, !tbaa !5
  %1309 = getelementptr inbounds %struct.ImGuiContext, ptr %1308, i32 0, i32 6
  %1310 = load float, ptr %1309, align 8, !tbaa !46
  %1311 = fdiv float %1307, %1310
  %1312 = fptosi float %1311 to i32
  %1313 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1312, i32 noundef 1)
  store i32 %1313, ptr %79, align 4, !tbaa !9
  %1314 = load i32, ptr %79, align 4, !tbaa !9
  %1315 = load ptr, ptr %44, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1315, i32 0, i32 9
  %1317 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1316, i32 0, i32 4
  store i32 %1314, ptr %1317, align 4, !tbaa !160
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #14
  %1318 = load ptr, ptr %21, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.ImGuiIO, ptr %1318, i32 0, i32 41
  %1320 = load i8, ptr %1319, align 1, !tbaa !153, !range !41, !noundef !42
  %1321 = trunc i8 %1320 to i1
  %1322 = zext i1 %1321 to i64
  %1323 = select i1 %1321, i32 4194304, i32 0
  store i32 %1323, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #14
  %1324 = load ptr, ptr %21, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.ImGuiIO, ptr %1324, i32 0, i32 20
  %1326 = load i8, ptr %1325, align 1, !tbaa !146, !range !41, !noundef !42
  %1327 = trunc i8 %1326 to i1
  %1328 = zext i1 %1327 to i8
  store i8 %1328, ptr %81, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #14
  %1329 = load i8, ptr %81, align 1, !tbaa !43, !range !41, !noundef !42
  %1330 = trunc i8 %1329 to i1
  br i1 %1330, label %1331, label %1336

1331:                                             ; preds = %1300
  %1332 = load ptr, ptr %21, align 8, !tbaa !5
  %1333 = getelementptr inbounds %struct.ImGuiIO, ptr %1332, i32 0, i32 60
  %1334 = load i32, ptr %1333, align 4, !tbaa !159
  %1335 = icmp eq i32 %1334, 10
  br label %1336

1336:                                             ; preds = %1331, %1300
  %1337 = phi i1 [ false, %1300 ], [ %1335, %1331 ]
  %1338 = zext i1 %1337 to i8
  store i8 %1338, ptr %82, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #14
  %1339 = load i8, ptr %81, align 1, !tbaa !43, !range !41, !noundef !42
  %1340 = trunc i8 %1339 to i1
  br i1 %1340, label %1341, label %1346

1341:                                             ; preds = %1336
  %1342 = load ptr, ptr %21, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.ImGuiIO, ptr %1342, i32 0, i32 42
  %1344 = load i8, ptr %1343, align 2, !tbaa !151, !range !41, !noundef !42
  %1345 = trunc i8 %1344 to i1
  br label %1351

1346:                                             ; preds = %1336
  %1347 = load ptr, ptr %21, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.ImGuiIO, ptr %1347, i32 0, i32 40
  %1349 = load i8, ptr %1348, align 8, !tbaa !117, !range !41, !noundef !42
  %1350 = trunc i8 %1349 to i1
  br label %1351

1351:                                             ; preds = %1346, %1341
  %1352 = phi i1 [ %1345, %1341 ], [ %1350, %1346 ]
  %1353 = zext i1 %1352 to i8
  store i8 %1353, ptr %83, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #14
  %1354 = load i8, ptr %81, align 1, !tbaa !43, !range !41, !noundef !42
  %1355 = trunc i8 %1354 to i1
  br i1 %1355, label %1356, label %1372

1356:                                             ; preds = %1351
  %1357 = load ptr, ptr %21, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImGuiIO, ptr %1357, i32 0, i32 43
  %1359 = load i8, ptr %1358, align 1, !tbaa !152, !range !41, !noundef !42
  %1360 = trunc i8 %1359 to i1
  br i1 %1360, label %1361, label %1372

1361:                                             ; preds = %1356
  %1362 = load ptr, ptr %21, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiIO, ptr %1362, i32 0, i32 40
  %1364 = load i8, ptr %1363, align 8, !tbaa !117, !range !41, !noundef !42
  %1365 = trunc i8 %1364 to i1
  br i1 %1365, label %1372, label %1366

1366:                                             ; preds = %1361
  %1367 = load ptr, ptr %21, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.ImGuiIO, ptr %1367, i32 0, i32 42
  %1369 = load i8, ptr %1368, align 2, !tbaa !151, !range !41, !noundef !42
  %1370 = trunc i8 %1369 to i1
  %1371 = xor i1 %1370, true
  br label %1372

1372:                                             ; preds = %1366, %1361, %1356, %1351
  %1373 = phi i1 [ false, %1361 ], [ false, %1356 ], [ false, %1351 ], [ %1371, %1366 ]
  %1374 = zext i1 %1373 to i8
  store i8 %1374, ptr %84, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #14
  %1375 = load ptr, ptr %21, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.ImGuiIO, ptr %1375, i32 0, i32 60
  %1377 = load i32, ptr %1376, align 4, !tbaa !159
  %1378 = icmp eq i32 %1377, 1
  %1379 = zext i1 %1378 to i8
  store i8 %1379, ptr %85, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #14
  %1380 = load ptr, ptr %21, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.ImGuiIO, ptr %1380, i32 0, i32 60
  %1382 = load i32, ptr %1381, align 4, !tbaa !159
  %1383 = icmp eq i32 %1382, 2
  %1384 = zext i1 %1383 to i8
  store i8 %1384, ptr %86, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #14
  %1385 = load ptr, ptr %20, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiContext, ptr %1385, i32 0, i32 3
  %1387 = getelementptr inbounds %struct.ImGuiIO, ptr %1386, i32 0, i32 20
  %1388 = load i8, ptr %1387, align 1, !tbaa !161, !range !41, !noundef !42
  %1389 = trunc i8 %1388 to i1
  br i1 %1389, label %1390, label %1395

1390:                                             ; preds = %1372
  %1391 = load ptr, ptr %21, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.ImGuiIO, ptr %1391, i32 0, i32 60
  %1393 = load i32, ptr %1392, align 4, !tbaa !159
  %1394 = icmp eq i32 %1393, 8
  br label %1400

1395:                                             ; preds = %1372
  %1396 = load ptr, ptr %21, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImGuiIO, ptr %1396, i32 0, i32 60
  %1398 = load i32, ptr %1397, align 4, !tbaa !159
  %1399 = icmp eq i32 %1398, 1
  br label %1400

1400:                                             ; preds = %1395, %1390
  %1401 = phi i1 [ %1394, %1390 ], [ %1399, %1395 ]
  %1402 = zext i1 %1401 to i8
  store i8 %1402, ptr %87, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #14
  %1403 = load i8, ptr %87, align 1, !tbaa !43, !range !41, !noundef !42
  %1404 = trunc i8 %1403 to i1
  br i1 %1404, label %1405, label %1407

1405:                                             ; preds = %1400
  %1406 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 19, i1 noundef zeroext true)
  br i1 %1406, label %1412, label %1407

1407:                                             ; preds = %1405, %1400
  %1408 = load i8, ptr %86, align 1, !tbaa !43, !range !41, !noundef !42
  %1409 = trunc i8 %1408 to i1
  br i1 %1409, label %1410, label %1426

1410:                                             ; preds = %1407
  %1411 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  br i1 %1411, label %1412, label %1426

1412:                                             ; preds = %1410, %1405
  %1413 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1414 = trunc i8 %1413 to i1
  br i1 %1414, label %1426, label %1415

1415:                                             ; preds = %1412
  %1416 = load i8, ptr %26, align 1, !tbaa !43, !range !41, !noundef !42
  %1417 = trunc i8 %1416 to i1
  br i1 %1417, label %1426, label %1418

1418:                                             ; preds = %1415
  %1419 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1420 = trunc i8 %1419 to i1
  br i1 %1420, label %1421, label %1424

1421:                                             ; preds = %1418
  %1422 = load ptr, ptr %44, align 8, !tbaa !5
  %1423 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1422)
  br label %1424

1424:                                             ; preds = %1421, %1418
  %1425 = phi i1 [ true, %1418 ], [ %1423, %1421 ]
  br label %1426

1426:                                             ; preds = %1424, %1415, %1412, %1410, %1407
  %1427 = phi i1 [ false, %1415 ], [ false, %1412 ], [ false, %1410 ], [ false, %1407 ], [ %1425, %1424 ]
  %1428 = zext i1 %1427 to i8
  store i8 %1428, ptr %88, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #14
  %1429 = load i8, ptr %87, align 1, !tbaa !43, !range !41, !noundef !42
  %1430 = trunc i8 %1429 to i1
  br i1 %1430, label %1431, label %1433

1431:                                             ; preds = %1426
  %1432 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 17, i1 noundef zeroext true)
  br i1 %1432, label %1438, label %1433

1433:                                             ; preds = %1431, %1426
  %1434 = load i8, ptr %85, align 1, !tbaa !43, !range !41, !noundef !42
  %1435 = trunc i8 %1434 to i1
  br i1 %1435, label %1436, label %1449

1436:                                             ; preds = %1433
  %1437 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  br i1 %1437, label %1438, label %1449

1438:                                             ; preds = %1436, %1431
  %1439 = load i8, ptr %26, align 1, !tbaa !43, !range !41, !noundef !42
  %1440 = trunc i8 %1439 to i1
  br i1 %1440, label %1449, label %1441

1441:                                             ; preds = %1438
  %1442 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1443 = trunc i8 %1442 to i1
  br i1 %1443, label %1444, label %1447

1444:                                             ; preds = %1441
  %1445 = load ptr, ptr %44, align 8, !tbaa !5
  %1446 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1445)
  br label %1447

1447:                                             ; preds = %1444, %1441
  %1448 = phi i1 [ true, %1441 ], [ %1446, %1444 ]
  br label %1449

1449:                                             ; preds = %1447, %1438, %1436, %1433
  %1450 = phi i1 [ false, %1438 ], [ false, %1436 ], [ false, %1433 ], [ %1448, %1447 ]
  %1451 = zext i1 %1450 to i8
  store i8 %1451, ptr %89, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #14
  %1452 = load i8, ptr %87, align 1, !tbaa !43, !range !41, !noundef !42
  %1453 = trunc i8 %1452 to i1
  br i1 %1453, label %1454, label %1456

1454:                                             ; preds = %1449
  %1455 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 18, i1 noundef zeroext true)
  br i1 %1455, label %1461, label %1456

1456:                                             ; preds = %1454, %1449
  %1457 = load i8, ptr %86, align 1, !tbaa !43, !range !41, !noundef !42
  %1458 = trunc i8 %1457 to i1
  br i1 %1458, label %1459, label %1465

1459:                                             ; preds = %1456
  %1460 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  br i1 %1460, label %1461, label %1465

1461:                                             ; preds = %1459, %1454
  %1462 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1463 = trunc i8 %1462 to i1
  %1464 = xor i1 %1463, true
  br label %1465

1465:                                             ; preds = %1461, %1459, %1456
  %1466 = phi i1 [ false, %1459 ], [ false, %1456 ], [ %1464, %1461 ]
  %1467 = zext i1 %1466 to i8
  store i8 %1467, ptr %90, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #14
  %1468 = load i8, ptr %87, align 1, !tbaa !43, !range !41, !noundef !42
  %1469 = trunc i8 %1468 to i1
  br i1 %1469, label %1470, label %1478

1470:                                             ; preds = %1465
  %1471 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  br i1 %1471, label %1472, label %1478

1472:                                             ; preds = %1470
  %1473 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1474 = trunc i8 %1473 to i1
  br i1 %1474, label %1478, label %1475

1475:                                             ; preds = %1472
  %1476 = load i8, ptr %27, align 1, !tbaa !43, !range !41, !noundef !42
  %1477 = trunc i8 %1476 to i1
  br label %1478

1478:                                             ; preds = %1475, %1472, %1470, %1465
  %1479 = phi i1 [ false, %1472 ], [ false, %1470 ], [ false, %1465 ], [ %1477, %1475 ]
  %1480 = zext i1 %1479 to i8
  store i8 %1480, ptr %91, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #14
  %1481 = load i8, ptr %87, align 1, !tbaa !43, !range !41, !noundef !42
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1483, label %1485

1483:                                             ; preds = %1478
  %1484 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 20, i1 noundef zeroext true)
  br i1 %1484, label %1490, label %1485

1485:                                             ; preds = %1483, %1478
  %1486 = load i8, ptr %82, align 1, !tbaa !43, !range !41, !noundef !42
  %1487 = trunc i8 %1486 to i1
  br i1 %1487, label %1488, label %1496

1488:                                             ; preds = %1485
  %1489 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  br i1 %1489, label %1490, label %1496

1490:                                             ; preds = %1488, %1483
  %1491 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1492 = trunc i8 %1491 to i1
  br i1 %1492, label %1496, label %1493

1493:                                             ; preds = %1490
  %1494 = load i8, ptr %27, align 1, !tbaa !43, !range !41, !noundef !42
  %1495 = trunc i8 %1494 to i1
  br label %1496

1496:                                             ; preds = %1493, %1490, %1488, %1485
  %1497 = phi i1 [ false, %1490 ], [ false, %1488 ], [ false, %1485 ], [ %1495, %1493 ]
  %1498 = zext i1 %1497 to i8
  store i8 %1498, ptr %92, align 1, !tbaa !43
  %1499 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 1, i1 noundef zeroext true)
  br i1 %1499, label %1500, label %1514

1500:                                             ; preds = %1496
  %1501 = load ptr, ptr %44, align 8, !tbaa !5
  %1502 = load i8, ptr %84, align 1, !tbaa !43, !range !41, !noundef !42
  %1503 = trunc i8 %1502 to i1
  br i1 %1503, label %1504, label %1505

1504:                                             ; preds = %1500
  br label %1510

1505:                                             ; preds = %1500
  %1506 = load i8, ptr %83, align 1, !tbaa !43, !range !41, !noundef !42
  %1507 = trunc i8 %1506 to i1
  %1508 = zext i1 %1507 to i64
  %1509 = select i1 %1507, i32 2097164, i32 2097152
  br label %1510

1510:                                             ; preds = %1505, %1504
  %1511 = phi i32 [ 2097156, %1504 ], [ %1509, %1505 ]
  %1512 = load i32, ptr %80, align 4, !tbaa !9
  %1513 = or i32 %1511, %1512
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1501, i32 noundef %1513)
  br label %1954

1514:                                             ; preds = %1496
  %1515 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 2, i1 noundef zeroext true)
  br i1 %1515, label %1516, label %1530

1516:                                             ; preds = %1514
  %1517 = load ptr, ptr %44, align 8, !tbaa !5
  %1518 = load i8, ptr %84, align 1, !tbaa !43, !range !41, !noundef !42
  %1519 = trunc i8 %1518 to i1
  br i1 %1519, label %1520, label %1521

1520:                                             ; preds = %1516
  br label %1526

1521:                                             ; preds = %1516
  %1522 = load i8, ptr %83, align 1, !tbaa !43, !range !41, !noundef !42
  %1523 = trunc i8 %1522 to i1
  %1524 = zext i1 %1523 to i64
  %1525 = select i1 %1523, i32 2097165, i32 2097153
  br label %1526

1526:                                             ; preds = %1521, %1520
  %1527 = phi i32 [ 2097157, %1520 ], [ %1525, %1521 ]
  %1528 = load i32, ptr %80, align 4, !tbaa !9
  %1529 = or i32 %1527, %1528
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1517, i32 noundef %1529)
  br label %1953

1530:                                             ; preds = %1514
  %1531 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  br i1 %1531, label %1532, label %1560

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

1535:                                             ; preds = %1532
  %1536 = load ptr, ptr %21, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.ImGuiIO, ptr %1536, i32 0, i32 40
  %1538 = load i8, ptr %1537, align 8, !tbaa !117, !range !41, !noundef !42
  %1539 = trunc i8 %1538 to i1
  br i1 %1539, label %1540, label %1551

1540:                                             ; preds = %1535
  %1541 = load ptr, ptr %38, align 8, !tbaa !5
  %1542 = load ptr, ptr %38, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.ImGuiWindow, ptr %1542, i32 0, i32 15
  %1544 = getelementptr inbounds %struct.ImVec2, ptr %1543, i32 0, i32 1
  %1545 = load float, ptr %1544, align 4, !tbaa !107
  %1546 = load ptr, ptr %20, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.ImGuiContext, ptr %1546, i32 0, i32 6
  %1548 = load float, ptr %1547, align 8, !tbaa !46
  %1549 = fsub float %1545, %1548
  %1550 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1549, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1541, float noundef %1550)
  br label %1559

1551:                                             ; preds = %1535
  %1552 = load ptr, ptr %44, align 8, !tbaa !5
  %1553 = load i8, ptr %84, align 1, !tbaa !43, !range !41, !noundef !42
  %1554 = trunc i8 %1553 to i1
  %1555 = zext i1 %1554 to i64
  %1556 = select i1 %1554, i32 2097158, i32 2097154
  %1557 = load i32, ptr %80, align 4, !tbaa !9
  %1558 = or i32 %1556, %1557
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1552, i32 noundef %1558)
  br label %1559

1559:                                             ; preds = %1551, %1540
  br label %1952

1560:                                             ; preds = %1532, %1530
  %1561 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  br i1 %1561, label %1562, label %1591

1562:                                             ; preds = %1560
  %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 %1591

1565:                                             ; preds = %1562
  %1566 = load ptr, ptr %21, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.ImGuiIO, ptr %1566, i32 0, i32 40
  %1568 = load i8, ptr %1567, align 8, !tbaa !117, !range !41, !noundef !42
  %1569 = trunc i8 %1568 to i1
  br i1 %1569, label %1570, label %1582

1570:                                             ; preds = %1565
  %1571 = load ptr, ptr %38, align 8, !tbaa !5
  %1572 = load ptr, ptr %38, align 8, !tbaa !5
  %1573 = getelementptr inbounds %struct.ImGuiWindow, ptr %1572, i32 0, i32 15
  %1574 = getelementptr inbounds %struct.ImVec2, ptr %1573, i32 0, i32 1
  %1575 = load float, ptr %1574, align 4, !tbaa !107
  %1576 = load ptr, ptr %20, align 8, !tbaa !5
  %1577 = getelementptr inbounds %struct.ImGuiContext, ptr %1576, i32 0, i32 6
  %1578 = load float, ptr %1577, align 8, !tbaa !46
  %1579 = fadd float %1575, %1578
  %1580 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1581 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1579, float noundef %1580)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1571, float noundef %1581)
  br label %1590

1582:                                             ; preds = %1565
  %1583 = load ptr, ptr %44, align 8, !tbaa !5
  %1584 = load i8, ptr %84, align 1, !tbaa !43, !range !41, !noundef !42
  %1585 = trunc i8 %1584 to i1
  %1586 = zext i1 %1585 to i64
  %1587 = select i1 %1585, i32 2097159, i32 2097155
  %1588 = load i32, ptr %80, align 4, !tbaa !9
  %1589 = or i32 %1587, %1588
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1583, i32 noundef %1589)
  br label %1590

1590:                                             ; preds = %1582, %1570
  br label %1951

1591:                                             ; preds = %1562, %1560
  %1592 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 5, i1 noundef zeroext true)
  br i1 %1592, label %1593, label %1608

1593:                                             ; preds = %1591
  %1594 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1595 = trunc i8 %1594 to i1
  br i1 %1595, label %1596, label %1608

1596:                                             ; preds = %1593
  %1597 = load ptr, ptr %44, align 8, !tbaa !5
  %1598 = load i32, ptr %80, align 4, !tbaa !9
  %1599 = or i32 2097166, %1598
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1597, i32 noundef %1599)
  %1600 = load i32, ptr %79, align 4, !tbaa !9
  %1601 = sitofp i32 %1600 to float
  %1602 = load ptr, ptr %20, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.ImGuiContext, ptr %1602, i32 0, i32 6
  %1604 = load float, ptr %1603, align 8, !tbaa !46
  %1605 = load float, ptr %53, align 4, !tbaa !45
  %1606 = fneg float %1601
  %1607 = call float @llvm.fmuladd.f32(float %1606, float %1604, float %1605)
  store float %1607, ptr %53, align 4, !tbaa !45
  br label %1950

1608:                                             ; preds = %1593, %1591
  %1609 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 6, i1 noundef zeroext true)
  br i1 %1609, label %1610, label %1624

1610:                                             ; preds = %1608
  %1611 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1612 = trunc i8 %1611 to i1
  br i1 %1612, label %1613, label %1624

1613:                                             ; preds = %1610
  %1614 = load ptr, ptr %44, align 8, !tbaa !5
  %1615 = load i32, ptr %80, align 4, !tbaa !9
  %1616 = or i32 2097167, %1615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1614, i32 noundef %1616)
  %1617 = load i32, ptr %79, align 4, !tbaa !9
  %1618 = sitofp i32 %1617 to float
  %1619 = load ptr, ptr %20, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.ImGuiContext, ptr %1619, i32 0, i32 6
  %1621 = load float, ptr %1620, align 8, !tbaa !46
  %1622 = load float, ptr %53, align 4, !tbaa !45
  %1623 = call float @llvm.fmuladd.f32(float %1618, float %1621, float %1622)
  store float %1623, ptr %53, align 4, !tbaa !45
  br label %1949

1624:                                             ; preds = %1610, %1608
  %1625 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 7, i1 noundef zeroext true)
  br i1 %1625, label %1626, label %1640

1626:                                             ; preds = %1624
  %1627 = load ptr, ptr %44, align 8, !tbaa !5
  %1628 = load ptr, ptr %21, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.ImGuiIO, ptr %1628, i32 0, i32 40
  %1630 = load i8, ptr %1629, align 8, !tbaa !117, !range !41, !noundef !42
  %1631 = trunc i8 %1630 to i1
  br i1 %1631, label %1632, label %1635

1632:                                             ; preds = %1626
  %1633 = load i32, ptr %80, align 4, !tbaa !9
  %1634 = or i32 2097158, %1633
  br label %1638

1635:                                             ; preds = %1626
  %1636 = load i32, ptr %80, align 4, !tbaa !9
  %1637 = or i32 2097156, %1636
  br label %1638

1638:                                             ; preds = %1635, %1632
  %1639 = phi i32 [ %1634, %1632 ], [ %1637, %1635 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1627, i32 noundef %1639)
  br label %1948

1640:                                             ; preds = %1624
  %1641 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 8, i1 noundef zeroext true)
  br i1 %1641, label %1642, label %1656

1642:                                             ; preds = %1640
  %1643 = load ptr, ptr %44, align 8, !tbaa !5
  %1644 = load ptr, ptr %21, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.ImGuiIO, ptr %1644, i32 0, i32 40
  %1646 = load i8, ptr %1645, align 8, !tbaa !117, !range !41, !noundef !42
  %1647 = trunc i8 %1646 to i1
  br i1 %1647, label %1648, label %1651

1648:                                             ; preds = %1642
  %1649 = load i32, ptr %80, align 4, !tbaa !9
  %1650 = or i32 2097159, %1649
  br label %1654

1651:                                             ; preds = %1642
  %1652 = load i32, ptr %80, align 4, !tbaa !9
  %1653 = or i32 2097157, %1652
  br label %1654

1654:                                             ; preds = %1651, %1648
  %1655 = phi i32 [ %1650, %1648 ], [ %1653, %1651 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1643, i32 noundef %1655)
  br label %1947

1656:                                             ; preds = %1640
  %1657 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  br i1 %1657, label %1658, label %1665

1658:                                             ; preds = %1656
  %1659 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1660 = trunc i8 %1659 to i1
  br i1 %1660, label %1665, label %1661

1661:                                             ; preds = %1658
  %1662 = load ptr, ptr %44, align 8, !tbaa !5
  %1663 = load i32, ptr %80, align 4, !tbaa !9
  %1664 = or i32 2097160, %1663
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1662, i32 noundef %1664)
  br label %1946

1665:                                             ; preds = %1658, %1656
  %1666 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 11, i1 noundef zeroext true)
  br i1 %1666, label %1667, label %1704

1667:                                             ; preds = %1665
  %1668 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1669 = trunc i8 %1668 to i1
  br i1 %1669, label %1704, label %1670

1670:                                             ; preds = %1667
  %1671 = load ptr, ptr %44, align 8, !tbaa !5
  %1672 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1671)
  br i1 %1672, label %1700, label %1673

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

1676:                                             ; preds = %1673
  %1677 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1677, i32 noundef 6291468)
  br label %1699

1678:                                             ; preds = %1673
  %1679 = load i8, ptr %81, align 1, !tbaa !43, !range !41, !noundef !42
  %1680 = trunc i8 %1679 to i1
  br i1 %1680, label %1681, label %1698

1681:                                             ; preds = %1678
  %1682 = load ptr, ptr %21, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.ImGuiIO, ptr %1682, i32 0, i32 43
  %1684 = load i8, ptr %1683, align 1, !tbaa !152, !range !41, !noundef !42
  %1685 = trunc i8 %1684 to i1
  br i1 %1685, label %1686, label %1698

1686:                                             ; preds = %1681
  %1687 = load ptr, ptr %21, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.ImGuiIO, ptr %1687, i32 0, i32 42
  %1689 = load i8, ptr %1688, align 2, !tbaa !151, !range !41, !noundef !42
  %1690 = trunc i8 %1689 to i1
  br i1 %1690, label %1698, label %1691

1691:                                             ; preds = %1686
  %1692 = load ptr, ptr %21, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.ImGuiIO, ptr %1692, i32 0, i32 40
  %1694 = load i8, ptr %1693, align 8, !tbaa !117, !range !41, !noundef !42
  %1695 = trunc i8 %1694 to i1
  br i1 %1695, label %1698, label %1696

1696:                                             ; preds = %1691
  %1697 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1697, i32 noundef 6291460)
  br label %1698

1698:                                             ; preds = %1696, %1691, %1686, %1681, %1678
  br label %1699

1699:                                             ; preds = %1698, %1676
  br label %1700

1700:                                             ; preds = %1699, %1670
  %1701 = load ptr, ptr %44, align 8, !tbaa !5
  %1702 = load i32, ptr %80, align 4, !tbaa !9
  %1703 = or i32 2097161, %1702
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1701, i32 noundef %1703)
  br label %1945

1704:                                             ; preds = %1667, %1665
  %1705 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 13, i1 noundef zeroext true)
  br i1 %1705, label %1708, label %1706

1706:                                             ; preds = %1704
  %1707 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 15, i1 noundef zeroext true)
  br i1 %1707, label %1708, label %1746

1708:                                             ; preds = %1706, %1704
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #14
  %1709 = load i32, ptr %15, align 4, !tbaa !9
  %1710 = and i32 %1709, 2048
  %1711 = icmp ne i32 %1710, 0
  %1712 = zext i1 %1711 to i8
  store i8 %1712, ptr %93, align 1, !tbaa !43
  %1713 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1714 = trunc i8 %1713 to i1
  br i1 %1714, label %1715, label %1731

1715:                                             ; preds = %1708
  %1716 = load i8, ptr %93, align 1, !tbaa !43, !range !41, !noundef !42
  %1717 = trunc i8 %1716 to i1
  br i1 %1717, label %1718, label %1723

1718:                                             ; preds = %1715
  %1719 = load ptr, ptr %21, align 8, !tbaa !5
  %1720 = getelementptr inbounds %struct.ImGuiIO, ptr %1719, i32 0, i32 40
  %1721 = load i8, ptr %1720, align 8, !tbaa !117, !range !41, !noundef !42
  %1722 = trunc i8 %1721 to i1
  br i1 %1722, label %1723, label %1731

1723:                                             ; preds = %1718, %1715
  %1724 = load i8, ptr %93, align 1, !tbaa !43, !range !41, !noundef !42
  %1725 = trunc i8 %1724 to i1
  br i1 %1725, label %1732, label %1726

1726:                                             ; preds = %1723
  %1727 = load ptr, ptr %21, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.ImGuiIO, ptr %1727, i32 0, i32 40
  %1729 = load i8, ptr %1728, align 8, !tbaa !117, !range !41, !noundef !42
  %1730 = trunc i8 %1729 to i1
  br i1 %1730, label %1731, label %1732

1731:                                             ; preds = %1726, %1718, %1708
  store i8 1, ptr %51, align 1, !tbaa !43
  store i8 1, ptr %63, align 1, !tbaa !43
  br label %1745

1732:                                             ; preds = %1726, %1723
  %1733 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1734 = trunc i8 %1733 to i1
  br i1 %1734, label %1744, label %1735

1735:                                             ; preds = %1732
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #14
  store i32 10, ptr %94, align 4, !tbaa !9
  %1736 = load i32, ptr %15, align 4, !tbaa !9
  %1737 = load ptr, ptr %16, align 8, !tbaa !5
  %1738 = load ptr, ptr %17, align 8, !tbaa !5
  %1739 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %94, i32 noundef %1736, ptr noundef %1737, ptr noundef %1738, i32 noundef 2)
  br i1 %1739, label %1740, label %1743

1740:                                             ; preds = %1735
  %1741 = load ptr, ptr %44, align 8, !tbaa !5
  %1742 = load i32, ptr %94, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1741, i32 noundef %1742)
  br label %1743

1743:                                             ; preds = %1740, %1735
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #14
  br label %1744

1744:                                             ; preds = %1743, %1732
  br label %1745

1745:                                             ; preds = %1744, %1731
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #14
  br label %1944

1746:                                             ; preds = %1706
  %1747 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 14, i1 noundef zeroext true)
  br i1 %1747, label %1748, label %1749

1748:                                             ; preds = %1746
  store i8 1, ptr %78, align 1, !tbaa !43
  store i8 1, ptr %51, align 1, !tbaa !43
  br label %1943

1749:                                             ; preds = %1746
  %1750 = load i8, ptr %91, align 1, !tbaa !43, !range !41, !noundef !42
  %1751 = trunc i8 %1750 to i1
  br i1 %1751, label %1755, label %1752

1752:                                             ; preds = %1749
  %1753 = load i8, ptr %92, align 1, !tbaa !43, !range !41, !noundef !42
  %1754 = trunc i8 %1753 to i1
  br i1 %1754, label %1755, label %1762

1755:                                             ; preds = %1752, %1749
  %1756 = load ptr, ptr %44, align 8, !tbaa !5
  %1757 = load i8, ptr %91, align 1, !tbaa !43, !range !41, !noundef !42
  %1758 = trunc i8 %1757 to i1
  %1759 = zext i1 %1758 to i64
  %1760 = select i1 %1758, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1756, i32 noundef %1760)
  %1761 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1761)
  br label %1942

1762:                                             ; preds = %1752
  %1763 = load i8, ptr %87, align 1, !tbaa !43, !range !41, !noundef !42
  %1764 = trunc i8 %1763 to i1
  br i1 %1764, label %1765, label %1771

1765:                                             ; preds = %1762
  %1766 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 16, i1 noundef zeroext true)
  br i1 %1766, label %1767, label %1771

1767:                                             ; preds = %1765
  %1768 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1768)
  %1769 = load ptr, ptr %44, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1769, i32 0, i32 11
  store i8 1, ptr %1770, align 4, !tbaa !150
  br label %1941

1771:                                             ; preds = %1765, %1762
  %1772 = load i8, ptr %88, align 1, !tbaa !43, !range !41, !noundef !42
  %1773 = trunc i8 %1772 to i1
  br i1 %1773, label %1777, label %1774

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

1777:                                             ; preds = %1774, %1771
  %1778 = load ptr, ptr %21, align 8, !tbaa !5
  %1779 = getelementptr inbounds %struct.ImGuiIO, ptr %1778, i32 0, i32 32
  %1780 = load ptr, ptr %1779, align 8, !tbaa !162
  %1781 = icmp ne ptr %1780, null
  br i1 %1781, label %1782, label %1855

1782:                                             ; preds = %1777
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #14
  %1783 = load ptr, ptr %44, align 8, !tbaa !5
  %1784 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1783)
  br i1 %1784, label %1785, label %1795

1785:                                             ; preds = %1782
  %1786 = load ptr, ptr %44, align 8, !tbaa !5
  %1787 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1786, i32 0, i32 9
  %1788 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1787, i32 0, i32 1
  %1789 = load i32, ptr %1788, align 4, !tbaa !163
  %1790 = load ptr, ptr %44, align 8, !tbaa !5
  %1791 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1790, i32 0, i32 9
  %1792 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1791, i32 0, i32 2
  %1793 = load i32, ptr %1792, align 4, !tbaa !164
  %1794 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1789, i32 noundef %1793)
  br label %1796

1795:                                             ; preds = %1782
  br label %1796

1796:                                             ; preds = %1795, %1785
  %1797 = phi i32 [ %1794, %1785 ], [ 0, %1795 ]
  store i32 %1797, ptr %95, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #14
  %1798 = load ptr, ptr %44, align 8, !tbaa !5
  %1799 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1798)
  br i1 %1799, label %1800, label %1810

1800:                                             ; preds = %1796
  %1801 = load ptr, ptr %44, align 8, !tbaa !5
  %1802 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1801, i32 0, i32 9
  %1803 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1802, i32 0, i32 1
  %1804 = load i32, ptr %1803, align 4, !tbaa !163
  %1805 = load ptr, ptr %44, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1805, i32 0, i32 9
  %1807 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1806, i32 0, i32 2
  %1808 = load i32, ptr %1807, align 4, !tbaa !164
  %1809 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1804, i32 noundef %1808)
  br label %1814

1810:                                             ; preds = %1796
  %1811 = load ptr, ptr %44, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1811, i32 0, i32 1
  %1813 = load i32, ptr %1812, align 4, !tbaa !112
  br label %1814

1814:                                             ; preds = %1810, %1800
  %1815 = phi i32 [ %1809, %1800 ], [ %1813, %1810 ]
  store i32 %1815, ptr %96, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #14
  %1816 = load ptr, ptr %44, align 8, !tbaa !5
  %1817 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1816, i32 0, i32 3
  %1818 = getelementptr inbounds %struct.ImVector.5, ptr %1817, i32 0, i32 2
  %1819 = load ptr, ptr %1818, align 8, !tbaa !111
  %1820 = load i32, ptr %95, align 4, !tbaa !9
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds i16, ptr %1819, i64 %1821
  %1823 = load ptr, ptr %44, align 8, !tbaa !5
  %1824 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1823, i32 0, i32 3
  %1825 = getelementptr inbounds %struct.ImVector.5, ptr %1824, i32 0, i32 2
  %1826 = load ptr, ptr %1825, align 8, !tbaa !111
  %1827 = load i32, ptr %96, align 4, !tbaa !9
  %1828 = sext i32 %1827 to i64
  %1829 = getelementptr inbounds i16, ptr %1826, i64 %1828
  %1830 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %1822, ptr noundef %1829)
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, ptr %97, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #14
  %1832 = load i32, ptr %97, align 4, !tbaa !9
  %1833 = sext i32 %1832 to i64
  %1834 = mul i64 %1833, 1
  %1835 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %1834)
  store ptr %1835, ptr %98, align 8, !tbaa !5
  %1836 = load ptr, ptr %98, align 8, !tbaa !5
  %1837 = load i32, ptr %97, align 4, !tbaa !9
  %1838 = load ptr, ptr %44, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1838, i32 0, i32 3
  %1840 = getelementptr inbounds %struct.ImVector.5, ptr %1839, i32 0, i32 2
  %1841 = load ptr, ptr %1840, align 8, !tbaa !111
  %1842 = load i32, ptr %95, align 4, !tbaa !9
  %1843 = sext i32 %1842 to i64
  %1844 = getelementptr inbounds i16, ptr %1841, i64 %1843
  %1845 = load ptr, ptr %44, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1845, i32 0, i32 3
  %1847 = getelementptr inbounds %struct.ImVector.5, ptr %1846, i32 0, i32 2
  %1848 = load ptr, ptr %1847, align 8, !tbaa !111
  %1849 = load i32, ptr %96, align 4, !tbaa !9
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds i16, ptr %1848, i64 %1850
  %1852 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %1836, i32 noundef %1837, ptr noundef %1844, ptr noundef %1851)
  %1853 = load ptr, ptr %98, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %1853)
  %1854 = load ptr, ptr %98, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %1854)
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #14
  br label %1855

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

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

1861:                                             ; preds = %1858
  %1862 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1862)
  br label %1863

1863:                                             ; preds = %1861, %1858
  %1864 = load ptr, ptr %44, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1864, i32 0, i32 11
  store i8 1, ptr %1865, align 4, !tbaa !150
  %1866 = load ptr, ptr %44, align 8, !tbaa !5
  %1867 = load ptr, ptr %44, align 8, !tbaa !5
  %1868 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1867, i32 0, i32 9
  %1869 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %1866, ptr noundef %1868)
  br label %1870

1870:                                             ; preds = %1863, %1855
  br label %1940

1871:                                             ; preds = %1774
  %1872 = load i8, ptr %90, align 1, !tbaa !43, !range !41, !noundef !42
  %1873 = trunc i8 %1872 to i1
  br i1 %1873, label %1874, label %1939

1874:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #14
  %1875 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %1875, ptr %99, align 8, !tbaa !5
  %1876 = load ptr, ptr %99, align 8, !tbaa !5
  %1877 = icmp ne ptr %1876, null
  br i1 %1877, label %1878, label %1938

1878:                                             ; preds = %1874
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #14
  %1879 = load ptr, ptr %99, align 8, !tbaa !5
  %1880 = call i64 @strlen(ptr noundef %1879) #16
  %1881 = trunc i64 %1880 to i32
  store i32 %1881, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #14
  %1882 = load i32, ptr %100, align 4, !tbaa !9
  %1883 = add nsw i32 %1882, 1
  %1884 = sext i32 %1883 to i64
  %1885 = mul i64 %1884, 2
  %1886 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %1885)
  store ptr %1886, ptr %101, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #14
  store i32 0, ptr %102, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #14
  %1887 = load ptr, ptr %99, align 8, !tbaa !5
  store ptr %1887, ptr %103, align 8, !tbaa !5
  br label %1888

1888:                                             ; preds = %1918, %1916, %1878
  %1889 = load ptr, ptr %103, align 8, !tbaa !5
  %1890 = load i8, ptr %1889, align 1, !tbaa !123
  %1891 = icmp ne i8 %1890, 0
  br i1 %1891, label %1893, label %1892

1892:                                             ; preds = %1888
  store i32 5, ptr %19, align 4
  br label %1919

1893:                                             ; preds = %1888
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #14
  %1894 = load ptr, ptr %103, align 8, !tbaa !5
  %1895 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %104, ptr noundef %1894, ptr noundef null)
  %1896 = load ptr, ptr %103, align 8, !tbaa !5
  %1897 = sext i32 %1895 to i64
  %1898 = getelementptr inbounds i8, ptr %1896, i64 %1897
  store ptr %1898, ptr %103, align 8, !tbaa !5
  %1899 = load i32, ptr %104, align 4, !tbaa !9
  %1900 = icmp eq i32 %1899, 0
  br i1 %1900, label %1901, label %1902

1901:                                             ; preds = %1893
  store i32 5, ptr %19, align 4
  br label %1916

1902:                                             ; preds = %1893
  %1903 = load i32, ptr %15, align 4, !tbaa !9
  %1904 = load ptr, ptr %16, align 8, !tbaa !5
  %1905 = load ptr, ptr %17, align 8, !tbaa !5
  %1906 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %104, i32 noundef %1903, ptr noundef %1904, ptr noundef %1905, i32 noundef 5)
  br i1 %1906, label %1908, label %1907

1907:                                             ; preds = %1902
  store i32 6, ptr %19, align 4
  br label %1916, !llvm.loop !165

1908:                                             ; preds = %1902
  %1909 = load i32, ptr %104, align 4, !tbaa !9
  %1910 = trunc i32 %1909 to i16
  %1911 = load ptr, ptr %101, align 8, !tbaa !5
  %1912 = load i32, ptr %102, align 4, !tbaa !9
  %1913 = add nsw i32 %1912, 1
  store i32 %1913, ptr %102, align 4, !tbaa !9
  %1914 = sext i32 %1912 to i64
  %1915 = getelementptr inbounds i16, ptr %1911, i64 %1914
  store i16 %1910, ptr %1915, align 2, !tbaa !154
  store i32 0, ptr %19, align 4
  br label %1916

1916:                                             ; preds = %1908, %1907, %1901
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #14
  %1917 = load i32, ptr %19, align 4
  switch i32 %1917, label %1919 [
    i32 0, label %1918
    i32 6, label %1888
  ]

1918:                                             ; preds = %1916
  br label %1888, !llvm.loop !165

1919:                                             ; preds = %1916, %1892
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #14
  br label %1920

1920:                                             ; preds = %1919
  %1921 = load ptr, ptr %101, align 8, !tbaa !5
  %1922 = load i32, ptr %102, align 4, !tbaa !9
  %1923 = sext i32 %1922 to i64
  %1924 = getelementptr inbounds i16, ptr %1921, i64 %1923
  store i16 0, ptr %1924, align 2, !tbaa !154
  %1925 = load i32, ptr %102, align 4, !tbaa !9
  %1926 = icmp sgt i32 %1925, 0
  br i1 %1926, label %1927, label %1936

1927:                                             ; preds = %1920
  %1928 = load ptr, ptr %44, align 8, !tbaa !5
  %1929 = load ptr, ptr %44, align 8, !tbaa !5
  %1930 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1929, i32 0, i32 9
  %1931 = load ptr, ptr %101, align 8, !tbaa !5
  %1932 = load i32, ptr %102, align 4, !tbaa !9
  %1933 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %1928, ptr noundef %1930, ptr noundef %1931, i32 noundef %1932)
  %1934 = load ptr, ptr %44, align 8, !tbaa !5
  %1935 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1934, i32 0, i32 11
  store i8 1, ptr %1935, align 4, !tbaa !150
  br label %1936

1936:                                             ; preds = %1927, %1920
  %1937 = load ptr, ptr %101, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %1937)
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #14
  br label %1938

1938:                                             ; preds = %1936, %1874
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #14
  br label %1939

1939:                                             ; preds = %1938, %1871
  br label %1940

1940:                                             ; preds = %1939, %1870
  br label %1941

1941:                                             ; preds = %1940, %1767
  br label %1942

1942:                                             ; preds = %1941, %1755
  br label %1943

1943:                                             ; preds = %1942, %1748
  br label %1944

1944:                                             ; preds = %1943, %1745
  br label %1945

1945:                                             ; preds = %1944, %1700
  br label %1946

1946:                                             ; preds = %1945, %1661
  br label %1947

1947:                                             ; preds = %1946, %1654
  br label %1948

1948:                                             ; preds = %1947, %1638
  br label %1949

1949:                                             ; preds = %1948, %1613
  br label %1950

1950:                                             ; preds = %1949, %1596
  br label %1951

1951:                                             ; preds = %1950, %1590
  br label %1952

1952:                                             ; preds = %1951, %1559
  br label %1953

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

1954:                                             ; preds = %1953, %1510
  %1955 = load ptr, ptr %44, align 8, !tbaa !5
  %1956 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1955)
  br i1 %1956, label %1957, label %1960

1957:                                             ; preds = %1954
  %1958 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %1959 = trunc i8 %1958 to i1
  br label %1960

1960:                                             ; preds = %1957, %1954
  %1961 = phi i1 [ false, %1954 ], [ %1959, %1957 ]
  %1962 = zext i1 %1961 to i32
  %1963 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %1964 = trunc i8 %1963 to i1
  %1965 = zext i1 %1964 to i32
  %1966 = or i32 %1965, %1962
  %1967 = icmp ne i32 %1966, 0
  %1968 = zext i1 %1967 to i8
  store i8 %1968, ptr %61, align 1, !tbaa !43
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #14
  br label %1969

1969:                                             ; preds = %1960, %1279, %1274, %1268
  %1970 = load ptr, ptr %20, align 8, !tbaa !5
  %1971 = getelementptr inbounds %struct.ImGuiContext, ptr %1970, i32 0, i32 44
  %1972 = load i32, ptr %1971, align 8, !tbaa !102
  %1973 = load i32, ptr %29, align 4, !tbaa !9
  %1974 = icmp eq i32 %1972, %1973
  br i1 %1974, label %1975, label %2463

1975:                                             ; preds = %1969
  %1976 = load ptr, ptr %44, align 8, !tbaa !5
  %1977 = icmp ne ptr %1976, null
  br i1 %1977, label %1978, label %1979

1978:                                             ; preds = %1975
  br label %1981

1979:                                             ; preds = %1975
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 4349, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

1980:                                             ; No predecessors!
  br label %1981

1981:                                             ; preds = %1980, %1978
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #14
  store ptr null, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #14
  store i32 0, ptr %106, align 4, !tbaa !9
  %1982 = load i8, ptr %78, align 1, !tbaa !43, !range !41, !noundef !42
  %1983 = trunc i8 %1982 to i1
  br i1 %1983, label %1984, label %2049

1984:                                             ; preds = %1981
  %1985 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %1986 = trunc i8 %1985 to i1
  br i1 %1986, label %2048, label %1987

1987:                                             ; preds = %1984
  %1988 = load ptr, ptr %12, align 8, !tbaa !5
  %1989 = load ptr, ptr %44, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1989, i32 0, i32 5
  %1991 = getelementptr inbounds %struct.ImVector.26, ptr %1990, i32 0, i32 2
  %1992 = load ptr, ptr %1991, align 8, !tbaa !109
  %1993 = call i32 @strcmp(ptr noundef %1988, ptr noundef %1992) #16
  %1994 = icmp ne i32 %1993, 0
  br i1 %1994, label %1995, label %2048

1995:                                             ; preds = %1987
  %1996 = load ptr, ptr %44, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1996, i32 0, i32 5
  %1998 = getelementptr inbounds %struct.ImVector.26, ptr %1997, i32 0, i32 2
  %1999 = load ptr, ptr %1998, align 8, !tbaa !109
  store ptr %1999, ptr %105, align 8, !tbaa !5
  %2000 = load ptr, ptr %44, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2000, i32 0, i32 5
  %2002 = getelementptr inbounds %struct.ImVector.26, ptr %2001, i32 0, i32 0
  %2003 = load i32, ptr %2002, align 8, !tbaa !166
  %2004 = sub nsw i32 %2003, 1
  store i32 %2004, ptr %106, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107)
  %2005 = load i32, ptr %106, align 4, !tbaa !9
  %2006 = icmp sgt i32 %2005, 0
  br i1 %2006, label %2007, label %2032

2007:                                             ; preds = %1995
  %2008 = load ptr, ptr %105, align 8, !tbaa !5
  %2009 = load ptr, ptr %105, align 8, !tbaa !5
  %2010 = load i32, ptr %106, align 4, !tbaa !9
  %2011 = sext i32 %2010 to i64
  %2012 = getelementptr inbounds i8, ptr %2009, i64 %2011
  %2013 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2008, ptr noundef %2012)
          to label %2014 unwind label %2028

2014:                                             ; preds = %2007
  %2015 = add nsw i32 %2013, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %107, i32 noundef %2015)
          to label %2016 unwind label %2028

2016:                                             ; preds = %2014
  %2017 = getelementptr inbounds %struct.ImVector.5, ptr %107, i32 0, i32 2
  %2018 = load ptr, ptr %2017, align 8, !tbaa !167
  %2019 = getelementptr inbounds %struct.ImVector.5, ptr %107, i32 0, i32 0
  %2020 = load i32, ptr %2019, align 8, !tbaa !168
  %2021 = load ptr, ptr %105, align 8, !tbaa !5
  %2022 = load ptr, ptr %105, align 8, !tbaa !5
  %2023 = load i32, ptr %106, align 4, !tbaa !9
  %2024 = sext i32 %2023 to i64
  %2025 = getelementptr inbounds i8, ptr %2022, i64 %2024
  %2026 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2018, i32 noundef %2020, ptr noundef %2021, ptr noundef %2025, ptr noundef null)
          to label %2027 unwind label %2028

2027:                                             ; preds = %2016
  br label %2032

2028:                                             ; preds = %2045, %2016, %2014, %2007
  %2029 = landingpad { ptr, i32 }
          cleanup
  %2030 = extractvalue { ptr, i32 } %2029, 0
  store ptr %2030, ptr %108, align 8
  %2031 = extractvalue { ptr, i32 } %2029, 1
  store i32 %2031, ptr %109, align 4
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #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 %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #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 1, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  br label %3263

2032:                                             ; preds = %2027, %1995
  %2033 = load ptr, ptr %44, align 8, !tbaa !5
  %2034 = load ptr, ptr %44, align 8, !tbaa !5
  %2035 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2034, i32 0, i32 9
  %2036 = getelementptr inbounds %struct.ImVector.5, ptr %107, i32 0, i32 2
  %2037 = load ptr, ptr %2036, align 8, !tbaa !167
  %2038 = load i32, ptr %106, align 4, !tbaa !9
  %2039 = icmp sgt i32 %2038, 0
  br i1 %2039, label %2040, label %2044

2040:                                             ; preds = %2032
  %2041 = getelementptr inbounds %struct.ImVector.5, ptr %107, i32 0, i32 0
  %2042 = load i32, ptr %2041, align 8, !tbaa !168
  %2043 = sub nsw i32 %2042, 1
  br label %2045

2044:                                             ; preds = %2032
  br label %2045

2045:                                             ; preds = %2044, %2040
  %2046 = phi i32 [ %2043, %2040 ], [ 0, %2044 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2033, ptr noundef %2035, ptr noundef %2037, i32 noundef %2046)
          to label %2047 unwind label %2028

2047:                                             ; preds = %2045
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #14
  br label %2048

2048:                                             ; preds = %2047, %1987, %1984
  br label %2049

2049:                                             ; preds = %2048, %1981
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #14
  %2050 = load i8, ptr %78, align 1, !tbaa !43, !range !41, !noundef !42
  %2051 = trunc i8 %2050 to i1
  br i1 %2051, label %2052, label %2061

2052:                                             ; preds = %2049
  %2053 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %2054 = trunc i8 %2053 to i1
  br i1 %2054, label %2055, label %2059

2055:                                             ; preds = %2052
  %2056 = load i32, ptr %15, align 4, !tbaa !9
  %2057 = and i32 %2056, 32
  %2058 = icmp ne i32 %2057, 0
  br label %2059

2059:                                             ; preds = %2055, %2052
  %2060 = phi i1 [ false, %2052 ], [ %2058, %2055 ]
  br label %2061

2061:                                             ; preds = %2059, %2049
  %2062 = phi i1 [ true, %2049 ], [ %2060, %2059 ]
  %2063 = zext i1 %2062 to i8
  store i8 %2063, ptr %110, align 1, !tbaa !43
  %2064 = load i8, ptr %110, align 1, !tbaa !43, !range !41, !noundef !42
  %2065 = trunc i8 %2064 to i1
  br i1 %2065, label %2066, label %2403

2066:                                             ; preds = %2061
  %2067 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %2068 = trunc i8 %2067 to i1
  br i1 %2068, label %2093, label %2069

2069:                                             ; preds = %2066
  %2070 = load ptr, ptr %44, align 8, !tbaa !5
  %2071 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2070, i32 0, i32 6
  store i8 1, ptr %2071, align 8, !tbaa !110
  %2072 = load ptr, ptr %44, align 8, !tbaa !5
  %2073 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2072, i32 0, i32 4
  %2074 = load ptr, ptr %44, align 8, !tbaa !5
  %2075 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2074, i32 0, i32 3
  %2076 = getelementptr inbounds %struct.ImVector.5, ptr %2075, i32 0, i32 0
  %2077 = load i32, ptr %2076, align 8, !tbaa !121
  %2078 = mul nsw i32 %2077, 4
  %2079 = add nsw i32 %2078, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2073, i32 noundef %2079)
  %2080 = load ptr, ptr %44, align 8, !tbaa !5
  %2081 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2080, i32 0, i32 4
  %2082 = getelementptr inbounds %struct.ImVector.26, ptr %2081, i32 0, i32 2
  %2083 = load ptr, ptr %2082, align 8, !tbaa !122
  %2084 = load ptr, ptr %44, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2084, i32 0, i32 4
  %2086 = getelementptr inbounds %struct.ImVector.26, ptr %2085, i32 0, i32 0
  %2087 = load i32, ptr %2086, align 8, !tbaa !169
  %2088 = load ptr, ptr %44, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2088, i32 0, i32 3
  %2090 = getelementptr inbounds %struct.ImVector.5, ptr %2089, i32 0, i32 2
  %2091 = load ptr, ptr %2090, align 8, !tbaa !111
  %2092 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2083, i32 noundef %2087, ptr noundef %2091, ptr noundef null)
  br label %2093

2093:                                             ; preds = %2069, %2066
  %2094 = load i32, ptr %15, align 4, !tbaa !9
  %2095 = and i32 %2094, 524736
  %2096 = icmp ne i32 %2095, 0
  br i1 %2096, label %2097, label %2383

2097:                                             ; preds = %2093
  %2098 = load ptr, ptr %16, align 8, !tbaa !5
  %2099 = icmp ne ptr %2098, null
  br i1 %2099, label %2100, label %2101

2100:                                             ; preds = %2097
  br label %2103

2101:                                             ; preds = %2097
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 4390, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2102:                                             ; No predecessors!
  br label %2103

2103:                                             ; preds = %2102, %2100
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #14
  store i32 0, ptr %111, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #14
  store i32 22, ptr %112, align 4, !tbaa !9
  %2104 = load i32, ptr %15, align 4, !tbaa !9
  %2105 = and i32 %2104, 64
  %2106 = icmp ne i32 %2105, 0
  br i1 %2106, label %2107, label %2110

2107:                                             ; preds = %2103
  %2108 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  br i1 %2108, label %2109, label %2110

2109:                                             ; preds = %2107
  store i32 64, ptr %111, align 4, !tbaa !9
  store i32 0, ptr %112, align 4, !tbaa !9
  br label %2143

2110:                                             ; preds = %2107, %2103
  %2111 = load i32, ptr %15, align 4, !tbaa !9
  %2112 = and i32 %2111, 128
  %2113 = icmp ne i32 %2112, 0
  br i1 %2113, label %2114, label %2117

2114:                                             ; preds = %2110
  %2115 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  br i1 %2115, label %2116, label %2117

2116:                                             ; preds = %2114
  store i32 128, ptr %111, align 4, !tbaa !9
  store i32 3, ptr %112, align 4, !tbaa !9
  br label %2142

2117:                                             ; preds = %2114, %2110
  %2118 = load i32, ptr %15, align 4, !tbaa !9
  %2119 = and i32 %2118, 128
  %2120 = icmp ne i32 %2119, 0
  br i1 %2120, label %2121, label %2124

2121:                                             ; preds = %2117
  %2122 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  br i1 %2122, label %2123, label %2124

2123:                                             ; preds = %2121
  store i32 128, ptr %111, align 4, !tbaa !9
  store i32 4, ptr %112, align 4, !tbaa !9
  br label %2141

2124:                                             ; preds = %2121, %2117
  %2125 = load i32, ptr %15, align 4, !tbaa !9
  %2126 = and i32 %2125, 524288
  %2127 = icmp ne i32 %2126, 0
  br i1 %2127, label %2128, label %2134

2128:                                             ; preds = %2124
  %2129 = load ptr, ptr %44, align 8, !tbaa !5
  %2130 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2129, i32 0, i32 13
  %2131 = load i8, ptr %2130, align 2, !tbaa !134, !range !41, !noundef !42
  %2132 = trunc i8 %2131 to i1
  br i1 %2132, label %2133, label %2134

2133:                                             ; preds = %2128
  store i32 524288, ptr %111, align 4, !tbaa !9
  br label %2140

2134:                                             ; preds = %2128, %2124
  %2135 = load i32, ptr %15, align 4, !tbaa !9
  %2136 = and i32 %2135, 256
  %2137 = icmp ne i32 %2136, 0
  br i1 %2137, label %2138, label %2139

2138:                                             ; preds = %2134
  store i32 256, ptr %111, align 4, !tbaa !9
  br label %2139

2139:                                             ; preds = %2138, %2134
  br label %2140

2140:                                             ; preds = %2139, %2133
  br label %2141

2141:                                             ; preds = %2140, %2123
  br label %2142

2142:                                             ; preds = %2141, %2116
  br label %2143

2143:                                             ; preds = %2142, %2109
  %2144 = load i32, ptr %111, align 4, !tbaa !9
  %2145 = icmp ne i32 %2144, 0
  br i1 %2145, label %2146, label %2382

2146:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 56, ptr %113) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %113)
  call void @llvm.memset.p0.i64(ptr align 8 %113, i8 0, i64 56, i1 false)
  %2147 = load i32, ptr %111, align 4, !tbaa !9
  %2148 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 0
  store i32 %2147, ptr %2148, align 8, !tbaa !170
  %2149 = load i32, ptr %15, align 4, !tbaa !9
  %2150 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 1
  store i32 %2149, ptr %2150, align 4, !tbaa !172
  %2151 = load ptr, ptr %17, align 8, !tbaa !5
  %2152 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 2
  store ptr %2151, ptr %2152, align 8, !tbaa !173
  %2153 = load i32, ptr %112, align 4, !tbaa !9
  %2154 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 4
  store i32 %2153, ptr %2154, align 4, !tbaa !174
  %2155 = load ptr, ptr %44, align 8, !tbaa !5
  %2156 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2155, i32 0, i32 4
  %2157 = getelementptr inbounds %struct.ImVector.26, ptr %2156, i32 0, i32 2
  %2158 = load ptr, ptr %2157, align 8, !tbaa !122
  %2159 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  store ptr %2158, ptr %2159, align 8, !tbaa !175
  %2160 = load ptr, ptr %44, align 8, !tbaa !5
  %2161 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2160, i32 0, i32 2
  %2162 = load i32, ptr %2161, align 8, !tbaa !113
  %2163 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 6
  store i32 %2162, ptr %2163, align 8, !tbaa !176
  %2164 = load ptr, ptr %44, align 8, !tbaa !5
  %2165 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2164, i32 0, i32 7
  %2166 = load i32, ptr %2165, align 4, !tbaa !135
  %2167 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 7
  store i32 %2166, ptr %2167, align 4, !tbaa !177
  %2168 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 8
  store i8 0, ptr %2168, align 8, !tbaa !178
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #14
  %2169 = load ptr, ptr %44, align 8, !tbaa !5
  %2170 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2169, i32 0, i32 3
  %2171 = getelementptr inbounds %struct.ImVector.5, ptr %2170, i32 0, i32 2
  %2172 = load ptr, ptr %2171, align 8, !tbaa !111
  store ptr %2172, ptr %114, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #14
  %2173 = load ptr, ptr %114, align 8, !tbaa !5
  %2174 = load ptr, ptr %114, align 8, !tbaa !5
  %2175 = load ptr, ptr %44, align 8, !tbaa !5
  %2176 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2175, i32 0, i32 9
  %2177 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2176, i32 0, i32 0
  %2178 = load i32, ptr %2177, align 4, !tbaa !179
  %2179 = sext i32 %2178 to i64
  %2180 = getelementptr inbounds i16, ptr %2174, i64 %2179
  %2181 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2173, ptr noundef %2180)
  %2182 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 9
  store i32 %2181, ptr %2182, align 4, !tbaa !180
  store i32 %2181, ptr %115, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #14
  %2183 = load ptr, ptr %114, align 8, !tbaa !5
  %2184 = load ptr, ptr %114, align 8, !tbaa !5
  %2185 = load ptr, ptr %44, align 8, !tbaa !5
  %2186 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2185, i32 0, i32 9
  %2187 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2186, i32 0, i32 1
  %2188 = load i32, ptr %2187, align 4, !tbaa !163
  %2189 = sext i32 %2188 to i64
  %2190 = getelementptr inbounds i16, ptr %2184, i64 %2189
  %2191 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2183, ptr noundef %2190)
  %2192 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 10
  store i32 %2191, ptr %2192, align 8, !tbaa !181
  store i32 %2191, ptr %116, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #14
  %2193 = load ptr, ptr %114, align 8, !tbaa !5
  %2194 = load ptr, ptr %114, align 8, !tbaa !5
  %2195 = load ptr, ptr %44, align 8, !tbaa !5
  %2196 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2195, i32 0, i32 9
  %2197 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2196, i32 0, i32 2
  %2198 = load i32, ptr %2197, align 4, !tbaa !164
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds i16, ptr %2194, i64 %2199
  %2201 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2193, ptr noundef %2200)
  %2202 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 11
  store i32 %2201, ptr %2202, align 4, !tbaa !182
  store i32 %2201, ptr %117, align 4, !tbaa !9
  %2203 = load ptr, ptr %16, align 8, !tbaa !5
  %2204 = call noundef i32 %2203(ptr noundef %113)
  %2205 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2206 = load ptr, ptr %2205, align 8, !tbaa !175
  %2207 = load ptr, ptr %44, align 8, !tbaa !5
  %2208 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2207, i32 0, i32 4
  %2209 = getelementptr inbounds %struct.ImVector.26, ptr %2208, i32 0, i32 2
  %2210 = load ptr, ptr %2209, align 8, !tbaa !122
  %2211 = icmp eq ptr %2206, %2210
  br i1 %2211, label %2212, label %2213

2212:                                             ; preds = %2146
  br label %2215

2213:                                             ; preds = %2146
  call void @__assert_fail(ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 4443, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2214:                                             ; No predecessors!
  br label %2215

2215:                                             ; preds = %2214, %2212
  %2216 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 7
  %2217 = load i32, ptr %2216, align 4, !tbaa !177
  %2218 = load ptr, ptr %44, align 8, !tbaa !5
  %2219 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2218, i32 0, i32 7
  %2220 = load i32, ptr %2219, align 4, !tbaa !135
  %2221 = icmp eq i32 %2217, %2220
  br i1 %2221, label %2222, label %2223

2222:                                             ; preds = %2215
  br label %2225

2223:                                             ; preds = %2215
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 4444, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2224:                                             ; No predecessors!
  br label %2225

2225:                                             ; preds = %2224, %2222
  %2226 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 1
  %2227 = load i32, ptr %2226, align 4, !tbaa !172
  %2228 = load i32, ptr %15, align 4, !tbaa !9
  %2229 = icmp eq i32 %2227, %2228
  br i1 %2229, label %2230, label %2231

2230:                                             ; preds = %2225
  br label %2233

2231:                                             ; preds = %2225
  call void @__assert_fail(ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 4445, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2232:                                             ; No predecessors!
  br label %2233

2233:                                             ; preds = %2232, %2230
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #14
  %2234 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 8
  %2235 = load i8, ptr %2234, align 8, !tbaa !178, !range !41, !noundef !42
  %2236 = trunc i8 %2235 to i1
  %2237 = zext i1 %2236 to i8
  store i8 %2237, ptr %118, align 1, !tbaa !43
  %2238 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 9
  %2239 = load i32, ptr %2238, align 4, !tbaa !180
  %2240 = load i32, ptr %115, align 4, !tbaa !9
  %2241 = icmp ne i32 %2239, %2240
  br i1 %2241, label %2245, label %2242

2242:                                             ; preds = %2233
  %2243 = load i8, ptr %118, align 1, !tbaa !43, !range !41, !noundef !42
  %2244 = trunc i8 %2243 to i1
  br i1 %2244, label %2245, label %2260

2245:                                             ; preds = %2242, %2233
  %2246 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2247 = load ptr, ptr %2246, align 8, !tbaa !175
  %2248 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2249 = load ptr, ptr %2248, align 8, !tbaa !175
  %2250 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 9
  %2251 = load i32, ptr %2250, align 4, !tbaa !180
  %2252 = sext i32 %2251 to i64
  %2253 = getelementptr inbounds i8, ptr %2249, i64 %2252
  %2254 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2247, ptr noundef %2253)
  %2255 = load ptr, ptr %44, align 8, !tbaa !5
  %2256 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2255, i32 0, i32 9
  %2257 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2256, i32 0, i32 0
  store i32 %2254, ptr %2257, align 4, !tbaa !179
  %2258 = load ptr, ptr %44, align 8, !tbaa !5
  %2259 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2258, i32 0, i32 11
  store i8 1, ptr %2259, align 4, !tbaa !150
  br label %2260

2260:                                             ; preds = %2245, %2242
  %2261 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 10
  %2262 = load i32, ptr %2261, align 8, !tbaa !181
  %2263 = load i32, ptr %116, align 4, !tbaa !9
  %2264 = icmp ne i32 %2262, %2263
  br i1 %2264, label %2268, label %2265

2265:                                             ; preds = %2260
  %2266 = load i8, ptr %118, align 1, !tbaa !43, !range !41, !noundef !42
  %2267 = trunc i8 %2266 to i1
  br i1 %2267, label %2268, label %2294

2268:                                             ; preds = %2265, %2260
  %2269 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 10
  %2270 = load i32, ptr %2269, align 8, !tbaa !181
  %2271 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 9
  %2272 = load i32, ptr %2271, align 4, !tbaa !180
  %2273 = icmp eq i32 %2270, %2272
  br i1 %2273, label %2274, label %2279

2274:                                             ; preds = %2268
  %2275 = load ptr, ptr %44, align 8, !tbaa !5
  %2276 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2275, i32 0, i32 9
  %2277 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2276, i32 0, i32 0
  %2278 = load i32, ptr %2277, align 4, !tbaa !179
  br label %2289

2279:                                             ; preds = %2268
  %2280 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2281 = load ptr, ptr %2280, align 8, !tbaa !175
  %2282 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2283 = load ptr, ptr %2282, align 8, !tbaa !175
  %2284 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 10
  %2285 = load i32, ptr %2284, align 8, !tbaa !181
  %2286 = sext i32 %2285 to i64
  %2287 = getelementptr inbounds i8, ptr %2283, i64 %2286
  %2288 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2281, ptr noundef %2287)
  br label %2289

2289:                                             ; preds = %2279, %2274
  %2290 = phi i32 [ %2278, %2274 ], [ %2288, %2279 ]
  %2291 = load ptr, ptr %44, align 8, !tbaa !5
  %2292 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2291, i32 0, i32 9
  %2293 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2292, i32 0, i32 1
  store i32 %2290, ptr %2293, align 4, !tbaa !163
  br label %2294

2294:                                             ; preds = %2289, %2265
  %2295 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 11
  %2296 = load i32, ptr %2295, align 4, !tbaa !182
  %2297 = load i32, ptr %117, align 4, !tbaa !9
  %2298 = icmp ne i32 %2296, %2297
  br i1 %2298, label %2302, label %2299

2299:                                             ; preds = %2294
  %2300 = load i8, ptr %118, align 1, !tbaa !43, !range !41, !noundef !42
  %2301 = trunc i8 %2300 to i1
  br i1 %2301, label %2302, label %2328

2302:                                             ; preds = %2299, %2294
  %2303 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 11
  %2304 = load i32, ptr %2303, align 4, !tbaa !182
  %2305 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 10
  %2306 = load i32, ptr %2305, align 8, !tbaa !181
  %2307 = icmp eq i32 %2304, %2306
  br i1 %2307, label %2308, label %2313

2308:                                             ; preds = %2302
  %2309 = load ptr, ptr %44, align 8, !tbaa !5
  %2310 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2309, i32 0, i32 9
  %2311 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2310, i32 0, i32 1
  %2312 = load i32, ptr %2311, align 4, !tbaa !163
  br label %2323

2313:                                             ; preds = %2302
  %2314 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2315 = load ptr, ptr %2314, align 8, !tbaa !175
  %2316 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2317 = load ptr, ptr %2316, align 8, !tbaa !175
  %2318 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 11
  %2319 = load i32, ptr %2318, align 4, !tbaa !182
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds i8, ptr %2317, i64 %2320
  %2322 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2315, ptr noundef %2321)
  br label %2323

2323:                                             ; preds = %2313, %2308
  %2324 = phi i32 [ %2312, %2308 ], [ %2322, %2313 ]
  %2325 = load ptr, ptr %44, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2325, i32 0, i32 9
  %2327 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2326, i32 0, i32 2
  store i32 %2324, ptr %2327, align 4, !tbaa !164
  br label %2328

2328:                                             ; preds = %2323, %2299
  %2329 = load i8, ptr %118, align 1, !tbaa !43, !range !41, !noundef !42
  %2330 = trunc i8 %2329 to i1
  br i1 %2330, label %2331, label %2381

2331:                                             ; preds = %2328
  %2332 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 6
  %2333 = load i32, ptr %2332, align 8, !tbaa !176
  %2334 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2335 = load ptr, ptr %2334, align 8, !tbaa !175
  %2336 = call i64 @strlen(ptr noundef %2335) #16
  %2337 = trunc i64 %2336 to i32
  %2338 = icmp eq i32 %2333, %2337
  br i1 %2338, label %2339, label %2340

2339:                                             ; preds = %2331
  br label %2342

2340:                                             ; preds = %2331
  call void @__assert_fail(ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 4452, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2341:                                             ; No predecessors!
  br label %2342

2342:                                             ; preds = %2341, %2339
  %2343 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 6
  %2344 = load i32, ptr %2343, align 8, !tbaa !176
  %2345 = load i32, ptr %69, align 4, !tbaa !9
  %2346 = icmp sgt i32 %2344, %2345
  br i1 %2346, label %2347, label %2362

2347:                                             ; preds = %2342
  %2348 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %2349 = trunc i8 %2348 to i1
  br i1 %2349, label %2350, label %2362

2350:                                             ; preds = %2347
  %2351 = load ptr, ptr %44, align 8, !tbaa !5
  %2352 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2351, i32 0, i32 3
  %2353 = load ptr, ptr %44, align 8, !tbaa !5
  %2354 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2353, i32 0, i32 3
  %2355 = getelementptr inbounds %struct.ImVector.5, ptr %2354, i32 0, i32 0
  %2356 = load i32, ptr %2355, align 8, !tbaa !121
  %2357 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 6
  %2358 = load i32, ptr %2357, align 8, !tbaa !176
  %2359 = load i32, ptr %69, align 4, !tbaa !9
  %2360 = sub nsw i32 %2358, %2359
  %2361 = add nsw i32 %2356, %2360
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2352, i32 noundef %2361)
  br label %2362

2362:                                             ; preds = %2350, %2347, %2342
  %2363 = load ptr, ptr %44, align 8, !tbaa !5
  %2364 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2363, i32 0, i32 3
  %2365 = getelementptr inbounds %struct.ImVector.5, ptr %2364, i32 0, i32 2
  %2366 = load ptr, ptr %2365, align 8, !tbaa !111
  %2367 = load ptr, ptr %44, align 8, !tbaa !5
  %2368 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2367, i32 0, i32 3
  %2369 = getelementptr inbounds %struct.ImVector.5, ptr %2368, i32 0, i32 0
  %2370 = load i32, ptr %2369, align 8, !tbaa !121
  %2371 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 5
  %2372 = load ptr, ptr %2371, align 8, !tbaa !175
  %2373 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2366, i32 noundef %2370, ptr noundef %2372, ptr noundef null, ptr noundef null)
  %2374 = load ptr, ptr %44, align 8, !tbaa !5
  %2375 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2374, i32 0, i32 1
  store i32 %2373, ptr %2375, align 4, !tbaa !112
  %2376 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %113, i32 0, i32 6
  %2377 = load i32, ptr %2376, align 8, !tbaa !176
  %2378 = load ptr, ptr %44, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2378, i32 0, i32 2
  store i32 %2377, ptr %2379, align 8, !tbaa !113
  %2380 = load ptr, ptr %44, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %2380)
  br label %2381

2381:                                             ; preds = %2362, %2328
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #14
  call void @llvm.lifetime.end.p0(i64 56, ptr %113) #14
  br label %2382

2382:                                             ; preds = %2381, %2143
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #14
  br label %2383

2383:                                             ; preds = %2382, %2093
  %2384 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %2385 = trunc i8 %2384 to i1
  br i1 %2385, label %2402, label %2386

2386:                                             ; preds = %2383
  %2387 = load ptr, ptr %44, align 8, !tbaa !5
  %2388 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2387, i32 0, i32 4
  %2389 = getelementptr inbounds %struct.ImVector.26, ptr %2388, i32 0, i32 2
  %2390 = load ptr, ptr %2389, align 8, !tbaa !122
  %2391 = load ptr, ptr %12, align 8, !tbaa !5
  %2392 = call i32 @strcmp(ptr noundef %2390, ptr noundef %2391) #16
  %2393 = icmp ne i32 %2392, 0
  br i1 %2393, label %2394, label %2402

2394:                                             ; preds = %2386
  %2395 = load ptr, ptr %44, align 8, !tbaa !5
  %2396 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2395, i32 0, i32 4
  %2397 = getelementptr inbounds %struct.ImVector.26, ptr %2396, i32 0, i32 2
  %2398 = load ptr, ptr %2397, align 8, !tbaa !122
  store ptr %2398, ptr %105, align 8, !tbaa !5
  %2399 = load ptr, ptr %44, align 8, !tbaa !5
  %2400 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2399, i32 0, i32 2
  %2401 = load i32, ptr %2400, align 8, !tbaa !113
  store i32 %2401, ptr %106, align 4, !tbaa !9
  br label %2402

2402:                                             ; preds = %2394, %2386, %2383
  br label %2403

2403:                                             ; preds = %2402, %2061
  %2404 = load ptr, ptr %105, align 8, !tbaa !5
  %2405 = icmp ne ptr %2404, null
  br i1 %2405, label %2406, label %2456

2406:                                             ; preds = %2403
  %2407 = load i32, ptr %106, align 4, !tbaa !9
  %2408 = icmp sge i32 %2407, 0
  br i1 %2408, label %2409, label %2410

2409:                                             ; preds = %2406
  br label %2412

2410:                                             ; preds = %2406
  call void @__assert_fail(ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 4476, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2411:                                             ; No predecessors!
  br label %2412

2412:                                             ; preds = %2411, %2409
  %2413 = load i8, ptr %28, align 1, !tbaa !43, !range !41, !noundef !42
  %2414 = trunc i8 %2413 to i1
  br i1 %2414, label %2415, label %2448

2415:                                             ; preds = %2412
  call void @llvm.lifetime.start.p0(i64 56, ptr %119) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %119)
  %2416 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 0
  store i32 262144, ptr %2416, align 8, !tbaa !170
  %2417 = load i32, ptr %15, align 4, !tbaa !9
  %2418 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 1
  store i32 %2417, ptr %2418, align 4, !tbaa !172
  %2419 = load ptr, ptr %12, align 8, !tbaa !5
  %2420 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 5
  store ptr %2419, ptr %2420, align 8, !tbaa !175
  %2421 = load i32, ptr %106, align 4, !tbaa !9
  %2422 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  store i32 %2421, ptr %2422, align 8, !tbaa !176
  %2423 = load i32, ptr %13, align 4, !tbaa !9
  %2424 = load i32, ptr %106, align 4, !tbaa !9
  %2425 = add nsw i32 %2424, 1
  %2426 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2423, i32 noundef %2425)
  %2427 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  store i32 %2426, ptr %2427, align 4, !tbaa !177
  %2428 = load ptr, ptr %17, align 8, !tbaa !5
  %2429 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  store ptr %2428, ptr %2429, align 8, !tbaa !173
  %2430 = load ptr, ptr %16, align 8, !tbaa !5
  %2431 = call noundef i32 %2430(ptr noundef %119)
  %2432 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 5
  %2433 = load ptr, ptr %2432, align 8, !tbaa !175
  store ptr %2433, ptr %12, align 8, !tbaa !5
  %2434 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2435 = load i32, ptr %2434, align 4, !tbaa !177
  store i32 %2435, ptr %13, align 4, !tbaa !9
  %2436 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2437 = load i32, ptr %2436, align 8, !tbaa !176
  %2438 = load i32, ptr %13, align 4, !tbaa !9
  %2439 = sub nsw i32 %2438, 1
  %2440 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2437, i32 noundef %2439)
  store i32 %2440, ptr %106, align 4, !tbaa !9
  %2441 = load i32, ptr %106, align 4, !tbaa !9
  %2442 = load i32, ptr %13, align 4, !tbaa !9
  %2443 = icmp sle i32 %2441, %2442
  br i1 %2443, label %2444, label %2445

2444:                                             ; preds = %2415
  br label %2447

2445:                                             ; preds = %2415
  call void @__assert_fail(ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 4490, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2446:                                             ; No predecessors!
  br label %2447

2447:                                             ; preds = %2446, %2444
  call void @llvm.lifetime.end.p0(i64 56, ptr %119) #14
  br label %2448

2448:                                             ; preds = %2447, %2412
  %2449 = load ptr, ptr %12, align 8, !tbaa !5
  %2450 = load ptr, ptr %105, align 8, !tbaa !5
  %2451 = load i32, ptr %106, align 4, !tbaa !9
  %2452 = add nsw i32 %2451, 1
  %2453 = load i32, ptr %13, align 4, !tbaa !9
  %2454 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2452, i32 noundef %2453)
  %2455 = sext i32 %2454 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2449, ptr noundef %2450, i64 noundef %2455)
  store i8 1, ptr %62, align 1, !tbaa !43
  br label %2456

2456:                                             ; preds = %2448, %2403
  %2457 = load ptr, ptr %44, align 8, !tbaa !5
  %2458 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2457, i32 0, i32 14
  store i32 0, ptr %2458, align 8, !tbaa !136
  %2459 = load ptr, ptr %44, align 8, !tbaa !5
  %2460 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2459, i32 0, i32 15
  store ptr null, ptr %2460, align 8, !tbaa !137
  %2461 = load ptr, ptr %44, align 8, !tbaa !5
  %2462 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2461, i32 0, i32 16
  store ptr null, ptr %2462, align 8, !tbaa !138
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  br label %2463

2463:                                             ; preds = %2456, %1969
  %2464 = load i8, ptr %51, align 1, !tbaa !43, !range !41, !noundef !42
  %2465 = trunc i8 %2464 to i1
  br i1 %2465, label %2466, label %2473

2466:                                             ; preds = %2463
  %2467 = load ptr, ptr %20, align 8, !tbaa !5
  %2468 = getelementptr inbounds %struct.ImGuiContext, ptr %2467, i32 0, i32 44
  %2469 = load i32, ptr %2468, align 8, !tbaa !102
  %2470 = load i32, ptr %29, align 4, !tbaa !9
  %2471 = icmp eq i32 %2469, %2470
  br i1 %2471, label %2472, label %2473

2472:                                             ; preds = %2466
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2473

2473:                                             ; preds = %2472, %2466, %2463
  %2474 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2475 = trunc i8 %2474 to i1
  br i1 %2475, label %2486, label %2476

2476:                                             ; preds = %2473
  %2477 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %2477, i32 noundef 1)
  %2478 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %120, ptr align 4 %2478, i64 8, i1 false), !tbaa.struct !44
  %2479 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %121, ptr align 4 %2479, i64 8, i1 false), !tbaa.struct !44
  %2480 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2481 = load ptr, ptr %22, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.ImGuiStyle, ptr %2481, i32 0, i32 13
  %2483 = load float, ptr %2482, align 4, !tbaa !95
  %2484 = load <2 x float>, ptr %120, align 4
  %2485 = load <2 x float>, ptr %121, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2484, <2 x float> %2485, i32 noundef %2480, i1 noundef zeroext true, float noundef %2483)
  br label %2486

2486:                                             ; preds = %2476, %2473
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #14
  %2487 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2488 = getelementptr inbounds %struct.ImVec2, ptr %2487, i32 0, i32 0
  %2489 = load float, ptr %2488, align 4, !tbaa !142
  %2490 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2491 = getelementptr inbounds %struct.ImVec2, ptr %2490, i32 0, i32 1
  %2492 = load float, ptr %2491, align 4, !tbaa !183
  %2493 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2494 = getelementptr inbounds %struct.ImVec2, ptr %2493, i32 0, i32 0
  %2495 = load float, ptr %2494, align 4, !tbaa !142
  %2496 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2497 = load float, ptr %2496, align 4, !tbaa !92
  %2498 = fadd float %2495, %2497
  %2499 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2500 = getelementptr inbounds %struct.ImVec2, ptr %2499, i32 0, i32 1
  %2501 = load float, ptr %2500, align 4, !tbaa !183
  %2502 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2503 = load float, ptr %2502, align 4, !tbaa !90
  %2504 = fadd float %2501, %2503
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %122, float noundef %2489, float noundef %2492, float noundef %2498, float noundef %2504)
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #14
  %2505 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2506 = trunc i8 %2505 to i1
  br i1 %2506, label %2507, label %2511

2507:                                             ; preds = %2486
  %2508 = load ptr, ptr %38, align 8, !tbaa !5
  %2509 = getelementptr inbounds %struct.ImGuiWindow, ptr %2508, i32 0, i32 54
  %2510 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2509, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %123, ptr align 8 %2510, i64 8, i1 false), !tbaa.struct !44
  br label %2516

2511:                                             ; preds = %2486
  %2512 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2513 = load ptr, ptr %22, align 8, !tbaa !5
  %2514 = getelementptr inbounds %struct.ImGuiStyle, ptr %2513, i32 0, i32 12
  %2515 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2512, ptr noundef nonnull align 4 dereferenceable(8) %2514)
  store <2 x float> %2515, ptr %123, align 4
  br label %2516

2516:                                             ; preds = %2511, %2507
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %124, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #14
  store i32 2097152, ptr %125, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #14
  %2517 = load i8, ptr %65, align 1, !tbaa !43, !range !41, !noundef !42
  %2518 = trunc i8 %2517 to i1
  br i1 %2518, label %2519, label %2524

2519:                                             ; preds = %2516
  %2520 = load ptr, ptr %44, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2520, i32 0, i32 4
  %2522 = getelementptr inbounds %struct.ImVector.26, ptr %2521, i32 0, i32 2
  %2523 = load ptr, ptr %2522, align 8, !tbaa !122
  br label %2526

2524:                                             ; preds = %2516
  %2525 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2526

2526:                                             ; preds = %2524, %2519
  %2527 = phi ptr [ %2523, %2519 ], [ %2525, %2524 ]
  store ptr %2527, ptr %126, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #14
  store ptr null, ptr %127, align 8, !tbaa !5
  %2528 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %2529 = trunc i8 %2528 to i1
  br i1 %2529, label %2530, label %2536

2530:                                             ; preds = %2526
  %2531 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2531, ptr %126, align 8, !tbaa !5
  %2532 = load ptr, ptr %11, align 8, !tbaa !5
  %2533 = load ptr, ptr %11, align 8, !tbaa !5
  %2534 = call i64 @strlen(ptr noundef %2533) #16
  %2535 = getelementptr inbounds i8, ptr %2532, i64 %2534
  store ptr %2535, ptr %127, align 8, !tbaa !5
  br label %2536

2536:                                             ; preds = %2530, %2526
  %2537 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %2538 = trunc i8 %2537 to i1
  br i1 %2538, label %2542, label %2539

2539:                                             ; preds = %2536
  %2540 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %2541 = trunc i8 %2540 to i1
  br i1 %2541, label %2542, label %3109

2542:                                             ; preds = %2539, %2536
  %2543 = load ptr, ptr %44, align 8, !tbaa !5
  %2544 = icmp ne ptr %2543, null
  br i1 %2544, label %2545, label %2546

2545:                                             ; preds = %2542
  br label %2548

2546:                                             ; preds = %2542
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 4536, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2547:                                             ; No predecessors!
  br label %2548

2548:                                             ; preds = %2547, %2545
  %2549 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %2550 = trunc i8 %2549 to i1
  br i1 %2550, label %2558, label %2551

2551:                                             ; preds = %2548
  %2552 = load ptr, ptr %126, align 8, !tbaa !5
  %2553 = load ptr, ptr %44, align 8, !tbaa !5
  %2554 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2553, i32 0, i32 2
  %2555 = load i32, ptr %2554, align 8, !tbaa !113
  %2556 = sext i32 %2555 to i64
  %2557 = getelementptr inbounds i8, ptr %2552, i64 %2556
  store ptr %2557, ptr %127, align 8, !tbaa !5
  br label %2558

2558:                                             ; preds = %2551, %2548
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #14
  %2559 = load ptr, ptr %44, align 8, !tbaa !5
  %2560 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2559, i32 0, i32 3
  %2561 = getelementptr inbounds %struct.ImVector.5, ptr %2560, i32 0, i32 2
  %2562 = load ptr, ptr %2561, align 8, !tbaa !111
  store ptr %2562, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %129)
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %130)
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #14
  call void @llvm.memset.p0.i64(ptr align 16 %131, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %132, ptr align 4 @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #14
  store i32 0, ptr %133, align 4, !tbaa !9
  %2563 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %2564 = trunc i8 %2563 to i1
  br i1 %2564, label %2565, label %2577

2565:                                             ; preds = %2558
  %2566 = load ptr, ptr %128, align 8, !tbaa !5
  %2567 = load ptr, ptr %44, align 8, !tbaa !5
  %2568 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2567, i32 0, i32 9
  %2569 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2568, i32 0, i32 0
  %2570 = load i32, ptr %2569, align 4, !tbaa !179
  %2571 = sext i32 %2570 to i64
  %2572 = getelementptr inbounds i16, ptr %2566, i64 %2571
  %2573 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 0
  store ptr %2572, ptr %2573, align 16, !tbaa !5
  %2574 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 0
  store i32 -1, ptr %2574, align 4, !tbaa !9
  %2575 = load i32, ptr %133, align 4, !tbaa !9
  %2576 = add nsw i32 %2575, 1
  store i32 %2576, ptr %133, align 4, !tbaa !9
  br label %2577

2577:                                             ; preds = %2565, %2558
  %2578 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %2579 = trunc i8 %2578 to i1
  br i1 %2579, label %2580, label %2597

2580:                                             ; preds = %2577
  %2581 = load ptr, ptr %128, align 8, !tbaa !5
  %2582 = load ptr, ptr %44, align 8, !tbaa !5
  %2583 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2582, i32 0, i32 9
  %2584 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2583, i32 0, i32 1
  %2585 = load i32, ptr %2584, align 4, !tbaa !163
  %2586 = load ptr, ptr %44, align 8, !tbaa !5
  %2587 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2586, i32 0, i32 9
  %2588 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2587, i32 0, i32 2
  %2589 = load i32, ptr %2588, align 4, !tbaa !164
  %2590 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2585, i32 noundef %2589)
  %2591 = sext i32 %2590 to i64
  %2592 = getelementptr inbounds i16, ptr %2581, i64 %2591
  %2593 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 1
  store ptr %2592, ptr %2593, align 8, !tbaa !5
  %2594 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  store i32 -1, ptr %2594, align 4, !tbaa !9
  %2595 = load i32, ptr %133, align 4, !tbaa !9
  %2596 = add nsw i32 %2595, 1
  store i32 %2596, ptr %133, align 4, !tbaa !9
  br label %2597

2597:                                             ; preds = %2580, %2577
  %2598 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2599 = trunc i8 %2598 to i1
  %2600 = zext i1 %2599 to i64
  %2601 = select i1 %2599, i32 1, i32 0
  %2602 = load i32, ptr %133, align 4, !tbaa !9
  %2603 = add nsw i32 %2602, %2601
  store i32 %2603, ptr %133, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #14
  store i32 0, ptr %134, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  %2604 = load ptr, ptr %128, align 8, !tbaa !5
  store ptr %2604, ptr %135, align 8, !tbaa !5
  br label %2605

2605:                                             ; preds = %2654, %2597
  %2606 = load ptr, ptr %135, align 8, !tbaa !5
  %2607 = load i16, ptr %2606, align 2, !tbaa !154
  %2608 = zext i16 %2607 to i32
  %2609 = icmp ne i32 %2608, 0
  br i1 %2609, label %2611, label %2610

2610:                                             ; preds = %2605
  store i32 7, ptr %19, align 4
  br label %2657

2611:                                             ; preds = %2605
  %2612 = load ptr, ptr %135, align 8, !tbaa !5
  %2613 = load i16, ptr %2612, align 2, !tbaa !154
  %2614 = zext i16 %2613 to i32
  %2615 = icmp eq i32 %2614, 10
  br i1 %2615, label %2616, label %2653

2616:                                             ; preds = %2611
  %2617 = load i32, ptr %134, align 4, !tbaa !9
  %2618 = add nsw i32 %2617, 1
  store i32 %2618, ptr %134, align 4, !tbaa !9
  %2619 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 0
  %2620 = load i32, ptr %2619, align 4, !tbaa !9
  %2621 = icmp eq i32 %2620, -1
  br i1 %2621, label %2622, label %2635

2622:                                             ; preds = %2616
  %2623 = load ptr, ptr %135, align 8, !tbaa !5
  %2624 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 0
  %2625 = load ptr, ptr %2624, align 16, !tbaa !5
  %2626 = icmp uge ptr %2623, %2625
  br i1 %2626, label %2627, label %2635

2627:                                             ; preds = %2622
  %2628 = load i32, ptr %134, align 4, !tbaa !9
  %2629 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 0
  store i32 %2628, ptr %2629, align 4, !tbaa !9
  %2630 = load i32, ptr %133, align 4, !tbaa !9
  %2631 = add nsw i32 %2630, -1
  store i32 %2631, ptr %133, align 4, !tbaa !9
  %2632 = icmp sle i32 %2631, 0
  br i1 %2632, label %2633, label %2634

2633:                                             ; preds = %2627
  store i32 7, ptr %19, align 4
  br label %2657

2634:                                             ; preds = %2627
  br label %2635

2635:                                             ; preds = %2634, %2622, %2616
  %2636 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  %2637 = load i32, ptr %2636, align 4, !tbaa !9
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2652

2639:                                             ; preds = %2635
  %2640 = load ptr, ptr %135, align 8, !tbaa !5
  %2641 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 1
  %2642 = load ptr, ptr %2641, align 8, !tbaa !5
  %2643 = icmp uge ptr %2640, %2642
  br i1 %2643, label %2644, label %2652

2644:                                             ; preds = %2639
  %2645 = load i32, ptr %134, align 4, !tbaa !9
  %2646 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  store i32 %2645, ptr %2646, align 4, !tbaa !9
  %2647 = load i32, ptr %133, align 4, !tbaa !9
  %2648 = add nsw i32 %2647, -1
  store i32 %2648, ptr %133, align 4, !tbaa !9
  %2649 = icmp sle i32 %2648, 0
  br i1 %2649, label %2650, label %2651

2650:                                             ; preds = %2644
  store i32 7, ptr %19, align 4
  br label %2657

2651:                                             ; preds = %2644
  br label %2652

2652:                                             ; preds = %2651, %2639, %2635
  br label %2653

2653:                                             ; preds = %2652, %2611
  br label %2654

2654:                                             ; preds = %2653
  %2655 = load ptr, ptr %135, align 8, !tbaa !5
  %2656 = getelementptr inbounds i16, ptr %2655, i32 1
  store ptr %2656, ptr %135, align 8, !tbaa !5
  br label %2605, !llvm.loop !184

2657:                                             ; preds = %2650, %2633, %2610
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #14
  br label %2658

2658:                                             ; preds = %2657
  %2659 = load i32, ptr %134, align 4, !tbaa !9
  %2660 = add nsw i32 %2659, 1
  store i32 %2660, ptr %134, align 4, !tbaa !9
  %2661 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 0
  %2662 = load i32, ptr %2661, align 4, !tbaa !9
  %2663 = icmp eq i32 %2662, -1
  br i1 %2663, label %2664, label %2667

2664:                                             ; preds = %2658
  %2665 = load i32, ptr %134, align 4, !tbaa !9
  %2666 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 0
  store i32 %2665, ptr %2666, align 4, !tbaa !9
  br label %2667

2667:                                             ; preds = %2664, %2658
  %2668 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  %2669 = load i32, ptr %2668, align 4, !tbaa !9
  %2670 = icmp eq i32 %2669, -1
  br i1 %2670, label %2671, label %2674

2671:                                             ; preds = %2667
  %2672 = load i32, ptr %134, align 4, !tbaa !9
  %2673 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  store i32 %2672, ptr %2673, align 4, !tbaa !9
  br label %2674

2674:                                             ; preds = %2671, %2667
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #14
  %2675 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 0
  %2676 = load ptr, ptr %2675, align 16, !tbaa !5
  %2677 = load ptr, ptr %128, align 8, !tbaa !5
  %2678 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2676, ptr noundef %2677)
  %2679 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 0
  %2680 = load ptr, ptr %2679, align 16, !tbaa !5
  %2681 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %2678, ptr noundef %2680, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2681, ptr %136, align 4
  %2682 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %2683 = load float, ptr %2682, align 4, !tbaa !92
  %2684 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 0
  store float %2683, ptr %2684, align 4, !tbaa !92
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  %2685 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 0
  %2686 = load i32, ptr %2685, align 4, !tbaa !9
  %2687 = sitofp i32 %2686 to float
  %2688 = load ptr, ptr %20, align 8, !tbaa !5
  %2689 = getelementptr inbounds %struct.ImGuiContext, ptr %2688, i32 0, i32 6
  %2690 = load float, ptr %2689, align 8, !tbaa !46
  %2691 = fmul float %2687, %2690
  %2692 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 1
  store float %2691, ptr %2692, align 4, !tbaa !90
  %2693 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  %2694 = load i32, ptr %2693, align 4, !tbaa !9
  %2695 = icmp sge i32 %2694, 0
  br i1 %2695, label %2696, label %2715

2696:                                             ; preds = %2674
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #14
  %2697 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 1
  %2698 = load ptr, ptr %2697, align 8, !tbaa !5
  %2699 = load ptr, ptr %128, align 8, !tbaa !5
  %2700 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2698, ptr noundef %2699)
  %2701 = getelementptr inbounds [2 x ptr], ptr %131, i64 0, i64 1
  %2702 = load ptr, ptr %2701, align 8, !tbaa !5
  %2703 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %2700, ptr noundef %2702, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2703, ptr %137, align 4
  %2704 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  %2705 = load float, ptr %2704, align 4, !tbaa !92
  %2706 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 0
  store float %2705, ptr %2706, align 4, !tbaa !92
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  %2707 = getelementptr inbounds [2 x i32], ptr %132, i64 0, i64 1
  %2708 = load i32, ptr %2707, align 4, !tbaa !9
  %2709 = sitofp i32 %2708 to float
  %2710 = load ptr, ptr %20, align 8, !tbaa !5
  %2711 = getelementptr inbounds %struct.ImGuiContext, ptr %2710, i32 0, i32 6
  %2712 = load float, ptr %2711, align 8, !tbaa !46
  %2713 = fmul float %2709, %2712
  %2714 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 1
  store float %2713, ptr %2714, align 4, !tbaa !90
  br label %2715

2715:                                             ; preds = %2696, %2674
  %2716 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2717 = trunc i8 %2716 to i1
  br i1 %2717, label %2718, label %2727

2718:                                             ; preds = %2715
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #14
  %2719 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2720 = load float, ptr %2719, align 4, !tbaa !92
  %2721 = load i32, ptr %134, align 4, !tbaa !9
  %2722 = sitofp i32 %2721 to float
  %2723 = load ptr, ptr %20, align 8, !tbaa !5
  %2724 = getelementptr inbounds %struct.ImGuiContext, ptr %2723, i32 0, i32 6
  %2725 = load float, ptr %2724, align 8, !tbaa !46
  %2726 = fmul float %2722, %2725
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %138, float noundef %2720, float noundef %2726)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %124, ptr align 4 %138, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  br label %2727

2727:                                             ; preds = %2718, %2715
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #14
  %2728 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %2729 = trunc i8 %2728 to i1
  br i1 %2729, label %2730, label %2862

2730:                                             ; preds = %2727
  %2731 = load ptr, ptr %44, align 8, !tbaa !5
  %2732 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2731, i32 0, i32 11
  %2733 = load i8, ptr %2732, align 4, !tbaa !150, !range !41, !noundef !42
  %2734 = trunc i8 %2733 to i1
  br i1 %2734, label %2735, label %2862

2735:                                             ; preds = %2730
  %2736 = load i32, ptr %15, align 4, !tbaa !9
  %2737 = and i32 %2736, 4096
  %2738 = icmp ne i32 %2737, 0
  br i1 %2738, label %2788, label %2739

2739:                                             ; preds = %2735
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #14
  %2740 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2741 = load float, ptr %2740, align 4, !tbaa !92
  %2742 = fmul float %2741, 2.500000e-01
  store float %2742, ptr %139, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #14
  %2743 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2744 = load float, ptr %2743, align 4, !tbaa !92
  %2745 = load ptr, ptr %22, align 8, !tbaa !5
  %2746 = getelementptr inbounds %struct.ImGuiStyle, ptr %2745, i32 0, i32 12
  %2747 = getelementptr inbounds %struct.ImVec2, ptr %2746, i32 0, i32 0
  %2748 = load float, ptr %2747, align 4, !tbaa !143
  %2749 = fsub float %2744, %2748
  store float %2749, ptr %140, align 4, !tbaa !45
  %2750 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 0
  %2751 = load float, ptr %2750, align 4, !tbaa !92
  %2752 = load ptr, ptr %44, align 8, !tbaa !5
  %2753 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2752, i32 0, i32 8
  %2754 = load float, ptr %2753, align 8, !tbaa !115
  %2755 = fcmp olt float %2751, %2754
  br i1 %2755, label %2756, label %2766

2756:                                             ; preds = %2739
  %2757 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 0
  %2758 = load float, ptr %2757, align 4, !tbaa !92
  %2759 = load float, ptr %139, align 4, !tbaa !45
  %2760 = fsub float %2758, %2759
  %2761 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2760)
  %2762 = fptosi float %2761 to i32
  %2763 = sitofp i32 %2762 to float
  %2764 = load ptr, ptr %44, align 8, !tbaa !5
  %2765 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2764, i32 0, i32 8
  store float %2763, ptr %2765, align 8, !tbaa !115
  br label %2787

2766:                                             ; preds = %2739
  %2767 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 0
  %2768 = load float, ptr %2767, align 4, !tbaa !92
  %2769 = load float, ptr %140, align 4, !tbaa !45
  %2770 = fsub float %2768, %2769
  %2771 = load ptr, ptr %44, align 8, !tbaa !5
  %2772 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2771, i32 0, i32 8
  %2773 = load float, ptr %2772, align 8, !tbaa !115
  %2774 = fcmp oge float %2770, %2773
  br i1 %2774, label %2775, label %2786

2775:                                             ; preds = %2766
  %2776 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 0
  %2777 = load float, ptr %2776, align 4, !tbaa !92
  %2778 = load float, ptr %140, align 4, !tbaa !45
  %2779 = fsub float %2777, %2778
  %2780 = load float, ptr %139, align 4, !tbaa !45
  %2781 = fadd float %2779, %2780
  %2782 = fptosi float %2781 to i32
  %2783 = sitofp i32 %2782 to float
  %2784 = load ptr, ptr %44, align 8, !tbaa !5
  %2785 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2784, i32 0, i32 8
  store float %2783, ptr %2785, align 8, !tbaa !115
  br label %2786

2786:                                             ; preds = %2775, %2766
  br label %2787

2787:                                             ; preds = %2786, %2756
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #14
  br label %2791

2788:                                             ; preds = %2735
  %2789 = load ptr, ptr %44, align 8, !tbaa !5
  %2790 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2789, i32 0, i32 8
  store float 0.000000e+00, ptr %2790, align 8, !tbaa !115
  br label %2791

2791:                                             ; preds = %2788, %2787
  %2792 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2793 = trunc i8 %2792 to i1
  br i1 %2793, label %2794, label %2859

2794:                                             ; preds = %2791
  %2795 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 1
  %2796 = load float, ptr %2795, align 4, !tbaa !90
  %2797 = load ptr, ptr %20, align 8, !tbaa !5
  %2798 = getelementptr inbounds %struct.ImGuiContext, ptr %2797, i32 0, i32 6
  %2799 = load float, ptr %2798, align 8, !tbaa !46
  %2800 = fsub float %2796, %2799
  %2801 = load float, ptr %53, align 4, !tbaa !45
  %2802 = fcmp olt float %2800, %2801
  br i1 %2802, label %2803, label %2811

2803:                                             ; preds = %2794
  %2804 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 1
  %2805 = load float, ptr %2804, align 4, !tbaa !90
  %2806 = load ptr, ptr %20, align 8, !tbaa !5
  %2807 = getelementptr inbounds %struct.ImGuiContext, ptr %2806, i32 0, i32 6
  %2808 = load float, ptr %2807, align 8, !tbaa !46
  %2809 = fsub float %2805, %2808
  %2810 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2809)
  store float %2810, ptr %53, align 4, !tbaa !45
  br label %2831

2811:                                             ; preds = %2794
  %2812 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 1
  %2813 = load float, ptr %2812, align 4, !tbaa !90
  %2814 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2815 = load float, ptr %2814, align 4, !tbaa !90
  %2816 = fsub float %2813, %2815
  %2817 = load float, ptr %53, align 4, !tbaa !45
  %2818 = fcmp oge float %2816, %2817
  br i1 %2818, label %2819, label %2830

2819:                                             ; preds = %2811
  %2820 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 1
  %2821 = load float, ptr %2820, align 4, !tbaa !90
  %2822 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2823 = load float, ptr %2822, align 4, !tbaa !90
  %2824 = fsub float %2821, %2823
  %2825 = load ptr, ptr %22, align 8, !tbaa !5
  %2826 = getelementptr inbounds %struct.ImGuiStyle, ptr %2825, i32 0, i32 12
  %2827 = getelementptr inbounds %struct.ImVec2, ptr %2826, i32 0, i32 1
  %2828 = load float, ptr %2827, align 4, !tbaa !91
  %2829 = call float @llvm.fmuladd.f32(float %2828, float 2.000000e+00, float %2824)
  store float %2829, ptr %53, align 4, !tbaa !45
  br label %2830

2830:                                             ; preds = %2819, %2811
  br label %2831

2831:                                             ; preds = %2830, %2803
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #14
  %2832 = getelementptr inbounds %struct.ImVec2, ptr %124, i32 0, i32 1
  %2833 = load float, ptr %2832, align 4, !tbaa !90
  %2834 = load ptr, ptr %22, align 8, !tbaa !5
  %2835 = getelementptr inbounds %struct.ImGuiStyle, ptr %2834, i32 0, i32 12
  %2836 = getelementptr inbounds %struct.ImVec2, ptr %2835, i32 0, i32 1
  %2837 = load float, ptr %2836, align 4, !tbaa !91
  %2838 = call float @llvm.fmuladd.f32(float %2837, float 2.000000e+00, float %2833)
  %2839 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2840 = load float, ptr %2839, align 4, !tbaa !90
  %2841 = fsub float %2838, %2840
  %2842 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2841, float noundef 0.000000e+00)
  store float %2842, ptr %141, align 4, !tbaa !45
  %2843 = load float, ptr %53, align 4, !tbaa !45
  %2844 = load float, ptr %141, align 4, !tbaa !45
  %2845 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %2843, float noundef 0.000000e+00, float noundef %2844)
  store float %2845, ptr %53, align 4, !tbaa !45
  %2846 = load ptr, ptr %38, align 8, !tbaa !5
  %2847 = getelementptr inbounds %struct.ImGuiWindow, ptr %2846, i32 0, i32 15
  %2848 = getelementptr inbounds %struct.ImVec2, ptr %2847, i32 0, i32 1
  %2849 = load float, ptr %2848, align 4, !tbaa !107
  %2850 = load float, ptr %53, align 4, !tbaa !45
  %2851 = fsub float %2849, %2850
  %2852 = getelementptr inbounds %struct.ImVec2, ptr %123, i32 0, i32 1
  %2853 = load float, ptr %2852, align 4, !tbaa !90
  %2854 = fadd float %2853, %2851
  store float %2854, ptr %2852, align 4, !tbaa !90
  %2855 = load float, ptr %53, align 4, !tbaa !45
  %2856 = load ptr, ptr %38, align 8, !tbaa !5
  %2857 = getelementptr inbounds %struct.ImGuiWindow, ptr %2856, i32 0, i32 15
  %2858 = getelementptr inbounds %struct.ImVec2, ptr %2857, i32 0, i32 1
  store float %2855, ptr %2858, align 4, !tbaa !107
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #14
  br label %2859

2859:                                             ; preds = %2831, %2791
  %2860 = load ptr, ptr %44, align 8, !tbaa !5
  %2861 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2860, i32 0, i32 11
  store i8 0, ptr %2861, align 4, !tbaa !150
  br label %2862

2862:                                             ; preds = %2859, %2730, %2727
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #14
  %2863 = load ptr, ptr %44, align 8, !tbaa !5
  %2864 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2863, i32 0, i32 8
  %2865 = load float, ptr %2864, align 8, !tbaa !115
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %142, float noundef %2865, float noundef 0.000000e+00)
  %2866 = load i8, ptr %61, align 1, !tbaa !43, !range !41, !noundef !42
  %2867 = trunc i8 %2866 to i1
  br i1 %2867, label %2868, label %2996

2868:                                             ; preds = %2862
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %2869 = load ptr, ptr %128, align 8, !tbaa !5
  %2870 = load ptr, ptr %44, align 8, !tbaa !5
  %2871 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2870, i32 0, i32 9
  %2872 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2871, i32 0, i32 1
  %2873 = load i32, ptr %2872, align 4, !tbaa !163
  %2874 = load ptr, ptr %44, align 8, !tbaa !5
  %2875 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2874, i32 0, i32 9
  %2876 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2875, i32 0, i32 2
  %2877 = load i32, ptr %2876, align 4, !tbaa !164
  %2878 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2873, i32 noundef %2877)
  %2879 = sext i32 %2878 to i64
  %2880 = getelementptr inbounds i16, ptr %2869, i64 %2879
  store ptr %2880, ptr %143, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  %2881 = load ptr, ptr %128, align 8, !tbaa !5
  %2882 = load ptr, ptr %44, align 8, !tbaa !5
  %2883 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2882, i32 0, i32 9
  %2884 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2883, i32 0, i32 1
  %2885 = load i32, ptr %2884, align 4, !tbaa !163
  %2886 = load ptr, ptr %44, align 8, !tbaa !5
  %2887 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2886, i32 0, i32 9
  %2888 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2887, i32 0, i32 2
  %2889 = load i32, ptr %2888, align 4, !tbaa !164
  %2890 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2885, i32 noundef %2889)
  %2891 = sext i32 %2890 to i64
  %2892 = getelementptr inbounds i16, ptr %2881, i64 %2891
  store ptr %2892, ptr %144, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #14
  %2893 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %2894 = trunc i8 %2893 to i1
  %2895 = zext i1 %2894 to i64
  %2896 = select i1 %2894, float 1.000000e+00, float 0x3FE3333340000000
  %2897 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 47, float noundef %2896)
  store i32 %2897, ptr %145, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #14
  %2898 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2899 = trunc i8 %2898 to i1
  %2900 = zext i1 %2899 to i64
  %2901 = select i1 %2899, float 0.000000e+00, float -1.000000e+00
  store float %2901, ptr %146, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #14
  %2902 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2903 = trunc i8 %2902 to i1
  %2904 = zext i1 %2903 to i64
  %2905 = select i1 %2903, float 0.000000e+00, float 2.000000e+00
  store float %2905, ptr %147, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  %2906 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %123, ptr noundef nonnull align 4 dereferenceable(8) %130)
  store <2 x float> %2906, ptr %149, align 4
  %2907 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %149, ptr noundef nonnull align 4 dereferenceable(8) %142)
  store <2 x float> %2907, ptr %148, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %2908 = load ptr, ptr %143, align 8, !tbaa !5
  store ptr %2908, ptr %150, align 8, !tbaa !5
  br label %2909

2909:                                             ; preds = %2981, %2868
  %2910 = load ptr, ptr %150, align 8, !tbaa !5
  %2911 = load ptr, ptr %144, align 8, !tbaa !5
  %2912 = icmp ult ptr %2910, %2911
  br i1 %2912, label %2914, label %2913

2913:                                             ; preds = %2909
  store i32 10, ptr %19, align 4
  br label %2994

2914:                                             ; preds = %2909
  %2915 = getelementptr inbounds %struct.ImVec2, ptr %148, i32 0, i32 1
  %2916 = load float, ptr %2915, align 4, !tbaa !90
  %2917 = getelementptr inbounds %struct.ImVec4, ptr %122, i32 0, i32 3
  %2918 = load float, ptr %2917, align 4, !tbaa !185
  %2919 = load ptr, ptr %20, align 8, !tbaa !5
  %2920 = getelementptr inbounds %struct.ImGuiContext, ptr %2919, i32 0, i32 6
  %2921 = load float, ptr %2920, align 8, !tbaa !46
  %2922 = fadd float %2918, %2921
  %2923 = fcmp ogt float %2916, %2922
  br i1 %2923, label %2924, label %2925

2924:                                             ; preds = %2914
  store i32 10, ptr %19, align 4
  br label %2994

2925:                                             ; preds = %2914
  %2926 = getelementptr inbounds %struct.ImVec2, ptr %148, i32 0, i32 1
  %2927 = load float, ptr %2926, align 4, !tbaa !90
  %2928 = getelementptr inbounds %struct.ImVec4, ptr %122, i32 0, i32 1
  %2929 = load float, ptr %2928, align 4, !tbaa !186
  %2930 = fcmp olt float %2927, %2929
  br i1 %2930, label %2931, label %2945

2931:                                             ; preds = %2925
  br label %2932

2932:                                             ; preds = %2943, %2931
  %2933 = load ptr, ptr %150, align 8, !tbaa !5
  %2934 = load ptr, ptr %144, align 8, !tbaa !5
  %2935 = icmp ult ptr %2933, %2934
  br i1 %2935, label %2936, label %2944

2936:                                             ; preds = %2932
  %2937 = load ptr, ptr %150, align 8, !tbaa !5
  %2938 = getelementptr inbounds i16, ptr %2937, i32 1
  store ptr %2938, ptr %150, align 8, !tbaa !5
  %2939 = load i16, ptr %2937, align 2, !tbaa !154
  %2940 = zext i16 %2939 to i32
  %2941 = icmp eq i32 %2940, 10
  br i1 %2941, label %2942, label %2943

2942:                                             ; preds = %2936
  br label %2944

2943:                                             ; preds = %2936
  br label %2932, !llvm.loop !187

2944:                                             ; preds = %2942, %2932
  br label %2981

2945:                                             ; preds = %2925
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #14
  %2946 = load ptr, ptr %150, align 8, !tbaa !5
  %2947 = load ptr, ptr %144, align 8, !tbaa !5
  %2948 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %2946, ptr noundef %2947, ptr noundef %150, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %2948, ptr %151, align 4
  %2949 = getelementptr inbounds %struct.ImVec2, ptr %151, i32 0, i32 0
  %2950 = load float, ptr %2949, align 4, !tbaa !92
  %2951 = fcmp ole float %2950, 0.000000e+00
  br i1 %2951, label %2952, label %2961

2952:                                             ; preds = %2945
  %2953 = load ptr, ptr %20, align 8, !tbaa !5
  %2954 = getelementptr inbounds %struct.ImGuiContext, ptr %2953, i32 0, i32 5
  %2955 = load ptr, ptr %2954, align 8, !tbaa !124
  %2956 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(110) %2955, i16 noundef zeroext 32)
  %2957 = fmul float %2956, 5.000000e-01
  %2958 = fptosi float %2957 to i32
  %2959 = sitofp i32 %2958 to float
  %2960 = getelementptr inbounds %struct.ImVec2, ptr %151, i32 0, i32 0
  store float %2959, ptr %2960, align 4, !tbaa !92
  br label %2961

2961:                                             ; preds = %2952, %2945
  call void @llvm.lifetime.start.p0(i64 16, ptr %152) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #14
  %2962 = load float, ptr %146, align 4, !tbaa !45
  %2963 = load ptr, ptr %20, align 8, !tbaa !5
  %2964 = getelementptr inbounds %struct.ImGuiContext, ptr %2963, i32 0, i32 6
  %2965 = load float, ptr %2964, align 8, !tbaa !46
  %2966 = fsub float %2962, %2965
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %154, float noundef 0.000000e+00, float noundef %2966)
  %2967 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %148, ptr noundef nonnull align 4 dereferenceable(8) %154)
  store <2 x float> %2967, ptr %153, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %2968 = getelementptr inbounds %struct.ImVec2, ptr %151, i32 0, i32 0
  %2969 = load float, ptr %2968, align 4, !tbaa !92
  %2970 = load float, ptr %147, align 4, !tbaa !45
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %156, float noundef %2969, float noundef %2970)
  %2971 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %148, ptr noundef nonnull align 4 dereferenceable(8) %156)
  store <2 x float> %2971, ptr %155, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %152, ptr noundef nonnull align 4 dereferenceable(8) %153, ptr noundef nonnull align 4 dereferenceable(8) %155)
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %157) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %157, ptr noundef nonnull align 4 dereferenceable(16) %122)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %152, ptr noundef nonnull align 4 dereferenceable(16) %157)
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %158) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %158, ptr noundef nonnull align 4 dereferenceable(16) %122)
  %2972 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %152, ptr noundef nonnull align 4 dereferenceable(16) %158)
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #14
  br i1 %2972, label %2973, label %2980

2973:                                             ; preds = %2961
  %2974 = load ptr, ptr %38, align 8, !tbaa !5
  %2975 = getelementptr inbounds %struct.ImGuiWindow, ptr %2974, i32 0, i32 72
  %2976 = load ptr, ptr %2975, align 8, !tbaa !188
  %2977 = getelementptr inbounds %struct.ImRect, ptr %152, i32 0, i32 0
  %2978 = getelementptr inbounds %struct.ImRect, ptr %152, i32 0, i32 1
  %2979 = load i32, ptr %145, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2976, ptr noundef nonnull align 4 dereferenceable(8) %2977, ptr noundef nonnull align 4 dereferenceable(8) %2978, i32 noundef %2979, float noundef 0.000000e+00, i32 noundef 0)
  br label %2980

2980:                                             ; preds = %2973, %2961
  call void @llvm.lifetime.end.p0(i64 16, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #14
  br label %2981

2981:                                             ; preds = %2980, %2944
  %2982 = getelementptr inbounds %struct.ImVec2, ptr %123, i32 0, i32 0
  %2983 = load float, ptr %2982, align 4, !tbaa !92
  %2984 = getelementptr inbounds %struct.ImVec2, ptr %142, i32 0, i32 0
  %2985 = load float, ptr %2984, align 4, !tbaa !92
  %2986 = fsub float %2983, %2985
  %2987 = getelementptr inbounds %struct.ImVec2, ptr %148, i32 0, i32 0
  store float %2986, ptr %2987, align 4, !tbaa !92
  %2988 = load ptr, ptr %20, align 8, !tbaa !5
  %2989 = getelementptr inbounds %struct.ImGuiContext, ptr %2988, i32 0, i32 6
  %2990 = load float, ptr %2989, align 8, !tbaa !46
  %2991 = getelementptr inbounds %struct.ImVec2, ptr %148, i32 0, i32 1
  %2992 = load float, ptr %2991, align 4, !tbaa !90
  %2993 = fadd float %2992, %2990
  store float %2993, ptr %2991, align 4, !tbaa !90
  br label %2909, !llvm.loop !189

2994:                                             ; preds = %2924, %2913
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #14
  br label %2995

2995:                                             ; preds = %2994
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  br label %2996

2996:                                             ; preds = %2995, %2862
  %2997 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2998 = trunc i8 %2997 to i1
  br i1 %2998, label %3006, label %2999

2999:                                             ; preds = %2996
  %3000 = load ptr, ptr %127, align 8, !tbaa !5
  %3001 = load ptr, ptr %126, align 8, !tbaa !5
  %3002 = ptrtoint ptr %3000 to i64
  %3003 = ptrtoint ptr %3001 to i64
  %3004 = sub i64 %3002, %3003
  %3005 = icmp slt i64 %3004, 2097152
  br i1 %3005, label %3006, label %3031

3006:                                             ; preds = %2999, %2996
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #14
  %3007 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3008 = trunc i8 %3007 to i1
  %3009 = zext i1 %3008 to i64
  %3010 = select i1 %3008, i32 1, i32 0
  %3011 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3010, float noundef 1.000000e+00)
  store i32 %3011, ptr %159, align 4, !tbaa !9
  %3012 = load ptr, ptr %38, align 8, !tbaa !5
  %3013 = getelementptr inbounds %struct.ImGuiWindow, ptr %3012, i32 0, i32 72
  %3014 = load ptr, ptr %3013, align 8, !tbaa !188
  %3015 = load ptr, ptr %20, align 8, !tbaa !5
  %3016 = getelementptr inbounds %struct.ImGuiContext, ptr %3015, i32 0, i32 5
  %3017 = load ptr, ptr %3016, align 8, !tbaa !124
  %3018 = load ptr, ptr %20, align 8, !tbaa !5
  %3019 = getelementptr inbounds %struct.ImGuiContext, ptr %3018, i32 0, i32 6
  %3020 = load float, ptr %3019, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #14
  %3021 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %123, ptr noundef nonnull align 4 dereferenceable(8) %142)
  store <2 x float> %3021, ptr %160, align 4
  %3022 = load i32, ptr %159, align 4, !tbaa !9
  %3023 = load ptr, ptr %126, align 8, !tbaa !5
  %3024 = load ptr, ptr %127, align 8, !tbaa !5
  %3025 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3026 = trunc i8 %3025 to i1
  br i1 %3026, label %3027, label %3028

3027:                                             ; preds = %3006
  br label %3029

3028:                                             ; preds = %3006
  br label %3029

3029:                                             ; preds = %3028, %3027
  %3030 = phi ptr [ null, %3027 ], [ %122, %3028 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3014, ptr noundef %3017, float noundef %3020, ptr noundef nonnull align 4 dereferenceable(8) %160, i32 noundef %3022, ptr noundef %3023, ptr noundef %3024, float noundef 0.000000e+00, ptr noundef %3030)
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #14
  br label %3031

3031:                                             ; preds = %3029, %2999
  %3032 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %3033 = trunc i8 %3032 to i1
  br i1 %3033, label %3034, label %3108

3034:                                             ; preds = %3031
  %3035 = load ptr, ptr %21, align 8, !tbaa !5
  %3036 = getelementptr inbounds %struct.ImGuiIO, ptr %3035, i32 0, i32 3
  %3037 = load float, ptr %3036, align 8, !tbaa !190
  %3038 = load ptr, ptr %44, align 8, !tbaa !5
  %3039 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3038, i32 0, i32 10
  %3040 = load float, ptr %3039, align 8, !tbaa !191
  %3041 = fadd float %3040, %3037
  store float %3041, ptr %3039, align 8, !tbaa !191
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #14
  %3042 = load ptr, ptr %20, align 8, !tbaa !5
  %3043 = getelementptr inbounds %struct.ImGuiContext, ptr %3042, i32 0, i32 3
  %3044 = getelementptr inbounds %struct.ImGuiIO, ptr %3043, i32 0, i32 21
  %3045 = load i8, ptr %3044, align 2, !tbaa !192, !range !41, !noundef !42
  %3046 = trunc i8 %3045 to i1
  br i1 %3046, label %3047, label %3058

3047:                                             ; preds = %3034
  %3048 = load ptr, ptr %44, align 8, !tbaa !5
  %3049 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3048, i32 0, i32 10
  %3050 = load float, ptr %3049, align 8, !tbaa !191
  %3051 = fcmp ole float %3050, 0.000000e+00
  br i1 %3051, label %3058, label %3052

3052:                                             ; preds = %3047
  %3053 = load ptr, ptr %44, align 8, !tbaa !5
  %3054 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3053, i32 0, i32 10
  %3055 = load float, ptr %3054, align 8, !tbaa !191
  %3056 = call float @fmodf(float noundef %3055, float noundef 0x3FF3333340000000) #14
  %3057 = fcmp ole float %3056, 0x3FE99999A0000000
  br label %3058

3058:                                             ; preds = %3052, %3047, %3034
  %3059 = phi i1 [ true, %3047 ], [ true, %3034 ], [ %3057, %3052 ]
  %3060 = zext i1 %3059 to i8
  store i8 %3060, ptr %161, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #14
  %3061 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %123, ptr noundef nonnull align 4 dereferenceable(8) %129)
  store <2 x float> %3061, ptr %164, align 4
  %3062 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %164, ptr noundef nonnull align 4 dereferenceable(8) %142)
  store <2 x float> %3062, ptr %163, align 4
  %3063 = call <2 x float> @_ZL7ImFloorRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %163)
  store <2 x float> %3063, ptr %162, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %165) #14
  %3064 = getelementptr inbounds %struct.ImVec2, ptr %162, i32 0, i32 0
  %3065 = load float, ptr %3064, align 4, !tbaa !92
  %3066 = getelementptr inbounds %struct.ImVec2, ptr %162, i32 0, i32 1
  %3067 = load float, ptr %3066, align 4, !tbaa !90
  %3068 = load ptr, ptr %20, align 8, !tbaa !5
  %3069 = getelementptr inbounds %struct.ImGuiContext, ptr %3068, i32 0, i32 6
  %3070 = load float, ptr %3069, align 8, !tbaa !46
  %3071 = fsub float %3067, %3070
  %3072 = fadd float %3071, 5.000000e-01
  %3073 = getelementptr inbounds %struct.ImVec2, ptr %162, i32 0, i32 0
  %3074 = load float, ptr %3073, align 4, !tbaa !92
  %3075 = fadd float %3074, 1.000000e+00
  %3076 = getelementptr inbounds %struct.ImVec2, ptr %162, i32 0, i32 1
  %3077 = load float, ptr %3076, align 4, !tbaa !90
  %3078 = fsub float %3077, 1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %165, float noundef %3065, float noundef %3072, float noundef %3075, float noundef %3078)
  %3079 = load i8, ptr %161, align 1, !tbaa !43, !range !41, !noundef !42
  %3080 = trunc i8 %3079 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %166) #14
  br i1 %3080, label %3081, label %3083

3081:                                             ; preds = %3058
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %166, ptr noundef nonnull align 4 dereferenceable(16) %122)
  %3082 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %165, ptr noundef nonnull align 4 dereferenceable(16) %166)
  br label %3083

3083:                                             ; preds = %3081, %3058
  %3084 = phi i1 [ false, %3058 ], [ %3082, %3081 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #14
  br i1 %3084, label %3085, label %3092

3085:                                             ; preds = %3083
  %3086 = load ptr, ptr %38, align 8, !tbaa !5
  %3087 = getelementptr inbounds %struct.ImGuiWindow, ptr %3086, i32 0, i32 72
  %3088 = load ptr, ptr %3087, align 8, !tbaa !188
  %3089 = getelementptr inbounds %struct.ImRect, ptr %165, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #14
  %3090 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %165)
  store <2 x float> %3090, ptr %167, align 4
  %3091 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %3088, ptr noundef nonnull align 4 dereferenceable(8) %3089, ptr noundef nonnull align 4 dereferenceable(8) %167, i32 noundef %3091, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #14
  br label %3092

3092:                                             ; preds = %3085, %3083
  %3093 = load i8, ptr %25, align 1, !tbaa !43, !range !41, !noundef !42
  %3094 = trunc i8 %3093 to i1
  br i1 %3094, label %3107, label %3095

3095:                                             ; preds = %3092
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #14
  %3096 = getelementptr inbounds %struct.ImVec2, ptr %162, i32 0, i32 0
  %3097 = load float, ptr %3096, align 4, !tbaa !92
  %3098 = fsub float %3097, 1.000000e+00
  %3099 = getelementptr inbounds %struct.ImVec2, ptr %162, i32 0, i32 1
  %3100 = load float, ptr %3099, align 4, !tbaa !90
  %3101 = load ptr, ptr %20, align 8, !tbaa !5
  %3102 = getelementptr inbounds %struct.ImGuiContext, ptr %3101, i32 0, i32 6
  %3103 = load float, ptr %3102, align 8, !tbaa !46
  %3104 = fsub float %3100, %3103
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %168, float noundef %3098, float noundef %3104)
  %3105 = load ptr, ptr %20, align 8, !tbaa !5
  %3106 = getelementptr inbounds %struct.ImGuiContext, ptr %3105, i32 0, i32 197
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3106, ptr align 4 %168, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #14
  br label %3107

3107:                                             ; preds = %3095, %3092
  call void @llvm.lifetime.end.p0(i64 16, ptr %165) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #14
  br label %3108

3108:                                             ; preds = %3107, %3031
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #14
  br label %3183

3109:                                             ; preds = %2539
  %3110 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3111 = trunc i8 %3110 to i1
  br i1 %3111, label %3112, label %3122

3112:                                             ; preds = %3109
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #14
  %3113 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %3114 = load float, ptr %3113, align 4, !tbaa !92
  %3115 = load ptr, ptr %126, align 8, !tbaa !5
  %3116 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %3115, ptr noundef %127)
  %3117 = sitofp i32 %3116 to float
  %3118 = load ptr, ptr %20, align 8, !tbaa !5
  %3119 = getelementptr inbounds %struct.ImGuiContext, ptr %3118, i32 0, i32 6
  %3120 = load float, ptr %3119, align 8, !tbaa !46
  %3121 = fmul float %3117, %3120
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %169, float noundef %3114, float noundef %3121)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %124, ptr align 4 %169, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #14
  br label %3148

3122:                                             ; preds = %3109
  %3123 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3124 = trunc i8 %3123 to i1
  br i1 %3124, label %3138, label %3125

3125:                                             ; preds = %3122
  %3126 = load ptr, ptr %20, align 8, !tbaa !5
  %3127 = getelementptr inbounds %struct.ImGuiContext, ptr %3126, i32 0, i32 44
  %3128 = load i32, ptr %3127, align 8, !tbaa !102
  %3129 = load i32, ptr %29, align 4, !tbaa !9
  %3130 = icmp eq i32 %3128, %3129
  br i1 %3130, label %3131, label %3138

3131:                                             ; preds = %3125
  %3132 = load ptr, ptr %126, align 8, !tbaa !5
  %3133 = load ptr, ptr %44, align 8, !tbaa !5
  %3134 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3133, i32 0, i32 2
  %3135 = load i32, ptr %3134, align 8, !tbaa !113
  %3136 = sext i32 %3135 to i64
  %3137 = getelementptr inbounds i8, ptr %3132, i64 %3136
  store ptr %3137, ptr %127, align 8, !tbaa !5
  br label %3147

3138:                                             ; preds = %3125, %3122
  %3139 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3140 = trunc i8 %3139 to i1
  br i1 %3140, label %3146, label %3141

3141:                                             ; preds = %3138
  %3142 = load ptr, ptr %126, align 8, !tbaa !5
  %3143 = load ptr, ptr %126, align 8, !tbaa !5
  %3144 = call i64 @strlen(ptr noundef %3143) #16
  %3145 = getelementptr inbounds i8, ptr %3142, i64 %3144
  store ptr %3145, ptr %127, align 8, !tbaa !5
  br label %3146

3146:                                             ; preds = %3141, %3138
  br label %3147

3147:                                             ; preds = %3146, %3131
  br label %3148

3148:                                             ; preds = %3147, %3112
  %3149 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3150 = trunc i8 %3149 to i1
  br i1 %3150, label %3158, label %3151

3151:                                             ; preds = %3148
  %3152 = load ptr, ptr %127, align 8, !tbaa !5
  %3153 = load ptr, ptr %126, align 8, !tbaa !5
  %3154 = ptrtoint ptr %3152 to i64
  %3155 = ptrtoint ptr %3153 to i64
  %3156 = sub i64 %3154, %3155
  %3157 = icmp slt i64 %3156, 2097152
  br i1 %3157, label %3158, label %3182

3158:                                             ; preds = %3151, %3148
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #14
  %3159 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3160 = trunc i8 %3159 to i1
  %3161 = zext i1 %3160 to i64
  %3162 = select i1 %3160, i32 1, i32 0
  %3163 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3162, float noundef 1.000000e+00)
  store i32 %3163, ptr %170, align 4, !tbaa !9
  %3164 = load ptr, ptr %38, align 8, !tbaa !5
  %3165 = getelementptr inbounds %struct.ImGuiWindow, ptr %3164, i32 0, i32 72
  %3166 = load ptr, ptr %3165, align 8, !tbaa !188
  %3167 = load ptr, ptr %20, align 8, !tbaa !5
  %3168 = getelementptr inbounds %struct.ImGuiContext, ptr %3167, i32 0, i32 5
  %3169 = load ptr, ptr %3168, align 8, !tbaa !124
  %3170 = load ptr, ptr %20, align 8, !tbaa !5
  %3171 = getelementptr inbounds %struct.ImGuiContext, ptr %3170, i32 0, i32 6
  %3172 = load float, ptr %3171, align 8, !tbaa !46
  %3173 = load i32, ptr %170, align 4, !tbaa !9
  %3174 = load ptr, ptr %126, align 8, !tbaa !5
  %3175 = load ptr, ptr %127, align 8, !tbaa !5
  %3176 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3177 = trunc i8 %3176 to i1
  br i1 %3177, label %3178, label %3179

3178:                                             ; preds = %3158
  br label %3180

3179:                                             ; preds = %3158
  br label %3180

3180:                                             ; preds = %3179, %3178
  %3181 = phi ptr [ null, %3178 ], [ %122, %3179 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3166, ptr noundef %3169, float noundef %3172, ptr noundef nonnull align 4 dereferenceable(8) %123, i32 noundef %3173, ptr noundef %3174, ptr noundef %3175, float noundef 0.000000e+00, ptr noundef %3181)
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #14
  br label %3182

3182:                                             ; preds = %3180, %3151
  br label %3183

3183:                                             ; preds = %3182, %3108
  %3184 = load i8, ptr %26, align 1, !tbaa !43, !range !41, !noundef !42
  %3185 = trunc i8 %3184 to i1
  br i1 %3185, label %3186, label %3190

3186:                                             ; preds = %3183
  %3187 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3188 = trunc i8 %3187 to i1
  br i1 %3188, label %3190, label %3189

3189:                                             ; preds = %3186
  call void @_ZN5ImGui7PopFontEv()
  br label %3190

3190:                                             ; preds = %3189, %3186, %3183
  %3191 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3192 = trunc i8 %3191 to i1
  br i1 %3192, label %3193, label %3203

3193:                                             ; preds = %3190
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #14
  %3194 = getelementptr inbounds %struct.ImVec2, ptr %124, i32 0, i32 0
  %3195 = load float, ptr %3194, align 4, !tbaa !92
  %3196 = getelementptr inbounds %struct.ImVec2, ptr %124, i32 0, i32 1
  %3197 = load float, ptr %3196, align 4, !tbaa !90
  %3198 = load ptr, ptr %22, align 8, !tbaa !5
  %3199 = getelementptr inbounds %struct.ImGuiStyle, ptr %3198, i32 0, i32 12
  %3200 = getelementptr inbounds %struct.ImVec2, ptr %3199, i32 0, i32 1
  %3201 = load float, ptr %3200, align 4, !tbaa !91
  %3202 = fadd float %3197, %3201
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %171, float noundef %3195, float noundef %3202)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %171)
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #14
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %3203

3203:                                             ; preds = %3193, %3190
  %3204 = load ptr, ptr %20, align 8, !tbaa !5
  %3205 = getelementptr inbounds %struct.ImGuiContext, ptr %3204, i32 0, i32 209
  %3206 = load i8, ptr %3205, align 4, !tbaa !193, !range !41, !noundef !42
  %3207 = trunc i8 %3206 to i1
  br i1 %3207, label %3208, label %3217

3208:                                             ; preds = %3203
  %3209 = load i8, ptr %26, align 1, !tbaa !43, !range !41, !noundef !42
  %3210 = trunc i8 %3209 to i1
  br i1 %3210, label %3211, label %3214

3211:                                             ; preds = %3208
  %3212 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3213 = trunc i8 %3212 to i1
  br i1 %3213, label %3214, label %3217

3214:                                             ; preds = %3211, %3208
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.25, ptr noundef @.str.26)
  %3215 = load ptr, ptr %126, align 8, !tbaa !5
  %3216 = load ptr, ptr %127, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %123, ptr noundef %3215, ptr noundef %3216)
  br label %3217

3217:                                             ; preds = %3214, %3211, %3203
  %3218 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %3219 = load float, ptr %3218, align 4, !tbaa !92
  %3220 = fcmp ogt float %3219, 0.000000e+00
  br i1 %3220, label %3221, label %3240

3221:                                             ; preds = %3217
  %3222 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  %3223 = getelementptr inbounds %struct.ImVec2, ptr %3222, i32 0, i32 0
  %3224 = load float, ptr %3223, align 4, !tbaa !194
  %3225 = load ptr, ptr %22, align 8, !tbaa !5
  %3226 = getelementptr inbounds %struct.ImGuiStyle, ptr %3225, i32 0, i32 16
  %3227 = getelementptr inbounds %struct.ImVec2, ptr %3226, i32 0, i32 0
  %3228 = load float, ptr %3227, align 4, !tbaa !93
  %3229 = fadd float %3224, %3228
  %3230 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %3231 = getelementptr inbounds %struct.ImVec2, ptr %3230, i32 0, i32 1
  %3232 = load float, ptr %3231, align 4, !tbaa !183
  %3233 = load ptr, ptr %22, align 8, !tbaa !5
  %3234 = getelementptr inbounds %struct.ImGuiStyle, ptr %3233, i32 0, i32 12
  %3235 = getelementptr inbounds %struct.ImVec2, ptr %3234, i32 0, i32 1
  %3236 = load float, ptr %3235, align 4, !tbaa !91
  %3237 = fadd float %3232, %3236
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %172, float noundef %3229, float noundef %3237)
  %3238 = load ptr, ptr %10, align 8, !tbaa !5
  %3239 = load <2 x float>, ptr %172, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3239, ptr noundef %3238, ptr noundef null, i1 noundef zeroext true)
  br label %3240

3240:                                             ; preds = %3221, %3217
  %3241 = load i8, ptr %62, align 1, !tbaa !43, !range !41, !noundef !42
  %3242 = trunc i8 %3241 to i1
  br i1 %3242, label %3243, label %3249

3243:                                             ; preds = %3240
  %3244 = load i32, ptr %15, align 4, !tbaa !9
  %3245 = and i32 %3244, 134217728
  %3246 = icmp ne i32 %3245, 0
  br i1 %3246, label %3249, label %3247

3247:                                             ; preds = %3243
  %3248 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3248)
  br label %3249

3249:                                             ; preds = %3247, %3243, %3240
  %3250 = load i32, ptr %15, align 4, !tbaa !9
  %3251 = and i32 %3250, 32
  %3252 = icmp ne i32 %3251, 0
  br i1 %3252, label %3253, label %3256

3253:                                             ; preds = %3249
  %3254 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %3255 = trunc i8 %3254 to i1
  store i1 %3255, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3259

3256:                                             ; preds = %3249
  %3257 = load i8, ptr %62, align 1, !tbaa !43, !range !41, !noundef !42
  %3258 = trunc i8 %3257 to i1
  store i1 %3258, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3259

3259:                                             ; preds = %3256, %3253
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #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 %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #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 1, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #14
  br label %3260

3260:                                             ; preds = %3259, %389, %375, %319
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #14
  br label %3261

3261:                                             ; preds = %3260, %178
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  %3262 = load i1, ptr %9, align 1
  ret i1 %3262

3263:                                             ; preds = %2028
  %3264 = load ptr, ptr %108, align 8
  %3265 = load i32, ptr %109, align 4
  %3266 = insertvalue { ptr, i32 } poison, ptr %3264, 0
  %3267 = insertvalue { ptr, i32 } %3266, i32 %3265, 1
  resume { ptr, i32 } %3267

3268:                                             ; preds = %1257
  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)) #4 align 2

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

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

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

declare void @_ZN5ImGui8EndChildEv() #6

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

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

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

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

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

declare noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(110), i16 noundef zeroext) #6

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736)) #4 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 void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef, i1 noundef zeroext) #12

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

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

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

declare noundef i32 @_ZN5ImGui20GetMergedKeyModFlagsEv() #6

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

declare noundef float @_ZN5ImGui13GetScrollMaxYEv() #6

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

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

declare noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef) #6

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

declare void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef) #6

declare void @_ZN5ImGui7MemFreeEPv(ptr noundef) #6

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

declare noundef ptr @_ZN5ImGui16GetClipboardTextEv() #6

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; 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 nounwind uwtable
declare dso_local void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui7PopFontEv() #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !15, i64 147}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !10, i64 8, !10, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !14, i64 72, !14, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !13, i64 92, !13, i64 100, !13, i64 108, !13, i64 116, !13, i64 124, !13, i64 132, !15, i64 140, !15, i64 141, !15, i64 142, !15, i64 143, !15, i64 144, !15, i64 145, !15, i64 146, !15, i64 147, !15, i64 148, !15, i64 149, !15, i64 150, !15, i64 151, !7, i64 152, !16, i64 154, !16, i64 156, !16, i64 158, !16, i64 160, !10, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !15, i64 171, !10, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !10, i64 180, !10, i64 181, !10, i64 182, !13, i64 184, !13, i64 192, !17, i64 200, !18, i64 216, !25, i64 464, !25, i64 480, !25, i64 496, !25, i64 512, !25, i64 528, !25, i64 544, !25, i64 560, !26, i64 576, !26, i64 580, !10, i64 584, !14, i64 588, !14, i64 592, !27, i64 600, !29, i64 616, !14, i64 632, !10, i64 636, !6, i64 640, !30, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !10, i64 928, !10, i64 932, !15, i64 936}
!13 = !{!"_ZTS6ImVec2", !14, i64 0, !14, i64 4}
!14 = !{!"float", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !6, i64 8}
!18 = !{!"_ZTS19ImGuiWindowTempData", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !14, i64 56, !14, i64 60, !19, i64 64, !19, i64 68, !19, i64 72, !20, i64 76, !16, i64 80, !16, i64 82, !10, i64 84, !15, i64 88, !15, i64 89, !15, i64 90, !13, i64 92, !21, i64 100, !10, i64 128, !10, i64 132, !22, i64 136, !6, i64 152, !6, i64 160, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !14, i64 188, !14, i64 192, !23, i64 200, !23, i64 216, !24, i64 232}
!19 = !{!"_ZTS6ImVec1", !14, i64 0}
!20 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!21 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!22 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!23 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"_ZTS15ImGuiStackSizes", !16, i64 0, !16, i64 2, !16, i64 4, !16, i64 6, !16, i64 8, !16, i64 10, !16, i64 12}
!25 = !{!"_ZTS6ImRect", !13, i64 0, !13, i64 8}
!26 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!27 = !{!"_ZTS12ImGuiStorage", !28, i64 0}
!28 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !6, i64 8}
!29 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !6, i64 8}
!30 = !{!"_ZTS10ImDrawList", !31, i64 0, !32, i64 16, !33, i64 32, !10, i64 48, !10, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !34, i64 88, !35, i64 104, !36, i64 120, !37, i64 136, !39, i64 168, !14, i64 192}
!31 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!37 = !{!"_ZTS15ImDrawCmdHeader", !38, i64 0, !6, i64 16, !10, i64 24}
!38 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!39 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !40, i64 8}
!40 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!41 = !{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 6520}
!47 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !48, i64 8, !49, i64 5464, !6, i64 6512, !14, i64 6520, !14, i64 6524, !50, i64 6528, !51, i64 7040, !10, i64 7048, !10, i64 7052, !10, i64 7056, !15, i64 7060, !15, i64 7061, !15, i64 7062, !15, i64 7063, !15, i64 7064, !10, i64 7068, !6, i64 7072, !22, i64 7080, !22, i64 7096, !22, i64 7112, !52, i64 7128, !27, i64 7144, !10, i64 7160, !13, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !13, i64 7216, !14, i64 7224, !10, i64 7228, !10, i64 7232, !15, i64 7236, !15, i64 7237, !15, i64 7238, !15, i64 7239, !14, i64 7240, !14, i64 7244, !10, i64 7248, !10, i64 7252, !14, i64 7256, !15, i64 7260, !15, i64 7261, !15, i64 7262, !15, i64 7263, !15, i64 7264, !15, i64 7265, !15, i64 7266, !10, i64 7268, !10, i64 7272, !53, i64 7280, !13, i64 7288, !6, i64 7296, !54, i64 7304, !10, i64 7308, !10, i64 7312, !15, i64 7316, !15, i64 7317, !6, i64 7320, !10, i64 7328, !14, i64 7332, !10, i64 7336, !55, i64 7340, !56, i64 7360, !57, i64 7408, !58, i64 7520, !59, i64 7536, !60, i64 7552, !17, i64 7568, !61, i64 7584, !62, i64 7600, !63, i64 7616, !63, i64 7632, !64, i64 7648, !6, i64 7664, !10, i64 7672, !10, i64 7676, !10, i64 7680, !10, i64 7684, !10, i64 7688, !10, i64 7692, !10, i64 7696, !10, i64 7700, !10, i64 7704, !10, i64 7708, !10, i64 7712, !54, i64 7716, !25, i64 7720, !10, i64 7736, !20, i64 7740, !10, i64 7744, !15, i64 7748, !15, i64 7749, !15, i64 7750, !15, i64 7751, !15, i64 7752, !15, i64 7753, !15, i64 7754, !10, i64 7756, !25, i64 7760, !15, i64 7776, !10, i64 7780, !65, i64 7784, !10, i64 7788, !10, i64 7792, !10, i64 7796, !10, i64 7800, !66, i64 7808, !66, i64 7856, !66, i64 7904, !6, i64 7952, !10, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !14, i64 7992, !14, i64 7996, !15, i64 8000, !6, i64 8008, !6, i64 8016, !10, i64 8024, !10, i64 8028, !10, i64 8032, !10, i64 8036, !15, i64 8040, !14, i64 8044, !10, i64 8048, !15, i64 8052, !15, i64 8053, !15, i64 8054, !10, i64 8056, !10, i64 8060, !10, i64 8064, !67, i64 8072, !25, i64 8136, !10, i64 8152, !10, i64 8156, !14, i64 8160, !10, i64 8164, !10, i64 8168, !10, i64 8172, !10, i64 8176, !68, i64 8184, !7, i64 8200, !6, i64 8216, !10, i64 8224, !69, i64 8232, !71, i64 8272, !23, i64 8288, !40, i64 8304, !6, i64 8320, !72, i64 8328, !74, i64 8368, !75, i64 8384, !13, i64 8400, !76, i64 8408, !80, i64 12144, !10, i64 12256, !10, i64 12260, !14, i64 12264, !14, i64 12268, !7, i64 12272, !38, i64 12284, !82, i64 12300, !14, i64 12348, !15, i64 12352, !15, i64 12353, !14, i64 12356, !14, i64 12360, !14, i64 12364, !14, i64 12368, !10, i64 12372, !14, i64 12376, !77, i64 12384, !17, i64 12400, !13, i64 12416, !13, i64 12424, !7, i64 12432, !15, i64 12433, !14, i64 12436, !83, i64 12440, !84, i64 12456, !85, i64 12472, !86, i64 12488, !87, i64 12504, !10, i64 12520, !15, i64 12524, !88, i64 12528, !6, i64 12536, !83, i64 12544, !6, i64 12560, !6, i64 12568, !14, i64 12576, !15, i64 12580, !10, i64 12584, !10, i64 12588, !10, i64 12592, !15, i64 12596, !10, i64 12600, !89, i64 12604, !7, i64 12620, !10, i64 13100, !10, i64 13104, !14, i64 13108, !10, i64 13112, !10, i64 13116, !10, i64 13120, !7, i64 13124}
!48 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !6, i64 24, !6, i64 32, !14, i64 40, !14, i64 44, !14, i64 48, !7, i64 52, !14, i64 140, !14, i64 144, !6, i64 152, !6, i64 160, !14, i64 168, !15, i64 172, !6, i64 176, !13, i64 184, !15, i64 192, !15, i64 193, !15, i64 194, !15, i64 195, !15, i64 196, !15, i64 197, !14, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !13, i64 288, !7, i64 296, !14, i64 304, !14, i64 308, !15, i64 312, !15, i64 313, !15, i64 314, !15, i64 315, !7, i64 316, !7, i64 828, !15, i64 908, !15, i64 909, !15, i64 910, !15, i64 911, !15, i64 912, !15, i64 913, !15, i64 914, !14, i64 916, !10, i64 920, !10, i64 924, !10, i64 928, !10, i64 932, !10, i64 936, !13, i64 940, !10, i64 948, !10, i64 952, !13, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5352, !14, i64 5432, !16, i64 5436, !32, i64 5440}
!49 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !14, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !13, i64 24, !13, i64 32, !10, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !13, i64 60, !14, i64 68, !14, i64 72, !13, i64 76, !13, i64 84, !13, i64 92, !13, i64 100, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !10, i64 148, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176, !14, i64 184, !15, i64 188, !15, i64 189, !15, i64 190, !14, i64 192, !14, i64 196, !7, i64 200}
!50 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !38, i64 28, !10, i64 44, !7, i64 48, !14, i64 432, !7, i64 436, !6, i64 504}
!51 = !{!"double", !7, i64 0}
!52 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!53 = !{!"long long", !7, i64 0}
!54 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!55 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !14, i64 4, !10, i64 8, !10, i64 12, !15, i64 16}
!56 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !25, i64 12, !25, i64 28}
!57 = !{!"_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, !15, i64 56, !25, i64 60, !6, i64 80, !6, i64 88, !14, i64 96, !13, i64 100}
!58 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!65 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!66 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !25, i64 16, !14, i64 32, !14, i64 36, !14, i64 40}
!67 = !{!"_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}
!68 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImPoolI10ImGuiTableE", !70, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!70 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !73, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!73 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!76 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !10, i64 4, !10, i64 8, !32, i64 16, !77, i64 32, !77, i64 48, !15, i64 64, !10, i64 68, !14, i64 72, !78, i64 76, !14, i64 3704, !15, i64 3708, !15, i64 3709, !15, i64 3710, !10, i64 3712, !6, i64 3720, !6, i64 3728}
!77 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!78 = !{!"_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, !79, i64 32}
!79 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !10, i64 3588, !10, i64 3592}
!80 = !{!"_ZTS6ImFont", !23, i64 0, !14, i64 16, !14, i64 20, !32, i64 24, !81, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !15, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !10, i64 104, !7, i64 108}
!81 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!82 = !{!"_ZTS21ImGuiComboPreviewData", !25, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!83 = !{!"_ZTS15ImGuiTextBuffer", !77, i64 0}
!84 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!85 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !77, i64 0}
!86 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !77, i64 0}
!87 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!88 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!89 = !{!"_ZTS18ImGuiMetricsConfig", !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 4, !10, i64 8, !10, i64 12}
!90 = !{!13, !14, i64 4}
!91 = !{!49, !14, i64 64}
!92 = !{!13, !14, i64 0}
!93 = !{!49, !14, i64 84}
!94 = !{!47, !10, i64 7368}
!95 = !{!49, !14, i64 68}
!96 = !{!49, !14, i64 72}
!97 = !{!47, !6, i64 7176}
!98 = !{!12, !20, i64 292}
!99 = !{!12, !16, i64 298}
!100 = !{!12, !14, i64 132}
!101 = !{!47, !10, i64 8048}
!102 = !{!47, !10, i64 7248}
!103 = !{!47, !10, i64 7692}
!104 = !{!47, !10, i64 7680}
!105 = !{!47, !54, i64 7716}
!106 = !{!47, !10, i64 7312}
!107 = !{!12, !14, i64 96}
!108 = !{!76, !7, i64 99}
!109 = !{!76, !6, i64 56}
!110 = !{!76, !15, i64 64}
!111 = !{!76, !6, i64 24}
!112 = !{!76, !10, i64 4}
!113 = !{!76, !10, i64 8}
!114 = !{!76, !10, i64 0}
!115 = !{!76, !14, i64 72}
!116 = !{!76, !7, i64 88}
!117 = !{!48, !15, i64 312}
!118 = !{!47, !10, i64 7268}
!119 = !{!47, !10, i64 7272}
!120 = !{!47, !53, i64 7280}
!121 = !{!76, !10, i64 16}
!122 = !{!76, !6, i64 40}
!123 = !{!7, !7, i64 0}
!124 = !{!47, !6, i64 6512}
!125 = !{!80, !14, i64 20}
!126 = !{!80, !14, i64 92}
!127 = !{!80, !14, i64 96}
!128 = !{!80, !14, i64 100}
!129 = !{!80, !6, i64 64}
!130 = !{!80, !6, i64 56}
!131 = !{!132, !14, i64 4}
!132 = !{!"_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}
!133 = !{!80, !14, i64 16}
!134 = !{!76, !15, i64 3710}
!135 = !{!76, !10, i64 68}
!136 = !{!76, !10, i64 3712}
!137 = !{!76, !6, i64 3720}
!138 = !{!76, !6, i64 3728}
!139 = !{!47, !15, i64 7261}
!140 = !{!47, !10, i64 13120}
!141 = !{!48, !14, i64 288}
!142 = !{!25, !14, i64 0}
!143 = !{!49, !14, i64 60}
!144 = !{!48, !14, i64 292}
!145 = !{!12, !14, i64 220}
!146 = !{!48, !15, i64 193}
!147 = !{!76, !15, i64 3709}
!148 = !{!48, !14, i64 940}
!149 = !{!48, !14, i64 944}
!150 = !{!76, !15, i64 3708}
!151 = !{!48, !15, i64 314}
!152 = !{!48, !15, i64 315}
!153 = !{!48, !15, i64 313}
!154 = !{!16, !16, i64 0}
!155 = !{!48, !10, i64 5440}
!156 = distinct !{!156, !157}
!157 = !{!"llvm.loop.mustprogress"}
!158 = !{!47, !15, i64 7260}
!159 = !{!48, !10, i64 948}
!160 = !{!76, !10, i64 92}
!161 = !{!47, !15, i64 201}
!162 = !{!48, !6, i64 256}
!163 = !{!76, !10, i64 80}
!164 = !{!76, !10, i64 84}
!165 = distinct !{!165, !157}
!166 = !{!76, !10, i64 48}
!167 = !{!32, !6, i64 8}
!168 = !{!32, !10, i64 0}
!169 = !{!76, !10, i64 32}
!170 = !{!171, !10, i64 0}
!171 = !{!"_ZTS26ImGuiInputTextCallbackData", !10, i64 0, !10, i64 4, !6, i64 8, !16, i64 16, !10, i64 20, !6, i64 24, !10, i64 32, !10, i64 36, !15, i64 40, !10, i64 44, !10, i64 48, !10, i64 52}
!172 = !{!171, !10, i64 4}
!173 = !{!171, !6, i64 8}
!174 = !{!171, !10, i64 20}
!175 = !{!171, !6, i64 24}
!176 = !{!171, !10, i64 32}
!177 = !{!171, !10, i64 36}
!178 = !{!171, !15, i64 40}
!179 = !{!76, !10, i64 76}
!180 = !{!171, !10, i64 44}
!181 = !{!171, !10, i64 48}
!182 = !{!171, !10, i64 52}
!183 = !{!25, !14, i64 4}
!184 = distinct !{!184, !157}
!185 = !{!38, !14, i64 12}
!186 = !{!38, !14, i64 4}
!187 = distinct !{!187, !157}
!188 = !{!12, !6, i64 640}
!189 = distinct !{!189, !157}
!190 = !{!48, !14, i64 16}
!191 = !{!76, !14, i64 3704}
!192 = !{!47, !15, i64 202}
!193 = !{!47, !15, i64 12524}
!194 = !{!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.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiInputTextCallbackData = type { 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.1 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.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.67 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [29 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #6

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #6

declare void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16), float noundef) local_unnamed_addr #6

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

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

declare void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef) local_unnamed_addr #6

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

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

declare void @_ZN5ImGui13ClearActiveIDEv() local_unnamed_addr #6

declare noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(937), ptr noundef, ptr noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) local_unnamed_addr #6

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

; 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 void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #3

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #6

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #6

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

; 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.ImVec2, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i16, align 2
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.ImVector.5, align 8
  %24 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %25 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %26 = alloca %struct.ImVec4, align 4
  %27 = alloca %struct.ImVec2, align 8
  %28 = alloca %struct.ImVec2, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 8
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec2, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %struct.ImRect, align 4
  %38 = alloca %struct.ImVec2, align 8
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca %struct.ImVec2, align 8
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca %struct.ImRect, align 4
  %43 = alloca %struct.ImRect, align 4
  %44 = alloca %struct.ImVec2, align 8
  %45 = alloca %struct.ImVec2, align 8
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImRect, align 4
  %48 = alloca %struct.ImRect, align 4
  %49 = alloca %struct.ImVec2, align 8
  %50 = alloca %struct.ImVec2, align 8
  %51 = alloca %struct.ImVec2, align 8
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImVec2, align 8
  %54 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %55 = getelementptr inbounds i8, ptr %54, i64 147
  %56 = load i8, ptr %55, align 1, !tbaa !5, !range !39, !noundef !40
  %57 = trunc nuw i8 %56 to i1
  br i1 %57, label %1391, label %58

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

62:                                               ; preds = %58
  tail call void @__assert_fail(ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 3940, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

63:                                               ; preds = %58
  %64 = and i32 %5, 128
  %.not888.not = icmp eq i32 %64, 0
  %65 = and i32 %5, 67108864
  %66 = icmp ne i32 %65, 0
  %67 = and i32 %5, 67108992
  %.not889 = icmp eq i32 %67, 67108992
  br i1 %.not889, label %68, label %69

68:                                               ; preds = %63
  tail call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 3941, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

69:                                               ; preds = %63
  %70 = and i32 %5, 64
  %.not890 = icmp eq i32 %70, 0
  %71 = and i32 %5, 1024
  %.not891 = icmp eq i32 %71, 0
  %72 = and i32 %5, 1088
  %.not892 = icmp eq i32 %72, 1088
  br i1 %.not892, label %73, label %74

73:                                               ; preds = %69
  tail call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 3942, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

74:                                               ; preds = %69
  %75 = load ptr, ptr @GImGui, align 8, !tbaa !41
  %76 = and i32 %5, 16384
  %77 = icmp ne i32 %76, 0
  %78 = and i32 %5, 32768
  %.not893 = icmp eq i32 %78, 0
  %79 = and i32 %5, 65536
  %80 = icmp eq i32 %79, 0
  %81 = and i32 %5, 262144
  %.not894 = icmp eq i32 %81, 0
  %82 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not894, %82
  br i1 %or.cond17, label %84, label %83

83:                                               ; preds = %74
  tail call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 3955, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

84:                                               ; preds = %74
  br i1 %66, label %85, label %86

85:                                               ; preds = %84
  tail call void @_ZN5ImGui10BeginGroupEv()
  br label %86

86:                                               ; preds = %85, %84
  %87 = tail call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(937) %54, ptr noundef %0, ptr noundef null)
  %88 = 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) #15
  %.sroa.0491.0.copyload = load <2 x float>, ptr %4, align 4
  %89 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  br i1 %66, label %90, label %94

90:                                               ; preds = %86
  %91 = getelementptr inbounds i8, ptr %75, i64 6520
  %92 = load float, ptr %91, align 8, !tbaa !42
  %93 = fmul float %92, 8.000000e+00
  br label %95

94:                                               ; preds = %86
  %.sroa.0492.4.vec.extract = extractelement <2 x float> %88, i64 1
  br label %95

95:                                               ; preds = %94, %90
  %96 = phi float [ %93, %90 ], [ %.sroa.0492.4.vec.extract, %94 ]
  %97 = getelementptr inbounds i8, ptr %75, i64 5524
  %98 = getelementptr inbounds i8, ptr %75, i64 5528
  %99 = load float, ptr %98, align 4, !tbaa !86
  %100 = tail call float @llvm.fmuladd.f32(float %99, float 2.000000e+00, float %96)
  %101 = tail call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %.sroa.0491.0.copyload, float noundef %89, float noundef %100)
  store <2 x float> %101, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #15
  %102 = extractelement <2 x float> %101, i64 0
  %.sroa.0492.0.vec.extract = extractelement <2 x float> %88, i64 0
  %103 = fcmp ogt float %.sroa.0492.0.vec.extract, 0.000000e+00
  %104 = extractelement <2 x float> %101, i64 1
  br i1 %103, label %105, label %109

105:                                              ; preds = %95
  %106 = getelementptr inbounds i8, ptr %75, i64 5548
  %107 = load float, ptr %106, align 4, !tbaa !87
  %108 = fadd float %.sroa.0492.0.vec.extract, %107
  br label %109

109:                                              ; preds = %95, %105
  %110 = phi float [ %108, %105 ], [ 0.000000e+00, %95 ]
  %111 = fadd float %102, %110
  %112 = getelementptr inbounds i8, ptr %9, i64 4
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %111, float noundef %104)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #15
  %113 = getelementptr inbounds i8, ptr %54, i64 216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #15
  %114 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %114, ptr %12, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #15
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #15
  %115 = 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> %115, 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) #15
  %.sroa.0462.0.copyload = load float, ptr %9, align 8, !tbaa !88
  %.sroa.11.0.copyload = load float, ptr %112, align 4, !tbaa !88
  br i1 %66, label %116, label %145

116:                                              ; preds = %109
  %117 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %87, ptr noundef nonnull %11, i32 noundef 1)
  br i1 %117, label %120, label %118

118:                                              ; preds = %116
  %119 = load float, ptr %98, align 4, !tbaa !86
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %119)
  call void @_ZN5ImGui8EndGroupEv()
  br label %1390

120:                                              ; preds = %116
  %121 = getelementptr inbounds i8, ptr %75, i64 7368
  %122 = load i32, ptr %121, align 8, !tbaa !89
  %123 = getelementptr inbounds i8, ptr %75, i64 5776
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %123)
  %124 = getelementptr inbounds i8, ptr %75, i64 5532
  %125 = load float, ptr %124, align 4, !tbaa !90
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %125)
  %126 = getelementptr inbounds i8, ptr %75, i64 5536
  %127 = load float, ptr %126, align 4, !tbaa !91
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %127)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #15
  %128 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  store <2 x float> %128, ptr %15, align 8
  %129 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2bi(ptr noundef %0, i32 noundef %87, ptr noundef nonnull align 4 dereferenceable(8) %15, i1 noundef zeroext true, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #15
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 2)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br i1 %129, label %.thread, label %144

.thread:                                          ; preds = %120
  %130 = getelementptr inbounds i8, ptr %75, i64 7176
  %131 = load ptr, ptr %130, align 8, !tbaa !92
  %132 = getelementptr inbounds i8, ptr %131, i64 216
  %133 = getelementptr inbounds i8, ptr %131, i64 292
  %134 = load i32, ptr %133, align 4, !tbaa !93
  %135 = shl nuw i32 1, %134
  %136 = getelementptr inbounds i8, ptr %131, i64 298
  %137 = load i16, ptr %136, align 2, !tbaa !94
  %138 = trunc i32 %135 to i16
  %139 = or i16 %137, %138
  store i16 %139, ptr %136, align 2, !tbaa !94
  %140 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %132, ptr noundef nonnull align 4 dereferenceable(8) %97)
  %141 = getelementptr inbounds i8, ptr %131, i64 132
  %142 = load float, ptr %141, align 4, !tbaa !95
  %143 = fsub float %.sroa.0462.0.copyload, %142
  br label %153

144:                                              ; preds = %120
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %1390

145:                                              ; preds = %109
  %146 = load float, ptr %98, align 4, !tbaa !86
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %146)
  %147 = and i32 %5, 268435456
  %.not895 = icmp eq i32 %147, 0
  br i1 %.not895, label %148, label %150

148:                                              ; preds = %145
  %149 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %87, ptr noundef nonnull %11, i32 noundef 1)
  br i1 %149, label %150, label %1390

150:                                              ; preds = %148, %145
  %151 = getelementptr inbounds i8, ptr %75, i64 7368
  %152 = load i32, ptr %151, align 8, !tbaa !89
  br label %153

153:                                              ; preds = %.thread, %150
  %.0818 = phi i32 [ %152, %150 ], [ %122, %.thread ]
  %.sroa.0462.1 = phi float [ %.sroa.0462.0.copyload, %150 ], [ %143, %.thread ]
  %.1817 = phi ptr [ %54, %150 ], [ %131, %.thread ]
  %154 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %87)
  br i1 %154, label %155, label %157

155:                                              ; preds = %153
  %156 = getelementptr inbounds i8, ptr %75, i64 8048
  store i32 1, ptr %156, align 8, !tbaa !96
  br label %157

157:                                              ; preds = %155, %153
  %158 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %87)
  %159 = and i32 %.0818, 256
  %.not896.not = icmp ne i32 %159, 0
  %160 = and i32 %.0818, 512
  %.not1075 = icmp eq i32 %160, 0
  br i1 %154, label %161, label %165

161:                                              ; preds = %157
  %162 = getelementptr inbounds i8, ptr %75, i64 1056
  %163 = load i8, ptr %162, align 8, !tbaa !97, !range !39, !noundef !40
  %164 = trunc nuw i8 %163 to i1
  br label %165

165:                                              ; preds = %161, %157
  %166 = phi i1 [ false, %157 ], [ %164, %161 ]
  %167 = getelementptr inbounds i8, ptr %75, i64 7248
  %168 = load i32, ptr %167, align 8, !tbaa !98
  %.not897 = icmp eq i32 %168, %87
  br i1 %.not897, label %181, label %169

169:                                              ; preds = %165
  %170 = getelementptr inbounds i8, ptr %75, i64 7692
  %171 = load i32, ptr %170, align 4, !tbaa !99
  %172 = icmp eq i32 %171, %87
  br i1 %172, label %181, label %173

173:                                              ; preds = %169
  %174 = getelementptr inbounds i8, ptr %75, i64 7680
  %175 = load i32, ptr %174, align 8, !tbaa !100
  %176 = icmp eq i32 %175, %87
  br i1 %176, label %177, label %181

177:                                              ; preds = %173
  %178 = getelementptr inbounds i8, ptr %75, i64 7716
  %179 = load i32, ptr %178, align 4, !tbaa !101
  %180 = icmp eq i32 %179, 2
  br label %181

181:                                              ; preds = %169, %177, %173, %165
  %182 = phi i1 [ false, %165 ], [ true, %169 ], [ false, %173 ], [ %180, %177 ]
  %183 = icmp ne ptr %158, null
  %or.cond = and i1 %66, %183
  br i1 %or.cond, label %184, label %195

184:                                              ; preds = %181
  %185 = icmp eq i32 %168, 0
  br i1 %185, label %186, label %191

186:                                              ; preds = %184
  %187 = getelementptr inbounds i8, ptr %75, i64 7312
  %188 = load i32, ptr %187, align 8, !tbaa !102
  %189 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.1817, i32 noundef 1)
  %190 = icmp eq i32 %188, %189
  %.pre = load i32, ptr %167, align 8, !tbaa !98
  br label %191

191:                                              ; preds = %186, %184
  %192 = phi i32 [ %.pre, %186 ], [ %168, %184 ]
  %.ph = phi i1 [ %190, %186 ], [ false, %184 ]
  %193 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.1817, i32 noundef 1)
  %194 = icmp eq i32 %192, %193
  %.pre1096 = load i32, ptr %167, align 8, !tbaa !98
  br label %195

195:                                              ; preds = %181, %191
  %196 = phi i32 [ %.pre1096, %191 ], [ %168, %181 ]
  %197 = phi i1 [ %.ph, %191 ], [ false, %181 ]
  %198 = phi i1 [ %194, %191 ], [ false, %181 ]
  %.not898 = icmp ne i32 %196, %87
  br i1 %.not898, label %199, label %202

199:                                              ; preds = %195
  %200 = and i32 %5, 16
  %.not899 = icmp ne i32 %200, 0
  %brmerge = select i1 %.not899, i1 true, i1 %182
  %201 = xor i1 %66, true
  %spec.select1028 = and i1 %brmerge, %201
  br label %202

202:                                              ; preds = %199, %195
  %203 = phi i1 [ false, %195 ], [ %spec.select1028, %199 ]
  br i1 %66, label %204, label %207

204:                                              ; preds = %202
  %205 = getelementptr inbounds i8, ptr %.1817, i64 96
  %206 = load float, ptr %205, align 4, !tbaa !103
  br label %207

207:                                              ; preds = %202, %204
  %208 = phi float [ %206, %204 ], [ 0x47EFFFFFE0000000, %202 ]
  br i1 %183, label %209, label %.thread1038

209:                                              ; preds = %207
  %210 = getelementptr inbounds i8, ptr %158, i64 99
  %211 = load i8, ptr %210, align 1, !tbaa !104
  %212 = xor i1 %66, true
  %213 = zext i1 %212 to i8
  %214 = icmp ne i8 %211, %213
  %brmerge931 = select i1 %166, i1 true, i1 %197
  %brmerge932 = select i1 %brmerge931, i1 true, i1 %182
  %215 = and i32 %.0818, 768
  %spec.select = icmp ne i32 %215, 0
  %spec.select1032 = select i1 %brmerge932, i1 true, i1 %spec.select
  %216 = select i1 %spec.select1032, i1 true, i1 %198
  br i1 %216, label %219, label %221

.thread1038:                                      ; preds = %207
  %brmerge9311039 = select i1 %166, i1 true, i1 %197
  %brmerge9321040 = select i1 %brmerge9311039, i1 true, i1 %182
  %217 = and i32 %.0818, 768
  %spec.select1041 = icmp ne i32 %217, 0
  %spec.select10321042 = select i1 %brmerge9321040, i1 true, i1 %spec.select1041
  %218 = select i1 %spec.select10321042, i1 true, i1 %198
  br i1 %218, label %219, label %280

219:                                              ; preds = %.thread1038, %209
  %spec.select10321046 = phi i1 [ %spec.select10321042, %.thread1038 ], [ %spec.select1032, %209 ]
  %220 = phi i1 [ false, %.thread1038 ], [ %214, %209 ]
  %brmerge933 = select i1 %.not898, i1 true, i1 %220
  br i1 %brmerge933, label %222, label %280

221:                                              ; preds = %209
  br i1 %214, label %222, label %.thread1050

222:                                              ; preds = %219, %221
  %223 = phi i8 [ 1, %219 ], [ 0, %221 ]
  %spec.select10321044 = phi i1 [ %spec.select10321046, %219 ], [ false, %221 ]
  %224 = phi i1 [ %220, %219 ], [ true, %221 ]
  %225 = getelementptr inbounds i8, ptr %75, i64 8408
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %225)
  %226 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #16
  %227 = trunc i64 %226 to i32
  %228 = getelementptr inbounds i8, ptr %75, i64 8456
  %229 = add nsw i32 %227, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %228, i32 noundef %229)
  %230 = getelementptr inbounds i8, ptr %75, i64 8464
  %231 = load ptr, ptr %230, align 8, !tbaa !105
  %232 = sext i32 %229 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %231, ptr nonnull align 1 %2, i64 %232, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #15
  store ptr null, ptr %16, align 8, !tbaa !41
  %233 = getelementptr inbounds i8, ptr %75, i64 8424
  %234 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %233, i32 noundef %234)
  %235 = getelementptr inbounds i8, ptr %75, i64 8440
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %235, i32 noundef 0)
  %236 = getelementptr inbounds i8, ptr %75, i64 8472
  store i8 0, ptr %236, align 8, !tbaa !106
  %237 = getelementptr inbounds i8, ptr %75, i64 8432
  %238 = load ptr, ptr %237, align 8, !tbaa !107
  %239 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %238, i32 noundef %3, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %16)
  %240 = getelementptr inbounds i8, ptr %75, i64 8412
  store i32 %239, ptr %240, align 4, !tbaa !108
  %241 = load ptr, ptr %16, align 8, !tbaa !41
  %242 = ptrtoint ptr %241 to i64
  %243 = ptrtoint ptr %2 to i64
  %244 = sub i64 %242, %243
  %245 = trunc i64 %244 to i32
  %246 = getelementptr inbounds i8, ptr %75, i64 8416
  store i32 %245, ptr %246, align 8, !tbaa !109
  %247 = load i32, ptr %225, align 8, !tbaa !110
  %248 = icmp ne i32 %247, %87
  %.not902 = select i1 %248, i1 true, i1 %224
  br i1 %.not902, label %250, label %249

249:                                              ; preds = %222
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %225)
  br label %256

250:                                              ; preds = %222
  store i32 %87, ptr %225, align 8, !tbaa !110
  %251 = getelementptr inbounds i8, ptr %75, i64 8480
  store float 0.000000e+00, ptr %251, align 8, !tbaa !111
  %252 = getelementptr inbounds i8, ptr %75, i64 8484
  %253 = xor i1 %66, true
  %254 = zext i1 %253 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef nonnull %252, i32 noundef %254)
  %255 = select i1 %253, i1 %.not896.not, i1 false
  %spec.select1033 = select i1 %255, i1 true, i1 %203
  br label %256

256:                                              ; preds = %250, %249
  %.0824 = phi i1 [ %203, %249 ], [ %spec.select1033, %250 ]
  %257 = and i32 %5, 8192
  %.not903 = icmp eq i32 %257, 0
  br i1 %.not903, label %260, label %258

258:                                              ; preds = %256
  %259 = getelementptr inbounds i8, ptr %75, i64 8496
  store i8 1, ptr %259, align 4, !tbaa !112
  br label %260

260:                                              ; preds = %258, %256
  br i1 %66, label %.thread1047, label %261

261:                                              ; preds = %260
  br i1 %.not1075, label %262, label %267

262:                                              ; preds = %261
  br i1 %166, label %263, label %.thread1047

263:                                              ; preds = %262
  %264 = getelementptr inbounds i8, ptr %75, i64 320
  %265 = load i8, ptr %264, align 8, !tbaa !113, !range !39, !noundef !40
  %266 = trunc nuw i8 %265 to i1
  br i1 %266, label %267, label %.thread1047

267:                                              ; preds = %263, %261
  br label %.thread1047

.thread1047:                                      ; preds = %260, %262, %263, %267
  %.1825 = phi i1 [ %.0824, %260 ], [ true, %267 ], [ %.0824, %263 ], [ %.0824, %262 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #15
  %.pre1097 = load i32, ptr %167, align 8, !tbaa !98
  %.not904 = icmp ne i32 %.pre1097, %87
  %brmerge936.not = and i1 %spec.select10321044, %.not904
  br i1 %brmerge936.not, label %268, label %.thread1050

268:                                              ; preds = %.thread1047
  %269 = load i32, ptr %225, align 8, !tbaa !110
  %270 = icmp eq i32 %269, %87
  br i1 %270, label %271, label %.critedge

.critedge:                                        ; preds = %268
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 4075, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

271:                                              ; preds = %268
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %87, ptr noundef nonnull %54)
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %87, ptr noundef nonnull %54)
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef nonnull %54)
  %272 = getelementptr inbounds i8, ptr %75, i64 7268
  %brmerge937.not = icmp eq i32 %67, 0
  %spec.select1080.v = select i1 %brmerge937.not, i32 3, i32 15
  %273 = load <2 x i32>, ptr %272, align 4, !tbaa !114
  %274 = insertelement <2 x i32> <i32 poison, i32 2>, i32 %spec.select1080.v, i64 0
  %275 = or <2 x i32> %273, %274
  store <2 x i32> %275, ptr %272, align 4, !tbaa !114
  %276 = getelementptr inbounds i8, ptr %75, i64 7280
  %277 = load i64, ptr %276, align 8, !tbaa !115
  %spec.select938.v = select i1 %66, i64 480, i64 384
  %spec.select938 = or i64 %277, %spec.select938.v
  store i64 %spec.select938, ptr %276, align 8, !tbaa !115
  %.not906 = icmp eq i32 %72, 0
  br i1 %.not906, label %.thread1050, label %278

278:                                              ; preds = %271
  %279 = or i64 %spec.select938, 1
  store i64 %279, ptr %276, align 8, !tbaa !115
  br label %.thread1050

280:                                              ; preds = %.thread1038, %219
  %.ph1118 = phi i32 [ %196, %.thread1038 ], [ %87, %219 ]
  %.ph1119 = phi i8 [ 0, %.thread1038 ], [ 1, %219 ]
  %281 = icmp eq i32 %.ph1118, %87
  %282 = icmp eq ptr %158, null
  %or.cond5 = and i1 %282, %281
  br i1 %or.cond5, label %283, label %.thread1050

283:                                              ; preds = %280
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %.thread1050

.thread1050:                                      ; preds = %.thread1047, %221, %278, %271, %283, %280
  %.08191128 = phi ptr [ %225, %278 ], [ %225, %271 ], [ null, %283 ], [ %158, %280 ], [ %158, %221 ], [ %225, %.thread1047 ]
  %.28261125 = phi i1 [ %.1825, %278 ], [ %.1825, %271 ], [ %203, %283 ], [ %203, %280 ], [ %203, %221 ], [ %.1825, %.thread1047 ]
  %284 = phi i8 [ %223, %278 ], [ %223, %271 ], [ %.ph1119, %283 ], [ %.ph1119, %280 ], [ 0, %221 ], [ %223, %.thread1047 ]
  %285 = load i32, ptr %167, align 8, !tbaa !98
  %286 = icmp eq i32 %285, %87
  br i1 %286, label %.thread1052, label %289

.thread1052:                                      ; preds = %.thread1050
  %287 = getelementptr inbounds i8, ptr %75, i64 1056
  %288 = load i8, ptr %287, align 8, !tbaa !97, !range !39, !noundef !40
  %.not1076 = xor i8 %284, 1
  %not.brmerge940 = and i8 %288, %.not1076
  br label %292

289:                                              ; preds = %.thread1050
  %290 = icmp ne ptr %.08191128, null
  %291 = select i1 %290, i1 %198, i1 false
  br label %292

292:                                              ; preds = %.thread1052, %289
  %.08201054 = phi i8 [ 0, %289 ], [ %not.brmerge940, %.thread1052 ]
  %293 = phi i1 [ %291, %289 ], [ true, %.thread1052 ]
  %294 = icmp ne ptr %.08191128, null
  br i1 %294, label %295, label %.thread1055

295:                                              ; preds = %292
  %296 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %spec.select941 = select i1 %296, i1 %293, i1 false
  %or.cond1030 = select i1 %77, i1 %293, i1 false
  br i1 %or.cond1030, label %297, label %.thread1055

297:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #15
  store ptr null, ptr %17, align 8, !tbaa !41
  %298 = getelementptr inbounds i8, ptr %.08191128, i64 16
  %299 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %298, i32 noundef %299)
  %300 = getelementptr inbounds i8, ptr %.08191128, i64 24
  %301 = load ptr, ptr %300, align 8, !tbaa !107
  %302 = load i32, ptr %298, align 8, !tbaa !116
  %303 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %301, i32 noundef %302, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %17)
  %304 = getelementptr inbounds i8, ptr %.08191128, i64 4
  store i32 %303, ptr %304, align 4, !tbaa !108
  %305 = load ptr, ptr %17, align 8, !tbaa !41
  %306 = ptrtoint ptr %305 to i64
  %307 = ptrtoint ptr %2 to i64
  %308 = sub i64 %306, %307
  %309 = trunc i64 %308 to i32
  %310 = getelementptr inbounds i8, ptr %.08191128, i64 8
  store i32 %309, ptr %310, align 8, !tbaa !109
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %311 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %312 = and i1 %spec.select941, %311
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #15
  br label %.thread1055

.thread1055:                                      ; preds = %292, %297, %295
  %.0830.in = phi i1 [ %312, %297 ], [ %spec.select941, %295 ], [ false, %292 ]
  %brmerge943 = select i1 %293, i1 true, i1 %.0830.in
  br i1 %brmerge943, label %317, label %313

313:                                              ; preds = %.thread1055
  %314 = load i32, ptr %167, align 8, !tbaa !98
  %315 = icmp eq i32 %314, %87
  %.not = xor i1 %77, true
  %316 = and i1 %315, %.not
  %or.cond944 = and i1 %294, %316
  br i1 %or.cond944, label %318, label %322

317:                                              ; preds = %.thread1055
  %.not.old = xor i1 %77, true
  %or.cond9.old = and i1 %294, %.not.old
  br i1 %or.cond9.old, label %318, label %322

318:                                              ; preds = %313, %317
  %319 = getelementptr inbounds i8, ptr %.08191128, i64 64
  %320 = load i8, ptr %319, align 8, !tbaa !106, !range !39, !noundef !40
  %321 = trunc nuw i8 %320 to i1
  br label %322

322:                                              ; preds = %318, %317, %313
  %323 = phi i1 [ false, %317 ], [ false, %313 ], [ %321, %318 ]
  %.not907 = icmp eq ptr %1, null
  br i1 %.not907, label %332, label %324

324:                                              ; preds = %322
  br i1 %323, label %325, label %328

325:                                              ; preds = %324
  %326 = getelementptr inbounds i8, ptr %.08191128, i64 40
  %327 = load ptr, ptr %326, align 8, !tbaa !117
  br label %328

328:                                              ; preds = %324, %325
  %329 = phi ptr [ %327, %325 ], [ %2, %324 ]
  %330 = load i8, ptr %329, align 1, !tbaa !118
  %331 = icmp eq i8 %330, 0
  br label %332

332:                                              ; preds = %328, %322
  %333 = phi i1 [ false, %322 ], [ %331, %328 ]
  %brmerge945 = select i1 %.not893, i1 true, i1 %333
  br i1 %brmerge945, label %364, label %334

334:                                              ; preds = %332
  %335 = getelementptr inbounds i8, ptr %75, i64 6512
  %336 = load ptr, ptr %335, align 8, !tbaa !119
  %337 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(110) %336, i16 noundef zeroext 42)
  %338 = getelementptr inbounds i8, ptr %75, i64 12144
  %339 = load ptr, ptr %335, align 8, !tbaa !119
  %340 = getelementptr inbounds i8, ptr %339, i64 20
  %341 = load float, ptr %340, align 4, !tbaa !120
  %342 = getelementptr inbounds i8, ptr %75, i64 12164
  store float %341, ptr %342, align 4, !tbaa !120
  %343 = getelementptr inbounds i8, ptr %339, i64 92
  %344 = getelementptr inbounds i8, ptr %75, i64 12236
  %345 = load <2 x float>, ptr %343, align 4, !tbaa !88
  store <2 x float> %345, ptr %344, align 4, !tbaa !88
  %346 = getelementptr inbounds i8, ptr %339, i64 100
  %347 = load float, ptr %346, align 4, !tbaa !121
  %348 = getelementptr inbounds i8, ptr %75, i64 12244
  store float %347, ptr %348, align 4, !tbaa !121
  %349 = getelementptr inbounds i8, ptr %339, i64 64
  %350 = load ptr, ptr %349, align 8, !tbaa !122
  %351 = getelementptr inbounds i8, ptr %75, i64 12208
  store ptr %350, ptr %351, align 8, !tbaa !122
  %352 = getelementptr inbounds i8, ptr %75, i64 12200
  store ptr %337, ptr %352, align 8, !tbaa !123
  %353 = getelementptr inbounds i8, ptr %337, i64 4
  %354 = load float, ptr %353, align 4, !tbaa !124
  %355 = getelementptr inbounds i8, ptr %75, i64 12160
  store float %354, ptr %355, align 8, !tbaa !126
  %356 = getelementptr inbounds i8, ptr %75, i64 12184
  %357 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %356)
  br i1 %357, label %358, label %.critedge11

358:                                              ; preds = %334
  %359 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %338)
  br i1 %359, label %360, label %.critedge11

360:                                              ; preds = %358
  %361 = getelementptr inbounds i8, ptr %75, i64 12168
  %362 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %361)
  br i1 %362, label %363, label %.critedge11

.critedge11:                                      ; preds = %358, %334, %360
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 4135, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

363:                                              ; preds = %360
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %338)
  br label %364

364:                                              ; preds = %332, %363
  %365 = load i32, ptr %167, align 8, !tbaa !98
  %366 = icmp eq i32 %365, %87
  br i1 %366, label %367, label %508

367:                                              ; preds = %364
  br i1 %294, label %369, label %368

368:                                              ; preds = %367
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 4143, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

369:                                              ; preds = %367
  %370 = getelementptr inbounds i8, ptr %.08191128, i64 8
  %371 = load i32, ptr %370, align 8, !tbaa !109
  %372 = getelementptr inbounds i8, ptr %.08191128, i64 3710
  store i8 0, ptr %372, align 2, !tbaa !127
  %373 = getelementptr inbounds i8, ptr %.08191128, i64 68
  store i32 %3, ptr %373, align 4, !tbaa !128
  %374 = getelementptr inbounds i8, ptr %.08191128, i64 3712
  store i32 %5, ptr %374, align 8, !tbaa !129
  %375 = getelementptr inbounds i8, ptr %.08191128, i64 3720
  store ptr %6, ptr %375, align 8, !tbaa !130
  %376 = getelementptr inbounds i8, ptr %.08191128, i64 3728
  store ptr %7, ptr %376, align 8, !tbaa !131
  %377 = getelementptr inbounds i8, ptr %75, i64 304
  %378 = load i8, ptr %377, align 8, !tbaa !97, !range !39, !noundef !40
  %379 = xor i8 %378, 1
  %380 = getelementptr inbounds i8, ptr %75, i64 7261
  store i8 %379, ptr %380, align 1, !tbaa !132
  %381 = getelementptr inbounds i8, ptr %75, i64 13120
  store i32 1, ptr %381, align 8, !tbaa !133
  %382 = getelementptr inbounds i8, ptr %75, i64 296
  %383 = load float, ptr %382, align 8, !tbaa !134
  %384 = load float, ptr %11, align 8, !tbaa !135
  %385 = fsub float %383, %384
  %386 = load float, ptr %97, align 4, !tbaa !136
  %387 = fsub float %385, %386
  %388 = getelementptr inbounds i8, ptr %.08191128, i64 72
  %389 = load float, ptr %388, align 8, !tbaa !111
  %390 = fadd float %387, %389
  br i1 %66, label %391, label %397

391:                                              ; preds = %369
  %392 = getelementptr inbounds i8, ptr %75, i64 300
  %393 = load float, ptr %392, align 4, !tbaa !137
  %394 = getelementptr inbounds i8, ptr %.1817, i64 220
  %395 = load float, ptr %394, align 4, !tbaa !138
  %396 = fsub float %393, %395
  br label %401

397:                                              ; preds = %369
  %398 = getelementptr inbounds i8, ptr %75, i64 6520
  %399 = load float, ptr %398, align 8, !tbaa !42
  %400 = fmul float %399, 5.000000e-01
  br label %401

401:                                              ; preds = %397, %391
  %402 = phi float [ %396, %391 ], [ %400, %397 ]
  %403 = getelementptr inbounds i8, ptr %75, i64 201
  %404 = load i8, ptr %403, align 1, !tbaa !139, !range !39, !noundef !40
  %405 = trunc nuw i8 %404 to i1
  br i1 %.28261125, label %411, label %406

406:                                              ; preds = %401
  %.not946 = xor i1 %154, true
  %brmerge947 = select i1 %.not946, i1 true, i1 %405
  br i1 %brmerge947, label %413, label %407

407:                                              ; preds = %406
  %408 = getelementptr inbounds i8, ptr %75, i64 1061
  %409 = load i8, ptr %408, align 1, !tbaa !97, !range !39, !noundef !40
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %413

411:                                              ; preds = %407, %401
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %412 = getelementptr inbounds i8, ptr %.08191128, i64 3709
  store i8 1, ptr %412, align 1, !tbaa !140
  br label %448

413:                                              ; preds = %406, %407
  %414 = select i1 %154, i1 %405, i1 false
  br i1 %414, label %415, label %420

415:                                              ; preds = %413
  %416 = getelementptr inbounds i8, ptr %75, i64 1061
  %417 = load i8, ptr %416, align 1, !tbaa !97, !range !39, !noundef !40
  %418 = trunc nuw i8 %417 to i1
  br i1 %418, label %419, label %420

419:                                              ; preds = %415
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef 2097164)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef 6291469)
  br label %448

420:                                              ; preds = %413, %415
  %421 = getelementptr inbounds i8, ptr %75, i64 1056
  %422 = load i8, ptr %421, align 8, !tbaa !97, !range !39, !noundef !40
  %423 = trunc nuw i8 %422 to i1
  br i1 %423, label %424, label %431

424:                                              ; preds = %420
  %425 = getelementptr inbounds i8, ptr %.08191128, i64 3709
  %426 = load i8, ptr %425, align 1, !tbaa !140, !range !39, !noundef !40
  %427 = trunc nuw i8 %426 to i1
  br i1 %427, label %431, label %428

428:                                              ; preds = %424
  br i1 %154, label %429, label %448

429:                                              ; preds = %428
  %430 = getelementptr inbounds i8, ptr %.08191128, i64 76
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.08191128, ptr noundef nonnull %430, float noundef %390, float noundef %402)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br label %448

431:                                              ; preds = %424, %420
  %432 = trunc nuw i8 %378 to i1
  br i1 %432, label %433, label %448

433:                                              ; preds = %431
  %434 = getelementptr inbounds i8, ptr %.08191128, i64 3709
  %435 = load i8, ptr %434, align 1, !tbaa !140, !range !39, !noundef !40
  %436 = trunc nuw i8 %435 to i1
  br i1 %436, label %448, label %437

437:                                              ; preds = %433
  %438 = getelementptr inbounds i8, ptr %75, i64 948
  %439 = load float, ptr %438, align 4, !tbaa !141
  %440 = fcmp une float %439, 0.000000e+00
  br i1 %440, label %445, label %441

441:                                              ; preds = %437
  %442 = getelementptr inbounds i8, ptr %75, i64 952
  %443 = load float, ptr %442, align 4, !tbaa !142
  %444 = fcmp une float %443, 0.000000e+00
  br i1 %444, label %445, label %448

445:                                              ; preds = %441, %437
  %446 = getelementptr inbounds i8, ptr %.08191128, i64 76
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.08191128, ptr noundef nonnull %446, float noundef %390, float noundef %402)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %447 = getelementptr inbounds i8, ptr %.08191128, i64 3708
  store i8 1, ptr %447, align 4, !tbaa !143
  br label %448

448:                                              ; preds = %419, %431, %433, %441, %445, %428, %429, %411
  %449 = getelementptr inbounds i8, ptr %.08191128, i64 3709
  %450 = load i8, ptr %449, align 1, !tbaa !140, !range !39, !noundef !40
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %452, label %456

452:                                              ; preds = %448
  %453 = load i8, ptr %377, align 8, !tbaa !97, !range !39, !noundef !40
  %454 = trunc nuw i8 %453 to i1
  br i1 %454, label %456, label %455

455:                                              ; preds = %452
  store i8 0, ptr %449, align 1, !tbaa !140
  br label %456

456:                                              ; preds = %455, %452, %448
  %457 = getelementptr inbounds i8, ptr %75, i64 320
  %458 = load i8, ptr %457, align 8, !tbaa !113, !range !39, !noundef !40
  %459 = trunc nuw i8 %458 to i1
  br i1 %459, label %460, label %465

460:                                              ; preds = %456
  %461 = getelementptr inbounds i8, ptr %75, i64 322
  %462 = load i8, ptr %461, align 2, !tbaa !144, !range !39, !noundef !40
  %463 = trunc nuw i8 %462 to i1
  %.not951 = xor i1 %463, true
  %464 = select i1 %463, i1 %405, i1 false
  br i1 %464, label %466, label %470

465:                                              ; preds = %456
  br i1 %405, label %466, label %470

466:                                              ; preds = %460, %465
  %467 = getelementptr inbounds i8, ptr %75, i64 323
  %468 = load i8, ptr %467, align 1, !tbaa !145, !range !39, !noundef !40
  %469 = trunc nuw i8 %468 to i1
  br label %470

470:                                              ; preds = %460, %465, %466
  %471 = phi i1 [ %.not951, %460 ], [ false, %465 ], [ %469, %466 ]
  br i1 %.not891, label %486, label %472

472:                                              ; preds = %470
  %473 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  %.not954 = xor i1 %473, true
  %brmerge955 = select i1 %.not954, i1 true, i1 %471
  br i1 %brmerge955, label %486, label %474

474:                                              ; preds = %472
  %475 = getelementptr inbounds i8, ptr %75, i64 321
  %476 = load i8, ptr %475, align 1, !tbaa !146, !range !39, !noundef !40
  %477 = trunc nuw i8 %476 to i1
  %brmerge956 = or i1 %77, %477
  br i1 %brmerge956, label %486, label %478

478:                                              ; preds = %474
  %479 = getelementptr inbounds i8, ptr %75, i64 5448
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %18) #15
  store i16 9, ptr %18, align 2, !tbaa !147
  %480 = call noundef zeroext i1 @_ZNK8ImVectorItE8containsERKt(ptr noundef nonnull align 8 dereferenceable(16) %479, ptr noundef nonnull align 2 dereferenceable(2) %18)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %18) #15
  br i1 %480, label %486, label %481

481:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #15
  store i32 9, ptr %19, align 4, !tbaa !114
  %482 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %19, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %482, label %483, label %485

483:                                              ; preds = %481
  %484 = load i32, ptr %19, align 4, !tbaa !114
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %484)
  br label %485

485:                                              ; preds = %483, %481
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #15
  br label %486

486:                                              ; preds = %474, %472, %478, %485, %470
  %487 = getelementptr inbounds i8, ptr %75, i64 5448
  %488 = load i32, ptr %487, align 8, !tbaa !148
  %489 = icmp sgt i32 %488, 0
  br i1 %489, label %490, label %508

490:                                              ; preds = %486
  %brmerge957 = or i1 %77, %471
  %brmerge958 = select i1 %brmerge957, i1 true, i1 %182
  br i1 %brmerge958, label %.loopexit1083, label %.lr.ph

.lr.ph:                                           ; preds = %490
  %491 = getelementptr inbounds i8, ptr %75, i64 321
  br label %492

492:                                              ; preds = %.lr.ph, %504
  %.08471086 = phi i32 [ 0, %.lr.ph ], [ %505, %504 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #15
  %493 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %487, i32 noundef %.08471086)
  %494 = load i16, ptr %493, align 2, !tbaa !147
  %495 = zext i16 %494 to i32
  store i32 %495, ptr %20, align 4, !tbaa !114
  %496 = icmp eq i16 %494, 9
  br i1 %496, label %497, label %500

497:                                              ; preds = %492
  %498 = load i8, ptr %491, align 1, !tbaa !146, !range !39, !noundef !40
  %499 = trunc nuw i8 %498 to i1
  br i1 %499, label %504, label %500

500:                                              ; preds = %497, %492
  %501 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %20, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %501, label %502, label %504

502:                                              ; preds = %500
  %503 = load i32, ptr %20, align 4, !tbaa !114
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %503)
  br label %504

504:                                              ; preds = %500, %502, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #15
  %505 = add nuw nsw i32 %.08471086, 1
  %506 = load i32, ptr %487, align 8, !tbaa !148
  %507 = icmp slt i32 %505, %506
  br i1 %507, label %492, label %.loopexit1083, !llvm.loop !149

.loopexit1083:                                    ; preds = %504, %490
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %487, i32 noundef 0)
  br label %508

508:                                              ; preds = %486, %.loopexit1083, %364
  %.0845 = phi i32 [ 0, %364 ], [ %371, %.loopexit1083 ], [ %371, %486 ]
  %509 = load i32, ptr %167, align 8, !tbaa !98
  %510 = icmp eq i32 %509, %87
  br i1 %510, label %511, label %817

511:                                              ; preds = %508
  %512 = getelementptr inbounds i8, ptr %75, i64 7260
  %513 = load i8, ptr %512, align 4, !tbaa !151, !range !39, !noundef !40
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %.thread1147, label %515

515:                                              ; preds = %511
  %516 = trunc nuw i8 %.08201054 to i1
  br i1 %516, label %.thread1147, label %517

517:                                              ; preds = %515
  br i1 %294, label %519, label %518

518:                                              ; preds = %517
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 4224, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

519:                                              ; preds = %517
  %520 = getelementptr inbounds i8, ptr %75, i64 956
  %521 = load i32, ptr %520, align 4, !tbaa !152
  %522 = call noundef i32 @_ZN5ImGui20GetMergedKeyModFlagsEv()
  %523 = icmp eq i32 %521, %522
  br i1 %523, label %525, label %524

524:                                              ; preds = %519
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 4225, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

525:                                              ; preds = %519
  %526 = load float, ptr %98, align 4, !tbaa !86
  %527 = fsub float %.sroa.11.0.copyload, %526
  %528 = getelementptr inbounds i8, ptr %75, i64 6520
  %529 = load float, ptr %528, align 8, !tbaa !42
  %530 = fdiv float %527, %529
  %531 = fptosi float %530 to i32
  %532 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %531, i32 noundef 1)
  %533 = getelementptr inbounds i8, ptr %.08191128, i64 76
  %534 = getelementptr inbounds i8, ptr %.08191128, i64 92
  store i32 %532, ptr %534, align 4, !tbaa !153
  %535 = getelementptr inbounds i8, ptr %75, i64 321
  %536 = load i8, ptr %535, align 1, !tbaa !146, !range !39, !noundef !40
  %537 = trunc nuw i8 %536 to i1
  %538 = select i1 %537, i32 4194304, i32 0
  %539 = getelementptr inbounds i8, ptr %75, i64 201
  %540 = load i8, ptr %539, align 1, !tbaa !139, !range !39, !noundef !40
  %541 = trunc nuw i8 %540 to i1
  br i1 %541, label %545, label %542

542:                                              ; preds = %525
  %543 = getelementptr inbounds i8, ptr %75, i64 322
  %544 = getelementptr inbounds i8, ptr %75, i64 320
  %.in = load i8, ptr %544, align 2, !tbaa !97, !range !39, !noundef !40
  %.pre1098 = load i32, ptr %520, align 4, !tbaa !152
  br label %559

545:                                              ; preds = %525
  %546 = load i32, ptr %520, align 4, !tbaa !152
  %547 = icmp eq i32 %546, 10
  %548 = getelementptr inbounds i8, ptr %75, i64 322
  %549 = getelementptr inbounds i8, ptr %75, i64 320
  %.in1061 = load i8, ptr %548, align 2, !tbaa !97, !range !39, !noundef !40
  %550 = getelementptr inbounds i8, ptr %75, i64 323
  %551 = load i8, ptr %550, align 1, !tbaa !145, !range !39, !noundef !40
  %552 = trunc nuw i8 %551 to i1
  br i1 %552, label %553, label %559

553:                                              ; preds = %545
  %554 = load i8, ptr %549, align 8, !tbaa !113, !range !39, !noundef !40
  %555 = trunc nuw i8 %554 to i1
  br i1 %555, label %559, label %556

556:                                              ; preds = %553
  %557 = trunc nuw i8 %.in1061 to i1
  %558 = xor i1 %557, true
  br label %559

559:                                              ; preds = %542, %556, %553, %545
  %560 = phi i32 [ %546, %553 ], [ %546, %545 ], [ %.pre1098, %542 ], [ %546, %556 ]
  %.v1078 = phi i32 [ 8, %553 ], [ 8, %545 ], [ 1, %542 ], [ 8, %556 ]
  %.in1077 = phi i8 [ %.in1061, %553 ], [ %.in1061, %545 ], [ %.in, %542 ], [ %.in1061, %556 ]
  %561 = phi ptr [ %549, %553 ], [ %549, %545 ], [ %544, %542 ], [ %549, %556 ]
  %562 = phi ptr [ %548, %553 ], [ %548, %545 ], [ %543, %542 ], [ %548, %556 ]
  %563 = phi i1 [ %547, %553 ], [ %547, %545 ], [ false, %542 ], [ %547, %556 ]
  %564 = phi i1 [ false, %553 ], [ false, %545 ], [ false, %542 ], [ %558, %556 ]
  %565 = trunc nuw i8 %.in1077 to i1
  %566 = icmp eq i32 %560, 1
  %567 = icmp eq i32 %560, 2
  %568 = icmp eq i32 %560, %.v1078
  br i1 %568, label %569, label %571

569:                                              ; preds = %559
  %570 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 19, i1 noundef zeroext true)
  br i1 %570, label %576, label %571

571:                                              ; preds = %569, %559
  br i1 %567, label %572, label %579

572:                                              ; preds = %571
  %573 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  %574 = and i1 %.not893, %573
  %575 = xor i1 %574, true
  %brmerge961 = or i1 %77, %575
  %.not967 = xor i1 %66, true
  %brmerge968 = or i1 %brmerge961, %.not967
  %not.brmerge961 = xor i1 %brmerge961, true
  br i1 %brmerge968, label %579, label %577

576:                                              ; preds = %569
  %.not893.not962 = xor i1 %.not893, true
  %brmerge963 = or i1 %77, %.not893.not962
  %.not964 = xor i1 %66, true
  %brmerge965 = or i1 %brmerge963, %.not964
  %not.brmerge963 = xor i1 %brmerge963, true
  br i1 %brmerge965, label %.thread1062, label %577

577:                                              ; preds = %572, %576
  %578 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br label %579

579:                                              ; preds = %572, %577, %571
  %580 = phi i1 [ %not.brmerge961, %572 ], [ false, %571 ], [ %578, %577 ]
  br i1 %568, label %.thread1062, label %583

.thread1062:                                      ; preds = %576, %579
  %581 = phi i1 [ %580, %579 ], [ %not.brmerge963, %576 ]
  %582 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 17, i1 noundef zeroext true)
  br i1 %582, label %587, label %583

583:                                              ; preds = %.thread1062, %579
  %584 = phi i1 [ %581, %.thread1062 ], [ %580, %579 ]
  br i1 %566, label %585, label %592

585:                                              ; preds = %583
  %586 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  %brmerge972.demorgan = and i1 %.not893, %586
  %brmerge974.not = and i1 %66, %brmerge972.demorgan
  br i1 %brmerge974.not, label %589, label %592

587:                                              ; preds = %.thread1062
  %588 = and i32 %5, 67141632
  %brmerge978.not = icmp eq i32 %588, 67108864
  br i1 %brmerge978.not, label %589, label %.thread1063

589:                                              ; preds = %587, %585
  %590 = phi i1 [ %581, %587 ], [ %584, %585 ]
  %591 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br label %592

592:                                              ; preds = %585, %589, %583
  %593 = phi i1 [ %584, %585 ], [ %584, %583 ], [ %590, %589 ]
  %594 = phi i1 [ %brmerge972.demorgan, %585 ], [ false, %583 ], [ %591, %589 ]
  br i1 %568, label %.thread1063, label %598

.thread1063:                                      ; preds = %587, %592
  %595 = phi i1 [ %594, %592 ], [ %.not893, %587 ]
  %596 = phi i1 [ %593, %592 ], [ %581, %587 ]
  %597 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 18, i1 noundef zeroext true)
  br i1 %597, label %603, label %598

598:                                              ; preds = %.thread1063, %592
  %599 = phi i1 [ %595, %.thread1063 ], [ %594, %592 ]
  %600 = phi i1 [ %596, %.thread1063 ], [ %593, %592 ]
  br i1 %567, label %601, label %607

601:                                              ; preds = %598
  %602 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  br i1 %602, label %603, label %607

603:                                              ; preds = %601, %.thread1063
  %604 = phi i1 [ %599, %601 ], [ %595, %.thread1063 ]
  %605 = phi i1 [ %600, %601 ], [ %596, %.thread1063 ]
  %606 = xor i1 %77, true
  br label %607

607:                                              ; preds = %603, %601, %598
  %608 = phi i1 [ %599, %601 ], [ %599, %598 ], [ %604, %603 ]
  %609 = phi i1 [ %600, %601 ], [ %600, %598 ], [ %605, %603 ]
  %610 = phi i1 [ false, %601 ], [ false, %598 ], [ %606, %603 ]
  br i1 %568, label %611, label %615

611:                                              ; preds = %607
  %612 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  %not. = xor i1 %77, true
  %613 = and i1 %612, %not.
  %spec.select1034 = and i1 %80, %613
  %614 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 20, i1 noundef zeroext true)
  br i1 %614, label %619, label %615

615:                                              ; preds = %607, %611
  %616 = phi i1 [ %spec.select1034, %611 ], [ false, %607 ]
  br i1 %563, label %617, label %621

617:                                              ; preds = %615
  %618 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  br i1 %618, label %._crit_edge1112, label %621

._crit_edge1112:                                  ; preds = %617
  %.pre1113 = xor i1 %77, true
  br label %619

619:                                              ; preds = %._crit_edge1112, %611
  %not.1079.pre-phi = phi i1 [ %.pre1113, %._crit_edge1112 ], [ %not., %611 ]
  %620 = phi i1 [ %616, %._crit_edge1112 ], [ %spec.select1034, %611 ]
  %spec.select981 = and i1 %80, %not.1079.pre-phi
  br label %621

621:                                              ; preds = %619, %617, %615
  %622 = phi i1 [ %616, %617 ], [ %616, %615 ], [ %620, %619 ]
  %623 = phi i1 [ false, %617 ], [ false, %615 ], [ %spec.select981, %619 ]
  %624 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 1, i1 noundef zeroext true)
  br i1 %624, label %625, label %628

625:                                              ; preds = %621
  %626 = select i1 %565, i32 2097164, i32 2097152
  %spec.select982 = select i1 %564, i32 2097156, i32 %626
  %627 = or disjoint i32 %spec.select982, %538
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %627)
  br label %814

628:                                              ; preds = %621
  %629 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 2, i1 noundef zeroext true)
  br i1 %629, label %630, label %633

630:                                              ; preds = %628
  %631 = select i1 %565, i32 2097165, i32 2097153
  %spec.select983 = select i1 %564, i32 2097157, i32 %631
  %632 = or disjoint i32 %spec.select983, %538
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %632)
  br label %814

633:                                              ; preds = %628
  %634 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  %brmerge986.not = and i1 %66, %634
  br i1 %brmerge986.not, label %635, label %647

635:                                              ; preds = %633
  %636 = load i8, ptr %561, align 8, !tbaa !113, !range !39, !noundef !40
  %637 = trunc nuw i8 %636 to i1
  br i1 %637, label %638, label %644

638:                                              ; preds = %635
  %639 = getelementptr inbounds i8, ptr %.1817, i64 96
  %640 = load float, ptr %639, align 4, !tbaa !103
  %641 = load float, ptr %528, align 8, !tbaa !42
  %642 = fsub float %640, %641
  %643 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %642, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.1817, float noundef %643)
  br label %814

644:                                              ; preds = %635
  %645 = select i1 %564, i32 2097158, i32 2097154
  %646 = or disjoint i32 %645, %538
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %646)
  br label %814

647:                                              ; preds = %633
  %648 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  %brmerge989.not = and i1 %66, %648
  br i1 %brmerge989.not, label %649, label %662

649:                                              ; preds = %647
  %650 = load i8, ptr %561, align 8, !tbaa !113, !range !39, !noundef !40
  %651 = trunc nuw i8 %650 to i1
  br i1 %651, label %652, label %659

652:                                              ; preds = %649
  %653 = getelementptr inbounds i8, ptr %.1817, i64 96
  %654 = load float, ptr %653, align 4, !tbaa !103
  %655 = load float, ptr %528, align 8, !tbaa !42
  %656 = fadd float %654, %655
  %657 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %658 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %656, float noundef %657)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.1817, float noundef %658)
  br label %814

659:                                              ; preds = %649
  %660 = select i1 %564, i32 2097159, i32 2097155
  %661 = or disjoint i32 %660, %538
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %661)
  br label %814

662:                                              ; preds = %647
  %663 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 5, i1 noundef zeroext true)
  %brmerge992.not = and i1 %66, %663
  br i1 %brmerge992.not, label %664, label %670

664:                                              ; preds = %662
  %665 = or disjoint i32 %538, 2097166
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %665)
  %666 = sitofp i32 %532 to float
  %667 = load float, ptr %528, align 8, !tbaa !42
  %668 = fneg float %666
  %669 = call float @llvm.fmuladd.f32(float %668, float %667, float %208)
  br label %814

670:                                              ; preds = %662
  %671 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 6, i1 noundef zeroext true)
  %brmerge995.demorgan = and i1 %66, %671
  br i1 %brmerge995.demorgan, label %672, label %677

672:                                              ; preds = %670
  %673 = or disjoint i32 %538, 2097167
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %673)
  %674 = sitofp i32 %532 to float
  %675 = load float, ptr %528, align 8, !tbaa !42
  %676 = call float @llvm.fmuladd.f32(float %674, float %675, float %208)
  br label %814

677:                                              ; preds = %670
  %678 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 7, i1 noundef zeroext true)
  br i1 %678, label %679, label %683

679:                                              ; preds = %677
  %680 = load i8, ptr %561, align 8, !tbaa !113, !range !39, !noundef !40
  %681 = trunc nuw i8 %680 to i1
  %.v912 = select i1 %681, i32 2097158, i32 2097156
  %682 = or disjoint i32 %.v912, %538
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %682)
  br label %814

683:                                              ; preds = %677
  %684 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 8, i1 noundef zeroext true)
  br i1 %684, label %685, label %689

685:                                              ; preds = %683
  %686 = load i8, ptr %561, align 8, !tbaa !113, !range !39, !noundef !40
  %687 = trunc nuw i8 %686 to i1
  %.v = select i1 %687, i32 2097159, i32 2097157
  %688 = or disjoint i32 %.v, %538
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %688)
  br label %814

689:                                              ; preds = %683
  %690 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  %.not996 = xor i1 %690, true
  %brmerge997 = or i1 %77, %.not996
  br i1 %brmerge997, label %693, label %691

691:                                              ; preds = %689
  %692 = or disjoint i32 %538, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %692)
  br label %814

693:                                              ; preds = %689
  %694 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 11, i1 noundef zeroext true)
  %.not998 = xor i1 %694, true
  %brmerge999 = or i1 %77, %.not998
  br i1 %brmerge999, label %711, label %695

695:                                              ; preds = %693
  %696 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br i1 %696, label %709, label %697

697:                                              ; preds = %695
  br i1 %565, label %.sink.split, label %698

698:                                              ; preds = %697
  br i1 %541, label %699, label %709

699:                                              ; preds = %698
  %700 = getelementptr inbounds i8, ptr %75, i64 323
  %701 = load i8, ptr %700, align 1, !tbaa !145, !range !39, !noundef !40
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %709

703:                                              ; preds = %699
  %704 = load i8, ptr %562, align 2, !tbaa !144, !range !39, !noundef !40
  %705 = trunc nuw i8 %704 to i1
  br i1 %705, label %709, label %706

706:                                              ; preds = %703
  %707 = load i8, ptr %561, align 8, !tbaa !113, !range !39, !noundef !40
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %709, label %.sink.split

.sink.split:                                      ; preds = %706, %697
  %.sink = phi i32 [ 6291468, %697 ], [ 6291460, %706 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %.sink)
  br label %709

709:                                              ; preds = %.sink.split, %706, %703, %699, %698, %695
  %710 = or disjoint i32 %538, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %710)
  br label %814

711:                                              ; preds = %693
  %712 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 13, i1 noundef zeroext true)
  br i1 %712, label %715, label %713

713:                                              ; preds = %711
  %714 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 15, i1 noundef zeroext true)
  br i1 %714, label %715, label %727

715:                                              ; preds = %713, %711
  br i1 %66, label %716, label %814

716:                                              ; preds = %715
  %717 = and i32 %5, 2048
  %.not911 = icmp eq i32 %717, 0
  %718 = load i8, ptr %561, align 8, !tbaa !113, !range !39, !noundef !40
  %719 = trunc nuw i8 %718 to i1
  br i1 %.not911, label %.critedge1001, label %720

720:                                              ; preds = %716
  br i1 %719, label %721, label %814

.critedge1001:                                    ; preds = %716
  %brmerge1002 = or i1 %77, %719
  %.mux1004 = select i1 %719, i8 1, i8 %.08201054
  br i1 %brmerge1002, label %814, label %722

721:                                              ; preds = %720
  br i1 %77, label %814, label %722

722:                                              ; preds = %.critedge1001, %721
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #15
  store i32 10, ptr %21, align 4, !tbaa !114
  %723 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %21, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %723, label %724, label %726

724:                                              ; preds = %722
  %725 = load i32, ptr %21, align 4, !tbaa !114
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %725)
  br label %726

726:                                              ; preds = %724, %722
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #15
  br label %814

727:                                              ; preds = %713
  %728 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 14, i1 noundef zeroext true)
  br i1 %728, label %814, label %729

729:                                              ; preds = %727
  %brmerge1005 = or i1 %622, %623
  br i1 %brmerge1005, label %730, label %731

730:                                              ; preds = %729
  %.mux1006 = select i1 %622, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128, i32 noundef %.mux1006)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br label %814

731:                                              ; preds = %729
  br i1 %568, label %732, label %736

732:                                              ; preds = %731
  %733 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 16, i1 noundef zeroext true)
  br i1 %733, label %734, label %736

734:                                              ; preds = %732
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %735 = getelementptr inbounds i8, ptr %.08191128, i64 3708
  store i8 1, ptr %735, align 4, !tbaa !143
  br label %814

736:                                              ; preds = %732, %731
  %brmerge1007 = or i1 %608, %609
  br i1 %brmerge1007, label %737, label %783

737:                                              ; preds = %736
  %738 = getelementptr inbounds i8, ptr %75, i64 264
  %739 = load ptr, ptr %738, align 8, !tbaa !154
  %.not910 = icmp eq ptr %739, null
  br i1 %.not910, label %776, label %740

740:                                              ; preds = %737
  %741 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br i1 %741, label %742, label %748

742:                                              ; preds = %740
  %743 = getelementptr inbounds i8, ptr %.08191128, i64 80
  %744 = load i32, ptr %743, align 4, !tbaa !155
  %745 = getelementptr inbounds i8, ptr %.08191128, i64 84
  %746 = load i32, ptr %745, align 4, !tbaa !156
  %747 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %744, i32 noundef %746)
  br label %748

748:                                              ; preds = %740, %742
  %749 = phi i32 [ %747, %742 ], [ 0, %740 ]
  %750 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br i1 %750, label %751, label %757

751:                                              ; preds = %748
  %752 = getelementptr inbounds i8, ptr %.08191128, i64 80
  %753 = load i32, ptr %752, align 4, !tbaa !155
  %754 = getelementptr inbounds i8, ptr %.08191128, i64 84
  %755 = load i32, ptr %754, align 4, !tbaa !156
  %756 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %753, i32 noundef %755)
  br label %760

757:                                              ; preds = %748
  %758 = getelementptr inbounds i8, ptr %.08191128, i64 4
  %759 = load i32, ptr %758, align 4, !tbaa !108
  br label %760

760:                                              ; preds = %757, %751
  %761 = phi i32 [ %756, %751 ], [ %759, %757 ]
  %762 = getelementptr inbounds i8, ptr %.08191128, i64 24
  %763 = load ptr, ptr %762, align 8, !tbaa !107
  %764 = sext i32 %749 to i64
  %765 = getelementptr inbounds i16, ptr %763, i64 %764
  %766 = sext i32 %761 to i64
  %767 = getelementptr inbounds i16, ptr %763, i64 %766
  %768 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %765, ptr noundef %767)
  %769 = add nsw i32 %768, 1
  %770 = sext i32 %769 to i64
  %771 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %770)
  %772 = load ptr, ptr %762, align 8, !tbaa !107
  %773 = getelementptr inbounds i16, ptr %772, i64 %764
  %774 = getelementptr inbounds i16, ptr %772, i64 %766
  %775 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %771, i32 noundef %769, ptr noundef %773, ptr noundef %774)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %771)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %771)
  br label %776

776:                                              ; preds = %760, %737
  br i1 %609, label %777, label %814

777:                                              ; preds = %776
  %778 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br i1 %778, label %780, label %779

779:                                              ; preds = %777
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br label %780

780:                                              ; preds = %779, %777
  %781 = getelementptr inbounds i8, ptr %.08191128, i64 3708
  store i8 1, ptr %781, align 4, !tbaa !143
  %782 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.08191128, ptr noundef nonnull %533)
  br label %814

783:                                              ; preds = %736
  br i1 %610, label %784, label %814

784:                                              ; preds = %783
  %785 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not908 = icmp eq ptr %785, null
  br i1 %.not908, label %814, label %786

786:                                              ; preds = %784
  %787 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %785) #16
  %788 = shl i64 %787, 32
  %sext = add i64 %788, 4294967296
  %789 = ashr exact i64 %sext, 31
  %790 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %789)
  %791 = load i8, ptr %785, align 1, !tbaa !118
  %.not9091087 = icmp eq i8 %791, 0
  br i1 %.not9091087, label %.loopexit1081.thread, label %.lr.ph1090

.loopexit1081.thread:                             ; preds = %786
  store i16 0, ptr %790, align 2, !tbaa !147
  br label %813

.lr.ph1090:                                       ; preds = %786, %805
  %.08501089 = phi i32 [ %.1851, %805 ], [ 0, %786 ]
  %.08531088 = phi ptr [ %794, %805 ], [ %785, %786 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #15
  %792 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %22, ptr noundef nonnull %.08531088, ptr noundef null)
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds i8, ptr %.08531088, i64 %793
  %795 = load i32, ptr %22, align 4, !tbaa !114
  %796 = icmp eq i32 %795, 0
  br i1 %796, label %.thread1065, label %797

.thread1065:                                      ; preds = %.lr.ph1090
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #15
  br label %.loopexit1081

797:                                              ; preds = %.lr.ph1090
  %798 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %22, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 5)
  br i1 %798, label %799, label %805, !llvm.loop !157

799:                                              ; preds = %797
  %800 = load i32, ptr %22, align 4, !tbaa !114
  %801 = trunc i32 %800 to i16
  %802 = add nsw i32 %.08501089, 1
  %803 = sext i32 %.08501089 to i64
  %804 = getelementptr inbounds i16, ptr %790, i64 %803
  store i16 %801, ptr %804, align 2, !tbaa !147
  br label %805

805:                                              ; preds = %797, %799
  %.1851 = phi i32 [ %802, %799 ], [ %.08501089, %797 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #15
  %806 = load i8, ptr %794, align 1, !tbaa !118
  %.not909 = icmp eq i8 %806, 0
  br i1 %.not909, label %.loopexit1081, label %.lr.ph1090

.loopexit1081:                                    ; preds = %805, %.thread1065
  %.08501085 = phi i32 [ %.08501089, %.thread1065 ], [ %.1851, %805 ]
  %807 = sext i32 %.08501085 to i64
  %808 = getelementptr inbounds i16, ptr %790, i64 %807
  store i16 0, ptr %808, align 2, !tbaa !147
  %809 = icmp sgt i32 %.08501085, 0
  br i1 %809, label %810, label %813

810:                                              ; preds = %.loopexit1081
  %811 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.08191128, ptr noundef nonnull %533, ptr noundef nonnull %790, i32 noundef %.08501085)
  %812 = getelementptr inbounds i8, ptr %.08191128, i64 3708
  store i8 1, ptr %812, align 4, !tbaa !143
  br label %813

813:                                              ; preds = %.loopexit1081.thread, %810, %.loopexit1081
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %790)
  br label %814

814:                                              ; preds = %784, %813, %727, %726, %721, %720, %715, %.critedge1001, %630, %659, %652, %672, %685, %709, %734, %783, %776, %780, %730, %691, %679, %664, %638, %644, %625
  %.0848 = phi i1 [ false, %625 ], [ false, %630 ], [ false, %638 ], [ false, %644 ], [ false, %652 ], [ false, %659 ], [ false, %664 ], [ false, %672 ], [ false, %679 ], [ false, %685 ], [ false, %730 ], [ false, %734 ], [ false, %780 ], [ false, %776 ], [ false, %783 ], [ false, %709 ], [ false, %691 ], [ false, %.critedge1001 ], [ false, %715 ], [ false, %720 ], [ false, %721 ], [ false, %726 ], [ true, %727 ], [ false, %813 ], [ false, %784 ]
  %.1835 = phi i8 [ 0, %625 ], [ 0, %630 ], [ 0, %638 ], [ 0, %644 ], [ 0, %652 ], [ 0, %659 ], [ 0, %664 ], [ 0, %672 ], [ 0, %679 ], [ 0, %685 ], [ 0, %730 ], [ 0, %734 ], [ 0, %780 ], [ 0, %776 ], [ 0, %783 ], [ 0, %709 ], [ 0, %691 ], [ %718, %.critedge1001 ], [ 1, %715 ], [ 1, %720 ], [ 0, %721 ], [ 0, %726 ], [ 0, %727 ], [ 0, %813 ], [ 0, %784 ]
  %.0827 = phi float [ %208, %625 ], [ %208, %630 ], [ %208, %638 ], [ %208, %644 ], [ %208, %652 ], [ %208, %659 ], [ %669, %664 ], [ %676, %672 ], [ %208, %679 ], [ %208, %685 ], [ %208, %730 ], [ %208, %734 ], [ %208, %780 ], [ %208, %776 ], [ %208, %783 ], [ %208, %709 ], [ %208, %691 ], [ %208, %.critedge1001 ], [ %208, %715 ], [ %208, %720 ], [ %208, %721 ], [ %208, %726 ], [ %208, %727 ], [ %208, %813 ], [ %208, %784 ]
  %.2822 = phi i8 [ %.08201054, %625 ], [ %.08201054, %630 ], [ %.08201054, %638 ], [ %.08201054, %644 ], [ %.08201054, %652 ], [ %.08201054, %659 ], [ %.08201054, %664 ], [ %.08201054, %672 ], [ %.08201054, %679 ], [ %.08201054, %685 ], [ %.08201054, %730 ], [ %.08201054, %734 ], [ %.08201054, %780 ], [ %.08201054, %776 ], [ %.08201054, %783 ], [ %.08201054, %709 ], [ %.08201054, %691 ], [ %.mux1004, %.critedge1001 ], [ 1, %715 ], [ 1, %720 ], [ %.08201054, %721 ], [ %.08201054, %726 ], [ 1, %727 ], [ %.08201054, %813 ], [ %.08201054, %784 ]
  %815 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  %816 = select i1 %815, i1 %293, i1 %.0830.in
  %.pre1099 = load i32, ptr %167, align 8, !tbaa !98
  br label %817

817:                                              ; preds = %814, %508
  %818 = phi i32 [ %.pre1099, %814 ], [ %509, %508 ]
  %.1849 = phi i1 [ %.0848, %814 ], [ false, %508 ]
  %.2836 = phi i8 [ %.1835, %814 ], [ 0, %508 ]
  %.1831.in = phi i1 [ %816, %814 ], [ %.0830.in, %508 ]
  %.1828 = phi float [ %.0827, %814 ], [ %208, %508 ]
  %.3823 = phi i8 [ %.2822, %814 ], [ %.08201054, %508 ]
  %819 = icmp eq i32 %818, %87
  br i1 %819, label %.thread1147, label %1034

.thread1147:                                      ; preds = %515, %511, %817
  %.38231164 = phi i8 [ %.3823, %817 ], [ %.08201054, %511 ], [ %.08201054, %515 ]
  %.18281162 = phi float [ %.1828, %817 ], [ %208, %511 ], [ %208, %515 ]
  %.1831.in1160 = phi i1 [ %.1831.in, %817 ], [ %.0830.in, %511 ], [ %.0830.in, %515 ]
  %.28361156 = phi i8 [ %.2836, %817 ], [ 0, %511 ], [ 0, %515 ]
  %.18491155 = phi i1 [ %.1849, %817 ], [ false, %511 ], [ false, %515 ]
  br i1 %294, label %821, label %820

820:                                              ; preds = %.thread1147
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 4349, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

821:                                              ; preds = %.thread1147
  %.1849.not = xor i1 %.18491155, true
  %brmerge1008 = or i1 %77, %.1849.not
  br i1 %brmerge1008, label %852, label %822

822:                                              ; preds = %821
  %823 = getelementptr inbounds i8, ptr %.08191128, i64 56
  %824 = load ptr, ptr %823, align 8, !tbaa !105
  %825 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %824) #16
  %.not913 = icmp eq i32 %825, 0
  br i1 %.not913, label %852, label %826

826:                                              ; preds = %822
  %827 = getelementptr inbounds i8, ptr %.08191128, i64 48
  %828 = load i32, ptr %827, align 8, !tbaa !158
  %829 = add nsw i32 %828, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #15
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23)
  %830 = icmp sgt i32 %828, 1
  br i1 %830, label %831, label %844

831:                                              ; preds = %826
  %832 = zext nneg i32 %829 to i64
  %833 = getelementptr inbounds i8, ptr %824, i64 %832
  %834 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %824, ptr noundef %833)
          to label %835 unwind label %842

835:                                              ; preds = %831
  %836 = add nsw i32 %834, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %23, i32 noundef %836)
          to label %837 unwind label %842

837:                                              ; preds = %835
  %838 = getelementptr inbounds i8, ptr %23, i64 8
  %839 = load ptr, ptr %838, align 8, !tbaa !159
  %840 = load i32, ptr %23, align 8, !tbaa !160
  %841 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %839, i32 noundef %840, ptr noundef %824, ptr noundef %833, ptr noundef null)
          to label %844 unwind label %842

842:                                              ; preds = %844, %837, %835, %831
  %843 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #15
  resume { ptr, i32 } %843

844:                                              ; preds = %837, %826
  %845 = getelementptr inbounds i8, ptr %.08191128, i64 76
  %846 = getelementptr inbounds i8, ptr %23, i64 8
  %847 = load ptr, ptr %846, align 8, !tbaa !159
  %848 = load i32, ptr %23, align 8
  %849 = add nsw i32 %848, -1
  %850 = select i1 %830, i32 %849, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.08191128, ptr noundef nonnull %845, ptr noundef %847, i32 noundef %850)
          to label %851 unwind label %842

851:                                              ; preds = %844
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #15
  br label %852

852:                                              ; preds = %821, %822, %851
  %.0856 = phi i32 [ %829, %851 ], [ 0, %822 ], [ 0, %821 ]
  %.0854 = phi ptr [ %824, %851 ], [ null, %822 ], [ null, %821 ]
  br i1 %.18491155, label %853, label %.critedge1010

853:                                              ; preds = %852
  %854 = trunc nuw i8 %.28361156 to i1
  %855 = and i32 %5, 32
  %856 = icmp ne i32 %855, 0
  %857 = and i1 %856, %854
  br i1 %857, label %.critedge1010, label %1006

.critedge1010:                                    ; preds = %852, %853
  br i1 %77, label %871, label %858

858:                                              ; preds = %.critedge1010
  %859 = getelementptr inbounds i8, ptr %.08191128, i64 64
  store i8 1, ptr %859, align 8, !tbaa !106
  %860 = getelementptr inbounds i8, ptr %.08191128, i64 32
  %861 = getelementptr inbounds i8, ptr %.08191128, i64 16
  %862 = load i32, ptr %861, align 8, !tbaa !116
  %863 = shl nsw i32 %862, 2
  %864 = or disjoint i32 %863, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %860, i32 noundef %864)
  %865 = getelementptr inbounds i8, ptr %.08191128, i64 40
  %866 = load ptr, ptr %865, align 8, !tbaa !117
  %867 = load i32, ptr %860, align 8, !tbaa !161
  %868 = getelementptr inbounds i8, ptr %.08191128, i64 24
  %869 = load ptr, ptr %868, align 8, !tbaa !107
  %870 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %866, i32 noundef %867, ptr noundef %869, ptr noundef null)
  br label %871

871:                                              ; preds = %858, %.critedge1010
  %872 = and i32 %5, 524736
  %.not914 = icmp eq i32 %872, 0
  br i1 %.not914, label %998, label %873

873:                                              ; preds = %871
  br i1 %82, label %875, label %874

874:                                              ; preds = %873
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 4390, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

875:                                              ; preds = %873
  br i1 %.not890, label %878, label %876

876:                                              ; preds = %875
  %877 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  br i1 %877, label %.thread1069, label %878

878:                                              ; preds = %876, %875
  br i1 %.not888.not, label %.critedge1012, label %879

879:                                              ; preds = %878
  %880 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  br i1 %880, label %.thread1069, label %881

881:                                              ; preds = %879
  %882 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  br i1 %882, label %.thread1069, label %.critedge1012

.critedge1012:                                    ; preds = %878, %881
  %883 = and i32 %5, 524288
  %.not915 = icmp eq i32 %883, 0
  br i1 %.not915, label %888, label %884

884:                                              ; preds = %.critedge1012
  %885 = getelementptr inbounds i8, ptr %.08191128, i64 3710
  %886 = load i8, ptr %885, align 2, !tbaa !127, !range !39, !noundef !40
  %887 = trunc nuw i8 %886 to i1
  br i1 %887, label %.thread1069, label %888

888:                                              ; preds = %.critedge1012, %884
  %889 = and i32 %5, 256
  %.not916 = icmp eq i32 %889, 0
  br i1 %.not916, label %998, label %.thread1069

.thread1069:                                      ; preds = %884, %881, %879, %876, %888
  %.08591074 = phi i32 [ 256, %888 ], [ 524288, %884 ], [ 128, %881 ], [ 128, %879 ], [ 64, %876 ]
  %.08601073 = phi i32 [ 22, %888 ], [ 22, %884 ], [ 4, %881 ], [ 3, %879 ], [ 0, %876 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %24) #15
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %24)
  %890 = getelementptr inbounds i8, ptr %24, i64 16
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %890, i8 0, i64 40, i1 false)
  store i32 %.08591074, ptr %24, align 8, !tbaa !162
  %891 = getelementptr inbounds i8, ptr %24, i64 4
  store i32 %5, ptr %891, align 4, !tbaa !164
  %892 = getelementptr inbounds i8, ptr %24, i64 8
  store ptr %7, ptr %892, align 8, !tbaa !165
  %893 = getelementptr inbounds i8, ptr %24, i64 20
  store i32 %.08601073, ptr %893, align 4, !tbaa !166
  %894 = getelementptr inbounds i8, ptr %.08191128, i64 40
  %895 = load ptr, ptr %894, align 8, !tbaa !117
  %896 = getelementptr inbounds i8, ptr %24, i64 24
  store ptr %895, ptr %896, align 8, !tbaa !167
  %897 = getelementptr inbounds i8, ptr %.08191128, i64 8
  %898 = load i32, ptr %897, align 8, !tbaa !109
  %899 = getelementptr inbounds i8, ptr %24, i64 32
  store i32 %898, ptr %899, align 8, !tbaa !168
  %900 = getelementptr inbounds i8, ptr %.08191128, i64 68
  %901 = load i32, ptr %900, align 4, !tbaa !128
  %902 = getelementptr inbounds i8, ptr %24, i64 36
  store i32 %901, ptr %902, align 4, !tbaa !169
  %903 = getelementptr inbounds i8, ptr %24, i64 40
  %904 = getelementptr inbounds i8, ptr %.08191128, i64 16
  %905 = getelementptr inbounds i8, ptr %.08191128, i64 24
  %906 = load ptr, ptr %905, align 8, !tbaa !107
  %907 = getelementptr inbounds i8, ptr %.08191128, i64 76
  %908 = load i32, ptr %907, align 4, !tbaa !170
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds i16, ptr %906, i64 %909
  %911 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %906, ptr noundef %910)
  %912 = getelementptr inbounds i8, ptr %24, i64 44
  store i32 %911, ptr %912, align 4, !tbaa !171
  %913 = getelementptr inbounds i8, ptr %.08191128, i64 80
  %914 = load i32, ptr %913, align 4, !tbaa !155
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds i16, ptr %906, i64 %915
  %917 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %906, ptr noundef %916)
  %918 = getelementptr inbounds i8, ptr %24, i64 48
  store i32 %917, ptr %918, align 8, !tbaa !172
  %919 = getelementptr inbounds i8, ptr %.08191128, i64 84
  %920 = load i32, ptr %919, align 4, !tbaa !156
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds i16, ptr %906, i64 %921
  %923 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %906, ptr noundef %922)
  %924 = getelementptr inbounds i8, ptr %24, i64 52
  store i32 %923, ptr %924, align 4, !tbaa !173
  %925 = call noundef i32 %6(ptr noundef nonnull %24)
  %926 = load ptr, ptr %896, align 8, !tbaa !167
  %927 = load ptr, ptr %894, align 8, !tbaa !117
  %928 = icmp eq ptr %926, %927
  br i1 %928, label %930, label %929

929:                                              ; preds = %.thread1069
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 4443, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

930:                                              ; preds = %.thread1069
  %931 = load i32, ptr %902, align 4, !tbaa !169
  %932 = load i32, ptr %900, align 4, !tbaa !128
  %933 = icmp eq i32 %931, %932
  br i1 %933, label %935, label %934

934:                                              ; preds = %930
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 4444, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

935:                                              ; preds = %930
  %936 = load i32, ptr %891, align 4, !tbaa !164
  %937 = icmp eq i32 %936, %5
  br i1 %937, label %939, label %938

938:                                              ; preds = %935
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 4445, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

939:                                              ; preds = %935
  %940 = load i8, ptr %903, align 8, !tbaa !174, !range !39, !noundef !40
  %941 = trunc nuw i8 %940 to i1
  %942 = load i32, ptr %912, align 4, !tbaa !171
  %.not918 = icmp ne i32 %942, %911
  %brmerge1015 = select i1 %.not918, i1 true, i1 %941
  br i1 %brmerge1015, label %943, label %948

943:                                              ; preds = %939
  %944 = sext i32 %942 to i64
  %945 = getelementptr inbounds i8, ptr %926, i64 %944
  %946 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %926, ptr noundef %945)
  store i32 %946, ptr %907, align 4, !tbaa !170
  %947 = getelementptr inbounds i8, ptr %.08191128, i64 3708
  store i8 1, ptr %947, align 4, !tbaa !143
  br label %948

948:                                              ; preds = %939, %943
  %949 = load i32, ptr %918, align 8, !tbaa !172
  %.not919 = icmp ne i32 %949, %917
  %brmerge1016 = select i1 %.not919, i1 true, i1 %941
  br i1 %brmerge1016, label %950, label %962

950:                                              ; preds = %948
  %951 = load i32, ptr %912, align 4, !tbaa !171
  %952 = icmp eq i32 %949, %951
  br i1 %952, label %953, label %955

953:                                              ; preds = %950
  %954 = load i32, ptr %907, align 4, !tbaa !170
  br label %960

955:                                              ; preds = %950
  %956 = load ptr, ptr %896, align 8, !tbaa !167
  %957 = sext i32 %949 to i64
  %958 = getelementptr inbounds i8, ptr %956, i64 %957
  %959 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %956, ptr noundef %958)
  br label %960

960:                                              ; preds = %955, %953
  %961 = phi i32 [ %954, %953 ], [ %959, %955 ]
  store i32 %961, ptr %913, align 4, !tbaa !155
  br label %962

962:                                              ; preds = %948, %960
  %963 = load i32, ptr %924, align 4, !tbaa !173
  %.not920 = icmp ne i32 %963, %923
  %brmerge1017 = select i1 %.not920, i1 true, i1 %941
  br i1 %brmerge1017, label %964, label %976

964:                                              ; preds = %962
  %965 = load i32, ptr %918, align 8, !tbaa !172
  %966 = icmp eq i32 %963, %965
  br i1 %966, label %967, label %969

967:                                              ; preds = %964
  %968 = load i32, ptr %913, align 4, !tbaa !155
  br label %974

969:                                              ; preds = %964
  %970 = load ptr, ptr %896, align 8, !tbaa !167
  %971 = sext i32 %963 to i64
  %972 = getelementptr inbounds i8, ptr %970, i64 %971
  %973 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %970, ptr noundef %972)
  br label %974

974:                                              ; preds = %969, %967
  %975 = phi i32 [ %968, %967 ], [ %973, %969 ]
  store i32 %975, ptr %919, align 4, !tbaa !156
  br label %976

976:                                              ; preds = %962, %974
  br i1 %941, label %977, label %997

977:                                              ; preds = %976
  %978 = load i32, ptr %899, align 8, !tbaa !168
  %979 = load ptr, ptr %896, align 8, !tbaa !167
  %980 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %979) #16
  %981 = trunc i64 %980 to i32
  %982 = icmp eq i32 %978, %981
  br i1 %982, label %984, label %983

983:                                              ; preds = %977
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 4452, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

984:                                              ; preds = %977
  %985 = icmp sle i32 %978, %.0845
  %brmerge1019 = or i1 %.not894, %985
  br i1 %brmerge1019, label %990, label %986

986:                                              ; preds = %984
  %987 = load i32, ptr %904, align 8, !tbaa !116
  %988 = sub i32 %978, %.0845
  %989 = add nsw i32 %988, %987
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %904, i32 noundef %989)
  %.pre1100 = load ptr, ptr %896, align 8, !tbaa !167
  br label %990

990:                                              ; preds = %984, %986
  %991 = phi ptr [ %979, %984 ], [ %.pre1100, %986 ]
  %992 = load ptr, ptr %905, align 8, !tbaa !107
  %993 = load i32, ptr %904, align 8, !tbaa !116
  %994 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %992, i32 noundef %993, ptr noundef %991, ptr noundef null, ptr noundef null)
  %995 = getelementptr inbounds i8, ptr %.08191128, i64 4
  store i32 %994, ptr %995, align 4, !tbaa !108
  %996 = load i32, ptr %899, align 8, !tbaa !168
  store i32 %996, ptr %897, align 8, !tbaa !109
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.08191128)
  br label %997

997:                                              ; preds = %990, %976
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %24) #15
  br label %998

998:                                              ; preds = %888, %997, %871
  br i1 %77, label %1006, label %999

999:                                              ; preds = %998
  %1000 = getelementptr inbounds i8, ptr %.08191128, i64 40
  %1001 = load ptr, ptr %1000, align 8, !tbaa !117
  %1002 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1001, ptr noundef nonnull dereferenceable(1) %2) #16
  %.not921 = icmp eq i32 %1002, 0
  br i1 %.not921, label %1006, label %1003

1003:                                             ; preds = %999
  %1004 = getelementptr inbounds i8, ptr %.08191128, i64 8
  %1005 = load i32, ptr %1004, align 8, !tbaa !109
  br label %1006

1006:                                             ; preds = %998, %999, %1003, %853
  %.1857 = phi i32 [ %.0856, %998 ], [ %1005, %1003 ], [ %.0856, %999 ], [ %.0856, %853 ]
  %.1855 = phi ptr [ %.0854, %998 ], [ %1001, %1003 ], [ %.0854, %999 ], [ %.0854, %853 ]
  %.not922 = icmp ne ptr %.1855, null
  br i1 %.not922, label %1007, label %1031

1007:                                             ; preds = %1006
  %1008 = icmp sgt i32 %.1857, -1
  br i1 %1008, label %1010, label %1009

1009:                                             ; preds = %1007
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 4476, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

1010:                                             ; preds = %1007
  br i1 %.not894, label %1027, label %1011

1011:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %25) #15
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %25)
  store i32 262144, ptr %25, align 8, !tbaa !162
  %1012 = getelementptr inbounds i8, ptr %25, i64 4
  store i32 %5, ptr %1012, align 4, !tbaa !164
  %1013 = getelementptr inbounds i8, ptr %25, i64 24
  store ptr %2, ptr %1013, align 8, !tbaa !167
  %1014 = getelementptr inbounds i8, ptr %25, i64 32
  store i32 %.1857, ptr %1014, align 8, !tbaa !168
  %1015 = add nuw nsw i32 %.1857, 1
  %1016 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %1015)
  %1017 = getelementptr inbounds i8, ptr %25, i64 36
  store i32 %1016, ptr %1017, align 4, !tbaa !169
  %1018 = getelementptr inbounds i8, ptr %25, i64 8
  store ptr %7, ptr %1018, align 8, !tbaa !165
  %1019 = call noundef i32 %6(ptr noundef nonnull %25)
  %1020 = load ptr, ptr %1013, align 8, !tbaa !167
  %1021 = load i32, ptr %1017, align 4, !tbaa !169
  %1022 = load i32, ptr %1014, align 8, !tbaa !168
  %1023 = add nsw i32 %1021, -1
  %1024 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1022, i32 noundef %1023)
  %.not923 = icmp sgt i32 %1024, %1021
  br i1 %.not923, label %1025, label %1026

1025:                                             ; preds = %1011
  call void @__assert_fail(ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 4490, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

1026:                                             ; preds = %1011
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #15
  br label %1027

1027:                                             ; preds = %1026, %1010
  %.2858 = phi i32 [ %1024, %1026 ], [ %.1857, %1010 ]
  %.0813 = phi i32 [ %1021, %1026 ], [ %3, %1010 ]
  %.0810 = phi ptr [ %1020, %1026 ], [ %2, %1010 ]
  %1028 = add nsw i32 %.2858, 1
  %1029 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1028, i32 noundef %.0813)
  %1030 = sext i32 %1029 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0810, ptr noundef nonnull %.1855, i64 noundef %1030)
  br label %1031

1031:                                             ; preds = %1027, %1006
  %.1811 = phi ptr [ %.0810, %1027 ], [ %2, %1006 ]
  %1032 = getelementptr inbounds i8, ptr %.08191128, i64 3712
  store i32 0, ptr %1032, align 8, !tbaa !129
  %1033 = getelementptr inbounds i8, ptr %.08191128, i64 3720
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1033, i8 0, i64 16, i1 false)
  br label %1034

1034:                                             ; preds = %1031, %817
  %.38231163 = phi i8 [ %.38231164, %1031 ], [ %.3823, %817 ]
  %.18281161 = phi float [ %.18281162, %1031 ], [ %.1828, %817 ]
  %.1831.in1159 = phi i1 [ %.1831.in1160, %1031 ], [ %.1831.in, %817 ]
  %.28361157 = phi i8 [ %.28361156, %1031 ], [ %.2836, %817 ]
  %.1833 = phi i1 [ %.not922, %1031 ], [ false, %817 ]
  %.2812 = phi ptr [ %.1811, %1031 ], [ %2, %817 ]
  %1035 = trunc nuw i8 %.38231163 to i1
  br i1 %1035, label %1036, label %1040

1036:                                             ; preds = %1034
  %1037 = load i32, ptr %167, align 8, !tbaa !98
  %1038 = icmp eq i32 %1037, %87
  br i1 %1038, label %1039, label %1040

1039:                                             ; preds = %1036
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %1040

1040:                                             ; preds = %1039, %1036, %1034
  br i1 %66, label %1046, label %1041

1041:                                             ; preds = %1040
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %87, i32 noundef 1)
  %.sroa.091.0.copyload = load <2 x float>, ptr %11, align 8
  %1042 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.090.0.copyload = load <2 x float>, ptr %1042, align 8
  %1043 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %1044 = getelementptr inbounds i8, ptr %75, i64 5532
  %1045 = load float, ptr %1044, align 4, !tbaa !90
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.091.0.copyload, <2 x float> %.sroa.090.0.copyload, i32 noundef %1043, i1 noundef zeroext true, float noundef %1045)
  br label %1046

1046:                                             ; preds = %1041, %1040
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #15
  %1047 = load float, ptr %11, align 8, !tbaa !135
  %1048 = getelementptr inbounds i8, ptr %11, i64 4
  %1049 = load float, ptr %1048, align 4, !tbaa !175
  %1050 = fadd float %.sroa.0462.1, %1047
  %1051 = fadd float %.sroa.11.0.copyload, %1049
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %26, float noundef %1047, float noundef %1049, float noundef %1050, float noundef %1051)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #15
  br i1 %66, label %1052, label %1055

1052:                                             ; preds = %1046
  %1053 = getelementptr inbounds i8, ptr %.1817, i64 216
  %1054 = load i64, ptr %1053, align 8
  br label %1058

1055:                                             ; preds = %1046
  %1056 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %97)
  %1057 = bitcast <2 x float> %1056 to i64
  br label %1058

1058:                                             ; preds = %1055, %1052
  %storemerge924 = phi i64 [ %1054, %1052 ], [ %1057, %1055 ]
  store i64 %storemerge924, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #15
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef 0.000000e+00, float noundef 0.000000e+00)
  br i1 %323, label %1059, label %1062

1059:                                             ; preds = %1058
  %1060 = getelementptr inbounds i8, ptr %.08191128, i64 40
  %1061 = load ptr, ptr %1060, align 8, !tbaa !117
  br label %1062

1062:                                             ; preds = %1058, %1059
  %1063 = phi ptr [ %1061, %1059 ], [ %.2812, %1058 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #15
  store ptr null, ptr %29, align 8, !tbaa !41
  br i1 %333, label %1064, label %1067

1064:                                             ; preds = %1062
  %1065 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #16
  %1066 = getelementptr inbounds i8, ptr %1, i64 %1065
  store ptr %1066, ptr %29, align 8, !tbaa !41
  br label %1067

1067:                                             ; preds = %1064, %1062
  %1068 = phi ptr [ %1066, %1064 ], [ null, %1062 ]
  %.0846 = phi ptr [ %1, %1064 ], [ %1063, %1062 ]
  %brmerge1020 = select i1 %293, i1 true, i1 %.1831.in1159
  br i1 %brmerge1020, label %1069, label %1323

1069:                                             ; preds = %1067
  br i1 %294, label %1071, label %1070

1070:                                             ; preds = %1069
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 4536, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

1071:                                             ; preds = %1069
  br i1 %333, label %1077, label %1072

1072:                                             ; preds = %1071
  %1073 = getelementptr inbounds i8, ptr %.08191128, i64 8
  %1074 = load i32, ptr %1073, align 8, !tbaa !109
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds i8, ptr %.0846, i64 %1075
  store ptr %1076, ptr %29, align 8, !tbaa !41
  br label %1077

1077:                                             ; preds = %1072, %1071
  %.pre11071109 = phi ptr [ %1076, %1072 ], [ %1068, %1071 ]
  %1078 = getelementptr inbounds i8, ptr %.08191128, i64 24
  %1079 = load ptr, ptr %1078, align 8, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #15
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %30)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #15
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %31)
  %.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 %293, label %1080, label %1085

1080:                                             ; preds = %1077
  %1081 = getelementptr inbounds i8, ptr %.08191128, i64 76
  %1082 = load i32, ptr %1081, align 4, !tbaa !170
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds i16, ptr %1079, i64 %1083
  br label %1085

1085:                                             ; preds = %1080, %1077
  %.sroa.068.0 = phi ptr [ %1084, %1080 ], [ null, %1077 ]
  %.sroa.062.0 = phi i32 [ -1, %1080 ], [ %.sroa.062.0.copyload, %1077 ]
  %.0841 = phi i32 [ 1, %1080 ], [ 0, %1077 ]
  br i1 %.1831.in1159, label %1086, label %1095

1086:                                             ; preds = %1085
  %1087 = getelementptr inbounds i8, ptr %.08191128, i64 80
  %1088 = load i32, ptr %1087, align 4, !tbaa !155
  %1089 = getelementptr inbounds i8, ptr %.08191128, i64 84
  %1090 = load i32, ptr %1089, align 4, !tbaa !156
  %1091 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1088, i32 noundef %1090)
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds i16, ptr %1079, i64 %1092
  %1094 = add nuw nsw i32 %.0841, 1
  br label %1095

1095:                                             ; preds = %1086, %1085
  %.sroa.7.0 = phi ptr [ %1093, %1086 ], [ null, %1085 ]
  %.sroa.9.0 = phi i32 [ -1, %1086 ], [ %.sroa.9.0.copyload, %1085 ]
  %.1842 = phi i32 [ %1094, %1086 ], [ %.0841, %1085 ]
  %.lobit = lshr exact i32 %65, 26
  %1096 = add nuw nsw i32 %.1842, %.lobit
  br label %1097

1097:                                             ; preds = %1112, %1095
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1095 ], [ %.sroa.9.2, %1112 ]
  %.sroa.062.1 = phi i32 [ %.sroa.062.0, %1095 ], [ %.sroa.062.3, %1112 ]
  %.2843 = phi i32 [ %1096, %1095 ], [ %.4, %1112 ]
  %.0838 = phi i32 [ 0, %1095 ], [ %.1839, %1112 ]
  %.0837 = phi ptr [ %1079, %1095 ], [ %1113, %1112 ]
  %1098 = load i16, ptr %.0837, align 2, !tbaa !147
  switch i16 %1098, label %1112 [
    i16 0, label %1114
    i16 10, label %1099
  ]

1099:                                             ; preds = %1097
  %1100 = add nsw i32 %.0838, 1
  %1101 = icmp eq i32 %.sroa.062.1, -1
  br i1 %1101, label %1102, label %1106

1102:                                             ; preds = %1099
  %.not926 = icmp ult ptr %.0837, %.sroa.068.0
  br i1 %.not926, label %1106, label %1103

1103:                                             ; preds = %1102
  %1104 = add nsw i32 %.2843, -1
  %1105 = icmp slt i32 %.2843, 2
  br i1 %1105, label %1114, label %1106

1106:                                             ; preds = %1103, %1102, %1099
  %.sroa.062.2 = phi i32 [ %1100, %1103 ], [ -1, %1102 ], [ %.sroa.062.1, %1099 ]
  %.3844 = phi i32 [ %1104, %1103 ], [ %.2843, %1102 ], [ %.2843, %1099 ]
  %1107 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1107, label %1108, label %1112

1108:                                             ; preds = %1106
  %.not927 = icmp ult ptr %.0837, %.sroa.7.0
  br i1 %.not927, label %1112, label %1109

1109:                                             ; preds = %1108
  %1110 = add nsw i32 %.3844, -1
  %1111 = icmp slt i32 %.3844, 2
  br i1 %1111, label %1114, label %1112

1112:                                             ; preds = %1097, %1109, %1108, %1106
  %.sroa.9.2 = phi i32 [ %1100, %1109 ], [ -1, %1108 ], [ %.sroa.9.1, %1106 ], [ %.sroa.9.1, %1097 ]
  %.sroa.062.3 = phi i32 [ %.sroa.062.2, %1109 ], [ %.sroa.062.2, %1108 ], [ %.sroa.062.2, %1106 ], [ %.sroa.062.1, %1097 ]
  %.4 = phi i32 [ %1110, %1109 ], [ %.3844, %1108 ], [ %.3844, %1106 ], [ %.2843, %1097 ]
  %.1839 = phi i32 [ %1100, %1109 ], [ %1100, %1108 ], [ %1100, %1106 ], [ %.0838, %1097 ]
  %1113 = getelementptr inbounds i8, ptr %.0837, i64 2
  br label %1097, !llvm.loop !176

1114:                                             ; preds = %1109, %1103, %1097
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1097 ], [ %.sroa.9.1, %1103 ], [ %1100, %1109 ]
  %.sroa.062.4 = phi i32 [ %.sroa.062.1, %1097 ], [ %1100, %1103 ], [ %.sroa.062.2, %1109 ]
  %.2840 = phi i32 [ %.0838, %1097 ], [ %1100, %1103 ], [ %1100, %1109 ]
  %1115 = add nsw i32 %.2840, 1
  %1116 = icmp eq i32 %.sroa.062.4, -1
  %spec.select1021 = select i1 %1116, i32 %1115, i32 %.sroa.062.4
  %1117 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1117, i32 %1115, i32 %.sroa.9.3
  %1118 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.068.0, ptr noundef %1079)
  %1119 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %1118, ptr noundef %.sroa.068.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %1119, i64 0
  store float %.sroa.044.0.vec.extract, ptr %30, align 4, !tbaa !177
  %1120 = sitofp i32 %spec.select1021 to float
  %1121 = getelementptr inbounds i8, ptr %75, i64 6520
  %1122 = load float, ptr %1121, align 8, !tbaa !42
  %1123 = fmul float %1122, %1120
  %1124 = getelementptr inbounds i8, ptr %30, i64 4
  store float %1123, ptr %1124, align 4, !tbaa !178
  %1125 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1125, label %1126, label %1133

1126:                                             ; preds = %1114
  %1127 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1079)
  %1128 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %1127, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %1128, i64 0
  store float %.sroa.043.0.vec.extract, ptr %31, align 4, !tbaa !177
  %1129 = uitofp nneg i32 %.sroa.9.4 to float
  %1130 = load float, ptr %1121, align 8, !tbaa !42
  %1131 = fmul float %1130, %1129
  %1132 = getelementptr inbounds i8, ptr %31, i64 4
  store float %1131, ptr %1132, align 4, !tbaa !178
  br label %1133

1133:                                             ; preds = %1126, %1114
  %1134 = phi float [ %1130, %1126 ], [ %1122, %1114 ]
  br i1 %66, label %1135, label %1139

1135:                                             ; preds = %1133
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #15
  %1136 = sitofp i32 %1115 to float
  %1137 = fmul float %1134, %1136
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef %.sroa.0462.1, float noundef %1137)
  %1138 = load i64, ptr %32, align 8
  store i64 %1138, ptr %28, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #15
  br label %1139

1139:                                             ; preds = %1135, %1133
  br i1 %293, label %1140, label %1196

1140:                                             ; preds = %1139
  %1141 = getelementptr inbounds i8, ptr %.08191128, i64 3708
  %1142 = load i8, ptr %1141, align 4, !tbaa !143, !range !39, !noundef !40
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1196

1144:                                             ; preds = %1140
  %1145 = and i32 %5, 4096
  %.not928 = icmp eq i32 %1145, 0
  br i1 %.not928, label %1146, label %1166

1146:                                             ; preds = %1144
  %1147 = fmul float %.sroa.0462.1, 2.500000e-01
  %1148 = load float, ptr %30, align 4, !tbaa !177
  %1149 = getelementptr inbounds i8, ptr %.08191128, i64 72
  %1150 = load float, ptr %1149, align 8, !tbaa !111
  %1151 = fcmp olt float %1148, %1150
  br i1 %1151, label %1152, label %1157

1152:                                             ; preds = %1146
  %1153 = fsub float %1148, %1147
  %1154 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1153)
  %1155 = fptosi float %1154 to i32
  %1156 = sitofp i32 %1155 to float
  store float %1156, ptr %1149, align 8, !tbaa !111
  br label %1168

1157:                                             ; preds = %1146
  %1158 = load float, ptr %97, align 4, !tbaa !136
  %1159 = fsub float %.sroa.0462.1, %1158
  %1160 = fsub float %1148, %1159
  %1161 = fcmp ult float %1160, %1150
  br i1 %1161, label %1168, label %1162

1162:                                             ; preds = %1157
  %1163 = fadd float %1147, %1160
  %1164 = fptosi float %1163 to i32
  %1165 = sitofp i32 %1164 to float
  store float %1165, ptr %1149, align 8, !tbaa !111
  br label %1168

1166:                                             ; preds = %1144
  %1167 = getelementptr inbounds i8, ptr %.08191128, i64 72
  store float 0.000000e+00, ptr %1167, align 8, !tbaa !111
  br label %1168

1168:                                             ; preds = %1152, %1162, %1157, %1166
  br i1 %66, label %1169, label %1195

1169:                                             ; preds = %1168
  %1170 = load float, ptr %1124, align 4, !tbaa !178
  %1171 = load float, ptr %1121, align 8, !tbaa !42
  %1172 = fsub float %1170, %1171
  %1173 = fcmp olt float %1172, %.18281161
  br i1 %1173, label %1174, label %1176

1174:                                             ; preds = %1169
  %1175 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1172)
  %.pre1101 = load float, ptr %98, align 4, !tbaa !86
  br label %1181

1176:                                             ; preds = %1169
  %1177 = fsub float %1170, %.sroa.11.0.copyload
  %1178 = fcmp ult float %1177, %.18281161
  %.pre1102 = load float, ptr %98, align 4, !tbaa !86
  br i1 %1178, label %1181, label %1179

1179:                                             ; preds = %1176
  %1180 = call float @llvm.fmuladd.f32(float %.pre1102, float 2.000000e+00, float %1177)
  br label %1181

1181:                                             ; preds = %1176, %1179, %1174
  %1182 = phi float [ %.pre1101, %1174 ], [ %.pre1102, %1179 ], [ %.pre1102, %1176 ]
  %.2829 = phi float [ %1175, %1174 ], [ %1180, %1179 ], [ %.18281161, %1176 ]
  %1183 = getelementptr inbounds i8, ptr %28, i64 4
  %1184 = load float, ptr %1183, align 4, !tbaa !178
  %1185 = call float @llvm.fmuladd.f32(float %1182, float 2.000000e+00, float %1184)
  %1186 = fsub float %1185, %.sroa.11.0.copyload
  %1187 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1186, float noundef 0.000000e+00)
  %1188 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.2829, float noundef 0.000000e+00, float noundef %1187)
  %1189 = getelementptr inbounds i8, ptr %.1817, i64 96
  %1190 = load float, ptr %1189, align 4, !tbaa !103
  %1191 = fsub float %1190, %1188
  %1192 = getelementptr inbounds i8, ptr %27, i64 4
  %1193 = load float, ptr %1192, align 4, !tbaa !178
  %1194 = fadd float %1193, %1191
  store float %1194, ptr %1192, align 4, !tbaa !178
  store float %1188, ptr %1189, align 4, !tbaa !103
  br label %1195

1195:                                             ; preds = %1181, %1168
  store i8 0, ptr %1141, align 4, !tbaa !143
  br label %1196

1196:                                             ; preds = %1195, %1140, %1139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #15
  %1197 = getelementptr inbounds i8, ptr %.08191128, i64 72
  %1198 = load float, ptr %1197, align 8, !tbaa !111
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %1198, float noundef 0.000000e+00)
  br i1 %.1831.in1159, label %1199, label %1268

1199:                                             ; preds = %1196
  %1200 = getelementptr inbounds i8, ptr %.08191128, i64 80
  %1201 = load i32, ptr %1200, align 4, !tbaa !155
  %1202 = getelementptr inbounds i8, ptr %.08191128, i64 84
  %1203 = load i32, ptr %1202, align 4, !tbaa !156
  %1204 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1201, i32 noundef %1203)
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds i16, ptr %1079, i64 %1205
  %1207 = load i32, ptr %1200, align 4, !tbaa !155
  %1208 = load i32, ptr %1202, align 4, !tbaa !156
  %1209 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1207, i32 noundef %1208)
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds i16, ptr %1079, i64 %1210
  %1212 = select i1 %293, float 1.000000e+00, float 0x3FE3333340000000
  %1213 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 47, float noundef %1212)
  %1214 = select i1 %66, float 0.000000e+00, float -1.000000e+00
  %1215 = select i1 %66, float 0.000000e+00, float 2.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #15
  %1216 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %1216, ptr %35, align 8
  %1217 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %1217, ptr %34, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #15
  store ptr %1206, ptr %36, align 8, !tbaa !41
  %1218 = getelementptr inbounds i8, ptr %34, i64 4
  %1219 = icmp slt i32 %1204, %1209
  br i1 %1219, label %.lr.ph1091, label %._crit_edge

.lr.ph1091:                                       ; preds = %1199
  %1220 = extractelement <2 x float> %1217, i64 1
  %1221 = getelementptr inbounds i8, ptr %26, i64 12
  %1222 = getelementptr inbounds i8, ptr %26, i64 4
  %1223 = getelementptr inbounds i8, ptr %75, i64 6512
  %1224 = getelementptr inbounds i8, ptr %.1817, i64 640
  %1225 = getelementptr inbounds i8, ptr %37, i64 8
  %.pre1103 = load float, ptr %1121, align 8, !tbaa !42
  br label %1226

1226:                                             ; preds = %.lr.ph1091, %.loopexit
  %1227 = phi ptr [ %1206, %.lr.ph1091 ], [ %1260, %.loopexit ]
  %1228 = phi float [ %1220, %.lr.ph1091 ], [ %1266, %.loopexit ]
  %1229 = phi float [ %.pre1103, %.lr.ph1091 ], [ %1262, %.loopexit ]
  %1230 = load float, ptr %1221, align 4, !tbaa !179
  %1231 = fadd float %1230, %1229
  %1232 = fcmp ogt float %1228, %1231
  br i1 %1232, label %._crit_edge.loopexit, label %1233

1233:                                             ; preds = %1226
  %1234 = load float, ptr %1222, align 4, !tbaa !180
  %1235 = fcmp olt float %1228, %1234
  br i1 %1235, label %.preheader, label %1242

.preheader:                                       ; preds = %1233, %1238
  %1236 = phi ptr [ %1239, %1238 ], [ %1227, %1233 ]
  %1237 = icmp ult ptr %1236, %1211
  br i1 %1237, label %1238, label %.loopexit

1238:                                             ; preds = %.preheader
  %1239 = getelementptr inbounds i8, ptr %1236, i64 2
  store ptr %1239, ptr %36, align 8, !tbaa !41
  %1240 = load i16, ptr %1236, align 2, !tbaa !147
  %1241 = icmp eq i16 %1240, 10
  br i1 %1241, label %.loopexit, label %.preheader, !llvm.loop !181

1242:                                             ; preds = %1233
  %1243 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %1227, ptr noundef nonnull %1211, ptr noundef nonnull %36, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1243, i64 0
  %1244 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1244, label %1251, label %1245

1245:                                             ; preds = %1242
  %1246 = load ptr, ptr %1223, align 8, !tbaa !119
  %1247 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(110) %1246, i16 noundef zeroext 32)
  %1248 = fmul float %1247, 5.000000e-01
  %1249 = fptosi float %1248 to i32
  %1250 = sitofp i32 %1249 to float
  br label %1251

1251:                                             ; preds = %1245, %1242
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1250, %1245 ], [ %.sroa.028.0.vec.extract, %1242 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #15
  %1252 = load float, ptr %1121, align 8, !tbaa !42
  %1253 = fsub float %1214, %1252
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 0.000000e+00, float noundef %1253)
  %1254 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %39)
  store <2 x float> %1254, ptr %38, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #15
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %.sroa.028.0.vec.extract31.pre-phi, float noundef %1215)
  %1255 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %41)
  store <2 x float> %1255, ptr %40, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %40)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #15
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #15
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %42, ptr noundef nonnull align 4 dereferenceable(16) %26)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(16) %42)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #15
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #15
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %43, ptr noundef nonnull align 4 dereferenceable(16) %26)
  %1256 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(16) %43)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #15
  br i1 %1256, label %1257, label %1259

1257:                                             ; preds = %1251
  %1258 = load ptr, ptr %1224, align 8, !tbaa !182
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1258, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %1225, i32 noundef %1213, float noundef 0.000000e+00, i32 noundef 0)
  br label %1259

1259:                                             ; preds = %1257, %1251
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #15
  %.pre1104 = load float, ptr %1121, align 8, !tbaa !42
  %.pre1105 = load float, ptr %1218, align 4, !tbaa !178
  %.pre1106 = load ptr, ptr %36, align 8, !tbaa !41
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1238, %1259
  %1260 = phi ptr [ %.pre1106, %1259 ], [ %1236, %.preheader ], [ %1239, %1238 ]
  %1261 = phi float [ %.pre1105, %1259 ], [ %1228, %1238 ], [ %1228, %.preheader ]
  %1262 = phi float [ %.pre1104, %1259 ], [ %1229, %1238 ], [ %1229, %.preheader ]
  %1263 = load float, ptr %27, align 8, !tbaa !177
  %1264 = load float, ptr %33, align 4, !tbaa !177
  %1265 = fsub float %1263, %1264
  store float %1265, ptr %34, align 8, !tbaa !177
  %1266 = fadd float %1262, %1261
  store float %1266, ptr %1218, align 4, !tbaa !178
  %1267 = icmp ult ptr %1260, %1211
  br i1 %1267, label %1226, label %._crit_edge.loopexit, !llvm.loop !183

._crit_edge.loopexit:                             ; preds = %1226, %.loopexit
  %.pre1107.pre.pre = load ptr, ptr %29, align 8, !tbaa !41
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %1199
  %.pre1107.pre = phi ptr [ %.pre1107.pre.pre, %._crit_edge.loopexit ], [ %.pre11071109, %1199 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #15
  br label %1268

1268:                                             ; preds = %._crit_edge, %1196
  %.pre1107 = phi ptr [ %.pre1107.pre, %._crit_edge ], [ %.pre11071109, %1196 ]
  br i1 %66, label %1274, label %1269

1269:                                             ; preds = %1268
  %1270 = ptrtoint ptr %.pre1107 to i64
  %1271 = ptrtoint ptr %.0846 to i64
  %1272 = sub i64 %1270, %1271
  %1273 = icmp slt i64 %1272, 2097152
  br i1 %1273, label %1274, label %1283

1274:                                             ; preds = %1269, %1268
  %. = phi ptr [ %26, %1269 ], [ null, %1268 ]
  %1275 = zext i1 %333 to i32
  %1276 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1275, float noundef 1.000000e+00)
  %1277 = getelementptr inbounds i8, ptr %.1817, i64 640
  %1278 = load ptr, ptr %1277, align 8, !tbaa !182
  %1279 = getelementptr inbounds i8, ptr %75, i64 6512
  %1280 = load ptr, ptr %1279, align 8, !tbaa !119
  %1281 = load float, ptr %1121, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #15
  %1282 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %1282, ptr %44, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1278, ptr noundef %1280, float noundef %1281, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef %1276, ptr noundef %.0846, ptr noundef %.pre1107, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #15
  br label %1283

1283:                                             ; preds = %1274, %1269
  br i1 %293, label %1284, label %1322

1284:                                             ; preds = %1283
  %1285 = getelementptr inbounds i8, ptr %75, i64 24
  %1286 = load float, ptr %1285, align 8, !tbaa !184
  %1287 = getelementptr inbounds i8, ptr %.08191128, i64 3704
  %1288 = load float, ptr %1287, align 8, !tbaa !185
  %1289 = fadd float %1286, %1288
  store float %1289, ptr %1287, align 8, !tbaa !185
  %1290 = getelementptr inbounds i8, ptr %75, i64 202
  %1291 = load i8, ptr %1290, align 2, !tbaa !186, !range !39, !noundef !40
  %1292 = trunc nuw i8 %1291 to i1
  %1293 = fcmp ugt float %1289, 0.000000e+00
  %or.cond1022 = select i1 %1292, i1 %1293, i1 false
  br i1 %or.cond1022, label %1294, label %1297

1294:                                             ; preds = %1284
  %1295 = call float @fmodf(float noundef %1289, float noundef 0x3FF3333340000000) #15
  %1296 = fcmp ole float %1295, 0x3FE99999A0000000
  br label %1297

1297:                                             ; preds = %1294, %1284
  %1298 = phi i1 [ true, %1284 ], [ %1296, %1294 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #15
  %1299 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %1299, ptr %46, align 8
  %1300 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %1300, ptr %45, align 8
  %1301 = call <2 x float> @_ZL7ImFloorRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #15
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #15
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1301, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1301, i64 1
  %1302 = load float, ptr %1121, align 8, !tbaa !42
  %1303 = fsub float %.sroa.0.4.vec.extract, %1302
  %1304 = fadd float %1303, 5.000000e-01
  %1305 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1306 = fadd float %.sroa.0.4.vec.extract, -1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %47, float noundef %.sroa.0.0.vec.extract, float noundef %1304, float noundef %1305, float noundef %1306)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #15
  br i1 %1298, label %1307, label %.critedge13

1307:                                             ; preds = %1297
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %48, ptr noundef nonnull align 4 dereferenceable(16) %26)
  %1308 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %47, ptr noundef nonnull align 4 dereferenceable(16) %48)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #15
  br i1 %1308, label %1309, label %1314

1309:                                             ; preds = %1307
  %1310 = getelementptr inbounds i8, ptr %.1817, i64 640
  %1311 = load ptr, ptr %1310, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #15
  %1312 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %47)
  store <2 x float> %1312, ptr %49, align 8
  %1313 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1311, ptr noundef nonnull align 4 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(8) %49, i32 noundef %1313, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #15
  br label %1314

.critedge13:                                      ; preds = %1297
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #15
  br label %1314

1314:                                             ; preds = %.critedge13, %1309, %1307
  br i1 %77, label %1321, label %1315

1315:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #15
  %1316 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1317 = load float, ptr %1121, align 8, !tbaa !42
  %1318 = fsub float %.sroa.0.4.vec.extract, %1317
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %1316, float noundef %1318)
  %1319 = getelementptr inbounds i8, ptr %75, i64 12416
  %1320 = load i64, ptr %50, align 8
  store i64 %1320, ptr %1319, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #15
  br label %1321

1321:                                             ; preds = %1315, %1314
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #15
  br label %1322

1322:                                             ; preds = %1321, %1283
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #15
  br label %1358

1323:                                             ; preds = %1067
  br i1 %66, label %.critedge1024, label %1324

1324:                                             ; preds = %1323
  br i1 %333, label %1342, label %1325

1325:                                             ; preds = %1324
  %1326 = load i32, ptr %167, align 8, !tbaa !98
  %1327 = icmp eq i32 %1326, %87
  br i1 %1327, label %1328, label %1333

1328:                                             ; preds = %1325
  %1329 = getelementptr inbounds i8, ptr %.08191128, i64 8
  %1330 = load i32, ptr %1329, align 8, !tbaa !109
  %1331 = sext i32 %1330 to i64
  %1332 = getelementptr inbounds i8, ptr %.0846, i64 %1331
  store ptr %1332, ptr %29, align 8, !tbaa !41
  br label %1342

1333:                                             ; preds = %1325
  %1334 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0846) #16
  %1335 = getelementptr inbounds i8, ptr %.0846, i64 %1334
  store ptr %1335, ptr %29, align 8, !tbaa !41
  br label %1342

.critedge1024:                                    ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #15
  %1336 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0846, ptr noundef nonnull %29)
  %1337 = sitofp i32 %1336 to float
  %1338 = getelementptr inbounds i8, ptr %75, i64 6520
  %1339 = load float, ptr %1338, align 8, !tbaa !42
  %1340 = fmul float %1339, %1337
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %.sroa.0462.1, float noundef %1340)
  %1341 = load i64, ptr %51, align 8
  store i64 %1341, ptr %28, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #15
  br label %1348

1342:                                             ; preds = %1324, %1328, %1333
  %1343 = phi ptr [ %1068, %1324 ], [ %1332, %1328 ], [ %1335, %1333 ]
  %1344 = ptrtoint ptr %1343 to i64
  %1345 = ptrtoint ptr %.0846 to i64
  %1346 = sub i64 %1344, %1345
  %1347 = icmp slt i64 %1346, 2097152
  br i1 %1347, label %1348, label %1358

1348:                                             ; preds = %.critedge1024, %1342
  %.14 = phi ptr [ %26, %1342 ], [ null, %.critedge1024 ]
  %1349 = zext i1 %333 to i32
  %1350 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1349, float noundef 1.000000e+00)
  %1351 = getelementptr inbounds i8, ptr %.1817, i64 640
  %1352 = load ptr, ptr %1351, align 8, !tbaa !182
  %1353 = getelementptr inbounds i8, ptr %75, i64 6512
  %1354 = load ptr, ptr %1353, align 8, !tbaa !119
  %1355 = getelementptr inbounds i8, ptr %75, i64 6520
  %1356 = load float, ptr %1355, align 8, !tbaa !42
  %1357 = load ptr, ptr %29, align 8, !tbaa !41
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1352, ptr noundef %1354, float noundef %1356, ptr noundef nonnull align 4 dereferenceable(8) %27, i32 noundef %1350, ptr noundef %.0846, ptr noundef %1357, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1358

1358:                                             ; preds = %1342, %1348, %1322
  br i1 %brmerge945, label %1360, label %1359

1359:                                             ; preds = %1358
  call void @_ZN5ImGui7PopFontEv()
  br label %1360

1360:                                             ; preds = %1358, %1359
  br i1 %66, label %1361, label %1367

1361:                                             ; preds = %1360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #15
  %1362 = load float, ptr %28, align 8, !tbaa !177
  %1363 = getelementptr inbounds i8, ptr %28, i64 4
  %1364 = load float, ptr %1363, align 4, !tbaa !178
  %1365 = load float, ptr %98, align 4, !tbaa !86
  %1366 = fadd float %1364, %1365
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1362, float noundef %1366)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %52)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #15
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %1367

1367:                                             ; preds = %1361, %1360
  %1368 = getelementptr inbounds i8, ptr %75, i64 12524
  %1369 = load i8, ptr %1368, align 4, !tbaa !187, !range !39, !noundef !40
  %1370 = trunc nuw i8 %1369 to i1
  %or.cond1031 = and i1 %brmerge945, %1370
  br i1 %or.cond1031, label %1371, label %1373

1371:                                             ; preds = %1367
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.26)
  %1372 = load ptr, ptr %29, align 8, !tbaa !41
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %27, ptr noundef %.0846, ptr noundef %1372)
  br label %1373

1373:                                             ; preds = %1371, %1367
  br i1 %103, label %1374, label %1384

1374:                                             ; preds = %1373
  %1375 = getelementptr inbounds i8, ptr %11, i64 8
  %1376 = load float, ptr %1375, align 8, !tbaa !188
  %1377 = getelementptr inbounds i8, ptr %75, i64 5548
  %1378 = load float, ptr %1377, align 4, !tbaa !87
  %1379 = fadd float %1376, %1378
  %1380 = load float, ptr %1048, align 4, !tbaa !175
  %1381 = load float, ptr %98, align 4, !tbaa !86
  %1382 = fadd float %1380, %1381
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %1379, float noundef %1382)
  %1383 = load <2 x float>, ptr %53, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1383, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1384

1384:                                             ; preds = %1374, %1373
  %1385 = and i32 %5, 134217728
  %.not929 = icmp eq i32 %1385, 0
  %or.cond1027 = and i1 %.not929, %.1833
  br i1 %or.cond1027, label %1386, label %1387

1386:                                             ; preds = %1384
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %87)
  br label %1387

1387:                                             ; preds = %1386, %1384
  %1388 = and i32 %5, 32
  %.not930 = icmp eq i32 %1388, 0
  %1389 = trunc nuw i8 %.28361157 to i1
  %.1 = select i1 %.not930, i1 %.1833, i1 %1389
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #15
  br label %1390

1390:                                             ; preds = %144, %148, %1387, %118
  %.2 = phi i1 [ %.1, %1387 ], [ false, %144 ], [ false, %118 ], [ false, %148 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #15
  br label %1391

1391:                                             ; preds = %8, %1390
  %.3 = phi i1 [ %.2, %1390 ], [ false, %8 ]
  ret i1 %.3
}

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

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

declare void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) local_unnamed_addr #6

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

declare void @_ZN5ImGui8EndChildEv() local_unnamed_addr #6

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

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

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

declare noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(110), i16 noundef zeroext) local_unnamed_addr #6

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736)) local_unnamed_addr #4 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 void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) local_unnamed_addr #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef, i1 noundef zeroext) local_unnamed_addr #12

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

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

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

declare noundef i32 @_ZN5ImGui20GetMergedKeyModFlagsEv() local_unnamed_addr #6

declare void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef, float noundef) local_unnamed_addr #6

declare noundef float @_ZN5ImGui13GetScrollMaxYEv() local_unnamed_addr #6

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

declare noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef, ptr noundef) local_unnamed_addr #6

declare noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef) local_unnamed_addr #6

declare noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui7MemFreeEPv(ptr noundef) local_unnamed_addr #6

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

declare noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

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

declare i32 @__gxx_personality_v0(...)

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(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 #6

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @fmodf(float noundef, float noundef) local_unnamed_addr #13

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

declare void @_ZN5ImGui7PopFontEv() local_unnamed_addr #6

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 = { 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 #3 = { 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 #4 = { 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { "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 #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 #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 nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #12 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #13 = { 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 #14 = { noreturn nounwind }
attributes #15 = { 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, !13, i64 147}
!6 = !{!"_ZTS11ImGuiWindow", !7, i64 0, !10, i64 8, !10, i64 12, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !12, i64 72, !12, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !11, i64 92, !11, i64 100, !11, i64 108, !11, i64 116, !11, i64 124, !11, i64 132, !13, i64 140, !13, i64 141, !13, i64 142, !13, i64 143, !13, i64 144, !13, i64 145, !13, i64 146, !13, i64 147, !13, i64 148, !13, i64 149, !13, i64 150, !13, i64 151, !8, i64 152, !14, i64 154, !14, i64 156, !14, i64 158, !14, i64 160, !10, i64 164, !8, i64 168, !8, i64 169, !8, i64 170, !13, i64 171, !10, i64 172, !8, i64 176, !8, i64 177, !8, i64 178, !8, i64 179, !10, i64 180, !10, i64 181, !10, i64 182, !11, i64 184, !11, i64 192, !15, i64 200, !16, i64 216, !23, i64 464, !23, i64 480, !23, i64 496, !23, i64 512, !23, i64 528, !23, i64 544, !23, i64 560, !24, i64 576, !24, i64 580, !10, i64 584, !12, i64 588, !12, i64 592, !25, i64 600, !27, i64 616, !12, i64 632, !10, i64 636, !7, i64 640, !28, i64 648, !7, i64 848, !7, i64 856, !7, i64 864, !7, i64 872, !7, i64 880, !8, i64 888, !8, i64 896, !10, i64 928, !10, i64 932, !13, i64 936}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTS6ImVec2", !12, i64 0, !12, i64 4}
!12 = !{!"float", !8, i64 0}
!13 = !{!"bool", !8, i64 0}
!14 = !{!"short", !8, i64 0}
!15 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !7, i64 8}
!16 = !{!"_ZTS19ImGuiWindowTempData", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !12, i64 56, !12, i64 60, !17, i64 64, !17, i64 68, !17, i64 72, !18, i64 76, !14, i64 80, !14, i64 82, !10, i64 84, !13, i64 88, !13, i64 89, !13, i64 90, !11, i64 92, !19, i64 100, !10, i64 128, !10, i64 132, !20, i64 136, !7, i64 152, !7, i64 160, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !12, i64 188, !12, i64 192, !21, i64 200, !21, i64 216, !22, i64 232}
!17 = !{!"_ZTS6ImVec1", !12, i64 0}
!18 = !{!"_ZTS13ImGuiNavLayer", !8, i64 0}
!19 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !14, i64 8, !14, i64 10, !14, i64 12, !14, i64 14, !14, i64 16, !8, i64 18}
!20 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !7, i64 8}
!21 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !7, i64 8}
!22 = !{!"_ZTS15ImGuiStackSizes", !14, i64 0, !14, i64 2, !14, i64 4, !14, i64 6, !14, i64 8, !14, i64 10, !14, i64 12}
!23 = !{!"_ZTS6ImRect", !11, i64 0, !11, i64 8}
!24 = !{!"_ZTS8ImVec2ih", !14, i64 0, !14, i64 2}
!25 = !{!"_ZTS12ImGuiStorage", !26, i64 0}
!26 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !7, i64 8}
!27 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !7, i64 8}
!28 = !{!"_ZTS10ImDrawList", !29, i64 0, !30, i64 16, !31, i64 32, !10, i64 48, !10, i64 52, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !32, i64 88, !33, i64 104, !34, i64 120, !35, i64 136, !37, i64 168, !12, i64 192}
!29 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !7, i64 8}
!30 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !7, i64 8}
!31 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !7, i64 8}
!32 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !7, i64 8}
!33 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !7, i64 8}
!34 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !7, i64 8}
!35 = !{!"_ZTS15ImDrawCmdHeader", !36, i64 0, !7, i64 16, !10, i64 24}
!36 = !{!"_ZTS6ImVec4", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12}
!37 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !38, i64 8}
!38 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !7, i64 8}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!7, !7, i64 0}
!42 = !{!43, !12, i64 6520}
!43 = !{!"_ZTS12ImGuiContext", !13, i64 0, !13, i64 1, !44, i64 8, !45, i64 5464, !7, i64 6512, !12, i64 6520, !12, i64 6524, !46, i64 6528, !47, i64 7040, !10, i64 7048, !10, i64 7052, !10, i64 7056, !13, i64 7060, !13, i64 7061, !13, i64 7062, !13, i64 7063, !13, i64 7064, !10, i64 7068, !7, i64 7072, !20, i64 7080, !20, i64 7096, !20, i64 7112, !48, i64 7128, !25, i64 7144, !10, i64 7160, !11, i64 7164, !7, i64 7176, !7, i64 7184, !7, i64 7192, !7, i64 7200, !7, i64 7208, !11, i64 7216, !12, i64 7224, !10, i64 7228, !10, i64 7232, !13, i64 7236, !13, i64 7237, !13, i64 7238, !13, i64 7239, !12, i64 7240, !12, i64 7244, !10, i64 7248, !10, i64 7252, !12, i64 7256, !13, i64 7260, !13, i64 7261, !13, i64 7262, !13, i64 7263, !13, i64 7264, !13, i64 7265, !13, i64 7266, !10, i64 7268, !10, i64 7272, !49, i64 7280, !11, i64 7288, !7, i64 7296, !50, i64 7304, !10, i64 7308, !10, i64 7312, !13, i64 7316, !13, i64 7317, !7, i64 7320, !10, i64 7328, !12, i64 7332, !10, i64 7336, !51, i64 7340, !52, i64 7360, !53, i64 7408, !54, i64 7520, !55, i64 7536, !56, i64 7552, !15, i64 7568, !57, i64 7584, !58, i64 7600, !59, i64 7616, !59, i64 7632, !60, i64 7648, !7, i64 7664, !10, i64 7672, !10, i64 7676, !10, i64 7680, !10, i64 7684, !10, i64 7688, !10, i64 7692, !10, i64 7696, !10, i64 7700, !10, i64 7704, !10, i64 7708, !10, i64 7712, !50, i64 7716, !23, i64 7720, !10, i64 7736, !18, i64 7740, !10, i64 7744, !13, i64 7748, !13, i64 7749, !13, i64 7750, !13, i64 7751, !13, i64 7752, !13, i64 7753, !13, i64 7754, !10, i64 7756, !23, i64 7760, !13, i64 7776, !10, i64 7780, !61, i64 7784, !10, i64 7788, !10, i64 7792, !10, i64 7796, !10, i64 7800, !62, i64 7808, !62, i64 7856, !62, i64 7904, !7, i64 7952, !10, i64 7960, !7, i64 7968, !7, i64 7976, !7, i64 7984, !12, i64 7992, !12, i64 7996, !13, i64 8000, !7, i64 8008, !7, i64 8016, !10, i64 8024, !10, i64 8028, !10, i64 8032, !10, i64 8036, !13, i64 8040, !12, i64 8044, !10, i64 8048, !13, i64 8052, !13, i64 8053, !13, i64 8054, !10, i64 8056, !10, i64 8060, !10, i64 8064, !63, i64 8072, !23, i64 8136, !10, i64 8152, !10, i64 8156, !12, i64 8160, !10, i64 8164, !10, i64 8168, !10, i64 8172, !10, i64 8176, !64, i64 8184, !8, i64 8200, !7, i64 8216, !10, i64 8224, !65, i64 8232, !67, i64 8272, !21, i64 8288, !38, i64 8304, !7, i64 8320, !68, i64 8328, !70, i64 8368, !71, i64 8384, !11, i64 8400, !72, i64 8408, !76, i64 12144, !10, i64 12256, !10, i64 12260, !12, i64 12264, !12, i64 12268, !8, i64 12272, !36, i64 12284, !78, i64 12300, !12, i64 12348, !13, i64 12352, !13, i64 12353, !12, i64 12356, !12, i64 12360, !12, i64 12364, !12, i64 12368, !10, i64 12372, !12, i64 12376, !73, i64 12384, !15, i64 12400, !11, i64 12416, !11, i64 12424, !8, i64 12432, !13, i64 12433, !12, i64 12436, !79, i64 12440, !80, i64 12456, !81, i64 12472, !82, i64 12488, !83, i64 12504, !10, i64 12520, !13, i64 12524, !84, i64 12528, !7, i64 12536, !79, i64 12544, !7, i64 12560, !7, i64 12568, !12, i64 12576, !13, i64 12580, !10, i64 12584, !10, i64 12588, !10, i64 12592, !13, i64 12596, !10, i64 12600, !85, i64 12604, !8, i64 12620, !10, i64 13100, !10, i64 13104, !12, i64 13108, !10, i64 13112, !10, i64 13116, !10, i64 13120, !8, i64 13124}
!44 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !7, i64 24, !7, i64 32, !12, i64 40, !12, i64 44, !12, i64 48, !8, i64 52, !12, i64 140, !12, i64 144, !7, i64 152, !7, i64 160, !12, i64 168, !13, i64 172, !7, i64 176, !11, i64 184, !13, i64 192, !13, i64 193, !13, i64 194, !13, i64 195, !13, i64 196, !13, i64 197, !12, i64 200, !7, i64 208, !7, i64 216, !7, i64 224, !7, i64 232, !7, i64 240, !7, i64 248, !7, i64 256, !7, i64 264, !7, i64 272, !7, i64 280, !11, i64 288, !8, i64 296, !12, i64 304, !12, i64 308, !13, i64 312, !13, i64 313, !13, i64 314, !13, i64 315, !8, i64 316, !8, i64 828, !13, i64 908, !13, i64 909, !13, i64 910, !13, i64 911, !13, i64 912, !13, i64 913, !13, i64 914, !12, i64 916, !10, i64 920, !10, i64 924, !10, i64 928, !10, i64 932, !10, i64 936, !11, i64 940, !10, i64 948, !10, i64 952, !11, i64 956, !8, i64 964, !8, i64 1008, !8, i64 1048, !8, i64 1053, !8, i64 1058, !8, i64 1063, !8, i64 1068, !8, i64 1076, !8, i64 1096, !8, i64 1116, !8, i64 1156, !8, i64 1176, !8, i64 3224, !8, i64 5272, !8, i64 5352, !12, i64 5432, !14, i64 5436, !30, i64 5440}
!45 = !{!"_ZTS10ImGuiStyle", !12, i64 0, !12, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 32, !10, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !11, i64 60, !12, i64 68, !12, i64 72, !11, i64 76, !11, i64 84, !11, i64 92, !11, i64 100, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !12, i64 132, !12, i64 136, !12, i64 140, !12, i64 144, !10, i64 148, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !12, i64 184, !13, i64 188, !13, i64 189, !13, i64 190, !12, i64 192, !12, i64 196, !8, i64 200}
!46 = !{!"_ZTS20ImDrawListSharedData", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !36, i64 28, !10, i64 44, !8, i64 48, !12, i64 432, !8, i64 436, !7, i64 504}
!47 = !{!"double", !8, i64 0}
!48 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!49 = !{!"long long", !8, i64 0}
!50 = !{!"_ZTS16ImGuiInputSource", !8, i64 0}
!51 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !12, i64 4, !10, i64 8, !10, i64 12, !13, i64 16}
!52 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !23, i64 12, !23, i64 28}
!53 = !{!"_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, !13, i64 56, !23, i64 60, !7, i64 80, !7, i64 88, !12, i64 96, !11, i64 100}
!54 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!55 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!56 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!57 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!58 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!59 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!60 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !7, i64 8}
!61 = !{!"_ZTS15ImGuiNavForward", !8, i64 0}
!62 = !{!"_ZTS16ImGuiNavItemData", !7, i64 0, !10, i64 8, !10, i64 12, !23, i64 16, !12, i64 32, !12, i64 36, !12, i64 40}
!63 = !{!"_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}
!64 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS6ImPoolI10ImGuiTableE", !66, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!66 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!68 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !69, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!69 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!70 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!71 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!72 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !10, i64 4, !10, i64 8, !30, i64 16, !73, i64 32, !73, i64 48, !13, i64 64, !10, i64 68, !12, i64 72, !74, i64 76, !12, i64 3704, !13, i64 3708, !13, i64 3709, !13, i64 3710, !10, i64 3712, !7, i64 3720, !7, i64 3728}
!73 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!74 = !{!"_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, !75, i64 32}
!75 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !14, i64 3582, !14, i64 3584, !10, i64 3588, !10, i64 3592}
!76 = !{!"_ZTS6ImFont", !21, i64 0, !12, i64 16, !12, i64 20, !30, i64 24, !77, i64 40, !7, i64 56, !7, i64 64, !7, i64 72, !14, i64 80, !14, i64 82, !14, i64 84, !14, i64 86, !13, i64 88, !12, i64 92, !12, i64 96, !12, i64 100, !10, i64 104, !8, i64 108}
!77 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!78 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !11, i64 16, !11, i64 24, !11, i64 32, !12, i64 40, !10, i64 44}
!79 = !{!"_ZTS15ImGuiTextBuffer", !73, i64 0}
!80 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!81 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !73, i64 0}
!82 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !73, i64 0}
!83 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !7, i64 8}
!84 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!85 = !{!"_ZTS18ImGuiMetricsConfig", !13, i64 0, !13, i64 1, !13, i64 2, !13, i64 3, !13, i64 4, !10, i64 8, !10, i64 12}
!86 = !{!45, !12, i64 64}
!87 = !{!45, !12, i64 84}
!88 = !{!12, !12, i64 0}
!89 = !{!43, !10, i64 7368}
!90 = !{!45, !12, i64 68}
!91 = !{!45, !12, i64 72}
!92 = !{!43, !7, i64 7176}
!93 = !{!6, !18, i64 292}
!94 = !{!6, !14, i64 298}
!95 = !{!6, !12, i64 132}
!96 = !{!43, !10, i64 8048}
!97 = !{!13, !13, i64 0}
!98 = !{!43, !10, i64 7248}
!99 = !{!43, !10, i64 7692}
!100 = !{!43, !10, i64 7680}
!101 = !{!43, !50, i64 7716}
!102 = !{!43, !10, i64 7312}
!103 = !{!6, !12, i64 96}
!104 = !{!72, !8, i64 99}
!105 = !{!72, !7, i64 56}
!106 = !{!72, !13, i64 64}
!107 = !{!72, !7, i64 24}
!108 = !{!72, !10, i64 4}
!109 = !{!72, !10, i64 8}
!110 = !{!72, !10, i64 0}
!111 = !{!72, !12, i64 72}
!112 = !{!72, !8, i64 88}
!113 = !{!44, !13, i64 312}
!114 = !{!10, !10, i64 0}
!115 = !{!43, !49, i64 7280}
!116 = !{!72, !10, i64 16}
!117 = !{!72, !7, i64 40}
!118 = !{!8, !8, i64 0}
!119 = !{!43, !7, i64 6512}
!120 = !{!76, !12, i64 20}
!121 = !{!76, !12, i64 100}
!122 = !{!76, !7, i64 64}
!123 = !{!76, !7, i64 56}
!124 = !{!125, !12, i64 4}
!125 = !{!"_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}
!126 = !{!76, !12, i64 16}
!127 = !{!72, !13, i64 3710}
!128 = !{!72, !10, i64 68}
!129 = !{!72, !10, i64 3712}
!130 = !{!72, !7, i64 3720}
!131 = !{!72, !7, i64 3728}
!132 = !{!43, !13, i64 7261}
!133 = !{!43, !10, i64 13120}
!134 = !{!44, !12, i64 288}
!135 = !{!23, !12, i64 0}
!136 = !{!45, !12, i64 60}
!137 = !{!44, !12, i64 292}
!138 = !{!6, !12, i64 220}
!139 = !{!44, !13, i64 193}
!140 = !{!72, !13, i64 3709}
!141 = !{!44, !12, i64 940}
!142 = !{!44, !12, i64 944}
!143 = !{!72, !13, i64 3708}
!144 = !{!44, !13, i64 314}
!145 = !{!44, !13, i64 315}
!146 = !{!44, !13, i64 313}
!147 = !{!14, !14, i64 0}
!148 = !{!44, !10, i64 5440}
!149 = distinct !{!149, !150}
!150 = !{!"llvm.loop.mustprogress"}
!151 = !{!43, !13, i64 7260}
!152 = !{!44, !10, i64 948}
!153 = !{!72, !10, i64 92}
!154 = !{!44, !7, i64 256}
!155 = !{!72, !10, i64 80}
!156 = !{!72, !10, i64 84}
!157 = distinct !{!157, !150}
!158 = !{!72, !10, i64 48}
!159 = !{!30, !7, i64 8}
!160 = !{!30, !10, i64 0}
!161 = !{!72, !10, i64 32}
!162 = !{!163, !10, i64 0}
!163 = !{!"_ZTS26ImGuiInputTextCallbackData", !10, i64 0, !10, i64 4, !7, i64 8, !14, i64 16, !10, i64 20, !7, i64 24, !10, i64 32, !10, i64 36, !13, i64 40, !10, i64 44, !10, i64 48, !10, i64 52}
!164 = !{!163, !10, i64 4}
!165 = !{!163, !7, i64 8}
!166 = !{!163, !10, i64 20}
!167 = !{!163, !7, i64 24}
!168 = !{!163, !10, i64 32}
!169 = !{!163, !10, i64 36}
!170 = !{!72, !10, i64 76}
!171 = !{!163, !10, i64 44}
!172 = !{!163, !10, i64 48}
!173 = !{!163, !10, i64 52}
!174 = !{!163, !13, i64 40}
!175 = !{!23, !12, i64 4}
!176 = distinct !{!176, !150}
!177 = !{!11, !12, i64 0}
!178 = !{!11, !12, i64 4}
!179 = !{!36, !12, i64 12}
!180 = !{!36, !12, i64 4}
!181 = distinct !{!181, !150}
!182 = !{!6, !7, i64 640}
!183 = distinct !{!183, !150}
!184 = !{!44, !12, i64 16}
!185 = !{!72, !12, i64 3704}
!186 = !{!43, !13, i64 202}
!187 = !{!43, !13, i64 12524}
!188 = !{!23, !12, i64 8}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass