; LLVM IR from TheNachoBIT/GeoFenix-Engine :: GeoFenix/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.7 = 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, 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, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, 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.5, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i8, [3 x i8], i32, i32, [4 x i8] }>
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiWindowTempData = type <{ %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, i32, 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.2, %struct.ImVector.2, %struct.ImVector.3, [6 x i16], [4 x i8] }>
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type { float, float, float, [3 x float], [3 x float] }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImDrawList = type { %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, i32, ptr, ptr, i32, ptr, ptr, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImDrawCmd, %struct.ImDrawListSplitter }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImDrawCmd = type { %struct.ImVec4, ptr, i32, i32, i32, ptr, ptr }
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.12 }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImGuiContext = type <{ i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, [4 x i8], ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i32, [4 x i8], ptr, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImGuiStorage, i32, [4 x i8], ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i8, i8, [2 x i8], float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, [2 x i8], i32, i32, [4 x i8], i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, %struct.ImGuiNextWindowData, %struct.ImGuiNextItemData, [4 x i8], %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.15, %struct.ImVector.16, %struct.ImVector.16, 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.ImGuiNavMoveResult, %struct.ImGuiNavMoveResult, %struct.ImGuiNavMoveResult, ptr, i32, [4 x i8], ptr, ptr, ptr, float, float, i8, [7 x i8], ptr, ptr, i32, i32, i32, i32, i8, [7 x i8], %struct.ImDrawData, %struct.ImDrawDataBuilder, float, [4 x i8], %struct.ImDrawList, %struct.ImDrawList, 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.18, [16 x i8], ptr, %struct.ImPool, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, [3 x float], %struct.ImVec4, float, i8, i8, [2 x i8], float, float, float, i32, [4 x i8], %struct.ImVector.22, %struct.ImVector, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.24, %struct.ImChunkStream, i8, [3 x i8], i32, ptr, %struct.ImGuiTextBuffer, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, [120 x float], i32, float, i32, i32, i32, [3073 x i8], [7 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, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [21 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, 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], [21 x float], [21 x float], float, i16, %struct.ImVector.7 }
%struct.ImGuiStyle = type { float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %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, [48 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [12 x %struct.ImVec2], [64 x i8], ptr }
%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.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%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.ImGuiNavMoveResult = type <{ ptr, i32, i32, float, float, float, %struct.ImRect, [4 x i8] }>
%struct.ImDrawData = type <{ i8, [7 x i8], ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImDrawDataBuilder = type { [2 x %struct.ImVector.17] }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImPool = type <{ %struct.ImVector.19, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { i32, i32, i32, %struct.ImVector.7, %struct.ImVector.22, %struct.ImVector.22, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, ptr, ptr }
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, 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.2, float, float, %struct.ImVector.7, %struct.ImVector.23, ptr, %struct.ImVec2, ptr, ptr, i16, i16, i16, i8, i8, float, float, float, i32, [2 x i8], [6 x i8] }>
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.22 }
%struct.ImGuiTextBuffer = type { %struct.ImVector.22 }
%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 [94 x i8], align 1
@.str.55 = 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.56 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.69 = 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_(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr 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 void @_ZN5ImGui13ClearActiveIDEv() #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 noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1044), 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 @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(224), 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) #9

; 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 #9 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(224), 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 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)) #10

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #6

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

declare noundef zeroext i1 @_ZN5ImGui21FocusableItemRegisterEP11ImGuiWindowj(ptr noundef, i32 noundef) #6

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) #10 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 i8, align 1
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca i8, align 1
  %43 = alloca ptr, align 8
  %44 = alloca i8, align 1
  %45 = alloca i8, align 1
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca i8, align 1
  %49 = alloca i8, align 1
  %50 = alloca i8, align 1
  %51 = alloca i8, align 1
  %52 = alloca i8, align 1
  %53 = alloca i8, align 1
  %54 = alloca i8, align 1
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i8, align 1
  %58 = alloca i8, align 1
  %59 = alloca i8, align 1
  %60 = alloca i8, align 1
  %61 = alloca i8, align 1
  %62 = alloca ptr, align 8
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca i8, align 1
  %71 = alloca i8, align 1
  %72 = alloca i16, align 2
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i8, align 1
  %77 = alloca i32, align 4
  %78 = alloca i8, align 1
  %79 = alloca i8, align 1
  %80 = alloca i8, align 1
  %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 i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca i32, align 4
  %100 = alloca ptr, align 8
  %101 = alloca i32, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca %struct.ImVector.7, align 8
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca i8, align 1
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %111 = alloca ptr, align 8
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %116 = alloca %struct.ImVec2, align 4
  %117 = alloca %struct.ImVec2, align 4
  %118 = alloca %struct.ImVec4, align 4
  %119 = alloca %struct.ImVec2, align 4
  %120 = alloca %struct.ImVec2, align 4
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca ptr, align 8
  %124 = alloca ptr, align 8
  %125 = alloca %struct.ImVec2, align 4
  %126 = alloca %struct.ImVec2, align 4
  %127 = alloca [2 x ptr], align 16
  %128 = alloca [2 x i32], align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca ptr, align 8
  %132 = alloca %struct.ImVec2, align 4
  %133 = alloca %struct.ImVec2, align 4
  %134 = alloca %struct.ImVec2, align 4
  %135 = alloca float, align 4
  %136 = alloca float, align 4
  %137 = alloca float, align 4
  %138 = alloca %struct.ImVec2, align 4
  %139 = alloca ptr, align 8
  %140 = alloca ptr, align 8
  %141 = alloca i32, align 4
  %142 = alloca float, align 4
  %143 = alloca float, align 4
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca %struct.ImVec2, align 4
  %146 = alloca ptr, align 8
  %147 = alloca %struct.ImVec2, align 4
  %148 = alloca %struct.ImRect, align 4
  %149 = alloca %struct.ImVec2, align 4
  %150 = alloca %struct.ImVec2, align 4
  %151 = alloca %struct.ImVec2, align 4
  %152 = alloca %struct.ImVec2, align 4
  %153 = alloca %struct.ImRect, align 4
  %154 = alloca %struct.ImRect, align 4
  %155 = alloca i32, align 4
  %156 = alloca %struct.ImVec2, align 4
  %157 = alloca i8, align 1
  %158 = alloca %struct.ImVec2, align 4
  %159 = alloca %struct.ImVec2, align 4
  %160 = alloca %struct.ImRect, align 4
  %161 = alloca %struct.ImRect, align 4
  %162 = alloca %struct.ImVec2, align 4
  %163 = alloca %struct.ImVec2, align 4
  %164 = alloca %struct.ImVec2, align 4
  %165 = alloca i32, align 4
  %166 = 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
  %167 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  store ptr %167, ptr %18, align 8, !tbaa !5
  %168 = load ptr, ptr %18, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiWindow, ptr %168, i32 0, i32 27
  %170 = load i8, ptr %169, align 1, !tbaa !11, !range !42, !noundef !43
  %171 = trunc i8 %170 to i1
  br i1 %171, label %172, label %173

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

173:                                              ; preds = %8
  %174 = load ptr, ptr %12, align 8, !tbaa !5
  %175 = icmp ne ptr %174, null
  br i1 %175, label %176, label %179

176:                                              ; preds = %173
  %177 = load i32, ptr %13, align 4, !tbaa !9
  %178 = icmp sge i32 %177, 0
  br label %179

179:                                              ; preds = %176, %173
  %180 = phi i1 [ false, %173 ], [ %178, %176 ]
  br i1 %180, label %181, label %182

181:                                              ; preds = %179
  br label %184

182:                                              ; preds = %179
  call void @__assert_fail(ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 3768, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

183:                                              ; No predecessors!
  br label %184

184:                                              ; preds = %183, %181
  %185 = load i32, ptr %15, align 4, !tbaa !9
  %186 = and i32 %185, 128
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %188, label %192

188:                                              ; preds = %184
  %189 = load i32, ptr %15, align 4, !tbaa !9
  %190 = and i32 %189, 1048576
  %191 = icmp ne i32 %190, 0
  br label %192

192:                                              ; preds = %188, %184
  %193 = phi i1 [ false, %184 ], [ %191, %188 ]
  %194 = xor i1 %193, true
  br i1 %194, label %195, label %196

195:                                              ; preds = %192
  br label %198

196:                                              ; preds = %192
  call void @__assert_fail(ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 3769, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

197:                                              ; No predecessors!
  br label %198

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

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

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

209:                                              ; preds = %206
  br label %212

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

211:                                              ; No predecessors!
  br label %212

212:                                              ; preds = %211, %209
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #14
  %213 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %213, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #14
  %214 = load ptr, ptr %20, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiContext, ptr %214, i32 0, i32 3
  store ptr %215, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #14
  %216 = load ptr, ptr %20, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImGuiContext, ptr %216, i32 0, i32 4
  store ptr %217, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #14
  store i8 0, ptr %23, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #14
  %218 = load i32, ptr %15, align 4, !tbaa !9
  %219 = and i32 %218, 1048576
  %220 = icmp ne i32 %219, 0
  %221 = zext i1 %220 to i8
  store i8 %221, ptr %24, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #14
  %222 = load i32, ptr %15, align 4, !tbaa !9
  %223 = and i32 %222, 16384
  %224 = icmp ne i32 %223, 0
  %225 = zext i1 %224 to i8
  store i8 %225, ptr %25, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #14
  %226 = load i32, ptr %15, align 4, !tbaa !9
  %227 = and i32 %226, 32768
  %228 = icmp ne i32 %227, 0
  %229 = zext i1 %228 to i8
  store i8 %229, ptr %26, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #14
  %230 = load i32, ptr %15, align 4, !tbaa !9
  %231 = and i32 %230, 65536
  %232 = icmp eq i32 %231, 0
  %233 = zext i1 %232 to i8
  store i8 %233, ptr %27, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #14
  %234 = load i32, ptr %15, align 4, !tbaa !9
  %235 = and i32 %234, 262144
  %236 = icmp ne i32 %235, 0
  %237 = zext i1 %236 to i8
  store i8 %237, ptr %28, align 1, !tbaa !44
  %238 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %239 = trunc i8 %238 to i1
  br i1 %239, label %240, label %247

240:                                              ; preds = %212
  %241 = load ptr, ptr %16, align 8, !tbaa !5
  %242 = icmp ne ptr %241, null
  br i1 %242, label %243, label %244

243:                                              ; preds = %240
  br label %246

244:                                              ; preds = %240
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 3783, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

245:                                              ; No predecessors!
  br label %246

246:                                              ; preds = %245, %243
  br label %247

247:                                              ; preds = %246, %212
  %248 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %249 = trunc i8 %248 to i1
  br i1 %249, label %250, label %251

250:                                              ; preds = %247
  call void @_ZN5ImGui10BeginGroupEv()
  br label %251

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

261:                                              ; preds = %251
  %262 = load ptr, ptr %20, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiContext, ptr %262, i32 0, i32 7
  %264 = load float, ptr %263, align 8, !tbaa !47
  %265 = fmul float %264, 8.000000e+00
  br label %269

266:                                              ; preds = %251
  %267 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 1
  %268 = load float, ptr %267, align 4, !tbaa !81
  br label %269

269:                                              ; preds = %266, %261
  %270 = phi float [ %265, %261 ], [ %268, %266 ]
  %271 = load ptr, ptr %22, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiStyle, ptr %271, i32 0, i32 11
  %273 = getelementptr inbounds %struct.ImVec2, ptr %272, i32 0, i32 1
  %274 = load float, ptr %273, align 4, !tbaa !82
  %275 = call float @llvm.fmuladd.f32(float %274, float 2.000000e+00, float %270)
  %276 = load <2 x float>, ptr %32, align 4
  %277 = call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %276, float noundef %258, float noundef %275)
  store <2 x float> %277, ptr %31, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #14
  %278 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 0
  %279 = load float, ptr %278, align 4, !tbaa !83
  %280 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %281 = load float, ptr %280, align 4, !tbaa !83
  %282 = fcmp ogt float %281, 0.000000e+00
  br i1 %282, label %283, label %291

283:                                              ; preds = %269
  %284 = load ptr, ptr %22, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiStyle, ptr %284, i32 0, i32 15
  %286 = getelementptr inbounds %struct.ImVec2, ptr %285, i32 0, i32 0
  %287 = load float, ptr %286, align 4, !tbaa !84
  %288 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %289 = load float, ptr %288, align 4, !tbaa !83
  %290 = fadd float %287, %289
  br label %292

291:                                              ; preds = %269
  br label %292

292:                                              ; preds = %291, %283
  %293 = phi float [ %290, %283 ], [ 0.000000e+00, %291 ]
  %294 = fadd float %279, %293
  %295 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 1
  %296 = load float, ptr %295, align 4, !tbaa !81
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %294, float noundef %296)
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #14
  %297 = load ptr, ptr %18, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImGuiWindow, ptr %297, i32 0, i32 51
  %299 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %298, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #14
  %300 = load ptr, ptr %18, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiWindow, ptr %300, i32 0, i32 51
  %302 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %301, i32 0, i32 0
  %303 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %302, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %303, ptr %35, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %34, ptr noundef nonnull align 4 dereferenceable(8) %299, 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
  %304 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #14
  %305 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %306 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %305, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %306, ptr %37, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(8) %304, 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
  %307 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %307, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %31, i64 8, i1 false), !tbaa.struct !45
  %308 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %309 = trunc i8 %308 to i1
  br i1 %309, label %310, label %361

310:                                              ; preds = %292
  %311 = load i32, ptr %29, align 4, !tbaa !9
  %312 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %311, ptr noundef %34)
  br i1 %312, label %318, label %313

313:                                              ; preds = %310
  %314 = load ptr, ptr %22, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiStyle, ptr %314, i32 0, i32 11
  %316 = getelementptr inbounds %struct.ImVec2, ptr %315, i32 0, i32 1
  %317 = load float, ptr %316, align 4, !tbaa !82
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %317)
  call void @_ZN5ImGui8EndGroupEv()
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3136

318:                                              ; preds = %310
  %319 = load ptr, ptr %22, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImGuiStyle, ptr %319, i32 0, i32 38
  %321 = getelementptr inbounds [48 x %struct.ImVec4], ptr %320, i64 0, i64 7
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %321)
  %322 = load ptr, ptr %22, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.ImGuiStyle, ptr %322, i32 0, i32 12
  %324 = load float, ptr %323, align 4, !tbaa !85
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 6, float noundef %324)
  %325 = load ptr, ptr %22, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.ImGuiStyle, ptr %325, i32 0, i32 13
  %327 = load float, ptr %326, align 4, !tbaa !86
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %327)
  %328 = load ptr, ptr %22, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.ImGuiStyle, ptr %328, i32 0, i32 11
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(8) %329)
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #14
  %330 = load ptr, ptr %10, align 8, !tbaa !5
  %331 = load i32, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #14
  %332 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %34)
  store <2 x float> %332, ptr %41, align 4
  %333 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2bi(ptr noundef %330, i32 noundef %331, ptr noundef nonnull align 4 dereferenceable(8) %41, i1 noundef zeroext true, i32 noundef 65540)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #14
  %334 = zext i1 %333 to i8
  store i8 %334, ptr %40, align 1, !tbaa !44
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  %335 = load i8, ptr %40, align 1, !tbaa !44, !range !42, !noundef !43
  %336 = trunc i8 %335 to i1
  br i1 %336, label %338, label %337

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

338:                                              ; preds = %318
  %339 = load ptr, ptr %20, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImGuiContext, ptr %339, i32 0, i32 28
  %341 = load ptr, ptr %340, align 8, !tbaa !87
  store ptr %341, ptr %38, align 8, !tbaa !5
  %342 = load ptr, ptr %38, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiWindow, ptr %342, i32 0, i32 51
  %344 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %343, i32 0, i32 16
  %345 = load i32, ptr %344, align 8, !tbaa !88
  %346 = load ptr, ptr %38, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.ImGuiWindow, ptr %346, i32 0, i32 51
  %348 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %347, i32 0, i32 18
  %349 = load i32, ptr %348, align 8, !tbaa !89
  %350 = or i32 %349, %345
  store i32 %350, ptr %348, align 8, !tbaa !89
  %351 = load ptr, ptr %38, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.ImGuiWindow, ptr %351, i32 0, i32 19
  %353 = getelementptr inbounds %struct.ImVec2, ptr %352, i32 0, i32 0
  %354 = load float, ptr %353, align 4, !tbaa !90
  %355 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %356 = load float, ptr %355, align 4, !tbaa !83
  %357 = fsub float %356, %354
  store float %357, ptr %355, align 4, !tbaa !83
  store i32 0, ptr %19, align 4
  br label %358

358:                                              ; preds = %338, %337
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #14
  %359 = load i32, ptr %19, align 4
  switch i32 %359, label %3136 [
    i32 0, label %360
  ]

360:                                              ; preds = %358
  br label %370

361:                                              ; preds = %292
  %362 = load ptr, ptr %22, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiStyle, ptr %362, i32 0, i32 11
  %364 = getelementptr inbounds %struct.ImVec2, ptr %363, i32 0, i32 1
  %365 = load float, ptr %364, align 4, !tbaa !82
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %365)
  %366 = load i32, ptr %29, align 4, !tbaa !9
  %367 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %366, ptr noundef %34)
  br i1 %367, label %369, label %368

368:                                              ; preds = %361
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3136

369:                                              ; preds = %361
  br label %370

370:                                              ; preds = %369, %360
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #14
  %371 = load i32, ptr %29, align 4, !tbaa !9
  %372 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %371)
  %373 = zext i1 %372 to i8
  store i8 %373, ptr %42, align 1, !tbaa !44
  %374 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %375 = trunc i8 %374 to i1
  br i1 %375, label %376, label %379

376:                                              ; preds = %370
  %377 = load ptr, ptr %20, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.ImGuiContext, ptr %377, i32 0, i32 139
  store i32 1, ptr %378, align 8, !tbaa !91
  br label %379

379:                                              ; preds = %376, %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #14
  %380 = load i32, ptr %29, align 4, !tbaa !9
  %381 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %380)
  store ptr %381, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #14
  %382 = load ptr, ptr %18, align 8, !tbaa !5
  %383 = load i32, ptr %29, align 4, !tbaa !9
  %384 = call noundef zeroext i1 @_ZN5ImGui21FocusableItemRegisterEP11ImGuiWindowj(ptr noundef %382, i32 noundef %383)
  %385 = zext i1 %384 to i8
  store i8 %385, ptr %44, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #14
  %386 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %387 = trunc i8 %386 to i1
  br i1 %387, label %388, label %405

388:                                              ; preds = %379
  %389 = load ptr, ptr %20, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.ImGuiContext, ptr %389, i32 0, i32 125
  %391 = load ptr, ptr %390, align 8, !tbaa !92
  %392 = load ptr, ptr %18, align 8, !tbaa !5
  %393 = icmp eq ptr %391, %392
  br i1 %393, label %394, label %403

394:                                              ; preds = %388
  %395 = load ptr, ptr %20, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiContext, ptr %395, i32 0, i32 127
  %397 = load i32, ptr %396, align 8, !tbaa !93
  %398 = load ptr, ptr %18, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.ImGuiWindow, ptr %398, i32 0, i32 51
  %400 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %399, i32 0, i32 33
  %401 = load i32, ptr %400, align 8, !tbaa !94
  %402 = icmp eq i32 %397, %401
  br label %403

403:                                              ; preds = %394, %388
  %404 = phi i1 [ false, %388 ], [ %402, %394 ]
  br label %405

405:                                              ; preds = %403, %379
  %406 = phi i1 [ false, %379 ], [ %404, %403 ]
  %407 = zext i1 %406 to i8
  store i8 %407, ptr %45, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #14
  %408 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %409 = trunc i8 %408 to i1
  br i1 %409, label %410, label %414

410:                                              ; preds = %405
  %411 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %412 = trunc i8 %411 to i1
  %413 = xor i1 %412, true
  br label %414

414:                                              ; preds = %410, %405
  %415 = phi i1 [ false, %405 ], [ %413, %410 ]
  %416 = zext i1 %415 to i8
  store i8 %416, ptr %46, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #14
  %417 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %418 = trunc i8 %417 to i1
  br i1 %418, label %419, label %425

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

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

433:                                              ; preds = %425
  %434 = load ptr, ptr %20, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImGuiContext, ptr %434, i32 0, i32 82
  %436 = load i32, ptr %435, align 4, !tbaa !96
  %437 = load i32, ptr %29, align 4, !tbaa !9
  %438 = icmp eq i32 %436, %437
  br i1 %438, label %452, label %439

439:                                              ; preds = %433
  %440 = load ptr, ptr %20, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.ImGuiContext, ptr %440, i32 0, i32 79
  %442 = load i32, ptr %441, align 8, !tbaa !97
  %443 = load i32, ptr %29, align 4, !tbaa !9
  %444 = icmp eq i32 %442, %443
  br i1 %444, label %445, label %450

445:                                              ; preds = %439
  %446 = load ptr, ptr %20, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.ImGuiContext, ptr %446, i32 0, i32 88
  %448 = load i32, ptr %447, align 4, !tbaa !98
  %449 = icmp eq i32 %448, 3
  br label %450

450:                                              ; preds = %445, %439
  %451 = phi i1 [ false, %439 ], [ %449, %445 ]
  br label %452

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

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

459:                                              ; preds = %454
  %460 = load ptr, ptr %43, align 8, !tbaa !5
  %461 = icmp ne ptr %460, null
  br i1 %461, label %462, label %474

462:                                              ; preds = %459
  %463 = load ptr, ptr %20, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiContext, ptr %463, i32 0, i32 43
  %465 = load i32, ptr %464, align 8, !tbaa !95
  %466 = icmp eq i32 %465, 0
  br i1 %466, label %467, label %474

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

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

479:                                              ; preds = %474
  %480 = load ptr, ptr %43, align 8, !tbaa !5
  %481 = icmp ne ptr %480, null
  br i1 %481, label %482, label %489

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

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

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

501:                                              ; preds = %497
  %502 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %503 = trunc i8 %502 to i1
  br i1 %503, label %504, label %508

504:                                              ; preds = %501, %497
  %505 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %506 = trunc i8 %505 to i1
  %507 = xor i1 %506, true
  br label %508

508:                                              ; preds = %504, %501, %489
  %509 = phi i1 [ false, %501 ], [ false, %489 ], [ %507, %504 ]
  %510 = zext i1 %509 to i8
  store i8 %510, ptr %52, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #14
  %511 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %512 = trunc i8 %511 to i1
  br i1 %512, label %522, label %513

513:                                              ; preds = %508
  %514 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %515 = trunc i8 %514 to i1
  br i1 %515, label %522, label %516

516:                                              ; preds = %513
  %517 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %518 = trunc i8 %517 to i1
  br i1 %518, label %522, label %519

519:                                              ; preds = %516
  %520 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %521 = trunc i8 %520 to i1
  br label %522

522:                                              ; preds = %519, %516, %513, %508
  %523 = phi i1 [ true, %516 ], [ true, %513 ], [ true, %508 ], [ %521, %519 ]
  %524 = zext i1 %523 to i8
  store i8 %524, ptr %53, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #14
  %525 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %526 = trunc i8 %525 to i1
  br i1 %526, label %530, label %527

527:                                              ; preds = %522
  %528 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %529 = trunc i8 %528 to i1
  br label %530

530:                                              ; preds = %527, %522
  %531 = phi i1 [ true, %522 ], [ %529, %527 ]
  %532 = zext i1 %531 to i8
  store i8 %532, ptr %54, align 1, !tbaa !44
  %533 = load i8, ptr %54, align 1, !tbaa !44, !range !42, !noundef !43
  %534 = trunc i8 %533 to i1
  br i1 %534, label %535, label %638

535:                                              ; preds = %530
  %536 = load ptr, ptr %20, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.ImGuiContext, ptr %536, i32 0, i32 43
  %538 = load i32, ptr %537, align 8, !tbaa !95
  %539 = load i32, ptr %29, align 4, !tbaa !9
  %540 = icmp ne i32 %538, %539
  br i1 %540, label %541, label %638

541:                                              ; preds = %535
  %542 = load ptr, ptr %20, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiContext, ptr %542, i32 0, i32 165
  store ptr %543, ptr %43, align 8, !tbaa !5
  %544 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %544)
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #14
  %545 = load ptr, ptr %12, align 8, !tbaa !5
  %546 = call i64 @strlen(ptr noundef %545) #16
  %547 = trunc i64 %546 to i32
  store i32 %547, ptr %55, align 4, !tbaa !9
  %548 = load ptr, ptr %43, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %548, i32 0, i32 5
  %550 = load i32, ptr %55, align 4, !tbaa !9
  %551 = add nsw i32 %550, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %549, i32 noundef %551)
  %552 = load ptr, ptr %43, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %552, i32 0, i32 5
  %554 = getelementptr inbounds %struct.ImVector.22, ptr %553, i32 0, i32 2
  %555 = load ptr, ptr %554, align 8, !tbaa !100
  %556 = load ptr, ptr %12, align 8, !tbaa !5
  %557 = load i32, ptr %55, align 4, !tbaa !9
  %558 = add nsw i32 %557, 1
  %559 = sext i32 %558 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %555, ptr align 1 %556, i64 %559, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #14
  store ptr null, ptr %56, align 8, !tbaa !5
  %560 = load ptr, ptr %43, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %560, i32 0, i32 3
  %562 = load i32, ptr %13, align 4, !tbaa !9
  %563 = add nsw i32 %562, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %561, i32 noundef %563)
  %564 = load ptr, ptr %43, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %564, i32 0, i32 4
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %565, i32 noundef 0)
  %566 = load ptr, ptr %43, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %566, i32 0, i32 6
  store i8 0, ptr %567, align 8, !tbaa !101
  %568 = load ptr, ptr %43, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %568, i32 0, i32 3
  %570 = getelementptr inbounds %struct.ImVector.7, ptr %569, i32 0, i32 2
  %571 = load ptr, ptr %570, align 8, !tbaa !102
  %572 = load i32, ptr %13, align 4, !tbaa !9
  %573 = load ptr, ptr %12, align 8, !tbaa !5
  %574 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %571, i32 noundef %572, ptr noundef %573, ptr noundef null, ptr noundef %56)
  %575 = load ptr, ptr %43, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %575, i32 0, i32 1
  store i32 %574, ptr %576, align 4, !tbaa !103
  %577 = load ptr, ptr %56, align 8, !tbaa !5
  %578 = load ptr, ptr %12, align 8, !tbaa !5
  %579 = ptrtoint ptr %577 to i64
  %580 = ptrtoint ptr %578 to i64
  %581 = sub i64 %579, %580
  %582 = trunc i64 %581 to i32
  %583 = load ptr, ptr %43, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %583, i32 0, i32 2
  store i32 %582, ptr %584, align 8, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #14
  %585 = load ptr, ptr %43, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %585, i32 0, i32 0
  %587 = load i32, ptr %586, align 8, !tbaa !105
  %588 = load i32, ptr %29, align 4, !tbaa !9
  %589 = icmp eq i32 %587, %588
  %590 = zext i1 %589 to i8
  store i8 %590, ptr %57, align 1, !tbaa !44
  %591 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %592 = trunc i8 %591 to i1
  br i1 %592, label %593, label %595

593:                                              ; preds = %541
  %594 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3728) %594)
  br label %614

595:                                              ; preds = %541
  %596 = load i32, ptr %29, align 4, !tbaa !9
  %597 = load ptr, ptr %43, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %597, i32 0, i32 0
  store i32 %596, ptr %598, align 8, !tbaa !105
  %599 = load ptr, ptr %43, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %599, i32 0, i32 8
  store float 0.000000e+00, ptr %600, align 8, !tbaa !106
  %601 = load ptr, ptr %43, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %601, i32 0, i32 9
  %603 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %604 = trunc i8 %603 to i1
  %605 = xor i1 %604, true
  %606 = zext i1 %605 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef %602, i32 noundef %606)
  %607 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %608 = trunc i8 %607 to i1
  br i1 %608, label %613, label %609

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

612:                                              ; preds = %609
  store i8 1, ptr %52, align 1, !tbaa !44
  br label %613

613:                                              ; preds = %612, %609, %595
  br label %614

614:                                              ; preds = %613, %593
  %615 = load i32, ptr %15, align 4, !tbaa !9
  %616 = and i32 %615, 8192
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %622

618:                                              ; preds = %614
  %619 = load ptr, ptr %43, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %619, i32 0, i32 9
  %621 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %620, i32 0, i32 3
  store i8 1, ptr %621, align 4, !tbaa !107
  br label %622

622:                                              ; preds = %618, %614
  %623 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %624 = trunc i8 %623 to i1
  br i1 %624, label %637, label %625

625:                                              ; preds = %622
  %626 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %627 = trunc i8 %626 to i1
  br i1 %627, label %636, label %628

628:                                              ; preds = %625
  %629 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %630 = trunc i8 %629 to i1
  br i1 %630, label %631, label %637

631:                                              ; preds = %628
  %632 = load ptr, ptr %21, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiIO, ptr %632, i32 0, i32 40
  %634 = load i8, ptr %633, align 8, !tbaa !108, !range !42, !noundef !43
  %635 = trunc i8 %634 to i1
  br i1 %635, label %636, label %637

636:                                              ; preds = %631, %625
  store i8 1, ptr %52, align 1, !tbaa !44
  br label %637

637:                                              ; preds = %636, %631, %628, %622
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #14
  br label %638

638:                                              ; preds = %637, %535, %530
  %639 = load ptr, ptr %20, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.ImGuiContext, ptr %639, i32 0, i32 43
  %641 = load i32, ptr %640, align 8, !tbaa !95
  %642 = load i32, ptr %29, align 4, !tbaa !9
  %643 = icmp ne i32 %641, %642
  br i1 %643, label %644, label %708

644:                                              ; preds = %638
  %645 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %646 = trunc i8 %645 to i1
  br i1 %646, label %647, label %708

647:                                              ; preds = %644
  %648 = load ptr, ptr %43, align 8, !tbaa !5
  %649 = icmp ne ptr %648, null
  br i1 %649, label %650, label %656

650:                                              ; preds = %647
  %651 = load ptr, ptr %43, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %651, i32 0, i32 0
  %653 = load i32, ptr %652, align 8, !tbaa !105
  %654 = load i32, ptr %29, align 4, !tbaa !9
  %655 = icmp eq i32 %653, %654
  br label %656

656:                                              ; preds = %650, %647
  %657 = phi i1 [ false, %647 ], [ %655, %650 ]
  br i1 %657, label %658, label %659

658:                                              ; preds = %656
  br label %661

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

660:                                              ; No predecessors!
  br label %661

661:                                              ; preds = %660, %658
  %662 = load i32, ptr %29, align 4, !tbaa !9
  %663 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %662, ptr noundef %663)
  %664 = load i32, ptr %29, align 4, !tbaa !9
  %665 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %664, ptr noundef %665)
  %666 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %666)
  %667 = load ptr, ptr %20, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiContext, ptr %667, i32 0, i32 53
  %669 = load i32, ptr %668, align 4, !tbaa !109
  %670 = or i32 %669, 3
  store i32 %670, ptr %668, align 4, !tbaa !109
  %671 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %672 = trunc i8 %671 to i1
  br i1 %672, label %677, label %673

673:                                              ; preds = %661
  %674 = load i32, ptr %15, align 4, !tbaa !9
  %675 = and i32 %674, 128
  %676 = icmp ne i32 %675, 0
  br i1 %676, label %677, label %682

677:                                              ; preds = %673, %661
  %678 = load ptr, ptr %20, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.ImGuiContext, ptr %678, i32 0, i32 53
  %680 = load i32, ptr %679, align 4, !tbaa !109
  %681 = or i32 %680, 12
  store i32 %681, ptr %679, align 4, !tbaa !109
  br label %682

682:                                              ; preds = %677, %673
  %683 = load ptr, ptr %20, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.ImGuiContext, ptr %683, i32 0, i32 54
  %685 = load i32, ptr %684, align 8, !tbaa !110
  %686 = or i32 %685, 2
  store i32 %686, ptr %684, align 8, !tbaa !110
  %687 = load ptr, ptr %20, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.ImGuiContext, ptr %687, i32 0, i32 56
  %689 = load i64, ptr %688, align 8, !tbaa !111
  %690 = or i64 %689, 384
  store i64 %690, ptr %688, align 8, !tbaa !111
  %691 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %692 = trunc i8 %691 to i1
  br i1 %692, label %693, label %698

693:                                              ; preds = %682
  %694 = load ptr, ptr %20, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiContext, ptr %694, i32 0, i32 56
  %696 = load i64, ptr %695, align 8, !tbaa !111
  %697 = or i64 %696, 96
  store i64 %697, ptr %695, align 8, !tbaa !111
  br label %698

698:                                              ; preds = %693, %682
  %699 = load i32, ptr %15, align 4, !tbaa !9
  %700 = and i32 %699, 1088
  %701 = icmp ne i32 %700, 0
  br i1 %701, label %702, label %707

702:                                              ; preds = %698
  %703 = load ptr, ptr %20, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.ImGuiContext, ptr %703, i32 0, i32 56
  %705 = load i64, ptr %704, align 8, !tbaa !111
  %706 = or i64 %705, 1
  store i64 %706, ptr %704, align 8, !tbaa !111
  br label %707

707:                                              ; preds = %702, %698
  br label %708

708:                                              ; preds = %707, %644, %638
  %709 = load ptr, ptr %20, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.ImGuiContext, ptr %709, i32 0, i32 43
  %711 = load i32, ptr %710, align 8, !tbaa !95
  %712 = load i32, ptr %29, align 4, !tbaa !9
  %713 = icmp eq i32 %711, %712
  br i1 %713, label %714, label %718

714:                                              ; preds = %708
  %715 = load ptr, ptr %43, align 8, !tbaa !5
  %716 = icmp eq ptr %715, null
  br i1 %716, label %717, label %718

717:                                              ; preds = %714
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %718

718:                                              ; preds = %717, %714, %708
  %719 = load ptr, ptr %20, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiContext, ptr %719, i32 0, i32 43
  %721 = load i32, ptr %720, align 8, !tbaa !95
  %722 = load i32, ptr %29, align 4, !tbaa !9
  %723 = icmp eq i32 %721, %722
  br i1 %723, label %724, label %737

724:                                              ; preds = %718
  %725 = load ptr, ptr %21, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.ImGuiIO, ptr %725, i32 0, i32 64
  %727 = getelementptr inbounds [5 x i8], ptr %726, i64 0, i64 0
  %728 = load i8, ptr %727, align 8, !tbaa !44, !range !42, !noundef !43
  %729 = trunc i8 %728 to i1
  br i1 %729, label %730, label %737

730:                                              ; preds = %724
  %731 = load i8, ptr %54, align 1, !tbaa !44, !range !42, !noundef !43
  %732 = trunc i8 %731 to i1
  br i1 %732, label %737, label %733

733:                                              ; preds = %730
  %734 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %735 = trunc i8 %734 to i1
  br i1 %735, label %737, label %736

736:                                              ; preds = %733
  store i8 1, ptr %51, align 1, !tbaa !44
  br label %737

737:                                              ; preds = %736, %733, %730, %724, %718
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #14
  %738 = load ptr, ptr %20, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.ImGuiContext, ptr %738, i32 0, i32 43
  %740 = load i32, ptr %739, align 8, !tbaa !95
  %741 = load i32, ptr %29, align 4, !tbaa !9
  %742 = icmp eq i32 %740, %741
  br i1 %742, label %751, label %743

743:                                              ; preds = %737
  %744 = load ptr, ptr %43, align 8, !tbaa !5
  %745 = icmp ne ptr %744, null
  br i1 %745, label %746, label %749

746:                                              ; preds = %743
  %747 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %748 = trunc i8 %747 to i1
  br label %749

749:                                              ; preds = %746, %743
  %750 = phi i1 [ false, %743 ], [ %748, %746 ]
  br label %751

751:                                              ; preds = %749, %737
  %752 = phi i1 [ true, %737 ], [ %750, %749 ]
  %753 = zext i1 %752 to i8
  store i8 %753, ptr %58, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #14
  %754 = load ptr, ptr %43, align 8, !tbaa !5
  %755 = icmp ne ptr %754, null
  br i1 %755, label %756, label %762

756:                                              ; preds = %751
  %757 = load ptr, ptr %43, align 8, !tbaa !5
  %758 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %757)
  br i1 %758, label %759, label %762

759:                                              ; preds = %756
  %760 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %761 = trunc i8 %760 to i1
  br label %762

762:                                              ; preds = %759, %756, %751
  %763 = phi i1 [ false, %756 ], [ false, %751 ], [ %761, %759 ]
  %764 = zext i1 %763 to i8
  store i8 %764, ptr %59, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #14
  store i8 0, ptr %60, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #14
  store i8 0, ptr %61, align 1, !tbaa !44
  %765 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %766 = trunc i8 %765 to i1
  br i1 %766, label %767, label %811

767:                                              ; preds = %762
  %768 = load ptr, ptr %43, align 8, !tbaa !5
  %769 = icmp ne ptr %768, null
  br i1 %769, label %770, label %811

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

773:                                              ; preds = %770
  %774 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %775 = trunc i8 %774 to i1
  br i1 %775, label %776, label %811

776:                                              ; preds = %773, %770
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #14
  store ptr null, ptr %62, align 8, !tbaa !5
  %777 = load ptr, ptr %43, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %777, i32 0, i32 3
  %779 = load i32, ptr %13, align 4, !tbaa !9
  %780 = add nsw i32 %779, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %778, i32 noundef %780)
  %781 = load ptr, ptr %43, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %781, i32 0, i32 3
  %783 = getelementptr inbounds %struct.ImVector.7, ptr %782, i32 0, i32 2
  %784 = load ptr, ptr %783, align 8, !tbaa !102
  %785 = load ptr, ptr %43, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %785, i32 0, i32 3
  %787 = getelementptr inbounds %struct.ImVector.7, ptr %786, i32 0, i32 0
  %788 = load i32, ptr %787, align 8, !tbaa !112
  %789 = load ptr, ptr %12, align 8, !tbaa !5
  %790 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %784, i32 noundef %788, ptr noundef %789, ptr noundef null, ptr noundef %62)
  %791 = load ptr, ptr %43, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %791, i32 0, i32 1
  store i32 %790, ptr %792, align 4, !tbaa !103
  %793 = load ptr, ptr %62, align 8, !tbaa !5
  %794 = load ptr, ptr %12, align 8, !tbaa !5
  %795 = ptrtoint ptr %793 to i64
  %796 = ptrtoint ptr %794 to i64
  %797 = sub i64 %795, %796
  %798 = trunc i64 %797 to i32
  %799 = load ptr, ptr %43, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %799, i32 0, i32 2
  store i32 %798, ptr %800, align 8, !tbaa !104
  %801 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3728) %801)
  %802 = load ptr, ptr %43, align 8, !tbaa !5
  %803 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %802)
  %804 = zext i1 %803 to i32
  %805 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %806 = trunc i8 %805 to i1
  %807 = zext i1 %806 to i32
  %808 = and i32 %807, %804
  %809 = icmp ne i32 %808, 0
  %810 = zext i1 %809 to i8
  store i8 %810, ptr %59, align 1, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #14
  br label %811

811:                                              ; preds = %776, %773, %767, %762
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #14
  %812 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %813 = trunc i8 %812 to i1
  br i1 %813, label %823, label %814

814:                                              ; preds = %811
  %815 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %816 = trunc i8 %815 to i1
  br i1 %816, label %823, label %817

817:                                              ; preds = %814
  %818 = load ptr, ptr %20, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.ImGuiContext, ptr %818, i32 0, i32 43
  %820 = load i32, ptr %819, align 8, !tbaa !95
  %821 = load i32, ptr %29, align 4, !tbaa !9
  %822 = icmp eq i32 %820, %821
  br i1 %822, label %823, label %834

823:                                              ; preds = %817, %814, %811
  %824 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %825 = trunc i8 %824 to i1
  br i1 %825, label %834, label %826

826:                                              ; preds = %823
  %827 = load ptr, ptr %43, align 8, !tbaa !5
  %828 = icmp ne ptr %827, null
  br i1 %828, label %829, label %834

829:                                              ; preds = %826
  %830 = load ptr, ptr %43, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %830, i32 0, i32 6
  %832 = load i8, ptr %831, align 8, !tbaa !101, !range !42, !noundef !43
  %833 = trunc i8 %832 to i1
  br label %834

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

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

842:                                              ; preds = %839
  %843 = load ptr, ptr %43, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %843, i32 0, i32 4
  %845 = getelementptr inbounds %struct.ImVector.22, ptr %844, i32 0, i32 2
  %846 = load ptr, ptr %845, align 8, !tbaa !113
  br label %849

847:                                              ; preds = %839
  %848 = load ptr, ptr %12, align 8, !tbaa !5
  br label %849

849:                                              ; preds = %847, %842
  %850 = phi ptr [ %846, %842 ], [ %848, %847 ]
  %851 = getelementptr inbounds i8, ptr %850, i64 0
  %852 = load i8, ptr %851, align 1, !tbaa !114
  %853 = sext i8 %852 to i32
  %854 = icmp eq i32 %853, 0
  br label %855

855:                                              ; preds = %849, %834
  %856 = phi i1 [ false, %834 ], [ %854, %849 ]
  %857 = zext i1 %856 to i8
  store i8 %857, ptr %64, align 1, !tbaa !44
  %858 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %859 = trunc i8 %858 to i1
  br i1 %859, label %860, label %937

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

863:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #14
  %864 = load ptr, ptr %20, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.ImGuiContext, ptr %864, i32 0, i32 6
  %866 = load ptr, ptr %865, align 8, !tbaa !115
  %867 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(114) %866, i16 noundef zeroext 42)
  store ptr %867, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #14
  %868 = load ptr, ptr %20, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.ImGuiContext, ptr %868, i32 0, i32 166
  store ptr %869, ptr %66, align 8, !tbaa !5
  %870 = load ptr, ptr %20, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.ImGuiContext, ptr %870, i32 0, i32 6
  %872 = load ptr, ptr %871, align 8, !tbaa !115
  %873 = getelementptr inbounds %struct.ImFont, ptr %872, i32 0, i32 2
  %874 = load float, ptr %873, align 4, !tbaa !116
  %875 = load ptr, ptr %66, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.ImFont, ptr %875, i32 0, i32 2
  store float %874, ptr %876, align 4, !tbaa !116
  %877 = load ptr, ptr %20, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ImGuiContext, ptr %877, i32 0, i32 6
  %879 = load ptr, ptr %878, align 8, !tbaa !115
  %880 = getelementptr inbounds %struct.ImFont, ptr %879, i32 0, i32 14
  %881 = load float, ptr %880, align 8, !tbaa !117
  %882 = load ptr, ptr %66, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.ImFont, ptr %882, i32 0, i32 14
  store float %881, ptr %883, align 8, !tbaa !117
  %884 = load ptr, ptr %20, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.ImGuiContext, ptr %884, i32 0, i32 6
  %886 = load ptr, ptr %885, align 8, !tbaa !115
  %887 = getelementptr inbounds %struct.ImFont, ptr %886, i32 0, i32 6
  %888 = load ptr, ptr %66, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImFont, ptr %888, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %889, ptr align 8 %887, i64 8, i1 false), !tbaa.struct !45
  %890 = load ptr, ptr %20, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.ImGuiContext, ptr %890, i32 0, i32 6
  %892 = load ptr, ptr %891, align 8, !tbaa !115
  %893 = getelementptr inbounds %struct.ImFont, ptr %892, i32 0, i32 15
  %894 = load float, ptr %893, align 4, !tbaa !118
  %895 = load ptr, ptr %66, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.ImFont, ptr %895, i32 0, i32 15
  store float %894, ptr %896, align 4, !tbaa !118
  %897 = load ptr, ptr %20, align 8, !tbaa !5
  %898 = getelementptr inbounds %struct.ImGuiContext, ptr %897, i32 0, i32 6
  %899 = load ptr, ptr %898, align 8, !tbaa !115
  %900 = getelementptr inbounds %struct.ImFont, ptr %899, i32 0, i32 16
  %901 = load float, ptr %900, align 8, !tbaa !119
  %902 = load ptr, ptr %66, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ImFont, ptr %902, i32 0, i32 16
  store float %901, ptr %903, align 8, !tbaa !119
  %904 = load ptr, ptr %20, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ImGuiContext, ptr %904, i32 0, i32 6
  %906 = load ptr, ptr %905, align 8, !tbaa !115
  %907 = getelementptr inbounds %struct.ImFont, ptr %906, i32 0, i32 7
  %908 = load ptr, ptr %907, align 8, !tbaa !120
  %909 = load ptr, ptr %66, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.ImFont, ptr %909, i32 0, i32 7
  store ptr %908, ptr %910, align 8, !tbaa !120
  %911 = load ptr, ptr %65, align 8, !tbaa !5
  %912 = load ptr, ptr %66, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImFont, ptr %912, i32 0, i32 5
  store ptr %911, ptr %913, align 8, !tbaa !121
  %914 = load ptr, ptr %65, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.ImFontGlyph, ptr %914, i32 0, i32 1
  %916 = load float, ptr %915, align 4, !tbaa !122
  %917 = load ptr, ptr %66, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.ImFont, ptr %917, i32 0, i32 1
  store float %916, ptr %918, align 8, !tbaa !124
  %919 = load ptr, ptr %66, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImFont, ptr %919, i32 0, i32 4
  %921 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %920)
  br i1 %921, label %922, label %930

922:                                              ; preds = %863
  %923 = load ptr, ptr %66, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.ImFont, ptr %923, i32 0, i32 0
  %925 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %924)
  br i1 %925, label %926, label %930

926:                                              ; preds = %922
  %927 = load ptr, ptr %66, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.ImFont, ptr %927, i32 0, i32 3
  %929 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %928)
  br label %930

930:                                              ; preds = %926, %922, %863
  %931 = phi i1 [ false, %922 ], [ false, %863 ], [ %929, %926 ]
  br i1 %931, label %932, label %933

932:                                              ; preds = %930
  br label %935

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

934:                                              ; No predecessors!
  br label %935

935:                                              ; preds = %934, %932
  %936 = load ptr, ptr %66, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %936)
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #14
  br label %937

937:                                              ; preds = %935, %860, %855
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #14
  store i32 0, ptr %67, align 4, !tbaa !9
  %938 = load ptr, ptr %20, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiContext, ptr %938, i32 0, i32 43
  %940 = load i32, ptr %939, align 8, !tbaa !95
  %941 = load i32, ptr %29, align 4, !tbaa !9
  %942 = icmp eq i32 %940, %941
  br i1 %942, label %943, label %1242

943:                                              ; preds = %937
  %944 = load ptr, ptr %43, align 8, !tbaa !5
  %945 = icmp ne ptr %944, null
  br i1 %945, label %946, label %947

946:                                              ; preds = %943
  br label %949

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

948:                                              ; No predecessors!
  br label %949

949:                                              ; preds = %948, %946
  %950 = load ptr, ptr %43, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %950, i32 0, i32 2
  %952 = load i32, ptr %951, align 8, !tbaa !104
  store i32 %952, ptr %67, align 4, !tbaa !9
  %953 = load ptr, ptr %43, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %953, i32 0, i32 13
  store i8 0, ptr %954, align 2, !tbaa !125
  %955 = load i32, ptr %13, align 4, !tbaa !9
  %956 = load ptr, ptr %43, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %956, i32 0, i32 7
  store i32 %955, ptr %957, align 4, !tbaa !126
  %958 = load i32, ptr %15, align 4, !tbaa !9
  %959 = load ptr, ptr %43, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %959, i32 0, i32 14
  store i32 %958, ptr %960, align 8, !tbaa !127
  %961 = load ptr, ptr %16, align 8, !tbaa !5
  %962 = load ptr, ptr %43, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %962, i32 0, i32 15
  store ptr %961, ptr %963, align 8, !tbaa !128
  %964 = load ptr, ptr %17, align 8, !tbaa !5
  %965 = load ptr, ptr %43, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %965, i32 0, i32 16
  store ptr %964, ptr %966, align 8, !tbaa !129
  %967 = load ptr, ptr %21, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.ImGuiIO, ptr %967, i32 0, i32 37
  %969 = getelementptr inbounds [5 x i8], ptr %968, i64 0, i64 0
  %970 = load i8, ptr %969, align 8, !tbaa !44, !range !42, !noundef !43
  %971 = trunc i8 %970 to i1
  %972 = xor i1 %971, true
  %973 = load ptr, ptr %20, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.ImGuiContext, ptr %973, i32 0, i32 47
  %975 = zext i1 %972 to i8
  store i8 %975, ptr %974, align 1, !tbaa !130
  %976 = load ptr, ptr %20, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.ImGuiContext, ptr %976, i32 0, i32 212
  store i32 1, ptr %977, align 4, !tbaa !131
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #14
  %978 = load ptr, ptr %21, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.ImGuiIO, ptr %978, i32 0, i32 36
  %980 = getelementptr inbounds %struct.ImVec2, ptr %979, i32 0, i32 0
  %981 = load float, ptr %980, align 8, !tbaa !132
  %982 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %983 = getelementptr inbounds %struct.ImVec2, ptr %982, i32 0, i32 0
  %984 = load float, ptr %983, align 4, !tbaa !133
  %985 = fsub float %981, %984
  %986 = load ptr, ptr %22, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.ImGuiStyle, ptr %986, i32 0, i32 11
  %988 = getelementptr inbounds %struct.ImVec2, ptr %987, i32 0, i32 0
  %989 = load float, ptr %988, align 4, !tbaa !134
  %990 = fsub float %985, %989
  %991 = load ptr, ptr %43, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %991, i32 0, i32 8
  %993 = load float, ptr %992, align 8, !tbaa !106
  %994 = fadd float %990, %993
  store float %994, ptr %68, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #14
  %995 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %996 = trunc i8 %995 to i1
  br i1 %996, label %997, label %1013

997:                                              ; preds = %949
  %998 = load ptr, ptr %21, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.ImGuiIO, ptr %998, i32 0, i32 36
  %1000 = getelementptr inbounds %struct.ImVec2, ptr %999, i32 0, i32 1
  %1001 = load float, ptr %1000, align 4, !tbaa !135
  %1002 = load ptr, ptr %38, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.ImGuiWindow, ptr %1002, i32 0, i32 51
  %1004 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1003, i32 0, i32 0
  %1005 = getelementptr inbounds %struct.ImVec2, ptr %1004, i32 0, i32 1
  %1006 = load float, ptr %1005, align 4, !tbaa !136
  %1007 = fsub float %1001, %1006
  %1008 = load ptr, ptr %22, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.ImGuiStyle, ptr %1008, i32 0, i32 11
  %1010 = getelementptr inbounds %struct.ImVec2, ptr %1009, i32 0, i32 1
  %1011 = load float, ptr %1010, align 4, !tbaa !82
  %1012 = fsub float %1007, %1011
  br label %1018

1013:                                             ; preds = %949
  %1014 = load ptr, ptr %20, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.ImGuiContext, ptr %1014, i32 0, i32 7
  %1016 = load float, ptr %1015, align 8, !tbaa !47
  %1017 = fmul float %1016, 5.000000e-01
  br label %1018

1018:                                             ; preds = %1013, %997
  %1019 = phi float [ %1012, %997 ], [ %1017, %1013 ]
  store float %1019, ptr %69, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #14
  %1020 = load ptr, ptr %21, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.ImGuiIO, ptr %1020, i32 0, i32 20
  %1022 = load i8, ptr %1021, align 1, !tbaa !137, !range !42, !noundef !43
  %1023 = trunc i8 %1022 to i1
  %1024 = zext i1 %1023 to i8
  store i8 %1024, ptr %70, align 1, !tbaa !44
  %1025 = load i8, ptr %52, align 1, !tbaa !44, !range !42, !noundef !43
  %1026 = trunc i8 %1025 to i1
  br i1 %1026, label %1039, label %1027

1027:                                             ; preds = %1018
  %1028 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %1029 = trunc i8 %1028 to i1
  br i1 %1029, label %1030, label %1043

1030:                                             ; preds = %1027
  %1031 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %1032 = trunc i8 %1031 to i1
  br i1 %1032, label %1043, label %1033

1033:                                             ; preds = %1030
  %1034 = load ptr, ptr %21, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiIO, ptr %1034, i32 0, i32 65
  %1036 = getelementptr inbounds [5 x i8], ptr %1035, i64 0, i64 0
  %1037 = load i8, ptr %1036, align 1, !tbaa !44, !range !42, !noundef !43
  %1038 = trunc i8 %1037 to i1
  br i1 %1038, label %1039, label %1043

1039:                                             ; preds = %1033, %1018
  %1040 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3728) %1040)
  %1041 = load ptr, ptr %43, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1041, i32 0, i32 12
  store i8 1, ptr %1042, align 1, !tbaa !138
  br label %1115

1043:                                             ; preds = %1033, %1030, %1027
  %1044 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %1045 = trunc i8 %1044 to i1
  br i1 %1045, label %1046, label %1058

1046:                                             ; preds = %1043
  %1047 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %1048 = trunc i8 %1047 to i1
  br i1 %1048, label %1049, label %1058

1049:                                             ; preds = %1046
  %1050 = load ptr, ptr %21, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.ImGuiIO, ptr %1050, i32 0, i32 65
  %1052 = getelementptr inbounds [5 x i8], ptr %1051, i64 0, i64 0
  %1053 = load i8, ptr %1052, align 1, !tbaa !44, !range !42, !noundef !43
  %1054 = trunc i8 %1053 to i1
  br i1 %1054, label %1055, label %1058

1055:                                             ; preds = %1049
  %1056 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1056, i32 noundef 2097164)
  %1057 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1057, i32 noundef 6291469)
  br label %1114

1058:                                             ; preds = %1049, %1046, %1043
  %1059 = load ptr, ptr %21, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.ImGuiIO, ptr %1059, i32 0, i32 64
  %1061 = getelementptr inbounds [5 x i8], ptr %1060, i64 0, i64 0
  %1062 = load i8, ptr %1061, align 8, !tbaa !44, !range !42, !noundef !43
  %1063 = trunc i8 %1062 to i1
  br i1 %1063, label %1064, label %1080

1064:                                             ; preds = %1058
  %1065 = load ptr, ptr %43, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1065, i32 0, i32 12
  %1067 = load i8, ptr %1066, align 1, !tbaa !138, !range !42, !noundef !43
  %1068 = trunc i8 %1067 to i1
  br i1 %1068, label %1080, label %1069

1069:                                             ; preds = %1064
  %1070 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %1071 = trunc i8 %1070 to i1
  br i1 %1071, label %1072, label %1079

1072:                                             ; preds = %1069
  %1073 = load ptr, ptr %43, align 8, !tbaa !5
  %1074 = load ptr, ptr %43, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1074, i32 0, i32 9
  %1076 = load float, ptr %68, align 4, !tbaa !46
  %1077 = load float, ptr %69, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1073, ptr noundef %1075, float noundef %1076, float noundef %1077)
  %1078 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %1078)
  br label %1079

1079:                                             ; preds = %1072, %1069
  br label %1113

1080:                                             ; preds = %1064, %1058
  %1081 = load ptr, ptr %21, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.ImGuiIO, ptr %1081, i32 0, i32 37
  %1083 = getelementptr inbounds [5 x i8], ptr %1082, i64 0, i64 0
  %1084 = load i8, ptr %1083, align 8, !tbaa !44, !range !42, !noundef !43
  %1085 = trunc i8 %1084 to i1
  br i1 %1085, label %1086, label %1112

1086:                                             ; preds = %1080
  %1087 = load ptr, ptr %43, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1087, i32 0, i32 12
  %1089 = load i8, ptr %1088, align 1, !tbaa !138, !range !42, !noundef !43
  %1090 = trunc i8 %1089 to i1
  br i1 %1090, label %1112, label %1091

1091:                                             ; preds = %1086
  %1092 = load ptr, ptr %21, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.ImGuiIO, ptr %1092, i32 0, i32 59
  %1094 = getelementptr inbounds %struct.ImVec2, ptr %1093, i32 0, i32 0
  %1095 = load float, ptr %1094, align 8, !tbaa !139
  %1096 = fcmp une float %1095, 0.000000e+00
  br i1 %1096, label %1103, label %1097

1097:                                             ; preds = %1091
  %1098 = load ptr, ptr %21, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.ImGuiIO, ptr %1098, i32 0, i32 59
  %1100 = getelementptr inbounds %struct.ImVec2, ptr %1099, i32 0, i32 1
  %1101 = load float, ptr %1100, align 4, !tbaa !140
  %1102 = fcmp une float %1101, 0.000000e+00
  br i1 %1102, label %1103, label %1112

1103:                                             ; preds = %1097, %1091
  %1104 = load ptr, ptr %43, align 8, !tbaa !5
  %1105 = load ptr, ptr %43, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1105, i32 0, i32 9
  %1107 = load float, ptr %68, align 4, !tbaa !46
  %1108 = load float, ptr %69, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1104, ptr noundef %1106, float noundef %1107, float noundef %1108)
  %1109 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %1109)
  %1110 = load ptr, ptr %43, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1110, i32 0, i32 11
  store i8 1, ptr %1111, align 4, !tbaa !141
  br label %1112

1112:                                             ; preds = %1103, %1097, %1086, %1080
  br label %1113

1113:                                             ; preds = %1112, %1079
  br label %1114

1114:                                             ; preds = %1113, %1055
  br label %1115

1115:                                             ; preds = %1114, %1039
  %1116 = load ptr, ptr %43, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1116, i32 0, i32 12
  %1118 = load i8, ptr %1117, align 1, !tbaa !138, !range !42, !noundef !43
  %1119 = trunc i8 %1118 to i1
  br i1 %1119, label %1120, label %1129

1120:                                             ; preds = %1115
  %1121 = load ptr, ptr %21, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.ImGuiIO, ptr %1121, i32 0, i32 37
  %1123 = getelementptr inbounds [5 x i8], ptr %1122, i64 0, i64 0
  %1124 = load i8, ptr %1123, align 8, !tbaa !44, !range !42, !noundef !43
  %1125 = trunc i8 %1124 to i1
  br i1 %1125, label %1129, label %1126

1126:                                             ; preds = %1120
  %1127 = load ptr, ptr %43, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1127, i32 0, i32 12
  store i8 0, ptr %1128, align 1, !tbaa !138
  br label %1129

1129:                                             ; preds = %1126, %1120, %1115
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #14
  %1130 = load ptr, ptr %21, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ImGuiIO, ptr %1130, i32 0, i32 40
  %1132 = load i8, ptr %1131, align 8, !tbaa !108, !range !42, !noundef !43
  %1133 = trunc i8 %1132 to i1
  br i1 %1133, label %1134, label %1139

1134:                                             ; preds = %1129
  %1135 = load ptr, ptr %21, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.ImGuiIO, ptr %1135, i32 0, i32 42
  %1137 = load i8, ptr %1136, align 2, !tbaa !142, !range !42, !noundef !43
  %1138 = trunc i8 %1137 to i1
  br i1 %1138, label %1139, label %1149

1139:                                             ; preds = %1134, %1129
  %1140 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %1141 = trunc i8 %1140 to i1
  br i1 %1141, label %1142, label %1147

1142:                                             ; preds = %1139
  %1143 = load ptr, ptr %21, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.ImGuiIO, ptr %1143, i32 0, i32 43
  %1145 = load i8, ptr %1144, align 1, !tbaa !143, !range !42, !noundef !43
  %1146 = trunc i8 %1145 to i1
  br label %1147

1147:                                             ; preds = %1142, %1139
  %1148 = phi i1 [ false, %1139 ], [ %1146, %1142 ]
  br label %1149

1149:                                             ; preds = %1147, %1134
  %1150 = phi i1 [ true, %1134 ], [ %1148, %1147 ]
  %1151 = zext i1 %1150 to i8
  store i8 %1151, ptr %71, align 1, !tbaa !44
  %1152 = load i32, ptr %15, align 4, !tbaa !9
  %1153 = and i32 %1152, 1024
  %1154 = icmp ne i32 %1153, 0
  br i1 %1154, label %1155, label %1183

1155:                                             ; preds = %1149
  %1156 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  br i1 %1156, label %1157, label %1183

1157:                                             ; preds = %1155
  %1158 = load i8, ptr %71, align 1, !tbaa !44, !range !42, !noundef !43
  %1159 = trunc i8 %1158 to i1
  br i1 %1159, label %1183, label %1160

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

1165:                                             ; preds = %1160
  %1166 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1167 = trunc i8 %1166 to i1
  br i1 %1167, label %1183, label %1168

1168:                                             ; preds = %1165
  %1169 = load ptr, ptr %21, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.ImGuiIO, ptr %1169, i32 0, i32 79
  call void @llvm.lifetime.start.p0(i64 2, ptr %72) #14
  store i16 9, ptr %72, align 2, !tbaa !145
  %1171 = call noundef zeroext i1 @_ZNK8ImVectorItE8containsERKt(ptr noundef nonnull align 8 dereferenceable(16) %1170, ptr noundef nonnull align 2 dereferenceable(2) %72)
  %1172 = xor i1 %1171, true
  call void @llvm.lifetime.end.p0(i64 2, ptr %72) #14
  br i1 %1172, label %1173, label %1182

1173:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #14
  store i32 9, ptr %73, align 4, !tbaa !9
  %1174 = load i32, ptr %15, align 4, !tbaa !9
  %1175 = load ptr, ptr %16, align 8, !tbaa !5
  %1176 = load ptr, ptr %17, align 8, !tbaa !5
  %1177 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %73, i32 noundef %1174, ptr noundef %1175, ptr noundef %1176)
  br i1 %1177, label %1178, label %1181

1178:                                             ; preds = %1173
  %1179 = load ptr, ptr %43, align 8, !tbaa !5
  %1180 = load i32, ptr %73, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1179, i32 noundef %1180)
  br label %1181

1181:                                             ; preds = %1178, %1173
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #14
  br label %1182

1182:                                             ; preds = %1181, %1168
  br label %1183

1183:                                             ; preds = %1182, %1165, %1160, %1157, %1155, %1149
  %1184 = load ptr, ptr %21, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.ImGuiIO, ptr %1184, i32 0, i32 79
  %1186 = getelementptr inbounds %struct.ImVector.7, ptr %1185, i32 0, i32 0
  %1187 = load i32, ptr %1186, align 8, !tbaa !146
  %1188 = icmp sgt i32 %1187, 0
  br i1 %1188, label %1189, label %1241

1189:                                             ; preds = %1183
  %1190 = load i8, ptr %71, align 1, !tbaa !44, !range !42, !noundef !43
  %1191 = trunc i8 %1190 to i1
  br i1 %1191, label %1238, label %1192

1192:                                             ; preds = %1189
  %1193 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1194 = trunc i8 %1193 to i1
  br i1 %1194, label %1238, label %1195

1195:                                             ; preds = %1192
  %1196 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %1197 = trunc i8 %1196 to i1
  br i1 %1197, label %1238, label %1198

1198:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #14
  store i32 0, ptr %74, align 4, !tbaa !9
  br label %1199

1199:                                             ; preds = %1234, %1198
  %1200 = load i32, ptr %74, align 4, !tbaa !9
  %1201 = load ptr, ptr %21, align 8, !tbaa !5
  %1202 = getelementptr inbounds %struct.ImGuiIO, ptr %1201, i32 0, i32 79
  %1203 = getelementptr inbounds %struct.ImVector.7, ptr %1202, i32 0, i32 0
  %1204 = load i32, ptr %1203, align 8, !tbaa !146
  %1205 = icmp slt i32 %1200, %1204
  br i1 %1205, label %1207, label %1206

1206:                                             ; preds = %1199
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #14
  br label %1237

1207:                                             ; preds = %1199
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #14
  %1208 = load ptr, ptr %21, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImGuiIO, ptr %1208, i32 0, i32 79
  %1210 = load i32, ptr %74, align 4, !tbaa !9
  %1211 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1209, i32 noundef %1210)
  %1212 = load i16, ptr %1211, align 2, !tbaa !145
  %1213 = zext i16 %1212 to i32
  store i32 %1213, ptr %75, align 4, !tbaa !9
  %1214 = load i32, ptr %75, align 4, !tbaa !9
  %1215 = icmp eq i32 %1214, 9
  br i1 %1215, label %1216, label %1222

1216:                                             ; preds = %1207
  %1217 = load ptr, ptr %21, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.ImGuiIO, ptr %1217, i32 0, i32 41
  %1219 = load i8, ptr %1218, align 1, !tbaa !144, !range !42, !noundef !43
  %1220 = trunc i8 %1219 to i1
  br i1 %1220, label %1221, label %1222

1221:                                             ; preds = %1216
  store i32 4, ptr %19, align 4
  br label %1231

1222:                                             ; preds = %1216, %1207
  %1223 = load i32, ptr %15, align 4, !tbaa !9
  %1224 = load ptr, ptr %16, align 8, !tbaa !5
  %1225 = load ptr, ptr %17, align 8, !tbaa !5
  %1226 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %75, i32 noundef %1223, ptr noundef %1224, ptr noundef %1225)
  br i1 %1226, label %1227, label %1230

1227:                                             ; preds = %1222
  %1228 = load ptr, ptr %43, align 8, !tbaa !5
  %1229 = load i32, ptr %75, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1228, i32 noundef %1229)
  br label %1230

1230:                                             ; preds = %1227, %1222
  store i32 0, ptr %19, align 4
  br label %1231

1231:                                             ; preds = %1230, %1221
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #14
  %1232 = load i32, ptr %19, align 4
  switch i32 %1232, label %3144 [
    i32 0, label %1233
    i32 4, label %1234
  ]

1233:                                             ; preds = %1231
  br label %1234

1234:                                             ; preds = %1233, %1231
  %1235 = load i32, ptr %74, align 4, !tbaa !9
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr %74, align 4, !tbaa !9
  br label %1199, !llvm.loop !147

1237:                                             ; preds = %1206
  br label %1238

1238:                                             ; preds = %1237, %1195, %1192, %1189
  %1239 = load ptr, ptr %21, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.ImGuiIO, ptr %1239, i32 0, i32 79
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1240, i32 noundef 0)
  br label %1241

1241:                                             ; preds = %1238, %1183
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #14
  br label %1242

1242:                                             ; preds = %1241, %937
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #14
  store i8 0, ptr %76, align 1, !tbaa !44
  %1243 = load ptr, ptr %20, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiContext, ptr %1243, i32 0, i32 43
  %1245 = load i32, ptr %1244, align 8, !tbaa !95
  %1246 = load i32, ptr %29, align 4, !tbaa !9
  %1247 = icmp eq i32 %1245, %1246
  br i1 %1247, label %1248, label %1891

1248:                                             ; preds = %1242
  %1249 = load ptr, ptr %20, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.ImGuiContext, ptr %1249, i32 0, i32 46
  %1251 = load i8, ptr %1250, align 4, !tbaa !149, !range !42, !noundef !43
  %1252 = trunc i8 %1251 to i1
  br i1 %1252, label %1891, label %1253

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

1256:                                             ; preds = %1253
  %1257 = load ptr, ptr %43, align 8, !tbaa !5
  %1258 = icmp ne ptr %1257, null
  br i1 %1258, label %1259, label %1260

1259:                                             ; preds = %1256
  br label %1262

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

1261:                                             ; No predecessors!
  br label %1262

1262:                                             ; preds = %1261, %1259
  %1263 = load ptr, ptr %21, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.ImGuiIO, ptr %1263, i32 0, i32 60
  %1265 = load i32, ptr %1264, align 8, !tbaa !150
  %1266 = call noundef i32 @_ZN5ImGui20GetMergedKeyModFlagsEv()
  %1267 = icmp eq i32 %1265, %1266
  br i1 %1267, label %1268, label %1269

1268:                                             ; preds = %1262
  br label %1269

1269:                                             ; preds = %1268, %1262
  %1270 = phi i1 [ false, %1262 ], [ true, %1268 ]
  br i1 %1270, label %1271, label %1272

1271:                                             ; preds = %1269
  br label %1274

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

1273:                                             ; No predecessors!
  br label %1274

1274:                                             ; preds = %1273, %1271
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #14
  %1275 = load ptr, ptr %21, align 8, !tbaa !5
  %1276 = getelementptr inbounds %struct.ImGuiIO, ptr %1275, i32 0, i32 41
  %1277 = load i8, ptr %1276, align 1, !tbaa !144, !range !42, !noundef !43
  %1278 = trunc i8 %1277 to i1
  %1279 = zext i1 %1278 to i64
  %1280 = select i1 %1278, i32 4194304, i32 0
  store i32 %1280, ptr %77, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #14
  %1281 = load ptr, ptr %21, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.ImGuiIO, ptr %1281, i32 0, i32 20
  %1283 = load i8, ptr %1282, align 1, !tbaa !137, !range !42, !noundef !43
  %1284 = trunc i8 %1283 to i1
  %1285 = zext i1 %1284 to i8
  store i8 %1285, ptr %78, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #14
  %1286 = load i8, ptr %78, align 1, !tbaa !44, !range !42, !noundef !43
  %1287 = trunc i8 %1286 to i1
  br i1 %1287, label %1288, label %1293

1288:                                             ; preds = %1274
  %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 8, !tbaa !150
  %1292 = icmp eq i32 %1291, 10
  br label %1293

1293:                                             ; preds = %1288, %1274
  %1294 = phi i1 [ false, %1274 ], [ %1292, %1288 ]
  %1295 = zext i1 %1294 to i8
  store i8 %1295, ptr %79, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #14
  %1296 = load i8, ptr %78, align 1, !tbaa !44, !range !42, !noundef !43
  %1297 = trunc i8 %1296 to i1
  br i1 %1297, label %1298, label %1303

1298:                                             ; preds = %1293
  %1299 = load ptr, ptr %21, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.ImGuiIO, ptr %1299, i32 0, i32 42
  %1301 = load i8, ptr %1300, align 2, !tbaa !142, !range !42, !noundef !43
  %1302 = trunc i8 %1301 to i1
  br label %1308

1303:                                             ; preds = %1293
  %1304 = load ptr, ptr %21, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.ImGuiIO, ptr %1304, i32 0, i32 40
  %1306 = load i8, ptr %1305, align 8, !tbaa !108, !range !42, !noundef !43
  %1307 = trunc i8 %1306 to i1
  br label %1308

1308:                                             ; preds = %1303, %1298
  %1309 = phi i1 [ %1302, %1298 ], [ %1307, %1303 ]
  %1310 = zext i1 %1309 to i8
  store i8 %1310, ptr %80, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #14
  %1311 = load i8, ptr %78, align 1, !tbaa !44, !range !42, !noundef !43
  %1312 = trunc i8 %1311 to i1
  br i1 %1312, label %1313, label %1329

1313:                                             ; preds = %1308
  %1314 = load ptr, ptr %21, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.ImGuiIO, ptr %1314, i32 0, i32 43
  %1316 = load i8, ptr %1315, align 1, !tbaa !143, !range !42, !noundef !43
  %1317 = trunc i8 %1316 to i1
  br i1 %1317, label %1318, label %1329

1318:                                             ; preds = %1313
  %1319 = load ptr, ptr %21, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.ImGuiIO, ptr %1319, i32 0, i32 40
  %1321 = load i8, ptr %1320, align 8, !tbaa !108, !range !42, !noundef !43
  %1322 = trunc i8 %1321 to i1
  br i1 %1322, label %1329, label %1323

1323:                                             ; preds = %1318
  %1324 = load ptr, ptr %21, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.ImGuiIO, ptr %1324, i32 0, i32 42
  %1326 = load i8, ptr %1325, align 2, !tbaa !142, !range !42, !noundef !43
  %1327 = trunc i8 %1326 to i1
  %1328 = xor i1 %1327, true
  br label %1329

1329:                                             ; preds = %1323, %1318, %1313, %1308
  %1330 = phi i1 [ false, %1318 ], [ false, %1313 ], [ false, %1308 ], [ %1328, %1323 ]
  %1331 = zext i1 %1330 to i8
  store i8 %1331, ptr %81, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #14
  %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 8, !tbaa !150
  %1335 = icmp eq i32 %1334, 1
  %1336 = zext i1 %1335 to i8
  store i8 %1336, ptr %82, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #14
  %1337 = load ptr, ptr %21, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.ImGuiIO, ptr %1337, i32 0, i32 60
  %1339 = load i32, ptr %1338, align 8, !tbaa !150
  %1340 = icmp eq i32 %1339, 2
  %1341 = zext i1 %1340 to i8
  store i8 %1341, ptr %83, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #14
  %1342 = load ptr, ptr %20, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.ImGuiContext, ptr %1342, i32 0, i32 3
  %1344 = getelementptr inbounds %struct.ImGuiIO, ptr %1343, i32 0, i32 20
  %1345 = load i8, ptr %1344, align 1, !tbaa !151, !range !42, !noundef !43
  %1346 = trunc i8 %1345 to i1
  br i1 %1346, label %1347, label %1352

1347:                                             ; preds = %1329
  %1348 = load ptr, ptr %21, align 8, !tbaa !5
  %1349 = getelementptr inbounds %struct.ImGuiIO, ptr %1348, i32 0, i32 60
  %1350 = load i32, ptr %1349, align 8, !tbaa !150
  %1351 = icmp eq i32 %1350, 8
  br label %1357

1352:                                             ; preds = %1329
  %1353 = load ptr, ptr %21, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.ImGuiIO, ptr %1353, i32 0, i32 60
  %1355 = load i32, ptr %1354, align 8, !tbaa !150
  %1356 = icmp eq i32 %1355, 1
  br label %1357

1357:                                             ; preds = %1352, %1347
  %1358 = phi i1 [ %1351, %1347 ], [ %1356, %1352 ]
  %1359 = zext i1 %1358 to i8
  store i8 %1359, ptr %84, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #14
  %1360 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1361 = trunc i8 %1360 to i1
  br i1 %1361, label %1362, label %1364

1362:                                             ; preds = %1357
  %1363 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 19, i1 noundef zeroext true)
  br i1 %1363, label %1369, label %1364

1364:                                             ; preds = %1362, %1357
  %1365 = load i8, ptr %83, align 1, !tbaa !44, !range !42, !noundef !43
  %1366 = trunc i8 %1365 to i1
  br i1 %1366, label %1367, label %1383

1367:                                             ; preds = %1364
  %1368 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  br i1 %1368, label %1369, label %1383

1369:                                             ; preds = %1367, %1362
  %1370 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1371 = trunc i8 %1370 to i1
  br i1 %1371, label %1383, label %1372

1372:                                             ; preds = %1369
  %1373 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %1374 = trunc i8 %1373 to i1
  br i1 %1374, label %1383, label %1375

1375:                                             ; preds = %1372
  %1376 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1377 = trunc i8 %1376 to i1
  br i1 %1377, label %1378, label %1381

1378:                                             ; preds = %1375
  %1379 = load ptr, ptr %43, align 8, !tbaa !5
  %1380 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1379)
  br label %1381

1381:                                             ; preds = %1378, %1375
  %1382 = phi i1 [ true, %1375 ], [ %1380, %1378 ]
  br label %1383

1383:                                             ; preds = %1381, %1372, %1369, %1367, %1364
  %1384 = phi i1 [ false, %1372 ], [ false, %1369 ], [ false, %1367 ], [ false, %1364 ], [ %1382, %1381 ]
  %1385 = zext i1 %1384 to i8
  store i8 %1385, ptr %85, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #14
  %1386 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1387 = trunc i8 %1386 to i1
  br i1 %1387, label %1388, label %1390

1388:                                             ; preds = %1383
  %1389 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 17, i1 noundef zeroext true)
  br i1 %1389, label %1395, label %1390

1390:                                             ; preds = %1388, %1383
  %1391 = load i8, ptr %82, align 1, !tbaa !44, !range !42, !noundef !43
  %1392 = trunc i8 %1391 to i1
  br i1 %1392, label %1393, label %1406

1393:                                             ; preds = %1390
  %1394 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  br i1 %1394, label %1395, label %1406

1395:                                             ; preds = %1393, %1388
  %1396 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %1397 = trunc i8 %1396 to i1
  br i1 %1397, label %1406, label %1398

1398:                                             ; preds = %1395
  %1399 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1400 = trunc i8 %1399 to i1
  br i1 %1400, label %1401, label %1404

1401:                                             ; preds = %1398
  %1402 = load ptr, ptr %43, align 8, !tbaa !5
  %1403 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1402)
  br label %1404

1404:                                             ; preds = %1401, %1398
  %1405 = phi i1 [ true, %1398 ], [ %1403, %1401 ]
  br label %1406

1406:                                             ; preds = %1404, %1395, %1393, %1390
  %1407 = phi i1 [ false, %1395 ], [ false, %1393 ], [ false, %1390 ], [ %1405, %1404 ]
  %1408 = zext i1 %1407 to i8
  store i8 %1408, ptr %86, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #14
  %1409 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1410 = trunc i8 %1409 to i1
  br i1 %1410, label %1411, label %1413

1411:                                             ; preds = %1406
  %1412 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 18, i1 noundef zeroext true)
  br i1 %1412, label %1418, label %1413

1413:                                             ; preds = %1411, %1406
  %1414 = load i8, ptr %83, align 1, !tbaa !44, !range !42, !noundef !43
  %1415 = trunc i8 %1414 to i1
  br i1 %1415, label %1416, label %1422

1416:                                             ; preds = %1413
  %1417 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  br i1 %1417, label %1418, label %1422

1418:                                             ; preds = %1416, %1411
  %1419 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1420 = trunc i8 %1419 to i1
  %1421 = xor i1 %1420, true
  br label %1422

1422:                                             ; preds = %1418, %1416, %1413
  %1423 = phi i1 [ false, %1416 ], [ false, %1413 ], [ %1421, %1418 ]
  %1424 = zext i1 %1423 to i8
  store i8 %1424, ptr %87, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #14
  %1425 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1426 = trunc i8 %1425 to i1
  br i1 %1426, label %1427, label %1435

1427:                                             ; preds = %1422
  %1428 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  br i1 %1428, label %1429, label %1435

1429:                                             ; preds = %1427
  %1430 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1431 = trunc i8 %1430 to i1
  br i1 %1431, label %1435, label %1432

1432:                                             ; preds = %1429
  %1433 = load i8, ptr %27, align 1, !tbaa !44, !range !42, !noundef !43
  %1434 = trunc i8 %1433 to i1
  br label %1435

1435:                                             ; preds = %1432, %1429, %1427, %1422
  %1436 = phi i1 [ false, %1429 ], [ false, %1427 ], [ false, %1422 ], [ %1434, %1432 ]
  %1437 = zext i1 %1436 to i8
  store i8 %1437, ptr %88, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #14
  %1438 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1439 = trunc i8 %1438 to i1
  br i1 %1439, label %1440, label %1442

1440:                                             ; preds = %1435
  %1441 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 20, i1 noundef zeroext true)
  br i1 %1441, label %1447, label %1442

1442:                                             ; preds = %1440, %1435
  %1443 = load i8, ptr %79, align 1, !tbaa !44, !range !42, !noundef !43
  %1444 = trunc i8 %1443 to i1
  br i1 %1444, label %1445, label %1453

1445:                                             ; preds = %1442
  %1446 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  br i1 %1446, label %1447, label %1453

1447:                                             ; preds = %1445, %1440
  %1448 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1449 = trunc i8 %1448 to i1
  br i1 %1449, label %1453, label %1450

1450:                                             ; preds = %1447
  %1451 = load i8, ptr %27, align 1, !tbaa !44, !range !42, !noundef !43
  %1452 = trunc i8 %1451 to i1
  br label %1453

1453:                                             ; preds = %1450, %1447, %1445, %1442
  %1454 = phi i1 [ false, %1447 ], [ false, %1445 ], [ false, %1442 ], [ %1452, %1450 ]
  %1455 = zext i1 %1454 to i8
  store i8 %1455, ptr %89, align 1, !tbaa !44
  %1456 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 1, i1 noundef zeroext true)
  br i1 %1456, label %1457, label %1471

1457:                                             ; preds = %1453
  %1458 = load ptr, ptr %43, align 8, !tbaa !5
  %1459 = load i8, ptr %81, align 1, !tbaa !44, !range !42, !noundef !43
  %1460 = trunc i8 %1459 to i1
  br i1 %1460, label %1461, label %1462

1461:                                             ; preds = %1457
  br label %1467

1462:                                             ; preds = %1457
  %1463 = load i8, ptr %80, align 1, !tbaa !44, !range !42, !noundef !43
  %1464 = trunc i8 %1463 to i1
  %1465 = zext i1 %1464 to i64
  %1466 = select i1 %1464, i32 2097164, i32 2097152
  br label %1467

1467:                                             ; preds = %1462, %1461
  %1468 = phi i32 [ 2097156, %1461 ], [ %1466, %1462 ]
  %1469 = load i32, ptr %77, align 4, !tbaa !9
  %1470 = or i32 %1468, %1469
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1458, i32 noundef %1470)
  br label %1876

1471:                                             ; preds = %1453
  %1472 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 2, i1 noundef zeroext true)
  br i1 %1472, label %1473, label %1487

1473:                                             ; preds = %1471
  %1474 = load ptr, ptr %43, align 8, !tbaa !5
  %1475 = load i8, ptr %81, align 1, !tbaa !44, !range !42, !noundef !43
  %1476 = trunc i8 %1475 to i1
  br i1 %1476, label %1477, label %1478

1477:                                             ; preds = %1473
  br label %1483

1478:                                             ; preds = %1473
  %1479 = load i8, ptr %80, align 1, !tbaa !44, !range !42, !noundef !43
  %1480 = trunc i8 %1479 to i1
  %1481 = zext i1 %1480 to i64
  %1482 = select i1 %1480, i32 2097165, i32 2097153
  br label %1483

1483:                                             ; preds = %1478, %1477
  %1484 = phi i32 [ 2097157, %1477 ], [ %1482, %1478 ]
  %1485 = load i32, ptr %77, align 4, !tbaa !9
  %1486 = or i32 %1484, %1485
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1474, i32 noundef %1486)
  br label %1875

1487:                                             ; preds = %1471
  %1488 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  br i1 %1488, label %1489, label %1517

1489:                                             ; preds = %1487
  %1490 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1491 = trunc i8 %1490 to i1
  br i1 %1491, label %1492, label %1517

1492:                                             ; preds = %1489
  %1493 = load ptr, ptr %21, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.ImGuiIO, ptr %1493, i32 0, i32 40
  %1495 = load i8, ptr %1494, align 8, !tbaa !108, !range !42, !noundef !43
  %1496 = trunc i8 %1495 to i1
  br i1 %1496, label %1497, label %1508

1497:                                             ; preds = %1492
  %1498 = load ptr, ptr %38, align 8, !tbaa !5
  %1499 = load ptr, ptr %38, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.ImGuiWindow, ptr %1499, i32 0, i32 14
  %1501 = getelementptr inbounds %struct.ImVec2, ptr %1500, i32 0, i32 1
  %1502 = load float, ptr %1501, align 4, !tbaa !152
  %1503 = load ptr, ptr %20, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiContext, ptr %1503, i32 0, i32 7
  %1505 = load float, ptr %1504, align 8, !tbaa !47
  %1506 = fsub float %1502, %1505
  %1507 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1506, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1498, float noundef %1507)
  br label %1516

1508:                                             ; preds = %1492
  %1509 = load ptr, ptr %43, align 8, !tbaa !5
  %1510 = load i8, ptr %81, align 1, !tbaa !44, !range !42, !noundef !43
  %1511 = trunc i8 %1510 to i1
  %1512 = zext i1 %1511 to i64
  %1513 = select i1 %1511, i32 2097158, i32 2097154
  %1514 = load i32, ptr %77, align 4, !tbaa !9
  %1515 = or i32 %1513, %1514
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1509, i32 noundef %1515)
  br label %1516

1516:                                             ; preds = %1508, %1497
  br label %1874

1517:                                             ; preds = %1489, %1487
  %1518 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  br i1 %1518, label %1519, label %1548

1519:                                             ; preds = %1517
  %1520 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1521 = trunc i8 %1520 to i1
  br i1 %1521, label %1522, label %1548

1522:                                             ; preds = %1519
  %1523 = load ptr, ptr %21, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.ImGuiIO, ptr %1523, i32 0, i32 40
  %1525 = load i8, ptr %1524, align 8, !tbaa !108, !range !42, !noundef !43
  %1526 = trunc i8 %1525 to i1
  br i1 %1526, label %1527, label %1539

1527:                                             ; preds = %1522
  %1528 = load ptr, ptr %38, align 8, !tbaa !5
  %1529 = load ptr, ptr %38, align 8, !tbaa !5
  %1530 = getelementptr inbounds %struct.ImGuiWindow, ptr %1529, i32 0, i32 14
  %1531 = getelementptr inbounds %struct.ImVec2, ptr %1530, i32 0, i32 1
  %1532 = load float, ptr %1531, align 4, !tbaa !152
  %1533 = load ptr, ptr %20, align 8, !tbaa !5
  %1534 = getelementptr inbounds %struct.ImGuiContext, ptr %1533, i32 0, i32 7
  %1535 = load float, ptr %1534, align 8, !tbaa !47
  %1536 = fadd float %1532, %1535
  %1537 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1538 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1536, float noundef %1537)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1528, float noundef %1538)
  br label %1547

1539:                                             ; preds = %1522
  %1540 = load ptr, ptr %43, align 8, !tbaa !5
  %1541 = load i8, ptr %81, align 1, !tbaa !44, !range !42, !noundef !43
  %1542 = trunc i8 %1541 to i1
  %1543 = zext i1 %1542 to i64
  %1544 = select i1 %1542, i32 2097159, i32 2097155
  %1545 = load i32, ptr %77, align 4, !tbaa !9
  %1546 = or i32 %1544, %1545
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1540, i32 noundef %1546)
  br label %1547

1547:                                             ; preds = %1539, %1527
  br label %1873

1548:                                             ; preds = %1519, %1517
  %1549 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 7, i1 noundef zeroext true)
  br i1 %1549, label %1550, label %1564

1550:                                             ; preds = %1548
  %1551 = load ptr, ptr %43, align 8, !tbaa !5
  %1552 = load ptr, ptr %21, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.ImGuiIO, ptr %1552, i32 0, i32 40
  %1554 = load i8, ptr %1553, align 8, !tbaa !108, !range !42, !noundef !43
  %1555 = trunc i8 %1554 to i1
  br i1 %1555, label %1556, label %1559

1556:                                             ; preds = %1550
  %1557 = load i32, ptr %77, align 4, !tbaa !9
  %1558 = or i32 2097158, %1557
  br label %1562

1559:                                             ; preds = %1550
  %1560 = load i32, ptr %77, align 4, !tbaa !9
  %1561 = or i32 2097156, %1560
  br label %1562

1562:                                             ; preds = %1559, %1556
  %1563 = phi i32 [ %1558, %1556 ], [ %1561, %1559 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1551, i32 noundef %1563)
  br label %1872

1564:                                             ; preds = %1548
  %1565 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 8, i1 noundef zeroext true)
  br i1 %1565, label %1566, label %1580

1566:                                             ; preds = %1564
  %1567 = load ptr, ptr %43, align 8, !tbaa !5
  %1568 = load ptr, ptr %21, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.ImGuiIO, ptr %1568, i32 0, i32 40
  %1570 = load i8, ptr %1569, align 8, !tbaa !108, !range !42, !noundef !43
  %1571 = trunc i8 %1570 to i1
  br i1 %1571, label %1572, label %1575

1572:                                             ; preds = %1566
  %1573 = load i32, ptr %77, align 4, !tbaa !9
  %1574 = or i32 2097159, %1573
  br label %1578

1575:                                             ; preds = %1566
  %1576 = load i32, ptr %77, align 4, !tbaa !9
  %1577 = or i32 2097157, %1576
  br label %1578

1578:                                             ; preds = %1575, %1572
  %1579 = phi i32 [ %1574, %1572 ], [ %1577, %1575 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1567, i32 noundef %1579)
  br label %1871

1580:                                             ; preds = %1564
  %1581 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  br i1 %1581, label %1582, label %1589

1582:                                             ; preds = %1580
  %1583 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1584 = trunc i8 %1583 to i1
  br i1 %1584, label %1589, label %1585

1585:                                             ; preds = %1582
  %1586 = load ptr, ptr %43, align 8, !tbaa !5
  %1587 = load i32, ptr %77, align 4, !tbaa !9
  %1588 = or i32 2097160, %1587
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1586, i32 noundef %1588)
  br label %1870

1589:                                             ; preds = %1582, %1580
  %1590 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 11, i1 noundef zeroext true)
  br i1 %1590, label %1591, label %1628

1591:                                             ; preds = %1589
  %1592 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1593 = trunc i8 %1592 to i1
  br i1 %1593, label %1628, label %1594

1594:                                             ; preds = %1591
  %1595 = load ptr, ptr %43, align 8, !tbaa !5
  %1596 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1595)
  br i1 %1596, label %1624, label %1597

1597:                                             ; preds = %1594
  %1598 = load i8, ptr %80, align 1, !tbaa !44, !range !42, !noundef !43
  %1599 = trunc i8 %1598 to i1
  br i1 %1599, label %1600, label %1602

1600:                                             ; preds = %1597
  %1601 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1601, i32 noundef 6291468)
  br label %1623

1602:                                             ; preds = %1597
  %1603 = load i8, ptr %78, align 1, !tbaa !44, !range !42, !noundef !43
  %1604 = trunc i8 %1603 to i1
  br i1 %1604, label %1605, label %1622

1605:                                             ; preds = %1602
  %1606 = load ptr, ptr %21, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImGuiIO, ptr %1606, i32 0, i32 43
  %1608 = load i8, ptr %1607, align 1, !tbaa !143, !range !42, !noundef !43
  %1609 = trunc i8 %1608 to i1
  br i1 %1609, label %1610, label %1622

1610:                                             ; preds = %1605
  %1611 = load ptr, ptr %21, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.ImGuiIO, ptr %1611, i32 0, i32 42
  %1613 = load i8, ptr %1612, align 2, !tbaa !142, !range !42, !noundef !43
  %1614 = trunc i8 %1613 to i1
  br i1 %1614, label %1622, label %1615

1615:                                             ; preds = %1610
  %1616 = load ptr, ptr %21, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.ImGuiIO, ptr %1616, i32 0, i32 40
  %1618 = load i8, ptr %1617, align 8, !tbaa !108, !range !42, !noundef !43
  %1619 = trunc i8 %1618 to i1
  br i1 %1619, label %1622, label %1620

1620:                                             ; preds = %1615
  %1621 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1621, i32 noundef 6291460)
  br label %1622

1622:                                             ; preds = %1620, %1615, %1610, %1605, %1602
  br label %1623

1623:                                             ; preds = %1622, %1600
  br label %1624

1624:                                             ; preds = %1623, %1594
  %1625 = load ptr, ptr %43, align 8, !tbaa !5
  %1626 = load i32, ptr %77, align 4, !tbaa !9
  %1627 = or i32 2097161, %1626
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1625, i32 noundef %1627)
  br label %1869

1628:                                             ; preds = %1591, %1589
  %1629 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 13, i1 noundef zeroext true)
  br i1 %1629, label %1632, label %1630

1630:                                             ; preds = %1628
  %1631 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 15, i1 noundef zeroext true)
  br i1 %1631, label %1632, label %1670

1632:                                             ; preds = %1630, %1628
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #14
  %1633 = load i32, ptr %15, align 4, !tbaa !9
  %1634 = and i32 %1633, 2048
  %1635 = icmp ne i32 %1634, 0
  %1636 = zext i1 %1635 to i8
  store i8 %1636, ptr %90, align 1, !tbaa !44
  %1637 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1638 = trunc i8 %1637 to i1
  br i1 %1638, label %1639, label %1655

1639:                                             ; preds = %1632
  %1640 = load i8, ptr %90, align 1, !tbaa !44, !range !42, !noundef !43
  %1641 = trunc i8 %1640 to i1
  br i1 %1641, label %1642, label %1647

1642:                                             ; preds = %1639
  %1643 = load ptr, ptr %21, align 8, !tbaa !5
  %1644 = getelementptr inbounds %struct.ImGuiIO, ptr %1643, i32 0, i32 40
  %1645 = load i8, ptr %1644, align 8, !tbaa !108, !range !42, !noundef !43
  %1646 = trunc i8 %1645 to i1
  br i1 %1646, label %1647, label %1655

1647:                                             ; preds = %1642, %1639
  %1648 = load i8, ptr %90, align 1, !tbaa !44, !range !42, !noundef !43
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1656, label %1650

1650:                                             ; preds = %1647
  %1651 = load ptr, ptr %21, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.ImGuiIO, ptr %1651, i32 0, i32 40
  %1653 = load i8, ptr %1652, align 8, !tbaa !108, !range !42, !noundef !43
  %1654 = trunc i8 %1653 to i1
  br i1 %1654, label %1655, label %1656

1655:                                             ; preds = %1650, %1642, %1632
  store i8 1, ptr %51, align 1, !tbaa !44
  store i8 1, ptr %61, align 1, !tbaa !44
  br label %1669

1656:                                             ; preds = %1650, %1647
  %1657 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1658 = trunc i8 %1657 to i1
  br i1 %1658, label %1668, label %1659

1659:                                             ; preds = %1656
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #14
  store i32 10, ptr %91, align 4, !tbaa !9
  %1660 = load i32, ptr %15, align 4, !tbaa !9
  %1661 = load ptr, ptr %16, align 8, !tbaa !5
  %1662 = load ptr, ptr %17, align 8, !tbaa !5
  %1663 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %91, i32 noundef %1660, ptr noundef %1661, ptr noundef %1662)
  br i1 %1663, label %1664, label %1667

1664:                                             ; preds = %1659
  %1665 = load ptr, ptr %43, align 8, !tbaa !5
  %1666 = load i32, ptr %91, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1665, i32 noundef %1666)
  br label %1667

1667:                                             ; preds = %1664, %1659
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #14
  br label %1668

1668:                                             ; preds = %1667, %1656
  br label %1669

1669:                                             ; preds = %1668, %1655
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #14
  br label %1868

1670:                                             ; preds = %1630
  %1671 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 14, i1 noundef zeroext true)
  br i1 %1671, label %1672, label %1673

1672:                                             ; preds = %1670
  store i8 1, ptr %76, align 1, !tbaa !44
  store i8 1, ptr %51, align 1, !tbaa !44
  br label %1867

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

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

1679:                                             ; preds = %1676, %1673
  %1680 = load ptr, ptr %43, align 8, !tbaa !5
  %1681 = load i8, ptr %88, align 1, !tbaa !44, !range !42, !noundef !43
  %1682 = trunc i8 %1681 to i1
  %1683 = zext i1 %1682 to i64
  %1684 = select i1 %1682, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %1680, i32 noundef %1684)
  %1685 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1685)
  br label %1866

1686:                                             ; preds = %1676
  %1687 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1688 = trunc i8 %1687 to i1
  br i1 %1688, label %1689, label %1695

1689:                                             ; preds = %1686
  %1690 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 16, i1 noundef zeroext true)
  br i1 %1690, label %1691, label %1695

1691:                                             ; preds = %1689
  %1692 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3728) %1692)
  %1693 = load ptr, ptr %43, align 8, !tbaa !5
  %1694 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1693, i32 0, i32 11
  store i8 1, ptr %1694, align 4, !tbaa !141
  br label %1865

1695:                                             ; preds = %1689, %1686
  %1696 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1697 = trunc i8 %1696 to i1
  br i1 %1697, label %1701, label %1698

1698:                                             ; preds = %1695
  %1699 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1700 = trunc i8 %1699 to i1
  br i1 %1700, label %1701, label %1795

1701:                                             ; preds = %1698, %1695
  %1702 = load ptr, ptr %21, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.ImGuiIO, ptr %1702, i32 0, i32 31
  %1704 = load ptr, ptr %1703, align 8, !tbaa !153
  %1705 = icmp ne ptr %1704, null
  br i1 %1705, label %1706, label %1779

1706:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #14
  %1707 = load ptr, ptr %43, align 8, !tbaa !5
  %1708 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1707)
  br i1 %1708, label %1709, label %1719

1709:                                             ; preds = %1706
  %1710 = load ptr, ptr %43, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1710, i32 0, i32 9
  %1712 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1711, i32 0, i32 1
  %1713 = load i32, ptr %1712, align 4, !tbaa !154
  %1714 = load ptr, ptr %43, align 8, !tbaa !5
  %1715 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1714, i32 0, i32 9
  %1716 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1715, i32 0, i32 2
  %1717 = load i32, ptr %1716, align 4, !tbaa !155
  %1718 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1713, i32 noundef %1717)
  br label %1720

1719:                                             ; preds = %1706
  br label %1720

1720:                                             ; preds = %1719, %1709
  %1721 = phi i32 [ %1718, %1709 ], [ 0, %1719 ]
  store i32 %1721, ptr %92, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #14
  %1722 = load ptr, ptr %43, align 8, !tbaa !5
  %1723 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1722)
  br i1 %1723, label %1724, label %1734

1724:                                             ; preds = %1720
  %1725 = load ptr, ptr %43, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1725, i32 0, i32 9
  %1727 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1726, i32 0, i32 1
  %1728 = load i32, ptr %1727, align 4, !tbaa !154
  %1729 = load ptr, ptr %43, align 8, !tbaa !5
  %1730 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1729, i32 0, i32 9
  %1731 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1730, i32 0, i32 2
  %1732 = load i32, ptr %1731, align 4, !tbaa !155
  %1733 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1728, i32 noundef %1732)
  br label %1738

1734:                                             ; preds = %1720
  %1735 = load ptr, ptr %43, align 8, !tbaa !5
  %1736 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1735, i32 0, i32 1
  %1737 = load i32, ptr %1736, align 4, !tbaa !103
  br label %1738

1738:                                             ; preds = %1734, %1724
  %1739 = phi i32 [ %1733, %1724 ], [ %1737, %1734 ]
  store i32 %1739, ptr %93, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #14
  %1740 = load ptr, ptr %43, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1740, i32 0, i32 3
  %1742 = getelementptr inbounds %struct.ImVector.7, ptr %1741, i32 0, i32 2
  %1743 = load ptr, ptr %1742, align 8, !tbaa !102
  %1744 = load i32, ptr %92, align 4, !tbaa !9
  %1745 = sext i32 %1744 to i64
  %1746 = getelementptr inbounds i16, ptr %1743, i64 %1745
  %1747 = load ptr, ptr %43, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1747, i32 0, i32 3
  %1749 = getelementptr inbounds %struct.ImVector.7, ptr %1748, i32 0, i32 2
  %1750 = load ptr, ptr %1749, align 8, !tbaa !102
  %1751 = load i32, ptr %93, align 4, !tbaa !9
  %1752 = sext i32 %1751 to i64
  %1753 = getelementptr inbounds i16, ptr %1750, i64 %1752
  %1754 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %1746, ptr noundef %1753)
  %1755 = add nsw i32 %1754, 1
  store i32 %1755, ptr %94, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #14
  %1756 = load i32, ptr %94, align 4, !tbaa !9
  %1757 = sext i32 %1756 to i64
  %1758 = mul i64 %1757, 1
  %1759 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %1758)
  store ptr %1759, ptr %95, align 8, !tbaa !5
  %1760 = load ptr, ptr %95, align 8, !tbaa !5
  %1761 = load i32, ptr %94, align 4, !tbaa !9
  %1762 = load ptr, ptr %43, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1762, i32 0, i32 3
  %1764 = getelementptr inbounds %struct.ImVector.7, ptr %1763, i32 0, i32 2
  %1765 = load ptr, ptr %1764, align 8, !tbaa !102
  %1766 = load i32, ptr %92, align 4, !tbaa !9
  %1767 = sext i32 %1766 to i64
  %1768 = getelementptr inbounds i16, ptr %1765, i64 %1767
  %1769 = load ptr, ptr %43, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1769, i32 0, i32 3
  %1771 = getelementptr inbounds %struct.ImVector.7, ptr %1770, i32 0, i32 2
  %1772 = load ptr, ptr %1771, align 8, !tbaa !102
  %1773 = load i32, ptr %93, align 4, !tbaa !9
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds i16, ptr %1772, i64 %1774
  %1776 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %1760, i32 noundef %1761, ptr noundef %1768, ptr noundef %1775)
  %1777 = load ptr, ptr %95, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %1777)
  %1778 = load ptr, ptr %95, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %1778)
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #14
  br label %1779

1779:                                             ; preds = %1738, %1701
  %1780 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1781 = trunc i8 %1780 to i1
  br i1 %1781, label %1782, label %1794

1782:                                             ; preds = %1779
  %1783 = load ptr, ptr %43, align 8, !tbaa !5
  %1784 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %1783)
  br i1 %1784, label %1787, label %1785

1785:                                             ; preds = %1782
  %1786 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3728) %1786)
  br label %1787

1787:                                             ; preds = %1785, %1782
  %1788 = load ptr, ptr %43, align 8, !tbaa !5
  %1789 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1788, i32 0, i32 11
  store i8 1, ptr %1789, align 4, !tbaa !141
  %1790 = load ptr, ptr %43, align 8, !tbaa !5
  %1791 = load ptr, ptr %43, align 8, !tbaa !5
  %1792 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1791, i32 0, i32 9
  %1793 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %1790, ptr noundef %1792)
  br label %1794

1794:                                             ; preds = %1787, %1779
  br label %1864

1795:                                             ; preds = %1698
  %1796 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1797 = trunc i8 %1796 to i1
  br i1 %1797, label %1798, label %1863

1798:                                             ; preds = %1795
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #14
  %1799 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %1799, ptr %96, align 8, !tbaa !5
  %1800 = load ptr, ptr %96, align 8, !tbaa !5
  %1801 = icmp ne ptr %1800, null
  br i1 %1801, label %1802, label %1862

1802:                                             ; preds = %1798
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #14
  %1803 = load ptr, ptr %96, align 8, !tbaa !5
  %1804 = call i64 @strlen(ptr noundef %1803) #16
  %1805 = trunc i64 %1804 to i32
  store i32 %1805, ptr %97, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #14
  %1806 = load i32, ptr %97, align 4, !tbaa !9
  %1807 = add nsw i32 %1806, 1
  %1808 = sext i32 %1807 to i64
  %1809 = mul i64 %1808, 2
  %1810 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %1809)
  store ptr %1810, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #14
  store i32 0, ptr %99, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #14
  %1811 = load ptr, ptr %96, align 8, !tbaa !5
  store ptr %1811, ptr %100, align 8, !tbaa !5
  br label %1812

1812:                                             ; preds = %1842, %1840, %1802
  %1813 = load ptr, ptr %100, align 8, !tbaa !5
  %1814 = load i8, ptr %1813, align 1, !tbaa !114
  %1815 = icmp ne i8 %1814, 0
  br i1 %1815, label %1817, label %1816

1816:                                             ; preds = %1812
  store i32 5, ptr %19, align 4
  br label %1843

1817:                                             ; preds = %1812
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #14
  %1818 = load ptr, ptr %100, align 8, !tbaa !5
  %1819 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %101, ptr noundef %1818, ptr noundef null)
  %1820 = load ptr, ptr %100, align 8, !tbaa !5
  %1821 = sext i32 %1819 to i64
  %1822 = getelementptr inbounds i8, ptr %1820, i64 %1821
  store ptr %1822, ptr %100, align 8, !tbaa !5
  %1823 = load i32, ptr %101, align 4, !tbaa !9
  %1824 = icmp eq i32 %1823, 0
  br i1 %1824, label %1825, label %1826

1825:                                             ; preds = %1817
  store i32 5, ptr %19, align 4
  br label %1840

1826:                                             ; preds = %1817
  %1827 = load i32, ptr %15, align 4, !tbaa !9
  %1828 = load ptr, ptr %16, align 8, !tbaa !5
  %1829 = load ptr, ptr %17, align 8, !tbaa !5
  %1830 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %101, i32 noundef %1827, ptr noundef %1828, ptr noundef %1829)
  br i1 %1830, label %1832, label %1831

1831:                                             ; preds = %1826
  store i32 6, ptr %19, align 4
  br label %1840, !llvm.loop !156

1832:                                             ; preds = %1826
  %1833 = load i32, ptr %101, align 4, !tbaa !9
  %1834 = trunc i32 %1833 to i16
  %1835 = load ptr, ptr %98, align 8, !tbaa !5
  %1836 = load i32, ptr %99, align 4, !tbaa !9
  %1837 = add nsw i32 %1836, 1
  store i32 %1837, ptr %99, align 4, !tbaa !9
  %1838 = sext i32 %1836 to i64
  %1839 = getelementptr inbounds i16, ptr %1835, i64 %1838
  store i16 %1834, ptr %1839, align 2, !tbaa !145
  store i32 0, ptr %19, align 4
  br label %1840

1840:                                             ; preds = %1832, %1831, %1825
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #14
  %1841 = load i32, ptr %19, align 4
  switch i32 %1841, label %1843 [
    i32 0, label %1842
    i32 6, label %1812
  ]

1842:                                             ; preds = %1840
  br label %1812, !llvm.loop !156

1843:                                             ; preds = %1840, %1816
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #14
  br label %1844

1844:                                             ; preds = %1843
  %1845 = load ptr, ptr %98, align 8, !tbaa !5
  %1846 = load i32, ptr %99, align 4, !tbaa !9
  %1847 = sext i32 %1846 to i64
  %1848 = getelementptr inbounds i16, ptr %1845, i64 %1847
  store i16 0, ptr %1848, align 2, !tbaa !145
  %1849 = load i32, ptr %99, align 4, !tbaa !9
  %1850 = icmp sgt i32 %1849, 0
  br i1 %1850, label %1851, label %1860

1851:                                             ; preds = %1844
  %1852 = load ptr, ptr %43, align 8, !tbaa !5
  %1853 = load ptr, ptr %43, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1853, i32 0, i32 9
  %1855 = load ptr, ptr %98, align 8, !tbaa !5
  %1856 = load i32, ptr %99, align 4, !tbaa !9
  %1857 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %1852, ptr noundef %1854, ptr noundef %1855, i32 noundef %1856)
  %1858 = load ptr, ptr %43, align 8, !tbaa !5
  %1859 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1858, i32 0, i32 11
  store i8 1, ptr %1859, align 4, !tbaa !141
  br label %1860

1860:                                             ; preds = %1851, %1844
  %1861 = load ptr, ptr %98, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %1861)
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #14
  br label %1862

1862:                                             ; preds = %1860, %1798
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #14
  br label %1863

1863:                                             ; preds = %1862, %1795
  br label %1864

1864:                                             ; preds = %1863, %1794
  br label %1865

1865:                                             ; preds = %1864, %1691
  br label %1866

1866:                                             ; preds = %1865, %1679
  br label %1867

1867:                                             ; preds = %1866, %1672
  br label %1868

1868:                                             ; preds = %1867, %1669
  br label %1869

1869:                                             ; preds = %1868, %1624
  br label %1870

1870:                                             ; preds = %1869, %1585
  br label %1871

1871:                                             ; preds = %1870, %1578
  br label %1872

1872:                                             ; preds = %1871, %1562
  br label %1873

1873:                                             ; preds = %1872, %1547
  br label %1874

1874:                                             ; preds = %1873, %1516
  br label %1875

1875:                                             ; preds = %1874, %1483
  br label %1876

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

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

1882:                                             ; preds = %1879, %1876
  %1883 = phi i1 [ false, %1876 ], [ %1881, %1879 ]
  %1884 = zext i1 %1883 to i32
  %1885 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %1886 = trunc i8 %1885 to i1
  %1887 = zext i1 %1886 to i32
  %1888 = or i32 %1887, %1884
  %1889 = icmp ne i32 %1888, 0
  %1890 = zext i1 %1889 to i8
  store i8 %1890, ptr %59, align 1, !tbaa !44
  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 1, ptr %80) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #14
  br label %1891

1891:                                             ; preds = %1882, %1253, %1248, %1242
  %1892 = load ptr, ptr %20, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.ImGuiContext, ptr %1892, i32 0, i32 43
  %1894 = load i32, ptr %1893, align 8, !tbaa !95
  %1895 = load i32, ptr %29, align 4, !tbaa !9
  %1896 = icmp eq i32 %1894, %1895
  br i1 %1896, label %1897, label %2347

1897:                                             ; preds = %1891
  %1898 = load ptr, ptr %43, align 8, !tbaa !5
  %1899 = icmp ne ptr %1898, null
  br i1 %1899, label %1900, label %1901

1900:                                             ; preds = %1897
  br label %1903

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

1902:                                             ; No predecessors!
  br label %1903

1903:                                             ; preds = %1902, %1900
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #14
  store ptr null, ptr %102, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #14
  store i32 0, ptr %103, align 4, !tbaa !9
  %1904 = load i8, ptr %76, align 1, !tbaa !44, !range !42, !noundef !43
  %1905 = trunc i8 %1904 to i1
  br i1 %1905, label %1906, label %1971

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

1909:                                             ; preds = %1906
  %1910 = load ptr, ptr %12, align 8, !tbaa !5
  %1911 = load ptr, ptr %43, align 8, !tbaa !5
  %1912 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1911, i32 0, i32 5
  %1913 = getelementptr inbounds %struct.ImVector.22, ptr %1912, i32 0, i32 2
  %1914 = load ptr, ptr %1913, align 8, !tbaa !100
  %1915 = call i32 @strcmp(ptr noundef %1910, ptr noundef %1914) #16
  %1916 = icmp ne i32 %1915, 0
  br i1 %1916, label %1917, label %1970

1917:                                             ; preds = %1909
  %1918 = load ptr, ptr %43, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1918, i32 0, i32 5
  %1920 = getelementptr inbounds %struct.ImVector.22, ptr %1919, i32 0, i32 2
  %1921 = load ptr, ptr %1920, align 8, !tbaa !100
  store ptr %1921, ptr %102, align 8, !tbaa !5
  %1922 = load ptr, ptr %43, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1922, i32 0, i32 5
  %1924 = getelementptr inbounds %struct.ImVector.22, ptr %1923, i32 0, i32 0
  %1925 = load i32, ptr %1924, align 8, !tbaa !157
  %1926 = sub nsw i32 %1925, 1
  store i32 %1926, ptr %103, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104)
  %1927 = load i32, ptr %103, align 4, !tbaa !9
  %1928 = icmp sgt i32 %1927, 0
  br i1 %1928, label %1929, label %1954

1929:                                             ; preds = %1917
  %1930 = load ptr, ptr %102, align 8, !tbaa !5
  %1931 = load ptr, ptr %102, align 8, !tbaa !5
  %1932 = load i32, ptr %103, align 4, !tbaa !9
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds i8, ptr %1931, i64 %1933
  %1935 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1930, ptr noundef %1934)
          to label %1936 unwind label %1950

1936:                                             ; preds = %1929
  %1937 = add nsw i32 %1935, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %104, i32 noundef %1937)
          to label %1938 unwind label %1950

1938:                                             ; preds = %1936
  %1939 = getelementptr inbounds %struct.ImVector.7, ptr %104, i32 0, i32 2
  %1940 = load ptr, ptr %1939, align 8, !tbaa !158
  %1941 = getelementptr inbounds %struct.ImVector.7, ptr %104, i32 0, i32 0
  %1942 = load i32, ptr %1941, align 8, !tbaa !159
  %1943 = load ptr, ptr %102, align 8, !tbaa !5
  %1944 = load ptr, ptr %102, align 8, !tbaa !5
  %1945 = load i32, ptr %103, align 4, !tbaa !9
  %1946 = sext i32 %1945 to i64
  %1947 = getelementptr inbounds i8, ptr %1944, i64 %1946
  %1948 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %1940, i32 noundef %1942, ptr noundef %1943, ptr noundef %1947, ptr noundef null)
          to label %1949 unwind label %1950

1949:                                             ; preds = %1938
  br label %1954

1950:                                             ; preds = %1967, %1938, %1936, %1929
  %1951 = landingpad { ptr, i32 }
          cleanup
  %1952 = extractvalue { ptr, i32 } %1951, 0
  store ptr %1952, ptr %105, align 8
  %1953 = extractvalue { ptr, i32 } %1951, 1
  store i32 %1953, ptr %106, align 4
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #14
  call void @llvm.lifetime.end.p0(i64 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 %3139

1954:                                             ; preds = %1949, %1917
  %1955 = load ptr, ptr %43, align 8, !tbaa !5
  %1956 = load ptr, ptr %43, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1956, i32 0, i32 9
  %1958 = getelementptr inbounds %struct.ImVector.7, ptr %104, i32 0, i32 2
  %1959 = load ptr, ptr %1958, align 8, !tbaa !158
  %1960 = load i32, ptr %103, align 4, !tbaa !9
  %1961 = icmp sgt i32 %1960, 0
  br i1 %1961, label %1962, label %1966

1962:                                             ; preds = %1954
  %1963 = getelementptr inbounds %struct.ImVector.7, ptr %104, i32 0, i32 0
  %1964 = load i32, ptr %1963, align 8, !tbaa !159
  %1965 = sub nsw i32 %1964, 1
  br label %1967

1966:                                             ; preds = %1954
  br label %1967

1967:                                             ; preds = %1966, %1962
  %1968 = phi i32 [ %1965, %1962 ], [ 0, %1966 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %1955, ptr noundef %1957, ptr noundef %1959, i32 noundef %1968)
          to label %1969 unwind label %1950

1969:                                             ; preds = %1967
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #14
  br label %1970

1970:                                             ; preds = %1969, %1909, %1906
  br label %1971

1971:                                             ; preds = %1970, %1903
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #14
  %1972 = load i8, ptr %76, align 1, !tbaa !44, !range !42, !noundef !43
  %1973 = trunc i8 %1972 to i1
  br i1 %1973, label %1974, label %1983

1974:                                             ; preds = %1971
  %1975 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %1976 = trunc i8 %1975 to i1
  br i1 %1976, label %1977, label %1981

1977:                                             ; preds = %1974
  %1978 = load i32, ptr %15, align 4, !tbaa !9
  %1979 = and i32 %1978, 32
  %1980 = icmp ne i32 %1979, 0
  br label %1981

1981:                                             ; preds = %1977, %1974
  %1982 = phi i1 [ false, %1974 ], [ %1980, %1977 ]
  br label %1983

1983:                                             ; preds = %1981, %1971
  %1984 = phi i1 [ true, %1971 ], [ %1982, %1981 ]
  %1985 = zext i1 %1984 to i8
  store i8 %1985, ptr %107, align 1, !tbaa !44
  %1986 = load i8, ptr %107, align 1, !tbaa !44, !range !42, !noundef !43
  %1987 = trunc i8 %1986 to i1
  br i1 %1987, label %1988, label %2287

1988:                                             ; preds = %1983
  %1989 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1990 = trunc i8 %1989 to i1
  br i1 %1990, label %2015, label %1991

1991:                                             ; preds = %1988
  %1992 = load ptr, ptr %43, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1992, i32 0, i32 6
  store i8 1, ptr %1993, align 8, !tbaa !101
  %1994 = load ptr, ptr %43, align 8, !tbaa !5
  %1995 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1994, i32 0, i32 4
  %1996 = load ptr, ptr %43, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1996, i32 0, i32 3
  %1998 = getelementptr inbounds %struct.ImVector.7, ptr %1997, i32 0, i32 0
  %1999 = load i32, ptr %1998, align 8, !tbaa !112
  %2000 = mul nsw i32 %1999, 4
  %2001 = add nsw i32 %2000, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1995, i32 noundef %2001)
  %2002 = load ptr, ptr %43, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2002, i32 0, i32 4
  %2004 = getelementptr inbounds %struct.ImVector.22, ptr %2003, i32 0, i32 2
  %2005 = load ptr, ptr %2004, align 8, !tbaa !113
  %2006 = load ptr, ptr %43, align 8, !tbaa !5
  %2007 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2006, i32 0, i32 4
  %2008 = getelementptr inbounds %struct.ImVector.22, ptr %2007, i32 0, i32 0
  %2009 = load i32, ptr %2008, align 8, !tbaa !160
  %2010 = load ptr, ptr %43, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2010, i32 0, i32 3
  %2012 = getelementptr inbounds %struct.ImVector.7, ptr %2011, i32 0, i32 2
  %2013 = load ptr, ptr %2012, align 8, !tbaa !102
  %2014 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2005, i32 noundef %2009, ptr noundef %2013, ptr noundef null)
  br label %2015

2015:                                             ; preds = %1991, %1988
  %2016 = load i32, ptr %15, align 4, !tbaa !9
  %2017 = and i32 %2016, 524736
  %2018 = icmp ne i32 %2017, 0
  br i1 %2018, label %2019, label %2267

2019:                                             ; preds = %2015
  %2020 = load ptr, ptr %16, align 8, !tbaa !5
  %2021 = icmp ne ptr %2020, null
  br i1 %2021, label %2022, label %2023

2022:                                             ; preds = %2019
  br label %2025

2023:                                             ; preds = %2019
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 4207, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2024:                                             ; No predecessors!
  br label %2025

2025:                                             ; preds = %2024, %2022
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #14
  store i32 0, ptr %108, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #14
  store i32 22, ptr %109, align 4, !tbaa !9
  %2026 = load i32, ptr %15, align 4, !tbaa !9
  %2027 = and i32 %2026, 64
  %2028 = icmp ne i32 %2027, 0
  br i1 %2028, label %2029, label %2032

2029:                                             ; preds = %2025
  %2030 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  br i1 %2030, label %2031, label %2032

2031:                                             ; preds = %2029
  store i32 64, ptr %108, align 4, !tbaa !9
  store i32 0, ptr %109, align 4, !tbaa !9
  br label %2065

2032:                                             ; preds = %2029, %2025
  %2033 = load i32, ptr %15, align 4, !tbaa !9
  %2034 = and i32 %2033, 128
  %2035 = icmp ne i32 %2034, 0
  br i1 %2035, label %2036, label %2039

2036:                                             ; preds = %2032
  %2037 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  br i1 %2037, label %2038, label %2039

2038:                                             ; preds = %2036
  store i32 128, ptr %108, align 4, !tbaa !9
  store i32 3, ptr %109, align 4, !tbaa !9
  br label %2064

2039:                                             ; preds = %2036, %2032
  %2040 = load i32, ptr %15, align 4, !tbaa !9
  %2041 = and i32 %2040, 128
  %2042 = icmp ne i32 %2041, 0
  br i1 %2042, label %2043, label %2046

2043:                                             ; preds = %2039
  %2044 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  br i1 %2044, label %2045, label %2046

2045:                                             ; preds = %2043
  store i32 128, ptr %108, align 4, !tbaa !9
  store i32 4, ptr %109, align 4, !tbaa !9
  br label %2063

2046:                                             ; preds = %2043, %2039
  %2047 = load i32, ptr %15, align 4, !tbaa !9
  %2048 = and i32 %2047, 524288
  %2049 = icmp ne i32 %2048, 0
  br i1 %2049, label %2050, label %2056

2050:                                             ; preds = %2046
  %2051 = load ptr, ptr %43, align 8, !tbaa !5
  %2052 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2051, i32 0, i32 13
  %2053 = load i8, ptr %2052, align 2, !tbaa !125, !range !42, !noundef !43
  %2054 = trunc i8 %2053 to i1
  br i1 %2054, label %2055, label %2056

2055:                                             ; preds = %2050
  store i32 524288, ptr %108, align 4, !tbaa !9
  br label %2062

2056:                                             ; preds = %2050, %2046
  %2057 = load i32, ptr %15, align 4, !tbaa !9
  %2058 = and i32 %2057, 256
  %2059 = icmp ne i32 %2058, 0
  br i1 %2059, label %2060, label %2061

2060:                                             ; preds = %2056
  store i32 256, ptr %108, align 4, !tbaa !9
  br label %2061

2061:                                             ; preds = %2060, %2056
  br label %2062

2062:                                             ; preds = %2061, %2055
  br label %2063

2063:                                             ; preds = %2062, %2045
  br label %2064

2064:                                             ; preds = %2063, %2038
  br label %2065

2065:                                             ; preds = %2064, %2031
  %2066 = load i32, ptr %108, align 4, !tbaa !9
  %2067 = icmp ne i32 %2066, 0
  br i1 %2067, label %2068, label %2266

2068:                                             ; preds = %2065
  call void @llvm.lifetime.start.p0(i64 56, ptr %110) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %110)
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 56, i1 false)
  %2069 = load i32, ptr %108, align 4, !tbaa !9
  %2070 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 0
  store i32 %2069, ptr %2070, align 8, !tbaa !161
  %2071 = load i32, ptr %15, align 4, !tbaa !9
  %2072 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 1
  store i32 %2071, ptr %2072, align 4, !tbaa !163
  %2073 = load ptr, ptr %17, align 8, !tbaa !5
  %2074 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 2
  store ptr %2073, ptr %2074, align 8, !tbaa !164
  %2075 = load i32, ptr %109, align 4, !tbaa !9
  %2076 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 4
  store i32 %2075, ptr %2076, align 4, !tbaa !165
  %2077 = load ptr, ptr %43, align 8, !tbaa !5
  %2078 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2077, i32 0, i32 4
  %2079 = getelementptr inbounds %struct.ImVector.22, ptr %2078, i32 0, i32 2
  %2080 = load ptr, ptr %2079, align 8, !tbaa !113
  %2081 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  store ptr %2080, ptr %2081, align 8, !tbaa !166
  %2082 = load ptr, ptr %43, align 8, !tbaa !5
  %2083 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2082, i32 0, i32 2
  %2084 = load i32, ptr %2083, align 8, !tbaa !104
  %2085 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 6
  store i32 %2084, ptr %2085, align 8, !tbaa !167
  %2086 = load ptr, ptr %43, align 8, !tbaa !5
  %2087 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2086, i32 0, i32 7
  %2088 = load i32, ptr %2087, align 4, !tbaa !126
  %2089 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 7
  store i32 %2088, ptr %2089, align 4, !tbaa !168
  %2090 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 8
  store i8 0, ptr %2090, align 8, !tbaa !169
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #14
  %2091 = load ptr, ptr %43, align 8, !tbaa !5
  %2092 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2091, i32 0, i32 3
  %2093 = getelementptr inbounds %struct.ImVector.7, ptr %2092, i32 0, i32 2
  %2094 = load ptr, ptr %2093, align 8, !tbaa !102
  store ptr %2094, ptr %111, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #14
  %2095 = load ptr, ptr %111, align 8, !tbaa !5
  %2096 = load ptr, ptr %111, align 8, !tbaa !5
  %2097 = load ptr, ptr %43, align 8, !tbaa !5
  %2098 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2097, i32 0, i32 9
  %2099 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2098, i32 0, i32 0
  %2100 = load i32, ptr %2099, align 4, !tbaa !170
  %2101 = sext i32 %2100 to i64
  %2102 = getelementptr inbounds i16, ptr %2096, i64 %2101
  %2103 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2095, ptr noundef %2102)
  %2104 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 9
  store i32 %2103, ptr %2104, align 4, !tbaa !171
  store i32 %2103, ptr %112, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #14
  %2105 = load ptr, ptr %111, align 8, !tbaa !5
  %2106 = load ptr, ptr %111, align 8, !tbaa !5
  %2107 = load ptr, ptr %43, align 8, !tbaa !5
  %2108 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2107, i32 0, i32 9
  %2109 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2108, i32 0, i32 1
  %2110 = load i32, ptr %2109, align 4, !tbaa !154
  %2111 = sext i32 %2110 to i64
  %2112 = getelementptr inbounds i16, ptr %2106, i64 %2111
  %2113 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2105, ptr noundef %2112)
  %2114 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 10
  store i32 %2113, ptr %2114, align 8, !tbaa !172
  store i32 %2113, ptr %113, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #14
  %2115 = load ptr, ptr %111, align 8, !tbaa !5
  %2116 = load ptr, ptr %111, align 8, !tbaa !5
  %2117 = load ptr, ptr %43, align 8, !tbaa !5
  %2118 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2117, i32 0, i32 9
  %2119 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2118, i32 0, i32 2
  %2120 = load i32, ptr %2119, align 4, !tbaa !155
  %2121 = sext i32 %2120 to i64
  %2122 = getelementptr inbounds i16, ptr %2116, i64 %2121
  %2123 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2115, ptr noundef %2122)
  %2124 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 11
  store i32 %2123, ptr %2124, align 4, !tbaa !173
  store i32 %2123, ptr %114, align 4, !tbaa !9
  %2125 = load ptr, ptr %16, align 8, !tbaa !5
  %2126 = call noundef i32 %2125(ptr noundef %110)
  %2127 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2128 = load ptr, ptr %2127, align 8, !tbaa !166
  %2129 = load ptr, ptr %43, align 8, !tbaa !5
  %2130 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2129, i32 0, i32 4
  %2131 = getelementptr inbounds %struct.ImVector.22, ptr %2130, i32 0, i32 2
  %2132 = load ptr, ptr %2131, align 8, !tbaa !113
  %2133 = icmp eq ptr %2128, %2132
  br i1 %2133, label %2134, label %2135

2134:                                             ; preds = %2068
  br label %2137

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

2136:                                             ; No predecessors!
  br label %2137

2137:                                             ; preds = %2136, %2134
  %2138 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 7
  %2139 = load i32, ptr %2138, align 4, !tbaa !168
  %2140 = load ptr, ptr %43, align 8, !tbaa !5
  %2141 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2140, i32 0, i32 7
  %2142 = load i32, ptr %2141, align 4, !tbaa !126
  %2143 = icmp eq i32 %2139, %2142
  br i1 %2143, label %2144, label %2145

2144:                                             ; preds = %2137
  br label %2147

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

2146:                                             ; No predecessors!
  br label %2147

2147:                                             ; preds = %2146, %2144
  %2148 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 1
  %2149 = load i32, ptr %2148, align 4, !tbaa !163
  %2150 = load i32, ptr %15, align 4, !tbaa !9
  %2151 = icmp eq i32 %2149, %2150
  br i1 %2151, label %2152, label %2153

2152:                                             ; preds = %2147
  br label %2155

2153:                                             ; preds = %2147
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 4262, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2154:                                             ; No predecessors!
  br label %2155

2155:                                             ; preds = %2154, %2152
  %2156 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 9
  %2157 = load i32, ptr %2156, align 4, !tbaa !171
  %2158 = load i32, ptr %112, align 4, !tbaa !9
  %2159 = icmp ne i32 %2157, %2158
  br i1 %2159, label %2160, label %2175

2160:                                             ; preds = %2155
  %2161 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2162 = load ptr, ptr %2161, align 8, !tbaa !166
  %2163 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2164 = load ptr, ptr %2163, align 8, !tbaa !166
  %2165 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 9
  %2166 = load i32, ptr %2165, align 4, !tbaa !171
  %2167 = sext i32 %2166 to i64
  %2168 = getelementptr inbounds i8, ptr %2164, i64 %2167
  %2169 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2162, ptr noundef %2168)
  %2170 = load ptr, ptr %43, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2170, i32 0, i32 9
  %2172 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2171, i32 0, i32 0
  store i32 %2169, ptr %2172, align 4, !tbaa !170
  %2173 = load ptr, ptr %43, align 8, !tbaa !5
  %2174 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2173, i32 0, i32 11
  store i8 1, ptr %2174, align 4, !tbaa !141
  br label %2175

2175:                                             ; preds = %2160, %2155
  %2176 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 10
  %2177 = load i32, ptr %2176, align 8, !tbaa !172
  %2178 = load i32, ptr %113, align 4, !tbaa !9
  %2179 = icmp ne i32 %2177, %2178
  br i1 %2179, label %2180, label %2193

2180:                                             ; preds = %2175
  %2181 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2182 = load ptr, ptr %2181, align 8, !tbaa !166
  %2183 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2184 = load ptr, ptr %2183, align 8, !tbaa !166
  %2185 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 10
  %2186 = load i32, ptr %2185, align 8, !tbaa !172
  %2187 = sext i32 %2186 to i64
  %2188 = getelementptr inbounds i8, ptr %2184, i64 %2187
  %2189 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2182, ptr noundef %2188)
  %2190 = load ptr, ptr %43, align 8, !tbaa !5
  %2191 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2190, i32 0, i32 9
  %2192 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2191, i32 0, i32 1
  store i32 %2189, ptr %2192, align 4, !tbaa !154
  br label %2193

2193:                                             ; preds = %2180, %2175
  %2194 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 11
  %2195 = load i32, ptr %2194, align 4, !tbaa !173
  %2196 = load i32, ptr %114, align 4, !tbaa !9
  %2197 = icmp ne i32 %2195, %2196
  br i1 %2197, label %2198, label %2211

2198:                                             ; preds = %2193
  %2199 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2200 = load ptr, ptr %2199, align 8, !tbaa !166
  %2201 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2202 = load ptr, ptr %2201, align 8, !tbaa !166
  %2203 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 11
  %2204 = load i32, ptr %2203, align 4, !tbaa !173
  %2205 = sext i32 %2204 to i64
  %2206 = getelementptr inbounds i8, ptr %2202, i64 %2205
  %2207 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2200, ptr noundef %2206)
  %2208 = load ptr, ptr %43, align 8, !tbaa !5
  %2209 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2208, i32 0, i32 9
  %2210 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2209, i32 0, i32 2
  store i32 %2207, ptr %2210, align 4, !tbaa !155
  br label %2211

2211:                                             ; preds = %2198, %2193
  %2212 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 8
  %2213 = load i8, ptr %2212, align 8, !tbaa !169, !range !42, !noundef !43
  %2214 = trunc i8 %2213 to i1
  br i1 %2214, label %2215, label %2265

2215:                                             ; preds = %2211
  %2216 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 6
  %2217 = load i32, ptr %2216, align 8, !tbaa !167
  %2218 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2219 = load ptr, ptr %2218, align 8, !tbaa !166
  %2220 = call i64 @strlen(ptr noundef %2219) #16
  %2221 = trunc i64 %2220 to i32
  %2222 = icmp eq i32 %2217, %2221
  br i1 %2222, label %2223, label %2224

2223:                                             ; preds = %2215
  br label %2226

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

2225:                                             ; No predecessors!
  br label %2226

2226:                                             ; preds = %2225, %2223
  %2227 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 6
  %2228 = load i32, ptr %2227, align 8, !tbaa !167
  %2229 = load i32, ptr %67, align 4, !tbaa !9
  %2230 = icmp sgt i32 %2228, %2229
  br i1 %2230, label %2231, label %2246

2231:                                             ; preds = %2226
  %2232 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %2233 = trunc i8 %2232 to i1
  br i1 %2233, label %2234, label %2246

2234:                                             ; preds = %2231
  %2235 = load ptr, ptr %43, align 8, !tbaa !5
  %2236 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2235, i32 0, i32 3
  %2237 = load ptr, ptr %43, align 8, !tbaa !5
  %2238 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2237, i32 0, i32 3
  %2239 = getelementptr inbounds %struct.ImVector.7, ptr %2238, i32 0, i32 0
  %2240 = load i32, ptr %2239, align 8, !tbaa !112
  %2241 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 6
  %2242 = load i32, ptr %2241, align 8, !tbaa !167
  %2243 = load i32, ptr %67, align 4, !tbaa !9
  %2244 = sub nsw i32 %2242, %2243
  %2245 = add nsw i32 %2240, %2244
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2236, i32 noundef %2245)
  br label %2246

2246:                                             ; preds = %2234, %2231, %2226
  %2247 = load ptr, ptr %43, align 8, !tbaa !5
  %2248 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2247, i32 0, i32 3
  %2249 = getelementptr inbounds %struct.ImVector.7, ptr %2248, i32 0, i32 2
  %2250 = load ptr, ptr %2249, align 8, !tbaa !102
  %2251 = load ptr, ptr %43, align 8, !tbaa !5
  %2252 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2251, i32 0, i32 3
  %2253 = getelementptr inbounds %struct.ImVector.7, ptr %2252, i32 0, i32 0
  %2254 = load i32, ptr %2253, align 8, !tbaa !112
  %2255 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 5
  %2256 = load ptr, ptr %2255, align 8, !tbaa !166
  %2257 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2250, i32 noundef %2254, ptr noundef %2256, ptr noundef null, ptr noundef null)
  %2258 = load ptr, ptr %43, align 8, !tbaa !5
  %2259 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2258, i32 0, i32 1
  store i32 %2257, ptr %2259, align 4, !tbaa !103
  %2260 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %110, i32 0, i32 6
  %2261 = load i32, ptr %2260, align 8, !tbaa !167
  %2262 = load ptr, ptr %43, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2262, i32 0, i32 2
  store i32 %2261, ptr %2263, align 8, !tbaa !104
  %2264 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %2264)
  br label %2265

2265:                                             ; preds = %2246, %2211
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 56, ptr %110) #14
  br label %2266

2266:                                             ; preds = %2265, %2065
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #14
  br label %2267

2267:                                             ; preds = %2266, %2015
  %2268 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2269 = trunc i8 %2268 to i1
  br i1 %2269, label %2286, label %2270

2270:                                             ; preds = %2267
  %2271 = load ptr, ptr %43, align 8, !tbaa !5
  %2272 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2271, i32 0, i32 4
  %2273 = getelementptr inbounds %struct.ImVector.22, ptr %2272, i32 0, i32 2
  %2274 = load ptr, ptr %2273, align 8, !tbaa !113
  %2275 = load ptr, ptr %12, align 8, !tbaa !5
  %2276 = call i32 @strcmp(ptr noundef %2274, ptr noundef %2275) #16
  %2277 = icmp ne i32 %2276, 0
  br i1 %2277, label %2278, label %2286

2278:                                             ; preds = %2270
  %2279 = load ptr, ptr %43, align 8, !tbaa !5
  %2280 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2279, i32 0, i32 4
  %2281 = getelementptr inbounds %struct.ImVector.22, ptr %2280, i32 0, i32 2
  %2282 = load ptr, ptr %2281, align 8, !tbaa !113
  store ptr %2282, ptr %102, align 8, !tbaa !5
  %2283 = load ptr, ptr %43, align 8, !tbaa !5
  %2284 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2283, i32 0, i32 2
  %2285 = load i32, ptr %2284, align 8, !tbaa !104
  store i32 %2285, ptr %103, align 4, !tbaa !9
  br label %2286

2286:                                             ; preds = %2278, %2270, %2267
  br label %2287

2287:                                             ; preds = %2286, %1983
  %2288 = load ptr, ptr %102, align 8, !tbaa !5
  %2289 = icmp ne ptr %2288, null
  br i1 %2289, label %2290, label %2340

2290:                                             ; preds = %2287
  %2291 = load i32, ptr %103, align 4, !tbaa !9
  %2292 = icmp sge i32 %2291, 0
  br i1 %2292, label %2293, label %2294

2293:                                             ; preds = %2290
  br label %2296

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

2295:                                             ; No predecessors!
  br label %2296

2296:                                             ; preds = %2295, %2293
  %2297 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %2298 = trunc i8 %2297 to i1
  br i1 %2298, label %2299, label %2332

2299:                                             ; preds = %2296
  call void @llvm.lifetime.start.p0(i64 56, ptr %115) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %115)
  %2300 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 0
  store i32 262144, ptr %2300, align 8, !tbaa !161
  %2301 = load i32, ptr %15, align 4, !tbaa !9
  %2302 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 1
  store i32 %2301, ptr %2302, align 4, !tbaa !163
  %2303 = load ptr, ptr %12, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 5
  store ptr %2303, ptr %2304, align 8, !tbaa !166
  %2305 = load i32, ptr %103, align 4, !tbaa !9
  %2306 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 6
  store i32 %2305, ptr %2306, align 8, !tbaa !167
  %2307 = load i32, ptr %13, align 4, !tbaa !9
  %2308 = load i32, ptr %103, align 4, !tbaa !9
  %2309 = add nsw i32 %2308, 1
  %2310 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2307, i32 noundef %2309)
  %2311 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 7
  store i32 %2310, ptr %2311, align 4, !tbaa !168
  %2312 = load ptr, ptr %17, align 8, !tbaa !5
  %2313 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 2
  store ptr %2312, ptr %2313, align 8, !tbaa !164
  %2314 = load ptr, ptr %16, align 8, !tbaa !5
  %2315 = call noundef i32 %2314(ptr noundef %115)
  %2316 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 5
  %2317 = load ptr, ptr %2316, align 8, !tbaa !166
  store ptr %2317, ptr %12, align 8, !tbaa !5
  %2318 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 7
  %2319 = load i32, ptr %2318, align 4, !tbaa !168
  store i32 %2319, ptr %13, align 4, !tbaa !9
  %2320 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %115, i32 0, i32 6
  %2321 = load i32, ptr %2320, align 8, !tbaa !167
  %2322 = load i32, ptr %13, align 4, !tbaa !9
  %2323 = sub nsw i32 %2322, 1
  %2324 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2321, i32 noundef %2323)
  store i32 %2324, ptr %103, align 4, !tbaa !9
  %2325 = load i32, ptr %103, align 4, !tbaa !9
  %2326 = load i32, ptr %13, align 4, !tbaa !9
  %2327 = icmp sle i32 %2325, %2326
  br i1 %2327, label %2328, label %2329

2328:                                             ; preds = %2299
  br label %2331

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

2330:                                             ; No predecessors!
  br label %2331

2331:                                             ; preds = %2330, %2328
  call void @llvm.lifetime.end.p0(i64 56, ptr %115) #14
  br label %2332

2332:                                             ; preds = %2331, %2296
  %2333 = load ptr, ptr %12, align 8, !tbaa !5
  %2334 = load ptr, ptr %102, align 8, !tbaa !5
  %2335 = load i32, ptr %103, align 4, !tbaa !9
  %2336 = add nsw i32 %2335, 1
  %2337 = load i32, ptr %13, align 4, !tbaa !9
  %2338 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2336, i32 noundef %2337)
  %2339 = sext i32 %2338 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2333, ptr noundef %2334, i64 noundef %2339)
  store i8 1, ptr %60, align 1, !tbaa !44
  br label %2340

2340:                                             ; preds = %2332, %2287
  %2341 = load ptr, ptr %43, align 8, !tbaa !5
  %2342 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2341, i32 0, i32 14
  store i32 0, ptr %2342, align 8, !tbaa !127
  %2343 = load ptr, ptr %43, align 8, !tbaa !5
  %2344 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2343, i32 0, i32 15
  store ptr null, ptr %2344, align 8, !tbaa !128
  %2345 = load ptr, ptr %43, align 8, !tbaa !5
  %2346 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2345, i32 0, i32 16
  store ptr null, ptr %2346, align 8, !tbaa !129
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #14
  br label %2347

2347:                                             ; preds = %2340, %1891
  %2348 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %2349 = trunc i8 %2348 to i1
  br i1 %2349, label %2350, label %2357

2350:                                             ; preds = %2347
  %2351 = load ptr, ptr %20, align 8, !tbaa !5
  %2352 = getelementptr inbounds %struct.ImGuiContext, ptr %2351, i32 0, i32 43
  %2353 = load i32, ptr %2352, align 8, !tbaa !95
  %2354 = load i32, ptr %29, align 4, !tbaa !9
  %2355 = icmp eq i32 %2353, %2354
  br i1 %2355, label %2356, label %2357

2356:                                             ; preds = %2350
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2357

2357:                                             ; preds = %2356, %2350, %2347
  %2358 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2359 = trunc i8 %2358 to i1
  br i1 %2359, label %2370, label %2360

2360:                                             ; preds = %2357
  %2361 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %2361, i32 noundef 1)
  %2362 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %116, ptr align 4 %2362, i64 8, i1 false), !tbaa.struct !45
  %2363 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %117, ptr align 4 %2363, i64 8, i1 false), !tbaa.struct !45
  %2364 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2365 = load ptr, ptr %22, align 8, !tbaa !5
  %2366 = getelementptr inbounds %struct.ImGuiStyle, ptr %2365, i32 0, i32 12
  %2367 = load float, ptr %2366, align 4, !tbaa !85
  %2368 = load <2 x float>, ptr %116, align 4
  %2369 = load <2 x float>, ptr %117, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2368, <2 x float> %2369, i32 noundef %2364, i1 noundef zeroext true, float noundef %2367)
  br label %2370

2370:                                             ; preds = %2360, %2357
  call void @llvm.lifetime.start.p0(i64 16, ptr %118) #14
  %2371 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2372 = getelementptr inbounds %struct.ImVec2, ptr %2371, i32 0, i32 0
  %2373 = load float, ptr %2372, align 4, !tbaa !133
  %2374 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2375 = getelementptr inbounds %struct.ImVec2, ptr %2374, i32 0, i32 1
  %2376 = load float, ptr %2375, align 4, !tbaa !174
  %2377 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2378 = getelementptr inbounds %struct.ImVec2, ptr %2377, i32 0, i32 0
  %2379 = load float, ptr %2378, align 4, !tbaa !133
  %2380 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2381 = load float, ptr %2380, align 4, !tbaa !83
  %2382 = fadd float %2379, %2381
  %2383 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2384 = getelementptr inbounds %struct.ImVec2, ptr %2383, i32 0, i32 1
  %2385 = load float, ptr %2384, align 4, !tbaa !174
  %2386 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2387 = load float, ptr %2386, align 4, !tbaa !81
  %2388 = fadd float %2385, %2387
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %118, float noundef %2373, float noundef %2376, float noundef %2382, float noundef %2388)
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #14
  %2389 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2390 = trunc i8 %2389 to i1
  br i1 %2390, label %2391, label %2395

2391:                                             ; preds = %2370
  %2392 = load ptr, ptr %38, align 8, !tbaa !5
  %2393 = getelementptr inbounds %struct.ImGuiWindow, ptr %2392, i32 0, i32 51
  %2394 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2393, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %119, ptr align 8 %2394, i64 8, i1 false), !tbaa.struct !45
  br label %2400

2395:                                             ; preds = %2370
  %2396 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2397 = load ptr, ptr %22, align 8, !tbaa !5
  %2398 = getelementptr inbounds %struct.ImGuiStyle, ptr %2397, i32 0, i32 11
  %2399 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2396, ptr noundef nonnull align 4 dereferenceable(8) %2398)
  store <2 x float> %2399, ptr %119, align 4
  br label %2400

2400:                                             ; preds = %2395, %2391
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %120, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #14
  store i32 2097152, ptr %121, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #14
  %2401 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2402 = trunc i8 %2401 to i1
  br i1 %2402, label %2403, label %2408

2403:                                             ; preds = %2400
  %2404 = load ptr, ptr %43, align 8, !tbaa !5
  %2405 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2404, i32 0, i32 4
  %2406 = getelementptr inbounds %struct.ImVector.22, ptr %2405, i32 0, i32 2
  %2407 = load ptr, ptr %2406, align 8, !tbaa !113
  br label %2410

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

2410:                                             ; preds = %2408, %2403
  %2411 = phi ptr [ %2407, %2403 ], [ %2409, %2408 ]
  store ptr %2411, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #14
  store ptr null, ptr %123, align 8, !tbaa !5
  %2412 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2413 = trunc i8 %2412 to i1
  br i1 %2413, label %2414, label %2420

2414:                                             ; preds = %2410
  %2415 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2415, ptr %122, align 8, !tbaa !5
  %2416 = load ptr, ptr %11, align 8, !tbaa !5
  %2417 = load ptr, ptr %11, align 8, !tbaa !5
  %2418 = call i64 @strlen(ptr noundef %2417) #16
  %2419 = getelementptr inbounds i8, ptr %2416, i64 %2418
  store ptr %2419, ptr %123, align 8, !tbaa !5
  br label %2420

2420:                                             ; preds = %2414, %2410
  %2421 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %2422 = trunc i8 %2421 to i1
  br i1 %2422, label %2426, label %2423

2423:                                             ; preds = %2420
  %2424 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %2425 = trunc i8 %2424 to i1
  br i1 %2425, label %2426, label %2991

2426:                                             ; preds = %2423, %2420
  %2427 = load ptr, ptr %43, align 8, !tbaa !5
  %2428 = icmp ne ptr %2427, null
  br i1 %2428, label %2429, label %2430

2429:                                             ; preds = %2426
  br label %2432

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

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431, %2429
  %2433 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2434 = trunc i8 %2433 to i1
  br i1 %2434, label %2442, label %2435

2435:                                             ; preds = %2432
  %2436 = load ptr, ptr %122, align 8, !tbaa !5
  %2437 = load ptr, ptr %43, align 8, !tbaa !5
  %2438 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2437, i32 0, i32 2
  %2439 = load i32, ptr %2438, align 8, !tbaa !104
  %2440 = sext i32 %2439 to i64
  %2441 = getelementptr inbounds i8, ptr %2436, i64 %2440
  store ptr %2441, ptr %123, align 8, !tbaa !5
  br label %2442

2442:                                             ; preds = %2435, %2432
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #14
  %2443 = load ptr, ptr %43, align 8, !tbaa !5
  %2444 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2443, i32 0, i32 3
  %2445 = getelementptr inbounds %struct.ImVector.7, ptr %2444, i32 0, i32 2
  %2446 = load ptr, ptr %2445, align 8, !tbaa !102
  store ptr %2446, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %125)
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %126)
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #14
  call void @llvm.memset.p0.i64(ptr align 16 %127, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #14
  store i32 0, ptr %129, align 4, !tbaa !9
  %2447 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %2448 = trunc i8 %2447 to i1
  br i1 %2448, label %2449, label %2461

2449:                                             ; preds = %2442
  %2450 = load ptr, ptr %124, align 8, !tbaa !5
  %2451 = load ptr, ptr %43, align 8, !tbaa !5
  %2452 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2451, i32 0, i32 9
  %2453 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2452, i32 0, i32 0
  %2454 = load i32, ptr %2453, align 4, !tbaa !170
  %2455 = sext i32 %2454 to i64
  %2456 = getelementptr inbounds i16, ptr %2450, i64 %2455
  %2457 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 0
  store ptr %2456, ptr %2457, align 16, !tbaa !5
  %2458 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 0
  store i32 -1, ptr %2458, align 4, !tbaa !9
  %2459 = load i32, ptr %129, align 4, !tbaa !9
  %2460 = add nsw i32 %2459, 1
  store i32 %2460, ptr %129, align 4, !tbaa !9
  br label %2461

2461:                                             ; preds = %2449, %2442
  %2462 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %2463 = trunc i8 %2462 to i1
  br i1 %2463, label %2464, label %2481

2464:                                             ; preds = %2461
  %2465 = load ptr, ptr %124, align 8, !tbaa !5
  %2466 = load ptr, ptr %43, align 8, !tbaa !5
  %2467 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2466, i32 0, i32 9
  %2468 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2467, i32 0, i32 1
  %2469 = load i32, ptr %2468, align 4, !tbaa !154
  %2470 = load ptr, ptr %43, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2470, i32 0, i32 9
  %2472 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2471, i32 0, i32 2
  %2473 = load i32, ptr %2472, align 4, !tbaa !155
  %2474 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2469, i32 noundef %2473)
  %2475 = sext i32 %2474 to i64
  %2476 = getelementptr inbounds i16, ptr %2465, i64 %2475
  %2477 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 1
  store ptr %2476, ptr %2477, align 8, !tbaa !5
  %2478 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  store i32 -1, ptr %2478, align 4, !tbaa !9
  %2479 = load i32, ptr %129, align 4, !tbaa !9
  %2480 = add nsw i32 %2479, 1
  store i32 %2480, ptr %129, align 4, !tbaa !9
  br label %2481

2481:                                             ; preds = %2464, %2461
  %2482 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2483 = trunc i8 %2482 to i1
  %2484 = zext i1 %2483 to i64
  %2485 = select i1 %2483, i32 1, i32 0
  %2486 = load i32, ptr %129, align 4, !tbaa !9
  %2487 = add nsw i32 %2486, %2485
  store i32 %2487, ptr %129, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #14
  store i32 0, ptr %130, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #14
  %2488 = load ptr, ptr %124, align 8, !tbaa !5
  store ptr %2488, ptr %131, align 8, !tbaa !5
  br label %2489

2489:                                             ; preds = %2538, %2481
  %2490 = load ptr, ptr %131, align 8, !tbaa !5
  %2491 = load i16, ptr %2490, align 2, !tbaa !145
  %2492 = zext i16 %2491 to i32
  %2493 = icmp ne i32 %2492, 0
  br i1 %2493, label %2495, label %2494

2494:                                             ; preds = %2489
  store i32 7, ptr %19, align 4
  br label %2541

2495:                                             ; preds = %2489
  %2496 = load ptr, ptr %131, align 8, !tbaa !5
  %2497 = load i16, ptr %2496, align 2, !tbaa !145
  %2498 = zext i16 %2497 to i32
  %2499 = icmp eq i32 %2498, 10
  br i1 %2499, label %2500, label %2537

2500:                                             ; preds = %2495
  %2501 = load i32, ptr %130, align 4, !tbaa !9
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr %130, align 4, !tbaa !9
  %2503 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 0
  %2504 = load i32, ptr %2503, align 4, !tbaa !9
  %2505 = icmp eq i32 %2504, -1
  br i1 %2505, label %2506, label %2519

2506:                                             ; preds = %2500
  %2507 = load ptr, ptr %131, align 8, !tbaa !5
  %2508 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 0
  %2509 = load ptr, ptr %2508, align 16, !tbaa !5
  %2510 = icmp uge ptr %2507, %2509
  br i1 %2510, label %2511, label %2519

2511:                                             ; preds = %2506
  %2512 = load i32, ptr %130, align 4, !tbaa !9
  %2513 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 0
  store i32 %2512, ptr %2513, align 4, !tbaa !9
  %2514 = load i32, ptr %129, align 4, !tbaa !9
  %2515 = add nsw i32 %2514, -1
  store i32 %2515, ptr %129, align 4, !tbaa !9
  %2516 = icmp sle i32 %2515, 0
  br i1 %2516, label %2517, label %2518

2517:                                             ; preds = %2511
  store i32 7, ptr %19, align 4
  br label %2541

2518:                                             ; preds = %2511
  br label %2519

2519:                                             ; preds = %2518, %2506, %2500
  %2520 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  %2521 = load i32, ptr %2520, align 4, !tbaa !9
  %2522 = icmp eq i32 %2521, -1
  br i1 %2522, label %2523, label %2536

2523:                                             ; preds = %2519
  %2524 = load ptr, ptr %131, align 8, !tbaa !5
  %2525 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 1
  %2526 = load ptr, ptr %2525, align 8, !tbaa !5
  %2527 = icmp uge ptr %2524, %2526
  br i1 %2527, label %2528, label %2536

2528:                                             ; preds = %2523
  %2529 = load i32, ptr %130, align 4, !tbaa !9
  %2530 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  store i32 %2529, ptr %2530, align 4, !tbaa !9
  %2531 = load i32, ptr %129, align 4, !tbaa !9
  %2532 = add nsw i32 %2531, -1
  store i32 %2532, ptr %129, align 4, !tbaa !9
  %2533 = icmp sle i32 %2532, 0
  br i1 %2533, label %2534, label %2535

2534:                                             ; preds = %2528
  store i32 7, ptr %19, align 4
  br label %2541

2535:                                             ; preds = %2528
  br label %2536

2536:                                             ; preds = %2535, %2523, %2519
  br label %2537

2537:                                             ; preds = %2536, %2495
  br label %2538

2538:                                             ; preds = %2537
  %2539 = load ptr, ptr %131, align 8, !tbaa !5
  %2540 = getelementptr inbounds i16, ptr %2539, i32 1
  store ptr %2540, ptr %131, align 8, !tbaa !5
  br label %2489, !llvm.loop !175

2541:                                             ; preds = %2534, %2517, %2494
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #14
  br label %2542

2542:                                             ; preds = %2541
  %2543 = load i32, ptr %130, align 4, !tbaa !9
  %2544 = add nsw i32 %2543, 1
  store i32 %2544, ptr %130, align 4, !tbaa !9
  %2545 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 0
  %2546 = load i32, ptr %2545, align 4, !tbaa !9
  %2547 = icmp eq i32 %2546, -1
  br i1 %2547, label %2548, label %2551

2548:                                             ; preds = %2542
  %2549 = load i32, ptr %130, align 4, !tbaa !9
  %2550 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 0
  store i32 %2549, ptr %2550, align 4, !tbaa !9
  br label %2551

2551:                                             ; preds = %2548, %2542
  %2552 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  %2553 = load i32, ptr %2552, align 4, !tbaa !9
  %2554 = icmp eq i32 %2553, -1
  br i1 %2554, label %2555, label %2558

2555:                                             ; preds = %2551
  %2556 = load i32, ptr %130, align 4, !tbaa !9
  %2557 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  store i32 %2556, ptr %2557, align 4, !tbaa !9
  br label %2558

2558:                                             ; preds = %2555, %2551
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #14
  %2559 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 0
  %2560 = load ptr, ptr %2559, align 16, !tbaa !5
  %2561 = load ptr, ptr %124, align 8, !tbaa !5
  %2562 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2560, ptr noundef %2561)
  %2563 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 0
  %2564 = load ptr, ptr %2563, align 16, !tbaa !5
  %2565 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %2562, ptr noundef %2564, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2565, ptr %132, align 4
  %2566 = getelementptr inbounds %struct.ImVec2, ptr %132, i32 0, i32 0
  %2567 = load float, ptr %2566, align 4, !tbaa !83
  %2568 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 0
  store float %2567, ptr %2568, align 4, !tbaa !83
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  %2569 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 0
  %2570 = load i32, ptr %2569, align 4, !tbaa !9
  %2571 = sitofp i32 %2570 to float
  %2572 = load ptr, ptr %20, align 8, !tbaa !5
  %2573 = getelementptr inbounds %struct.ImGuiContext, ptr %2572, i32 0, i32 7
  %2574 = load float, ptr %2573, align 8, !tbaa !47
  %2575 = fmul float %2571, %2574
  %2576 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 1
  store float %2575, ptr %2576, align 4, !tbaa !81
  %2577 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  %2578 = load i32, ptr %2577, align 4, !tbaa !9
  %2579 = icmp sge i32 %2578, 0
  br i1 %2579, label %2580, label %2599

2580:                                             ; preds = %2558
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #14
  %2581 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 1
  %2582 = load ptr, ptr %2581, align 8, !tbaa !5
  %2583 = load ptr, ptr %124, align 8, !tbaa !5
  %2584 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2582, ptr noundef %2583)
  %2585 = getelementptr inbounds [2 x ptr], ptr %127, i64 0, i64 1
  %2586 = load ptr, ptr %2585, align 8, !tbaa !5
  %2587 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %2584, ptr noundef %2586, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2587, ptr %133, align 4
  %2588 = getelementptr inbounds %struct.ImVec2, ptr %133, i32 0, i32 0
  %2589 = load float, ptr %2588, align 4, !tbaa !83
  %2590 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  store float %2589, ptr %2590, align 4, !tbaa !83
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  %2591 = getelementptr inbounds [2 x i32], ptr %128, i64 0, i64 1
  %2592 = load i32, ptr %2591, align 4, !tbaa !9
  %2593 = sitofp i32 %2592 to float
  %2594 = load ptr, ptr %20, align 8, !tbaa !5
  %2595 = getelementptr inbounds %struct.ImGuiContext, ptr %2594, i32 0, i32 7
  %2596 = load float, ptr %2595, align 8, !tbaa !47
  %2597 = fmul float %2593, %2596
  %2598 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  store float %2597, ptr %2598, align 4, !tbaa !81
  br label %2599

2599:                                             ; preds = %2580, %2558
  %2600 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2601 = trunc i8 %2600 to i1
  br i1 %2601, label %2602, label %2611

2602:                                             ; preds = %2599
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  %2603 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2604 = load float, ptr %2603, align 4, !tbaa !83
  %2605 = load i32, ptr %130, align 4, !tbaa !9
  %2606 = sitofp i32 %2605 to float
  %2607 = load ptr, ptr %20, align 8, !tbaa !5
  %2608 = getelementptr inbounds %struct.ImGuiContext, ptr %2607, i32 0, i32 7
  %2609 = load float, ptr %2608, align 8, !tbaa !47
  %2610 = fmul float %2606, %2609
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %134, float noundef %2604, float noundef %2610)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %120, ptr align 4 %134, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  br label %2611

2611:                                             ; preds = %2602, %2599
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #14
  %2612 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %2613 = trunc i8 %2612 to i1
  br i1 %2613, label %2614, label %2745

2614:                                             ; preds = %2611
  %2615 = load ptr, ptr %43, align 8, !tbaa !5
  %2616 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2615, i32 0, i32 11
  %2617 = load i8, ptr %2616, align 4, !tbaa !141, !range !42, !noundef !43
  %2618 = trunc i8 %2617 to i1
  br i1 %2618, label %2619, label %2745

2619:                                             ; preds = %2614
  %2620 = load i32, ptr %15, align 4, !tbaa !9
  %2621 = and i32 %2620, 4096
  %2622 = icmp ne i32 %2621, 0
  br i1 %2622, label %2667, label %2623

2623:                                             ; preds = %2619
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #14
  %2624 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2625 = load float, ptr %2624, align 4, !tbaa !83
  %2626 = fmul float %2625, 2.500000e-01
  store float %2626, ptr %135, align 4, !tbaa !46
  %2627 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 0
  %2628 = load float, ptr %2627, align 4, !tbaa !83
  %2629 = load ptr, ptr %43, align 8, !tbaa !5
  %2630 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2629, i32 0, i32 8
  %2631 = load float, ptr %2630, align 8, !tbaa !106
  %2632 = fcmp olt float %2628, %2631
  br i1 %2632, label %2633, label %2643

2633:                                             ; preds = %2623
  %2634 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 0
  %2635 = load float, ptr %2634, align 4, !tbaa !83
  %2636 = load float, ptr %135, align 4, !tbaa !46
  %2637 = fsub float %2635, %2636
  %2638 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2637)
  %2639 = fptosi float %2638 to i32
  %2640 = sitofp i32 %2639 to float
  %2641 = load ptr, ptr %43, align 8, !tbaa !5
  %2642 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2641, i32 0, i32 8
  store float %2640, ptr %2642, align 8, !tbaa !106
  br label %2666

2643:                                             ; preds = %2623
  %2644 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 0
  %2645 = load float, ptr %2644, align 4, !tbaa !83
  %2646 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2647 = load float, ptr %2646, align 4, !tbaa !83
  %2648 = fsub float %2645, %2647
  %2649 = load ptr, ptr %43, align 8, !tbaa !5
  %2650 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2649, i32 0, i32 8
  %2651 = load float, ptr %2650, align 8, !tbaa !106
  %2652 = fcmp oge float %2648, %2651
  br i1 %2652, label %2653, label %2665

2653:                                             ; preds = %2643
  %2654 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 0
  %2655 = load float, ptr %2654, align 4, !tbaa !83
  %2656 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2657 = load float, ptr %2656, align 4, !tbaa !83
  %2658 = fsub float %2655, %2657
  %2659 = load float, ptr %135, align 4, !tbaa !46
  %2660 = fadd float %2658, %2659
  %2661 = fptosi float %2660 to i32
  %2662 = sitofp i32 %2661 to float
  %2663 = load ptr, ptr %43, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2663, i32 0, i32 8
  store float %2662, ptr %2664, align 8, !tbaa !106
  br label %2665

2665:                                             ; preds = %2653, %2643
  br label %2666

2666:                                             ; preds = %2665, %2633
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #14
  br label %2670

2667:                                             ; preds = %2619
  %2668 = load ptr, ptr %43, align 8, !tbaa !5
  %2669 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2668, i32 0, i32 8
  store float 0.000000e+00, ptr %2669, align 8, !tbaa !106
  br label %2670

2670:                                             ; preds = %2667, %2666
  %2671 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2672 = trunc i8 %2671 to i1
  br i1 %2672, label %2673, label %2742

2673:                                             ; preds = %2670
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #14
  %2674 = load ptr, ptr %38, align 8, !tbaa !5
  %2675 = getelementptr inbounds %struct.ImGuiWindow, ptr %2674, i32 0, i32 14
  %2676 = getelementptr inbounds %struct.ImVec2, ptr %2675, i32 0, i32 1
  %2677 = load float, ptr %2676, align 4, !tbaa !152
  store float %2677, ptr %136, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #14
  %2678 = getelementptr inbounds %struct.ImVec2, ptr %120, i32 0, i32 1
  %2679 = load float, ptr %2678, align 4, !tbaa !81
  %2680 = load ptr, ptr %22, align 8, !tbaa !5
  %2681 = getelementptr inbounds %struct.ImGuiStyle, ptr %2680, i32 0, i32 11
  %2682 = getelementptr inbounds %struct.ImVec2, ptr %2681, i32 0, i32 1
  %2683 = load float, ptr %2682, align 4, !tbaa !82
  %2684 = call float @llvm.fmuladd.f32(float %2683, float 2.000000e+00, float %2679)
  %2685 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2686 = load float, ptr %2685, align 4, !tbaa !81
  %2687 = fsub float %2684, %2686
  %2688 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2687, float noundef 0.000000e+00)
  store float %2688, ptr %137, align 4, !tbaa !46
  %2689 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 1
  %2690 = load float, ptr %2689, align 4, !tbaa !81
  %2691 = load ptr, ptr %20, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.ImGuiContext, ptr %2691, i32 0, i32 7
  %2693 = load float, ptr %2692, align 8, !tbaa !47
  %2694 = fsub float %2690, %2693
  %2695 = load float, ptr %136, align 4, !tbaa !46
  %2696 = fcmp olt float %2694, %2695
  br i1 %2696, label %2697, label %2705

2697:                                             ; preds = %2673
  %2698 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 1
  %2699 = load float, ptr %2698, align 4, !tbaa !81
  %2700 = load ptr, ptr %20, align 8, !tbaa !5
  %2701 = getelementptr inbounds %struct.ImGuiContext, ptr %2700, i32 0, i32 7
  %2702 = load float, ptr %2701, align 8, !tbaa !47
  %2703 = fsub float %2699, %2702
  %2704 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2703)
  store float %2704, ptr %136, align 4, !tbaa !46
  br label %2725

2705:                                             ; preds = %2673
  %2706 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 1
  %2707 = load float, ptr %2706, align 4, !tbaa !81
  %2708 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2709 = load float, ptr %2708, align 4, !tbaa !81
  %2710 = fsub float %2707, %2709
  %2711 = load float, ptr %136, align 4, !tbaa !46
  %2712 = fcmp oge float %2710, %2711
  br i1 %2712, label %2713, label %2724

2713:                                             ; preds = %2705
  %2714 = getelementptr inbounds %struct.ImVec2, ptr %125, i32 0, i32 1
  %2715 = load float, ptr %2714, align 4, !tbaa !81
  %2716 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2717 = load float, ptr %2716, align 4, !tbaa !81
  %2718 = fsub float %2715, %2717
  %2719 = load ptr, ptr %22, align 8, !tbaa !5
  %2720 = getelementptr inbounds %struct.ImGuiStyle, ptr %2719, i32 0, i32 11
  %2721 = getelementptr inbounds %struct.ImVec2, ptr %2720, i32 0, i32 1
  %2722 = load float, ptr %2721, align 4, !tbaa !82
  %2723 = call float @llvm.fmuladd.f32(float %2722, float 2.000000e+00, float %2718)
  store float %2723, ptr %136, align 4, !tbaa !46
  br label %2724

2724:                                             ; preds = %2713, %2705
  br label %2725

2725:                                             ; preds = %2724, %2697
  %2726 = load float, ptr %136, align 4, !tbaa !46
  %2727 = load float, ptr %137, align 4, !tbaa !46
  %2728 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %2726, float noundef 0.000000e+00, float noundef %2727)
  store float %2728, ptr %136, align 4, !tbaa !46
  %2729 = load ptr, ptr %38, align 8, !tbaa !5
  %2730 = getelementptr inbounds %struct.ImGuiWindow, ptr %2729, i32 0, i32 14
  %2731 = getelementptr inbounds %struct.ImVec2, ptr %2730, i32 0, i32 1
  %2732 = load float, ptr %2731, align 4, !tbaa !152
  %2733 = load float, ptr %136, align 4, !tbaa !46
  %2734 = fsub float %2732, %2733
  %2735 = getelementptr inbounds %struct.ImVec2, ptr %119, i32 0, i32 1
  %2736 = load float, ptr %2735, align 4, !tbaa !81
  %2737 = fadd float %2736, %2734
  store float %2737, ptr %2735, align 4, !tbaa !81
  %2738 = load float, ptr %136, align 4, !tbaa !46
  %2739 = load ptr, ptr %38, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.ImGuiWindow, ptr %2739, i32 0, i32 14
  %2741 = getelementptr inbounds %struct.ImVec2, ptr %2740, i32 0, i32 1
  store float %2738, ptr %2741, align 4, !tbaa !152
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #14
  br label %2742

2742:                                             ; preds = %2725, %2670
  %2743 = load ptr, ptr %43, align 8, !tbaa !5
  %2744 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2743, i32 0, i32 11
  store i8 0, ptr %2744, align 4, !tbaa !141
  br label %2745

2745:                                             ; preds = %2742, %2614, %2611
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #14
  %2746 = load ptr, ptr %43, align 8, !tbaa !5
  %2747 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2746, i32 0, i32 8
  %2748 = load float, ptr %2747, align 8, !tbaa !106
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %138, float noundef %2748, float noundef 0.000000e+00)
  %2749 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %2750 = trunc i8 %2749 to i1
  br i1 %2750, label %2751, label %2879

2751:                                             ; preds = %2745
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #14
  %2752 = load ptr, ptr %124, align 8, !tbaa !5
  %2753 = load ptr, ptr %43, align 8, !tbaa !5
  %2754 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2753, i32 0, i32 9
  %2755 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2754, i32 0, i32 1
  %2756 = load i32, ptr %2755, align 4, !tbaa !154
  %2757 = load ptr, ptr %43, align 8, !tbaa !5
  %2758 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2757, i32 0, i32 9
  %2759 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2758, i32 0, i32 2
  %2760 = load i32, ptr %2759, align 4, !tbaa !155
  %2761 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2756, i32 noundef %2760)
  %2762 = sext i32 %2761 to i64
  %2763 = getelementptr inbounds i16, ptr %2752, i64 %2762
  store ptr %2763, ptr %139, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #14
  %2764 = load ptr, ptr %124, align 8, !tbaa !5
  %2765 = load ptr, ptr %43, align 8, !tbaa !5
  %2766 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2765, i32 0, i32 9
  %2767 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2766, i32 0, i32 1
  %2768 = load i32, ptr %2767, align 4, !tbaa !154
  %2769 = load ptr, ptr %43, align 8, !tbaa !5
  %2770 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2769, i32 0, i32 9
  %2771 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2770, i32 0, i32 2
  %2772 = load i32, ptr %2771, align 4, !tbaa !155
  %2773 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2768, i32 noundef %2772)
  %2774 = sext i32 %2773 to i64
  %2775 = getelementptr inbounds i16, ptr %2764, i64 %2774
  store ptr %2775, ptr %140, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #14
  %2776 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %2777 = trunc i8 %2776 to i1
  %2778 = zext i1 %2777 to i64
  %2779 = select i1 %2777, float 1.000000e+00, float 0x3FE3333340000000
  %2780 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 42, float noundef %2779)
  store i32 %2780, ptr %141, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #14
  %2781 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2782 = trunc i8 %2781 to i1
  %2783 = zext i1 %2782 to i64
  %2784 = select i1 %2782, float 0.000000e+00, float -1.000000e+00
  store float %2784, ptr %142, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #14
  %2785 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2786 = trunc i8 %2785 to i1
  %2787 = zext i1 %2786 to i64
  %2788 = select i1 %2786, float 0.000000e+00, float 2.000000e+00
  store float %2788, ptr %143, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  %2789 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(8) %126)
  store <2 x float> %2789, ptr %145, align 4
  %2790 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %145, ptr noundef nonnull align 4 dereferenceable(8) %138)
  store <2 x float> %2790, ptr %144, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #14
  %2791 = load ptr, ptr %139, align 8, !tbaa !5
  store ptr %2791, ptr %146, align 8, !tbaa !5
  br label %2792

2792:                                             ; preds = %2864, %2751
  %2793 = load ptr, ptr %146, align 8, !tbaa !5
  %2794 = load ptr, ptr %140, align 8, !tbaa !5
  %2795 = icmp ult ptr %2793, %2794
  br i1 %2795, label %2797, label %2796

2796:                                             ; preds = %2792
  store i32 10, ptr %19, align 4
  br label %2877

2797:                                             ; preds = %2792
  %2798 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 1
  %2799 = load float, ptr %2798, align 4, !tbaa !81
  %2800 = getelementptr inbounds %struct.ImVec4, ptr %118, i32 0, i32 3
  %2801 = load float, ptr %2800, align 4, !tbaa !176
  %2802 = load ptr, ptr %20, align 8, !tbaa !5
  %2803 = getelementptr inbounds %struct.ImGuiContext, ptr %2802, i32 0, i32 7
  %2804 = load float, ptr %2803, align 8, !tbaa !47
  %2805 = fadd float %2801, %2804
  %2806 = fcmp ogt float %2799, %2805
  br i1 %2806, label %2807, label %2808

2807:                                             ; preds = %2797
  store i32 10, ptr %19, align 4
  br label %2877

2808:                                             ; preds = %2797
  %2809 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 1
  %2810 = load float, ptr %2809, align 4, !tbaa !81
  %2811 = getelementptr inbounds %struct.ImVec4, ptr %118, i32 0, i32 1
  %2812 = load float, ptr %2811, align 4, !tbaa !177
  %2813 = fcmp olt float %2810, %2812
  br i1 %2813, label %2814, label %2828

2814:                                             ; preds = %2808
  br label %2815

2815:                                             ; preds = %2826, %2814
  %2816 = load ptr, ptr %146, align 8, !tbaa !5
  %2817 = load ptr, ptr %140, align 8, !tbaa !5
  %2818 = icmp ult ptr %2816, %2817
  br i1 %2818, label %2819, label %2827

2819:                                             ; preds = %2815
  %2820 = load ptr, ptr %146, align 8, !tbaa !5
  %2821 = getelementptr inbounds i16, ptr %2820, i32 1
  store ptr %2821, ptr %146, align 8, !tbaa !5
  %2822 = load i16, ptr %2820, align 2, !tbaa !145
  %2823 = zext i16 %2822 to i32
  %2824 = icmp eq i32 %2823, 10
  br i1 %2824, label %2825, label %2826

2825:                                             ; preds = %2819
  br label %2827

2826:                                             ; preds = %2819
  br label %2815, !llvm.loop !178

2827:                                             ; preds = %2825, %2815
  br label %2864

2828:                                             ; preds = %2808
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #14
  %2829 = load ptr, ptr %146, align 8, !tbaa !5
  %2830 = load ptr, ptr %140, align 8, !tbaa !5
  %2831 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %2829, ptr noundef %2830, ptr noundef %146, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %2831, ptr %147, align 4
  %2832 = getelementptr inbounds %struct.ImVec2, ptr %147, i32 0, i32 0
  %2833 = load float, ptr %2832, align 4, !tbaa !83
  %2834 = fcmp ole float %2833, 0.000000e+00
  br i1 %2834, label %2835, label %2844

2835:                                             ; preds = %2828
  %2836 = load ptr, ptr %20, align 8, !tbaa !5
  %2837 = getelementptr inbounds %struct.ImGuiContext, ptr %2836, i32 0, i32 6
  %2838 = load ptr, ptr %2837, align 8, !tbaa !115
  %2839 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(114) %2838, i16 noundef zeroext 32)
  %2840 = fmul float %2839, 5.000000e-01
  %2841 = fptosi float %2840 to i32
  %2842 = sitofp i32 %2841 to float
  %2843 = getelementptr inbounds %struct.ImVec2, ptr %147, i32 0, i32 0
  store float %2842, ptr %2843, align 4, !tbaa !83
  br label %2844

2844:                                             ; preds = %2835, %2828
  call void @llvm.lifetime.start.p0(i64 16, ptr %148) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %2845 = load float, ptr %142, align 4, !tbaa !46
  %2846 = load ptr, ptr %20, align 8, !tbaa !5
  %2847 = getelementptr inbounds %struct.ImGuiContext, ptr %2846, i32 0, i32 7
  %2848 = load float, ptr %2847, align 8, !tbaa !47
  %2849 = fsub float %2845, %2848
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %150, float noundef 0.000000e+00, float noundef %2849)
  %2850 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %144, ptr noundef nonnull align 4 dereferenceable(8) %150)
  store <2 x float> %2850, ptr %149, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #14
  %2851 = getelementptr inbounds %struct.ImVec2, ptr %147, i32 0, i32 0
  %2852 = load float, ptr %2851, align 4, !tbaa !83
  %2853 = load float, ptr %143, align 4, !tbaa !46
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %152, float noundef %2852, float noundef %2853)
  %2854 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %144, ptr noundef nonnull align 4 dereferenceable(8) %152)
  store <2 x float> %2854, ptr %151, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %148, ptr noundef nonnull align 4 dereferenceable(8) %149, ptr noundef nonnull align 4 dereferenceable(8) %151)
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %153) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %153, ptr noundef nonnull align 4 dereferenceable(16) %118)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %148, ptr noundef nonnull align 4 dereferenceable(16) %153)
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %154) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %154, ptr noundef nonnull align 4 dereferenceable(16) %118)
  %2855 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %148, ptr noundef nonnull align 4 dereferenceable(16) %154)
  call void @llvm.lifetime.end.p0(i64 16, ptr %154) #14
  br i1 %2855, label %2856, label %2863

2856:                                             ; preds = %2844
  %2857 = load ptr, ptr %38, align 8, !tbaa !5
  %2858 = getelementptr inbounds %struct.ImGuiWindow, ptr %2857, i32 0, i32 69
  %2859 = load ptr, ptr %2858, align 8, !tbaa !179
  %2860 = getelementptr inbounds %struct.ImRect, ptr %148, i32 0, i32 0
  %2861 = getelementptr inbounds %struct.ImRect, ptr %148, i32 0, i32 1
  %2862 = load i32, ptr %141, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(224) %2859, ptr noundef nonnull align 4 dereferenceable(8) %2860, ptr noundef nonnull align 4 dereferenceable(8) %2861, i32 noundef %2862, float noundef 0.000000e+00, i32 noundef 15)
  br label %2863

2863:                                             ; preds = %2856, %2844
  call void @llvm.lifetime.end.p0(i64 16, ptr %148) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #14
  br label %2864

2864:                                             ; preds = %2863, %2827
  %2865 = getelementptr inbounds %struct.ImVec2, ptr %119, i32 0, i32 0
  %2866 = load float, ptr %2865, align 4, !tbaa !83
  %2867 = getelementptr inbounds %struct.ImVec2, ptr %138, i32 0, i32 0
  %2868 = load float, ptr %2867, align 4, !tbaa !83
  %2869 = fsub float %2866, %2868
  %2870 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 0
  store float %2869, ptr %2870, align 4, !tbaa !83
  %2871 = load ptr, ptr %20, align 8, !tbaa !5
  %2872 = getelementptr inbounds %struct.ImGuiContext, ptr %2871, i32 0, i32 7
  %2873 = load float, ptr %2872, align 8, !tbaa !47
  %2874 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 1
  %2875 = load float, ptr %2874, align 4, !tbaa !81
  %2876 = fadd float %2875, %2873
  store float %2876, ptr %2874, align 4, !tbaa !81
  br label %2792, !llvm.loop !180

2877:                                             ; preds = %2807, %2796
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #14
  br label %2878

2878:                                             ; preds = %2877
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #14
  br label %2879

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

2882:                                             ; preds = %2879
  %2883 = load ptr, ptr %123, align 8, !tbaa !5
  %2884 = load ptr, ptr %122, align 8, !tbaa !5
  %2885 = ptrtoint ptr %2883 to i64
  %2886 = ptrtoint ptr %2884 to i64
  %2887 = sub i64 %2885, %2886
  %2888 = icmp slt i64 %2887, 2097152
  br i1 %2888, label %2889, label %2914

2889:                                             ; preds = %2882, %2879
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #14
  %2890 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2891 = trunc i8 %2890 to i1
  %2892 = zext i1 %2891 to i64
  %2893 = select i1 %2891, i32 1, i32 0
  %2894 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %2893, float noundef 1.000000e+00)
  store i32 %2894, ptr %155, align 4, !tbaa !9
  %2895 = load ptr, ptr %38, align 8, !tbaa !5
  %2896 = getelementptr inbounds %struct.ImGuiWindow, ptr %2895, i32 0, i32 69
  %2897 = load ptr, ptr %2896, align 8, !tbaa !179
  %2898 = load ptr, ptr %20, align 8, !tbaa !5
  %2899 = getelementptr inbounds %struct.ImGuiContext, ptr %2898, i32 0, i32 6
  %2900 = load ptr, ptr %2899, align 8, !tbaa !115
  %2901 = load ptr, ptr %20, align 8, !tbaa !5
  %2902 = getelementptr inbounds %struct.ImGuiContext, ptr %2901, i32 0, i32 7
  %2903 = load float, ptr %2902, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %2904 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(8) %138)
  store <2 x float> %2904, ptr %156, align 4
  %2905 = load i32, ptr %155, align 4, !tbaa !9
  %2906 = load ptr, ptr %122, align 8, !tbaa !5
  %2907 = load ptr, ptr %123, align 8, !tbaa !5
  %2908 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2909 = trunc i8 %2908 to i1
  br i1 %2909, label %2910, label %2911

2910:                                             ; preds = %2889
  br label %2912

2911:                                             ; preds = %2889
  br label %2912

2912:                                             ; preds = %2911, %2910
  %2913 = phi ptr [ null, %2910 ], [ %118, %2911 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(224) %2897, ptr noundef %2900, float noundef %2903, ptr noundef nonnull align 4 dereferenceable(8) %156, i32 noundef %2905, ptr noundef %2906, ptr noundef %2907, float noundef 0.000000e+00, ptr noundef %2913)
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #14
  br label %2914

2914:                                             ; preds = %2912, %2882
  %2915 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %2916 = trunc i8 %2915 to i1
  br i1 %2916, label %2917, label %2990

2917:                                             ; preds = %2914
  %2918 = load ptr, ptr %21, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.ImGuiIO, ptr %2918, i32 0, i32 3
  %2920 = load float, ptr %2919, align 8, !tbaa !181
  %2921 = load ptr, ptr %43, align 8, !tbaa !5
  %2922 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2921, i32 0, i32 10
  %2923 = load float, ptr %2922, align 8, !tbaa !182
  %2924 = fadd float %2923, %2920
  store float %2924, ptr %2922, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 1, ptr %157) #14
  %2925 = load ptr, ptr %20, align 8, !tbaa !5
  %2926 = getelementptr inbounds %struct.ImGuiContext, ptr %2925, i32 0, i32 3
  %2927 = getelementptr inbounds %struct.ImGuiIO, ptr %2926, i32 0, i32 21
  %2928 = load i8, ptr %2927, align 2, !tbaa !183, !range !42, !noundef !43
  %2929 = trunc i8 %2928 to i1
  br i1 %2929, label %2930, label %2941

2930:                                             ; preds = %2917
  %2931 = load ptr, ptr %43, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2931, i32 0, i32 10
  %2933 = load float, ptr %2932, align 8, !tbaa !182
  %2934 = fcmp ole float %2933, 0.000000e+00
  br i1 %2934, label %2941, label %2935

2935:                                             ; preds = %2930
  %2936 = load ptr, ptr %43, align 8, !tbaa !5
  %2937 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2936, i32 0, i32 10
  %2938 = load float, ptr %2937, align 8, !tbaa !182
  %2939 = call float @fmodf(float noundef %2938, float noundef 0x3FF3333340000000) #14
  %2940 = fcmp ole float %2939, 0x3FE99999A0000000
  br label %2941

2941:                                             ; preds = %2935, %2930, %2917
  %2942 = phi i1 [ true, %2930 ], [ true, %2917 ], [ %2940, %2935 ]
  %2943 = zext i1 %2942 to i8
  store i8 %2943, ptr %157, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #14
  %2944 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %119, ptr noundef nonnull align 4 dereferenceable(8) %125)
  store <2 x float> %2944, ptr %159, align 4
  %2945 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %159, ptr noundef nonnull align 4 dereferenceable(8) %138)
  store <2 x float> %2945, ptr %158, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #14
  %2946 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %2947 = load float, ptr %2946, align 4, !tbaa !83
  %2948 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 1
  %2949 = load float, ptr %2948, align 4, !tbaa !81
  %2950 = load ptr, ptr %20, align 8, !tbaa !5
  %2951 = getelementptr inbounds %struct.ImGuiContext, ptr %2950, i32 0, i32 7
  %2952 = load float, ptr %2951, align 8, !tbaa !47
  %2953 = fsub float %2949, %2952
  %2954 = fadd float %2953, 5.000000e-01
  %2955 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %2956 = load float, ptr %2955, align 4, !tbaa !83
  %2957 = fadd float %2956, 1.000000e+00
  %2958 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 1
  %2959 = load float, ptr %2958, align 4, !tbaa !81
  %2960 = fsub float %2959, 1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %160, float noundef %2947, float noundef %2954, float noundef %2957, float noundef %2960)
  %2961 = load i8, ptr %157, align 1, !tbaa !44, !range !42, !noundef !43
  %2962 = trunc i8 %2961 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %161) #14
  br i1 %2962, label %2963, label %2965

2963:                                             ; preds = %2941
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %161, ptr noundef nonnull align 4 dereferenceable(16) %118)
  %2964 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %160, ptr noundef nonnull align 4 dereferenceable(16) %161)
  br label %2965

2965:                                             ; preds = %2963, %2941
  %2966 = phi i1 [ false, %2941 ], [ %2964, %2963 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %161) #14
  br i1 %2966, label %2967, label %2974

2967:                                             ; preds = %2965
  %2968 = load ptr, ptr %38, align 8, !tbaa !5
  %2969 = getelementptr inbounds %struct.ImGuiWindow, ptr %2968, i32 0, i32 69
  %2970 = load ptr, ptr %2969, align 8, !tbaa !179
  %2971 = getelementptr inbounds %struct.ImRect, ptr %160, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #14
  %2972 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %160)
  store <2 x float> %2972, ptr %162, align 4
  %2973 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(224) %2970, ptr noundef nonnull align 4 dereferenceable(8) %2971, ptr noundef nonnull align 4 dereferenceable(8) %162, i32 noundef %2973, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #14
  br label %2974

2974:                                             ; preds = %2967, %2965
  %2975 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2976 = trunc i8 %2975 to i1
  br i1 %2976, label %2989, label %2977

2977:                                             ; preds = %2974
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #14
  %2978 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %2979 = load float, ptr %2978, align 4, !tbaa !83
  %2980 = fsub float %2979, 1.000000e+00
  %2981 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 1
  %2982 = load float, ptr %2981, align 4, !tbaa !81
  %2983 = load ptr, ptr %20, align 8, !tbaa !5
  %2984 = getelementptr inbounds %struct.ImGuiContext, ptr %2983, i32 0, i32 7
  %2985 = load float, ptr %2984, align 8, !tbaa !47
  %2986 = fsub float %2982, %2985
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %163, float noundef %2980, float noundef %2986)
  %2987 = load ptr, ptr %20, align 8, !tbaa !5
  %2988 = getelementptr inbounds %struct.ImGuiContext, ptr %2987, i32 0, i32 184
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2988, ptr align 4 %163, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #14
  br label %2989

2989:                                             ; preds = %2977, %2974
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #14
  br label %2990

2990:                                             ; preds = %2989, %2914
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #14
  br label %3065

2991:                                             ; preds = %2423
  %2992 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2993 = trunc i8 %2992 to i1
  br i1 %2993, label %2994, label %3004

2994:                                             ; preds = %2991
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #14
  %2995 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2996 = load float, ptr %2995, align 4, !tbaa !83
  %2997 = load ptr, ptr %122, align 8, !tbaa !5
  %2998 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %2997, ptr noundef %123)
  %2999 = sitofp i32 %2998 to float
  %3000 = load ptr, ptr %20, align 8, !tbaa !5
  %3001 = getelementptr inbounds %struct.ImGuiContext, ptr %3000, i32 0, i32 7
  %3002 = load float, ptr %3001, align 8, !tbaa !47
  %3003 = fmul float %2999, %3002
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %164, float noundef %2996, float noundef %3003)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %120, ptr align 4 %164, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #14
  br label %3030

3004:                                             ; preds = %2991
  %3005 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3006 = trunc i8 %3005 to i1
  br i1 %3006, label %3020, label %3007

3007:                                             ; preds = %3004
  %3008 = load ptr, ptr %20, align 8, !tbaa !5
  %3009 = getelementptr inbounds %struct.ImGuiContext, ptr %3008, i32 0, i32 43
  %3010 = load i32, ptr %3009, align 8, !tbaa !95
  %3011 = load i32, ptr %29, align 4, !tbaa !9
  %3012 = icmp eq i32 %3010, %3011
  br i1 %3012, label %3013, label %3020

3013:                                             ; preds = %3007
  %3014 = load ptr, ptr %122, align 8, !tbaa !5
  %3015 = load ptr, ptr %43, align 8, !tbaa !5
  %3016 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3015, i32 0, i32 2
  %3017 = load i32, ptr %3016, align 8, !tbaa !104
  %3018 = sext i32 %3017 to i64
  %3019 = getelementptr inbounds i8, ptr %3014, i64 %3018
  store ptr %3019, ptr %123, align 8, !tbaa !5
  br label %3029

3020:                                             ; preds = %3007, %3004
  %3021 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3022 = trunc i8 %3021 to i1
  br i1 %3022, label %3028, label %3023

3023:                                             ; preds = %3020
  %3024 = load ptr, ptr %122, align 8, !tbaa !5
  %3025 = load ptr, ptr %122, align 8, !tbaa !5
  %3026 = call i64 @strlen(ptr noundef %3025) #16
  %3027 = getelementptr inbounds i8, ptr %3024, i64 %3026
  store ptr %3027, ptr %123, align 8, !tbaa !5
  br label %3028

3028:                                             ; preds = %3023, %3020
  br label %3029

3029:                                             ; preds = %3028, %3013
  br label %3030

3030:                                             ; preds = %3029, %2994
  %3031 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3032 = trunc i8 %3031 to i1
  br i1 %3032, label %3040, label %3033

3033:                                             ; preds = %3030
  %3034 = load ptr, ptr %123, align 8, !tbaa !5
  %3035 = load ptr, ptr %122, align 8, !tbaa !5
  %3036 = ptrtoint ptr %3034 to i64
  %3037 = ptrtoint ptr %3035 to i64
  %3038 = sub i64 %3036, %3037
  %3039 = icmp slt i64 %3038, 2097152
  br i1 %3039, label %3040, label %3064

3040:                                             ; preds = %3033, %3030
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #14
  %3041 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3042 = trunc i8 %3041 to i1
  %3043 = zext i1 %3042 to i64
  %3044 = select i1 %3042, i32 1, i32 0
  %3045 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3044, float noundef 1.000000e+00)
  store i32 %3045, ptr %165, align 4, !tbaa !9
  %3046 = load ptr, ptr %38, align 8, !tbaa !5
  %3047 = getelementptr inbounds %struct.ImGuiWindow, ptr %3046, i32 0, i32 69
  %3048 = load ptr, ptr %3047, align 8, !tbaa !179
  %3049 = load ptr, ptr %20, align 8, !tbaa !5
  %3050 = getelementptr inbounds %struct.ImGuiContext, ptr %3049, i32 0, i32 6
  %3051 = load ptr, ptr %3050, align 8, !tbaa !115
  %3052 = load ptr, ptr %20, align 8, !tbaa !5
  %3053 = getelementptr inbounds %struct.ImGuiContext, ptr %3052, i32 0, i32 7
  %3054 = load float, ptr %3053, align 8, !tbaa !47
  %3055 = load i32, ptr %165, align 4, !tbaa !9
  %3056 = load ptr, ptr %122, align 8, !tbaa !5
  %3057 = load ptr, ptr %123, align 8, !tbaa !5
  %3058 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3059 = trunc i8 %3058 to i1
  br i1 %3059, label %3060, label %3061

3060:                                             ; preds = %3040
  br label %3062

3061:                                             ; preds = %3040
  br label %3062

3062:                                             ; preds = %3061, %3060
  %3063 = phi ptr [ null, %3060 ], [ %118, %3061 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(224) %3048, ptr noundef %3051, float noundef %3054, ptr noundef nonnull align 4 dereferenceable(8) %119, i32 noundef %3055, ptr noundef %3056, ptr noundef %3057, float noundef 0.000000e+00, ptr noundef %3063)
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #14
  br label %3064

3064:                                             ; preds = %3062, %3033
  br label %3065

3065:                                             ; preds = %3064, %2990
  %3066 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %3067 = trunc i8 %3066 to i1
  br i1 %3067, label %3068, label %3072

3068:                                             ; preds = %3065
  %3069 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3070 = trunc i8 %3069 to i1
  br i1 %3070, label %3072, label %3071

3071:                                             ; preds = %3068
  call void @_ZN5ImGui7PopFontEv()
  br label %3072

3072:                                             ; preds = %3071, %3068, %3065
  %3073 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3074 = trunc i8 %3073 to i1
  br i1 %3074, label %3075, label %3076

3075:                                             ; preds = %3072
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %120)
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %3076

3076:                                             ; preds = %3075, %3072
  %3077 = load ptr, ptr %20, align 8, !tbaa !5
  %3078 = getelementptr inbounds %struct.ImGuiContext, ptr %3077, i32 0, i32 193
  %3079 = load i8, ptr %3078, align 8, !tbaa !184, !range !42, !noundef !43
  %3080 = trunc i8 %3079 to i1
  br i1 %3080, label %3081, label %3090

3081:                                             ; preds = %3076
  %3082 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %3083 = trunc i8 %3082 to i1
  br i1 %3083, label %3084, label %3087

3084:                                             ; preds = %3081
  %3085 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3086 = trunc i8 %3085 to i1
  br i1 %3086, label %3087, label %3090

3087:                                             ; preds = %3084, %3081
  %3088 = load ptr, ptr %122, align 8, !tbaa !5
  %3089 = load ptr, ptr %123, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %119, ptr noundef %3088, ptr noundef %3089)
  br label %3090

3090:                                             ; preds = %3087, %3084, %3076
  %3091 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %3092 = load float, ptr %3091, align 4, !tbaa !83
  %3093 = fcmp ogt float %3092, 0.000000e+00
  br i1 %3093, label %3094, label %3113

3094:                                             ; preds = %3090
  %3095 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  %3096 = getelementptr inbounds %struct.ImVec2, ptr %3095, i32 0, i32 0
  %3097 = load float, ptr %3096, align 4, !tbaa !185
  %3098 = load ptr, ptr %22, align 8, !tbaa !5
  %3099 = getelementptr inbounds %struct.ImGuiStyle, ptr %3098, i32 0, i32 15
  %3100 = getelementptr inbounds %struct.ImVec2, ptr %3099, i32 0, i32 0
  %3101 = load float, ptr %3100, align 4, !tbaa !84
  %3102 = fadd float %3097, %3101
  %3103 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %3104 = getelementptr inbounds %struct.ImVec2, ptr %3103, i32 0, i32 1
  %3105 = load float, ptr %3104, align 4, !tbaa !174
  %3106 = load ptr, ptr %22, align 8, !tbaa !5
  %3107 = getelementptr inbounds %struct.ImGuiStyle, ptr %3106, i32 0, i32 11
  %3108 = getelementptr inbounds %struct.ImVec2, ptr %3107, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !82
  %3110 = fadd float %3105, %3109
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %166, float noundef %3102, float noundef %3110)
  %3111 = load ptr, ptr %10, align 8, !tbaa !5
  %3112 = load <2 x float>, ptr %166, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3112, ptr noundef %3111, ptr noundef null, i1 noundef zeroext true)
  br label %3113

3113:                                             ; preds = %3094, %3090
  %3114 = load i8, ptr %60, align 1, !tbaa !44, !range !42, !noundef !43
  %3115 = trunc i8 %3114 to i1
  br i1 %3115, label %3116, label %3122

3116:                                             ; preds = %3113
  %3117 = load i32, ptr %15, align 4, !tbaa !9
  %3118 = and i32 %3117, 2097152
  %3119 = icmp ne i32 %3118, 0
  br i1 %3119, label %3122, label %3120

3120:                                             ; preds = %3116
  %3121 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3121)
  br label %3122

3122:                                             ; preds = %3120, %3116, %3113
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124
  %3126 = load i32, ptr %15, align 4, !tbaa !9
  %3127 = and i32 %3126, 32
  %3128 = icmp ne i32 %3127, 0
  br i1 %3128, label %3129, label %3132

3129:                                             ; preds = %3125
  %3130 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %3131 = trunc i8 %3130 to i1
  store i1 %3131, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3135

3132:                                             ; preds = %3125
  %3133 = load i8, ptr %60, align 1, !tbaa !44, !range !42, !noundef !43
  %3134 = trunc i8 %3133 to i1
  store i1 %3134, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3135

3135:                                             ; preds = %3132, %3129
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #14
  br label %3136

3136:                                             ; preds = %3135, %368, %358, %313
  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 %3137

3137:                                             ; preds = %3136, %172
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  %3138 = load i1, ptr %9, align 1
  ret i1 %3138

3139:                                             ; preds = %1950
  %3140 = load ptr, ptr %105, align 8
  %3141 = load i32, ptr %106, align 4
  %3142 = insertvalue { ptr, i32 } poison, ptr %3140, 0
  %3143 = insertvalue { ptr, i32 } %3142, i32 %3141, 1
  resume { ptr, i32 } %3143

3144:                                             ; preds = %1231
  unreachable
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728)) #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(3728)) #9 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728)) #4 align 2

declare noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(114), 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(3728)) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) #9

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) #9

; 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 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #9

; 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(3728)) #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) #9

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) #9

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

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

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(114), i16 noundef zeroext) #9 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)) #10 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 #9 align 2

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

declare void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(224), 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"="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 #10 = { 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 #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 139}
!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, !14, i64 64, !14, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !13, i64 84, !13, i64 92, !13, i64 100, !13, i64 108, !13, i64 116, !13, i64 124, !15, i64 132, !15, i64 133, !15, i64 134, !15, i64 135, !15, i64 136, !15, i64 137, !15, i64 138, !15, i64 139, !15, i64 140, !15, i64 141, !15, i64 142, !15, i64 143, !7, i64 144, !16, i64 146, !16, i64 148, !16, i64 150, !10, i64 152, !7, i64 156, !7, i64 157, !7, i64 158, !15, i64 159, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !13, i64 184, !13, i64 192, !17, i64 200, !18, i64 216, !20, i64 544, !20, i64 560, !20, i64 576, !20, i64 592, !20, i64 608, !20, i64 624, !20, i64 640, !27, i64 656, !27, i64 660, !10, i64 664, !14, i64 668, !14, i64 672, !28, i64 680, !30, i64 696, !14, i64 712, !10, i64 716, !6, i64 720, !31, i64 728, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !7, i64 992, !7, i64 1000, !15, i64 1032, !10, i64 1036, !10, i64 1040}
!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, !14, i64 48, !14, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !10, i64 68, !10, i64 72, !20, i64 76, !20, i64 92, !21, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !15, i64 128, !15, i64 129, !15, i64 130, !13, i64 132, !22, i64 140, !10, i64 176, !10, i64 180, !23, i64 184, !6, i64 200, !6, i64 208, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !14, i64 236, !14, i64 240, !24, i64 248, !25, i64 264, !25, i64 280, !26, i64 296, !7, i64 312}
!19 = !{!"_ZTS6ImVec1", !14, i64 0}
!20 = !{!"_ZTS6ImRect", !13, i64 0, !13, i64 8}
!21 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!22 = !{!"_ZTS16ImGuiMenuColumns", !14, i64 0, !14, i64 4, !14, i64 8, !7, i64 12, !7, i64 24}
!23 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!25 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!26 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!28 = !{!"_ZTS12ImGuiStorage", !29, i64 0}
!29 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !6, i64 8}
!30 = !{!"_ZTS8ImVectorI12ImGuiColumnsE", !10, i64 0, !10, i64 4, !6, i64 8}
!31 = !{!"_ZTS10ImDrawList", !32, i64 0, !33, i64 16, !34, i64 32, !10, i64 48, !6, i64 56, !6, i64 64, !10, i64 72, !6, i64 80, !6, i64 88, !35, i64 96, !36, i64 112, !37, i64 128, !38, i64 144, !40, i64 200}
!32 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!38 = !{!"_ZTS9ImDrawCmd", !39, i64 0, !6, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !6, i64 40, !6, i64 48}
!39 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!40 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !41, i64 8}
!41 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!15, !15, i64 0}
!45 = !{i64 0, i64 4, !46, i64 4, i64 4, !46}
!46 = !{!14, !14, i64 0}
!47 = !{!48, !14, i64 6448}
!48 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !49, i64 8, !50, i64 5480, !6, i64 6440, !14, i64 6448, !14, i64 6452, !51, i64 6456, !52, i64 6672, !10, i64 6680, !10, i64 6684, !10, i64 6688, !15, i64 6692, !15, i64 6693, !15, i64 6694, !15, i64 6695, !10, i64 6696, !6, i64 6704, !23, i64 6712, !23, i64 6728, !23, i64 6744, !23, i64 6760, !28, i64 6776, !10, i64 6792, !6, i64 6800, !6, i64 6808, !6, i64 6816, !6, i64 6824, !6, i64 6832, !6, i64 6840, !13, i64 6848, !14, i64 6856, !10, i64 6860, !10, i64 6864, !15, i64 6868, !15, i64 6869, !14, i64 6872, !14, i64 6876, !10, i64 6880, !10, i64 6884, !14, i64 6888, !15, i64 6892, !15, i64 6893, !15, i64 6894, !15, i64 6895, !15, i64 6896, !15, i64 6897, !10, i64 6900, !10, i64 6904, !53, i64 6912, !13, i64 6920, !6, i64 6928, !54, i64 6936, !10, i64 6940, !10, i64 6944, !15, i64 6948, !15, i64 6949, !6, i64 6952, !10, i64 6960, !14, i64 6964, !55, i64 6968, !56, i64 7080, !57, i64 7104, !58, i64 7120, !59, i64 7136, !60, i64 7152, !60, i64 7168, !6, i64 7184, !10, i64 7192, !10, i64 7196, !10, i64 7200, !10, i64 7204, !10, i64 7208, !10, i64 7212, !10, i64 7216, !10, i64 7220, !10, i64 7224, !10, i64 7228, !10, i64 7232, !54, i64 7236, !20, i64 7240, !10, i64 7256, !21, i64 7260, !10, i64 7264, !15, i64 7268, !15, i64 7269, !15, i64 7270, !15, i64 7271, !15, i64 7272, !15, i64 7273, !15, i64 7274, !10, i64 7276, !20, i64 7280, !15, i64 7296, !10, i64 7300, !61, i64 7304, !10, i64 7308, !10, i64 7312, !10, i64 7316, !10, i64 7320, !62, i64 7328, !62, i64 7376, !62, i64 7424, !6, i64 7472, !10, i64 7480, !6, i64 7488, !6, i64 7496, !6, i64 7504, !14, i64 7512, !14, i64 7516, !15, i64 7520, !6, i64 7528, !6, i64 7536, !10, i64 7544, !10, i64 7548, !10, i64 7552, !10, i64 7556, !15, i64 7560, !63, i64 7568, !64, i64 7624, !14, i64 7656, !31, i64 7664, !31, i64 7888, !10, i64 8112, !15, i64 8116, !15, i64 8117, !15, i64 8118, !10, i64 8120, !10, i64 8124, !10, i64 8128, !65, i64 8136, !20, i64 8200, !10, i64 8216, !10, i64 8220, !14, i64 8224, !10, i64 8228, !10, i64 8232, !10, i64 8236, !10, i64 8240, !66, i64 8248, !7, i64 8264, !6, i64 8280, !67, i64 8288, !69, i64 8328, !70, i64 8344, !13, i64 8360, !71, i64 8368, !75, i64 12096, !10, i64 12216, !10, i64 12220, !14, i64 12224, !14, i64 12228, !7, i64 12232, !39, i64 12244, !14, i64 12260, !15, i64 12264, !15, i64 12265, !14, i64 12268, !14, i64 12272, !14, i64 12276, !10, i64 12280, !72, i64 12288, !17, i64 12304, !13, i64 12320, !13, i64 12328, !7, i64 12336, !15, i64 12337, !14, i64 12340, !77, i64 12344, !78, i64 12360, !79, i64 12376, !15, i64 12392, !80, i64 12396, !6, i64 12400, !77, i64 12408, !14, i64 12424, !15, i64 12428, !10, i64 12432, !10, i64 12436, !10, i64 12440, !15, i64 12444, !10, i64 12448, !7, i64 12452, !10, i64 12932, !14, i64 12936, !10, i64 12940, !10, i64 12944, !10, i64 12948, !7, i64 12952}
!49 = !{!"_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, !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, !6, i64 288, !13, i64 296, !7, i64 304, !14, i64 312, !14, i64 316, !15, i64 320, !15, i64 321, !15, i64 322, !15, i64 323, !7, i64 324, !7, i64 836, !15, i64 920, !15, i64 921, !15, i64 922, !15, i64 923, !15, i64 924, !15, i64 925, !15, i64 926, !14, i64 928, !10, i64 932, !10, i64 936, !10, i64 940, !10, i64 944, !10, i64 948, !13, i64 952, !10, i64 960, !13, i64 964, !7, i64 972, !7, i64 1016, !7, i64 1056, !7, i64 1061, !7, i64 1066, !7, i64 1071, !7, i64 1076, !7, i64 1084, !7, i64 1104, !7, i64 1124, !7, i64 1164, !7, i64 1184, !7, i64 3232, !7, i64 5280, !7, i64 5364, !14, i64 5448, !16, i64 5452, !33, i64 5456}
!50 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !13, i64 4, !14, i64 12, !14, i64 16, !13, i64 20, !13, i64 28, !10, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !13, i64 56, !14, i64 64, !14, i64 68, !13, i64 72, !13, i64 80, !13, i64 88, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !10, i64 136, !13, i64 140, !13, i64 148, !13, i64 156, !13, i64 164, !14, i64 172, !15, i64 176, !15, i64 177, !15, i64 178, !14, i64 180, !14, i64 184, !7, i64 188}
!51 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !39, i64 28, !10, i64 44, !7, i64 48, !7, i64 144, !6, i64 208}
!52 = !{!"double", !7, i64 0}
!53 = !{!"long long", !7, i64 0}
!54 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!55 = !{!"_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, !20, i64 60, !6, i64 80, !6, i64 88, !14, i64 96, !13, i64 100}
!56 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !14, i64 4, !10, i64 8, !10, i64 12, !15, i64 16}
!57 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!61 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!62 = !{!"_ZTS18ImGuiNavMoveResult", !6, i64 0, !10, i64 8, !10, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !20, i64 28}
!63 = !{!"_ZTS10ImDrawData", !15, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !13, i64 28, !13, i64 36, !13, i64 44}
!64 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0}
!65 = !{!"_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}
!66 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !68, i64 0, !28, i64 16, !10, i64 32}
!68 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !10, i64 4, !10, i64 8, !33, i64 16, !72, i64 32, !72, i64 48, !15, i64 64, !10, i64 68, !14, i64 72, !73, i64 76, !14, i64 3696, !15, i64 3700, !15, i64 3701, !15, i64 3702, !10, i64 3704, !6, i64 3712, !6, i64 3720}
!72 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!73 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 17, !7, i64 18, !7, i64 19, !14, i64 20, !74, i64 24}
!74 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !10, i64 3588, !10, i64 3592}
!75 = !{!"_ZTS6ImFont", !25, i64 0, !14, i64 16, !14, i64 20, !33, i64 24, !76, i64 40, !6, i64 56, !13, i64 64, !6, i64 72, !6, i64 80, !16, i64 88, !16, i64 90, !16, i64 92, !15, i64 94, !14, i64 96, !14, i64 100, !14, i64 104, !10, i64 108, !7, i64 112}
!76 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!77 = !{!"_ZTS15ImGuiTextBuffer", !72, i64 0}
!78 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!79 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !72, i64 0}
!80 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!81 = !{!13, !14, i64 4}
!82 = !{!50, !14, i64 60}
!83 = !{!13, !14, i64 0}
!84 = !{!50, !14, i64 80}
!85 = !{!50, !14, i64 64}
!86 = !{!50, !14, i64 68}
!87 = !{!48, !6, i64 6800}
!88 = !{!12, !10, i64 328}
!89 = !{!12, !10, i64 336}
!90 = !{!12, !14, i64 124}
!91 = !{!48, !10, i64 8112}
!92 = !{!48, !6, i64 7528}
!93 = !{!48, !10, i64 7544}
!94 = !{!12, !10, i64 440}
!95 = !{!48, !10, i64 6880}
!96 = !{!48, !10, i64 7212}
!97 = !{!48, !10, i64 7200}
!98 = !{!48, !54, i64 7236}
!99 = !{!48, !10, i64 6944}
!100 = !{!71, !6, i64 56}
!101 = !{!71, !15, i64 64}
!102 = !{!71, !6, i64 24}
!103 = !{!71, !10, i64 4}
!104 = !{!71, !10, i64 8}
!105 = !{!71, !10, i64 0}
!106 = !{!71, !14, i64 72}
!107 = !{!71, !7, i64 88}
!108 = !{!49, !15, i64 320}
!109 = !{!48, !10, i64 6900}
!110 = !{!48, !10, i64 6904}
!111 = !{!48, !53, i64 6912}
!112 = !{!71, !10, i64 16}
!113 = !{!71, !6, i64 40}
!114 = !{!7, !7, i64 0}
!115 = !{!48, !6, i64 6440}
!116 = !{!75, !14, i64 20}
!117 = !{!75, !14, i64 96}
!118 = !{!75, !14, i64 100}
!119 = !{!75, !14, i64 104}
!120 = !{!75, !6, i64 72}
!121 = !{!75, !6, i64 56}
!122 = !{!123, !14, i64 4}
!123 = !{!"_ZTS11ImFontGlyph", !10, i64 0, !10, i64 3, !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}
!124 = !{!75, !14, i64 16}
!125 = !{!71, !15, i64 3702}
!126 = !{!71, !10, i64 68}
!127 = !{!71, !10, i64 3704}
!128 = !{!71, !6, i64 3712}
!129 = !{!71, !6, i64 3720}
!130 = !{!48, !15, i64 6893}
!131 = !{!48, !10, i64 12948}
!132 = !{!49, !14, i64 296}
!133 = !{!20, !14, i64 0}
!134 = !{!50, !14, i64 56}
!135 = !{!49, !14, i64 300}
!136 = !{!12, !14, i64 220}
!137 = !{!49, !15, i64 193}
!138 = !{!71, !15, i64 3701}
!139 = !{!49, !14, i64 952}
!140 = !{!49, !14, i64 956}
!141 = !{!71, !15, i64 3700}
!142 = !{!49, !15, i64 322}
!143 = !{!49, !15, i64 323}
!144 = !{!49, !15, i64 321}
!145 = !{!16, !16, i64 0}
!146 = !{!49, !10, i64 5456}
!147 = distinct !{!147, !148}
!148 = !{!"llvm.loop.mustprogress"}
!149 = !{!48, !15, i64 6892}
!150 = !{!49, !10, i64 960}
!151 = !{!48, !15, i64 201}
!152 = !{!12, !14, i64 88}
!153 = !{!49, !6, i64 256}
!154 = !{!71, !10, i64 80}
!155 = !{!71, !10, i64 84}
!156 = distinct !{!156, !148}
!157 = !{!71, !10, i64 48}
!158 = !{!33, !6, i64 8}
!159 = !{!33, !10, i64 0}
!160 = !{!71, !10, i64 32}
!161 = !{!162, !10, i64 0}
!162 = !{!"_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}
!163 = !{!162, !10, i64 4}
!164 = !{!162, !6, i64 8}
!165 = !{!162, !10, i64 20}
!166 = !{!162, !6, i64 24}
!167 = !{!162, !10, i64 32}
!168 = !{!162, !10, i64 36}
!169 = !{!162, !15, i64 40}
!170 = !{!71, !10, i64 76}
!171 = !{!162, !10, i64 44}
!172 = !{!162, !10, i64 48}
!173 = !{!162, !10, i64 52}
!174 = !{!20, !14, i64 4}
!175 = distinct !{!175, !148}
!176 = !{!39, !14, i64 12}
!177 = !{!39, !14, i64 4}
!178 = distinct !{!178, !148}
!179 = !{!12, !6, i64 720}
!180 = distinct !{!180, !148}
!181 = !{!49, !14, i64 16}
!182 = !{!71, !14, i64 3696}
!183 = !{!48, !15, i64 202}
!184 = !{!48, !15, i64 12392}
!185 = !{!20, !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.7 = 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 [94 x i8], align 1
@.str.55 = 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.56 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.69 = 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_(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr 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 void @_ZN5ImGui13ClearActiveIDEv() 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 noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1044), 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 @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(224), 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 #9

; 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 #9 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(224), 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 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 #10

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #6

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

declare noundef zeroext i1 @_ZN5ImGui21FocusableItemRegisterEP11ImGuiWindowj(ptr noundef, i32 noundef) local_unnamed_addr #6

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 #10 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.7, 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.ImRect, align 4
  %47 = alloca %struct.ImRect, align 4
  %48 = alloca %struct.ImVec2, align 8
  %49 = alloca %struct.ImVec2, align 8
  %50 = alloca %struct.ImVec2, align 8
  %51 = alloca %struct.ImVec2, align 8
  %52 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %53 = getelementptr inbounds i8, ptr %52, i64 139
  %54 = load i8, ptr %53, align 1, !tbaa !5, !range !40, !noundef !41
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %1336, label %56

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

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

61:                                               ; preds = %56
  %62 = and i32 %5, 128
  %.not861.not = icmp eq i32 %62, 0
  %63 = and i32 %5, 1048576
  %64 = icmp ne i32 %63, 0
  %65 = and i32 %5, 1048704
  %.not862 = icmp eq i32 %65, 1048704
  br i1 %.not862, label %66, label %67

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

67:                                               ; preds = %61
  %68 = and i32 %5, 64
  %.not863 = icmp eq i32 %68, 0
  %69 = and i32 %5, 1024
  %.not864 = icmp eq i32 %69, 0
  %70 = and i32 %5, 1088
  %.not865 = icmp eq i32 %70, 1088
  br i1 %.not865, label %71, label %72

71:                                               ; preds = %67
  tail call void @__assert_fail(ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 3770, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

72:                                               ; preds = %67
  %73 = load ptr, ptr @GImGui, align 8, !tbaa !42
  %74 = and i32 %5, 16384
  %75 = icmp ne i32 %74, 0
  %76 = and i32 %5, 32768
  %.not866 = icmp eq i32 %76, 0
  %77 = and i32 %5, 65536
  %78 = icmp eq i32 %77, 0
  %79 = and i32 %5, 262144
  %.not867 = icmp eq i32 %79, 0
  %80 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not867, %80
  br i1 %or.cond17, label %82, label %81

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

82:                                               ; preds = %72
  br i1 %64, label %83, label %84

83:                                               ; preds = %82
  tail call void @_ZN5ImGui10BeginGroupEv()
  br label %84

84:                                               ; preds = %83, %82
  %85 = tail call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1044) %52, ptr noundef %0, ptr noundef null)
  %86 = 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.0469.0.copyload = load <2 x float>, ptr %4, align 4
  %87 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  br i1 %64, label %88, label %92

88:                                               ; preds = %84
  %89 = getelementptr inbounds i8, ptr %73, i64 6448
  %90 = load float, ptr %89, align 8, !tbaa !43
  %91 = fmul float %90, 8.000000e+00
  br label %93

92:                                               ; preds = %84
  %.sroa.0470.4.vec.extract = extractelement <2 x float> %86, i64 1
  br label %93

93:                                               ; preds = %92, %88
  %94 = phi float [ %91, %88 ], [ %.sroa.0470.4.vec.extract, %92 ]
  %95 = getelementptr inbounds i8, ptr %73, i64 5536
  %96 = getelementptr inbounds i8, ptr %73, i64 5540
  %97 = load float, ptr %96, align 4, !tbaa !77
  %98 = tail call float @llvm.fmuladd.f32(float %97, float 2.000000e+00, float %94)
  %99 = tail call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %.sroa.0469.0.copyload, float noundef %87, float noundef %98)
  store <2 x float> %99, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #15
  %100 = extractelement <2 x float> %99, i64 0
  %.sroa.0470.0.vec.extract = extractelement <2 x float> %86, i64 0
  %101 = fcmp ogt float %.sroa.0470.0.vec.extract, 0.000000e+00
  %102 = extractelement <2 x float> %99, i64 1
  br i1 %101, label %103, label %107

103:                                              ; preds = %93
  %104 = getelementptr inbounds i8, ptr %73, i64 5560
  %105 = load float, ptr %104, align 4, !tbaa !78
  %106 = fadd float %.sroa.0470.0.vec.extract, %105
  br label %107

107:                                              ; preds = %93, %103
  %108 = phi float [ %106, %103 ], [ 0.000000e+00, %93 ]
  %109 = fadd float %100, %108
  %110 = getelementptr inbounds i8, ptr %9, i64 4
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %109, float noundef %102)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #15
  %111 = getelementptr inbounds i8, ptr %52, i64 216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #15
  %112 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %111, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %112, ptr %12, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(8) %111, 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
  %113 = 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> %113, 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.0441.0.copyload = load float, ptr %9, align 8, !tbaa !79
  %.sroa.12.0.copyload = load float, ptr %110, align 4, !tbaa !79
  br i1 %64, label %114, label %137

114:                                              ; preds = %107
  %115 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %85, ptr noundef nonnull %11)
  br i1 %115, label %118, label %116

116:                                              ; preds = %114
  %117 = load float, ptr %96, align 4, !tbaa !77
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %117)
  call void @_ZN5ImGui8EndGroupEv()
  br label %1335

118:                                              ; preds = %114
  %119 = getelementptr inbounds i8, ptr %73, i64 5780
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %119)
  %120 = getelementptr inbounds i8, ptr %73, i64 5544
  %121 = load float, ptr %120, align 4, !tbaa !80
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 6, float noundef %121)
  %122 = getelementptr inbounds i8, ptr %73, i64 5548
  %123 = load float, ptr %122, align 4, !tbaa !81
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %123)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 1, ptr noundef nonnull align 4 dereferenceable(8) %95)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #15
  %124 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  store <2 x float> %124, ptr %15, align 8
  %125 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2bi(ptr noundef %0, i32 noundef %85, ptr noundef nonnull align 4 dereferenceable(8) %15, i1 noundef zeroext true, i32 noundef 65540)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #15
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br i1 %125, label %.thread, label %136

.thread:                                          ; preds = %118
  %126 = getelementptr inbounds i8, ptr %73, i64 6800
  %127 = load ptr, ptr %126, align 8, !tbaa !82
  %128 = getelementptr inbounds i8, ptr %127, i64 328
  %129 = load i32, ptr %128, align 8, !tbaa !83
  %130 = getelementptr inbounds i8, ptr %127, i64 336
  %131 = load i32, ptr %130, align 8, !tbaa !84
  %132 = or i32 %131, %129
  store i32 %132, ptr %130, align 8, !tbaa !84
  %133 = getelementptr inbounds i8, ptr %127, i64 124
  %134 = load float, ptr %133, align 4, !tbaa !85
  %135 = fsub float %.sroa.0441.0.copyload, %134
  br label %140

136:                                              ; preds = %118
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %1335

137:                                              ; preds = %107
  %138 = load float, ptr %96, align 4, !tbaa !77
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %138)
  %139 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %85, ptr noundef nonnull %11)
  br i1 %139, label %140, label %1335

140:                                              ; preds = %.thread, %137
  %.sroa.0441.1 = phi float [ %.sroa.0441.0.copyload, %137 ], [ %135, %.thread ]
  %.1790 = phi ptr [ %52, %137 ], [ %127, %.thread ]
  %141 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %85)
  br i1 %141, label %142, label %144

142:                                              ; preds = %140
  %143 = getelementptr inbounds i8, ptr %73, i64 8112
  store i32 1, ptr %143, align 8, !tbaa !86
  br label %144

144:                                              ; preds = %142, %140
  %145 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %85)
  %146 = call noundef zeroext i1 @_ZN5ImGui21FocusableItemRegisterEP11ImGuiWindowj(ptr noundef nonnull %52, i32 noundef %85)
  br i1 %146, label %147, label %157

147:                                              ; preds = %144
  %148 = getelementptr inbounds i8, ptr %73, i64 7528
  %149 = load ptr, ptr %148, align 8, !tbaa !87
  %150 = icmp eq ptr %149, %52
  br i1 %150, label %151, label %157

151:                                              ; preds = %147
  %152 = getelementptr inbounds i8, ptr %73, i64 7544
  %153 = load i32, ptr %152, align 8, !tbaa !88
  %154 = getelementptr inbounds i8, ptr %52, i64 440
  %155 = load i32, ptr %154, align 8, !tbaa !89
  %156 = icmp eq i32 %153, %155
  br label %157

157:                                              ; preds = %147, %151, %144
  %158 = phi i1 [ false, %144 ], [ false, %147 ], [ %156, %151 ]
  br i1 %141, label %159, label %163

159:                                              ; preds = %157
  %160 = getelementptr inbounds i8, ptr %73, i64 1064
  %161 = load i8, ptr %160, align 8, !tbaa !90, !range !40, !noundef !41
  %162 = trunc nuw i8 %161 to i1
  br label %163

163:                                              ; preds = %159, %157
  %164 = phi i1 [ false, %157 ], [ %162, %159 ]
  %165 = getelementptr inbounds i8, ptr %73, i64 6880
  %166 = load i32, ptr %165, align 8, !tbaa !91
  %.not868 = icmp eq i32 %166, %85
  br i1 %.not868, label %179, label %167

167:                                              ; preds = %163
  %168 = getelementptr inbounds i8, ptr %73, i64 7212
  %169 = load i32, ptr %168, align 4, !tbaa !92
  %170 = icmp eq i32 %169, %85
  br i1 %170, label %179, label %171

171:                                              ; preds = %167
  %172 = getelementptr inbounds i8, ptr %73, i64 7200
  %173 = load i32, ptr %172, align 8, !tbaa !93
  %174 = icmp eq i32 %173, %85
  br i1 %174, label %175, label %179

175:                                              ; preds = %171
  %176 = getelementptr inbounds i8, ptr %73, i64 7236
  %177 = load i32, ptr %176, align 4, !tbaa !94
  %178 = icmp eq i32 %177, 3
  br label %179

179:                                              ; preds = %167, %175, %171, %163
  %180 = phi i1 [ false, %163 ], [ true, %167 ], [ false, %171 ], [ %178, %175 ]
  %181 = icmp ne ptr %145, null
  %or.cond = and i1 %64, %181
  br i1 %or.cond, label %182, label %193

182:                                              ; preds = %179
  %183 = icmp eq i32 %166, 0
  br i1 %183, label %184, label %189

184:                                              ; preds = %182
  %185 = getelementptr inbounds i8, ptr %73, i64 6944
  %186 = load i32, ptr %185, align 8, !tbaa !95
  %187 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.1790, i32 noundef 1)
  %188 = icmp eq i32 %186, %187
  %.pre = load i32, ptr %165, align 8, !tbaa !91
  br label %189

189:                                              ; preds = %184, %182
  %190 = phi i32 [ %.pre, %184 ], [ %166, %182 ]
  %.ph = phi i1 [ %188, %184 ], [ false, %182 ]
  %191 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.1790, i32 noundef 1)
  %192 = icmp eq i32 %190, %191
  %.pre1053 = load i32, ptr %165, align 8, !tbaa !91
  br label %193

193:                                              ; preds = %179, %189
  %194 = phi i32 [ %.pre1053, %189 ], [ %166, %179 ]
  %195 = phi i1 [ %.ph, %189 ], [ false, %179 ]
  %196 = phi i1 [ %192, %189 ], [ false, %179 ]
  %.not869 = icmp eq i32 %194, %85
  br i1 %.not869, label %197, label %.thread996

197:                                              ; preds = %193
  %brmerge900 = select i1 %146, i1 true, i1 %164
  %198 = select i1 %brmerge900, i1 true, i1 %195
  %spec.select990 = select i1 %198, i1 true, i1 %180
  %199 = select i1 %spec.select990, i1 true, i1 %196
  br label %260

.thread996:                                       ; preds = %193
  %200 = and i32 %5, 16
  %.not870 = icmp ne i32 %200, 0
  %brmerge = select i1 %.not870, i1 true, i1 %180
  %201 = xor i1 %64, true
  %spec.select986 = and i1 %brmerge, %201
  %brmerge900997 = select i1 %146, i1 true, i1 %164
  %202 = select i1 %brmerge900997, i1 true, i1 %195
  %spec.select990999 = select i1 %202, i1 true, i1 %180
  %203 = select i1 %spec.select990999, i1 true, i1 %196
  br i1 %203, label %204, label %260

204:                                              ; preds = %.thread996
  %205 = getelementptr inbounds i8, ptr %73, i64 8368
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %205)
  %206 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #16
  %207 = trunc i64 %206 to i32
  %208 = getelementptr inbounds i8, ptr %73, i64 8416
  %209 = add nsw i32 %207, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %208, i32 noundef %209)
  %210 = getelementptr inbounds i8, ptr %73, i64 8424
  %211 = load ptr, ptr %210, align 8, !tbaa !96
  %212 = sext i32 %209 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %211, ptr nonnull align 1 %2, i64 %212, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #15
  store ptr null, ptr %16, align 8, !tbaa !42
  %213 = getelementptr inbounds i8, ptr %73, i64 8384
  %214 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %213, i32 noundef %214)
  %215 = getelementptr inbounds i8, ptr %73, i64 8400
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %215, i32 noundef 0)
  %216 = getelementptr inbounds i8, ptr %73, i64 8432
  store i8 0, ptr %216, align 8, !tbaa !97
  %217 = getelementptr inbounds i8, ptr %73, i64 8392
  %218 = load ptr, ptr %217, align 8, !tbaa !98
  %219 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %218, i32 noundef %3, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %16)
  %220 = getelementptr inbounds i8, ptr %73, i64 8372
  store i32 %219, ptr %220, align 4, !tbaa !99
  %221 = load ptr, ptr %16, align 8, !tbaa !42
  %222 = ptrtoint ptr %221 to i64
  %223 = ptrtoint ptr %2 to i64
  %224 = sub i64 %222, %223
  %225 = trunc i64 %224 to i32
  %226 = getelementptr inbounds i8, ptr %73, i64 8376
  store i32 %225, ptr %226, align 8, !tbaa !100
  %227 = load i32, ptr %205, align 8, !tbaa !101
  %228 = icmp eq i32 %227, %85
  br i1 %228, label %229, label %230

229:                                              ; preds = %204
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3728) %205)
  br label %234

230:                                              ; preds = %204
  store i32 %85, ptr %205, align 8, !tbaa !101
  %231 = getelementptr inbounds i8, ptr %73, i64 8440
  store float 0.000000e+00, ptr %231, align 8, !tbaa !102
  %232 = getelementptr inbounds i8, ptr %73, i64 8444
  %233 = zext i1 %201 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef nonnull %232, i32 noundef %233)
  %spec.select901 = select i1 %158, i1 true, i1 %spec.select986
  %spec.select991 = select i1 %201, i1 %spec.select901, i1 false
  br label %234

234:                                              ; preds = %230, %229
  %.0796 = phi i1 [ %spec.select986, %229 ], [ %spec.select991, %230 ]
  %235 = and i32 %5, 8192
  %.not872 = icmp eq i32 %235, 0
  br i1 %.not872, label %238, label %236

236:                                              ; preds = %234
  %237 = getelementptr inbounds i8, ptr %73, i64 8456
  store i8 1, ptr %237, align 4, !tbaa !103
  br label %238

238:                                              ; preds = %236, %234
  br i1 %64, label %247, label %239

239:                                              ; preds = %238
  %not. = xor i1 %146, true
  %240 = select i1 %not., i1 true, i1 %158
  br i1 %240, label %241, label %246

241:                                              ; preds = %239
  br i1 %164, label %242, label %247

242:                                              ; preds = %241
  %243 = getelementptr inbounds i8, ptr %73, i64 328
  %244 = load i8, ptr %243, align 8, !tbaa !104, !range !40, !noundef !41
  %245 = trunc nuw i8 %244 to i1
  br i1 %245, label %246, label %247

246:                                              ; preds = %242, %239
  br label %247

247:                                              ; preds = %238, %241, %242, %246
  %.1797 = phi i1 [ %.0796, %238 ], [ true, %246 ], [ %.0796, %242 ], [ %.0796, %241 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #15
  %.pre1054 = load i32, ptr %165, align 8, !tbaa !91
  %.not873 = icmp ne i32 %.pre1054, %85
  %brmerge903.not = and i1 %spec.select990999, %.not873
  br i1 %brmerge903.not, label %248, label %.thread1006

248:                                              ; preds = %247
  %249 = load i32, ptr %205, align 8, !tbaa !101
  %250 = icmp eq i32 %249, %85
  br i1 %250, label %251, label %.critedge

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

251:                                              ; preds = %248
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %85, ptr noundef nonnull %52)
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %85, ptr noundef nonnull %52)
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef nonnull %52)
  %252 = getelementptr inbounds i8, ptr %73, i64 6900
  %brmerge904.not = icmp eq i32 %65, 0
  %spec.select.v = select i1 %brmerge904.not, i32 3, i32 15
  %253 = load <2 x i32>, ptr %252, align 4, !tbaa !105
  %254 = insertelement <2 x i32> <i32 poison, i32 2>, i32 %spec.select.v, i64 0
  %255 = or <2 x i32> %253, %254
  store <2 x i32> %255, ptr %252, align 4, !tbaa !105
  %256 = getelementptr inbounds i8, ptr %73, i64 6912
  %257 = load i64, ptr %256, align 8, !tbaa !106
  %spec.select905.v = select i1 %64, i64 480, i64 384
  %spec.select905 = or i64 %257, %spec.select905.v
  store i64 %spec.select905, ptr %256, align 8, !tbaa !106
  %.not875 = icmp eq i32 %70, 0
  br i1 %.not875, label %.thread1006, label %258

258:                                              ; preds = %251
  %259 = or i64 %spec.select905, 1
  store i64 %259, ptr %256, align 8, !tbaa !106
  br label %.thread1006

260:                                              ; preds = %.thread996, %197
  %.ph1073 = phi i32 [ %85, %197 ], [ %194, %.thread996 ]
  %.ph1074 = phi i1 [ %199, %197 ], [ false, %.thread996 ]
  %.2798.ph = phi i1 [ false, %197 ], [ %spec.select986, %.thread996 ]
  %261 = icmp eq i32 %.ph1073, %85
  %262 = icmp eq ptr %145, null
  %or.cond5 = and i1 %262, %261
  br i1 %or.cond5, label %263, label %.thread1006

263:                                              ; preds = %260
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %.thread1006

.thread1006:                                      ; preds = %247, %258, %251, %263, %260
  %.07911084 = phi ptr [ %205, %258 ], [ %205, %251 ], [ null, %263 ], [ %145, %260 ], [ %205, %247 ]
  %.27981081 = phi i1 [ %.1797, %258 ], [ %.1797, %251 ], [ %.2798.ph, %263 ], [ %.2798.ph, %260 ], [ %.1797, %247 ]
  %264 = phi i1 [ true, %258 ], [ true, %251 ], [ %.ph1074, %263 ], [ %.ph1074, %260 ], [ true, %247 ]
  %265 = load i32, ptr %165, align 8, !tbaa !91
  %266 = icmp eq i32 %265, %85
  br i1 %266, label %.thread1008, label %270

.thread1008:                                      ; preds = %.thread1006
  %267 = getelementptr inbounds i8, ptr %73, i64 1064
  %268 = load i8, ptr %267, align 8, !tbaa !90, !range !40, !noundef !41
  %269 = trunc nuw i8 %268 to i1
  %.not1034 = xor i1 %264, true
  %not.brmerge907 = and i1 %.not1034, %269
  %spec.select987 = zext i1 %not.brmerge907 to i8
  br label %273

270:                                              ; preds = %.thread1006
  %271 = icmp ne ptr %.07911084, null
  %272 = select i1 %271, i1 %196, i1 false
  br label %273

273:                                              ; preds = %.thread1008, %270
  %.07921010 = phi i8 [ 0, %270 ], [ %spec.select987, %.thread1008 ]
  %274 = phi i1 [ %272, %270 ], [ true, %.thread1008 ]
  %275 = icmp ne ptr %.07911084, null
  br i1 %275, label %276, label %.thread1011

276:                                              ; preds = %273
  %277 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %spec.select908 = select i1 %277, i1 %274, i1 false
  %or.cond988 = select i1 %75, i1 %274, i1 false
  br i1 %or.cond988, label %278, label %.thread1011

278:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #15
  store ptr null, ptr %17, align 8, !tbaa !42
  %279 = getelementptr inbounds i8, ptr %.07911084, i64 16
  %280 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %279, i32 noundef %280)
  %281 = getelementptr inbounds i8, ptr %.07911084, i64 24
  %282 = load ptr, ptr %281, align 8, !tbaa !98
  %283 = load i32, ptr %279, align 8, !tbaa !107
  %284 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %282, i32 noundef %283, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %17)
  %285 = getelementptr inbounds i8, ptr %.07911084, i64 4
  store i32 %284, ptr %285, align 4, !tbaa !99
  %286 = load ptr, ptr %17, align 8, !tbaa !42
  %287 = ptrtoint ptr %286 to i64
  %288 = ptrtoint ptr %2 to i64
  %289 = sub i64 %287, %288
  %290 = trunc i64 %289 to i32
  %291 = getelementptr inbounds i8, ptr %.07911084, i64 8
  store i32 %290, ptr %291, align 8, !tbaa !100
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %292 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %293 = and i1 %spec.select908, %292
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #15
  br label %.thread1011

.thread1011:                                      ; preds = %273, %278, %276
  %.0799.in = phi i1 [ %293, %278 ], [ %spec.select908, %276 ], [ false, %273 ]
  %brmerge910 = select i1 %274, i1 true, i1 %.0799.in
  br i1 %brmerge910, label %298, label %294

294:                                              ; preds = %.thread1011
  %295 = load i32, ptr %165, align 8, !tbaa !91
  %296 = icmp eq i32 %295, %85
  %.not = xor i1 %75, true
  %297 = and i1 %296, %.not
  %or.cond911 = and i1 %275, %297
  br i1 %or.cond911, label %299, label %303

298:                                              ; preds = %.thread1011
  %.not.old = xor i1 %75, true
  %or.cond9.old = and i1 %275, %.not.old
  br i1 %or.cond9.old, label %299, label %303

299:                                              ; preds = %294, %298
  %300 = getelementptr inbounds i8, ptr %.07911084, i64 64
  %301 = load i8, ptr %300, align 8, !tbaa !97, !range !40, !noundef !41
  %302 = trunc nuw i8 %301 to i1
  br label %303

303:                                              ; preds = %299, %298, %294
  %304 = phi i1 [ false, %298 ], [ false, %294 ], [ %302, %299 ]
  %.not876 = icmp eq ptr %1, null
  br i1 %.not876, label %313, label %305

305:                                              ; preds = %303
  br i1 %304, label %306, label %309

306:                                              ; preds = %305
  %307 = getelementptr inbounds i8, ptr %.07911084, i64 40
  %308 = load ptr, ptr %307, align 8, !tbaa !108
  br label %309

309:                                              ; preds = %305, %306
  %310 = phi ptr [ %308, %306 ], [ %2, %305 ]
  %311 = load i8, ptr %310, align 1, !tbaa !109
  %312 = icmp eq i8 %311, 0
  br label %313

313:                                              ; preds = %309, %303
  %314 = phi i1 [ false, %303 ], [ %312, %309 ]
  %brmerge912 = select i1 %.not866, i1 true, i1 %314
  br i1 %brmerge912, label %348, label %315

315:                                              ; preds = %313
  %316 = getelementptr inbounds i8, ptr %73, i64 6440
  %317 = load ptr, ptr %316, align 8, !tbaa !110
  %318 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(114) %317, i16 noundef zeroext 42)
  %319 = getelementptr inbounds i8, ptr %73, i64 12096
  %320 = load ptr, ptr %316, align 8, !tbaa !110
  %321 = getelementptr inbounds i8, ptr %320, i64 20
  %322 = load float, ptr %321, align 4, !tbaa !111
  %323 = getelementptr inbounds i8, ptr %73, i64 12116
  store float %322, ptr %323, align 4, !tbaa !111
  %324 = getelementptr inbounds i8, ptr %320, i64 96
  %325 = load float, ptr %324, align 8, !tbaa !112
  %326 = getelementptr inbounds i8, ptr %73, i64 12192
  store float %325, ptr %326, align 8, !tbaa !112
  %327 = getelementptr inbounds i8, ptr %320, i64 64
  %328 = getelementptr inbounds i8, ptr %73, i64 12160
  %329 = load i64, ptr %327, align 8
  store i64 %329, ptr %328, align 8
  %330 = getelementptr inbounds i8, ptr %320, i64 100
  %331 = getelementptr inbounds i8, ptr %73, i64 12196
  %332 = load <2 x float>, ptr %330, align 4, !tbaa !79
  store <2 x float> %332, ptr %331, align 4, !tbaa !79
  %333 = getelementptr inbounds i8, ptr %320, i64 72
  %334 = load ptr, ptr %333, align 8, !tbaa !113
  %335 = getelementptr inbounds i8, ptr %73, i64 12168
  store ptr %334, ptr %335, align 8, !tbaa !113
  %336 = getelementptr inbounds i8, ptr %73, i64 12152
  store ptr %318, ptr %336, align 8, !tbaa !114
  %337 = getelementptr inbounds i8, ptr %318, i64 4
  %338 = load float, ptr %337, align 4, !tbaa !115
  %339 = getelementptr inbounds i8, ptr %73, i64 12112
  store float %338, ptr %339, align 8, !tbaa !117
  %340 = getelementptr inbounds i8, ptr %73, i64 12136
  %341 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %340)
  br i1 %341, label %342, label %.critedge11

342:                                              ; preds = %315
  %343 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %319)
  br i1 %343, label %344, label %.critedge11

344:                                              ; preds = %342
  %345 = getelementptr inbounds i8, ptr %73, i64 12120
  %346 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %345)
  br i1 %346, label %347, label %.critedge11

.critedge11:                                      ; preds = %342, %315, %344
  call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 3957, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

347:                                              ; preds = %344
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %319)
  br label %348

348:                                              ; preds = %313, %347
  %349 = load i32, ptr %165, align 8, !tbaa !91
  %350 = icmp eq i32 %349, %85
  br i1 %350, label %351, label %494

351:                                              ; preds = %348
  br i1 %275, label %353, label %352

352:                                              ; preds = %351
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 3965, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

353:                                              ; preds = %351
  %354 = getelementptr inbounds i8, ptr %.07911084, i64 8
  %355 = load i32, ptr %354, align 8, !tbaa !100
  %356 = getelementptr inbounds i8, ptr %.07911084, i64 3702
  store i8 0, ptr %356, align 2, !tbaa !118
  %357 = getelementptr inbounds i8, ptr %.07911084, i64 68
  store i32 %3, ptr %357, align 4, !tbaa !119
  %358 = getelementptr inbounds i8, ptr %.07911084, i64 3704
  store i32 %5, ptr %358, align 8, !tbaa !120
  %359 = getelementptr inbounds i8, ptr %.07911084, i64 3712
  store ptr %6, ptr %359, align 8, !tbaa !121
  %360 = getelementptr inbounds i8, ptr %.07911084, i64 3720
  store ptr %7, ptr %360, align 8, !tbaa !122
  %361 = getelementptr inbounds i8, ptr %73, i64 312
  %362 = load i8, ptr %361, align 8, !tbaa !90, !range !40, !noundef !41
  %363 = xor i8 %362, 1
  %364 = getelementptr inbounds i8, ptr %73, i64 6893
  store i8 %363, ptr %364, align 1, !tbaa !123
  %365 = getelementptr inbounds i8, ptr %73, i64 12948
  store i32 1, ptr %365, align 4, !tbaa !124
  %366 = getelementptr inbounds i8, ptr %73, i64 304
  %367 = load float, ptr %366, align 8, !tbaa !125
  %368 = load float, ptr %11, align 8, !tbaa !126
  %369 = fsub float %367, %368
  %370 = load float, ptr %95, align 4, !tbaa !127
  %371 = fsub float %369, %370
  %372 = getelementptr inbounds i8, ptr %.07911084, i64 72
  %373 = load float, ptr %372, align 8, !tbaa !102
  %374 = fadd float %371, %373
  br i1 %64, label %375, label %383

375:                                              ; preds = %353
  %376 = getelementptr inbounds i8, ptr %73, i64 308
  %377 = load float, ptr %376, align 4, !tbaa !128
  %378 = getelementptr inbounds i8, ptr %.1790, i64 220
  %379 = load float, ptr %378, align 4, !tbaa !129
  %380 = fsub float %377, %379
  %381 = load float, ptr %96, align 4, !tbaa !77
  %382 = fsub float %380, %381
  br label %387

383:                                              ; preds = %353
  %384 = getelementptr inbounds i8, ptr %73, i64 6448
  %385 = load float, ptr %384, align 8, !tbaa !43
  %386 = fmul float %385, 5.000000e-01
  br label %387

387:                                              ; preds = %383, %375
  %388 = phi float [ %382, %375 ], [ %386, %383 ]
  %389 = getelementptr inbounds i8, ptr %73, i64 201
  %390 = load i8, ptr %389, align 1, !tbaa !130, !range !40, !noundef !41
  %391 = trunc nuw i8 %390 to i1
  br i1 %.27981081, label %397, label %392

392:                                              ; preds = %387
  %.not913 = xor i1 %141, true
  %brmerge914 = select i1 %.not913, i1 true, i1 %391
  br i1 %brmerge914, label %399, label %393

393:                                              ; preds = %392
  %394 = getelementptr inbounds i8, ptr %73, i64 1069
  %395 = load i8, ptr %394, align 1, !tbaa !90, !range !40, !noundef !41
  %396 = trunc nuw i8 %395 to i1
  br i1 %396, label %397, label %399

397:                                              ; preds = %393, %387
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %398 = getelementptr inbounds i8, ptr %.07911084, i64 3701
  store i8 1, ptr %398, align 1, !tbaa !131
  br label %434

399:                                              ; preds = %392, %393
  %400 = select i1 %141, i1 %391, i1 false
  br i1 %400, label %401, label %406

401:                                              ; preds = %399
  %402 = getelementptr inbounds i8, ptr %73, i64 1069
  %403 = load i8, ptr %402, align 1, !tbaa !90, !range !40, !noundef !41
  %404 = trunc nuw i8 %403 to i1
  br i1 %404, label %405, label %406

405:                                              ; preds = %401
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef 2097164)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef 6291469)
  br label %434

406:                                              ; preds = %399, %401
  %407 = getelementptr inbounds i8, ptr %73, i64 1064
  %408 = load i8, ptr %407, align 8, !tbaa !90, !range !40, !noundef !41
  %409 = trunc nuw i8 %408 to i1
  br i1 %409, label %410, label %417

410:                                              ; preds = %406
  %411 = getelementptr inbounds i8, ptr %.07911084, i64 3701
  %412 = load i8, ptr %411, align 1, !tbaa !131, !range !40, !noundef !41
  %413 = trunc nuw i8 %412 to i1
  br i1 %413, label %417, label %414

414:                                              ; preds = %410
  br i1 %141, label %415, label %434

415:                                              ; preds = %414
  %416 = getelementptr inbounds i8, ptr %.07911084, i64 76
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.07911084, ptr noundef nonnull %416, float noundef %374, float noundef %388)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br label %434

417:                                              ; preds = %410, %406
  %418 = trunc nuw i8 %362 to i1
  br i1 %418, label %419, label %434

419:                                              ; preds = %417
  %420 = getelementptr inbounds i8, ptr %.07911084, i64 3701
  %421 = load i8, ptr %420, align 1, !tbaa !131, !range !40, !noundef !41
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %434, label %423

423:                                              ; preds = %419
  %424 = getelementptr inbounds i8, ptr %73, i64 960
  %425 = load float, ptr %424, align 8, !tbaa !132
  %426 = fcmp une float %425, 0.000000e+00
  br i1 %426, label %431, label %427

427:                                              ; preds = %423
  %428 = getelementptr inbounds i8, ptr %73, i64 964
  %429 = load float, ptr %428, align 4, !tbaa !133
  %430 = fcmp une float %429, 0.000000e+00
  br i1 %430, label %431, label %434

431:                                              ; preds = %427, %423
  %432 = getelementptr inbounds i8, ptr %.07911084, i64 76
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.07911084, ptr noundef nonnull %432, float noundef %374, float noundef %388)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %433 = getelementptr inbounds i8, ptr %.07911084, i64 3700
  store i8 1, ptr %433, align 4, !tbaa !134
  br label %434

434:                                              ; preds = %405, %417, %419, %427, %431, %414, %415, %397
  %435 = getelementptr inbounds i8, ptr %.07911084, i64 3701
  %436 = load i8, ptr %435, align 1, !tbaa !131, !range !40, !noundef !41
  %437 = trunc nuw i8 %436 to i1
  br i1 %437, label %438, label %442

438:                                              ; preds = %434
  %439 = load i8, ptr %361, align 8, !tbaa !90, !range !40, !noundef !41
  %440 = trunc nuw i8 %439 to i1
  br i1 %440, label %442, label %441

441:                                              ; preds = %438
  store i8 0, ptr %435, align 1, !tbaa !131
  br label %442

442:                                              ; preds = %441, %438, %434
  %443 = getelementptr inbounds i8, ptr %73, i64 328
  %444 = load i8, ptr %443, align 8, !tbaa !104, !range !40, !noundef !41
  %445 = trunc nuw i8 %444 to i1
  br i1 %445, label %446, label %451

446:                                              ; preds = %442
  %447 = getelementptr inbounds i8, ptr %73, i64 330
  %448 = load i8, ptr %447, align 2, !tbaa !135, !range !40, !noundef !41
  %449 = trunc nuw i8 %448 to i1
  %.not918 = xor i1 %449, true
  %450 = select i1 %449, i1 %391, i1 false
  br i1 %450, label %452, label %456

451:                                              ; preds = %442
  br i1 %391, label %452, label %456

452:                                              ; preds = %446, %451
  %453 = getelementptr inbounds i8, ptr %73, i64 331
  %454 = load i8, ptr %453, align 1, !tbaa !136, !range !40, !noundef !41
  %455 = trunc nuw i8 %454 to i1
  br label %456

456:                                              ; preds = %446, %451, %452
  %457 = phi i1 [ %.not918, %446 ], [ false, %451 ], [ %455, %452 ]
  br i1 %.not864, label %472, label %458

458:                                              ; preds = %456
  %459 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  %.not921 = xor i1 %459, true
  %brmerge922 = select i1 %.not921, i1 true, i1 %457
  br i1 %brmerge922, label %472, label %460

460:                                              ; preds = %458
  %461 = getelementptr inbounds i8, ptr %73, i64 329
  %462 = load i8, ptr %461, align 1, !tbaa !137, !range !40, !noundef !41
  %463 = trunc nuw i8 %462 to i1
  %brmerge923 = or i1 %75, %463
  br i1 %brmerge923, label %472, label %464

464:                                              ; preds = %460
  %465 = getelementptr inbounds i8, ptr %73, i64 5464
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %18) #15
  store i16 9, ptr %18, align 2, !tbaa !138
  %466 = call noundef zeroext i1 @_ZNK8ImVectorItE8containsERKt(ptr noundef nonnull align 8 dereferenceable(16) %465, ptr noundef nonnull align 2 dereferenceable(2) %18)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %18) #15
  br i1 %466, label %472, label %467

467:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #15
  store i32 9, ptr %19, align 4, !tbaa !105
  %468 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull %19, i32 noundef %5, ptr noundef %6, ptr noundef %7)
  br i1 %468, label %469, label %471

469:                                              ; preds = %467
  %470 = load i32, ptr %19, align 4, !tbaa !105
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %470)
  br label %471

471:                                              ; preds = %469, %467
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #15
  br label %472

472:                                              ; preds = %460, %458, %464, %471, %456
  %473 = getelementptr inbounds i8, ptr %73, i64 5464
  %474 = load i32, ptr %473, align 8, !tbaa !139
  %475 = icmp sgt i32 %474, 0
  br i1 %475, label %476, label %494

476:                                              ; preds = %472
  %brmerge924 = or i1 %75, %457
  %brmerge925 = select i1 %brmerge924, i1 true, i1 %180
  br i1 %brmerge925, label %.loopexit1041, label %.lr.ph

.lr.ph:                                           ; preds = %476
  %477 = getelementptr inbounds i8, ptr %73, i64 329
  br label %478

478:                                              ; preds = %.lr.ph, %490
  %.08161044 = phi i32 [ 0, %.lr.ph ], [ %491, %490 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #15
  %479 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %473, i32 noundef %.08161044)
  %480 = load i16, ptr %479, align 2, !tbaa !138
  %481 = zext i16 %480 to i32
  store i32 %481, ptr %20, align 4, !tbaa !105
  %482 = icmp eq i16 %480, 9
  br i1 %482, label %483, label %486

483:                                              ; preds = %478
  %484 = load i8, ptr %477, align 1, !tbaa !137, !range !40, !noundef !41
  %485 = trunc nuw i8 %484 to i1
  br i1 %485, label %490, label %486

486:                                              ; preds = %483, %478
  %487 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull %20, i32 noundef %5, ptr noundef %6, ptr noundef %7)
  br i1 %487, label %488, label %490

488:                                              ; preds = %486
  %489 = load i32, ptr %20, align 4, !tbaa !105
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %489)
  br label %490

490:                                              ; preds = %486, %488, %483
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #15
  %491 = add nuw nsw i32 %.08161044, 1
  %492 = load i32, ptr %473, align 8, !tbaa !139
  %493 = icmp slt i32 %491, %492
  br i1 %493, label %478, label %.loopexit1041, !llvm.loop !140

.loopexit1041:                                    ; preds = %490, %476
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %473, i32 noundef 0)
  br label %494

494:                                              ; preds = %472, %.loopexit1041, %348
  %.0807 = phi i32 [ 0, %348 ], [ %355, %.loopexit1041 ], [ %355, %472 ]
  %495 = load i32, ptr %165, align 8, !tbaa !91
  %496 = icmp eq i32 %495, %85
  br i1 %496, label %497, label %782

497:                                              ; preds = %494
  %498 = getelementptr inbounds i8, ptr %73, i64 6892
  %499 = load i8, ptr %498, align 4, !tbaa !142, !range !40, !noundef !41
  %500 = trunc nuw i8 %499 to i1
  br i1 %500, label %.thread1099, label %501

501:                                              ; preds = %497
  %502 = trunc nuw i8 %.07921010 to i1
  br i1 %502, label %.thread1099, label %503

503:                                              ; preds = %501
  br i1 %275, label %505, label %504

504:                                              ; preds = %503
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 4046, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

505:                                              ; preds = %503
  %506 = getelementptr inbounds i8, ptr %73, i64 968
  %507 = load i32, ptr %506, align 8, !tbaa !143
  %508 = call noundef i32 @_ZN5ImGui20GetMergedKeyModFlagsEv()
  %509 = icmp eq i32 %507, %508
  br i1 %509, label %511, label %510

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

511:                                              ; preds = %505
  %512 = getelementptr inbounds i8, ptr %73, i64 329
  %513 = load i8, ptr %512, align 1, !tbaa !137, !range !40, !noundef !41
  %514 = trunc nuw i8 %513 to i1
  %515 = select i1 %514, i32 4194304, i32 0
  %516 = getelementptr inbounds i8, ptr %73, i64 201
  %517 = load i8, ptr %516, align 1, !tbaa !130, !range !40, !noundef !41
  %518 = trunc nuw i8 %517 to i1
  br i1 %518, label %522, label %519

519:                                              ; preds = %511
  %520 = getelementptr inbounds i8, ptr %73, i64 330
  %521 = getelementptr inbounds i8, ptr %73, i64 328
  %.in = load i8, ptr %521, align 2, !tbaa !90, !range !40, !noundef !41
  %.pre1055 = load i32, ptr %506, align 8, !tbaa !143
  br label %536

522:                                              ; preds = %511
  %523 = load i32, ptr %506, align 8, !tbaa !143
  %524 = icmp eq i32 %523, 10
  %525 = getelementptr inbounds i8, ptr %73, i64 330
  %526 = getelementptr inbounds i8, ptr %73, i64 328
  %.in1017 = load i8, ptr %525, align 2, !tbaa !90, !range !40, !noundef !41
  %527 = getelementptr inbounds i8, ptr %73, i64 331
  %528 = load i8, ptr %527, align 1, !tbaa !136, !range !40, !noundef !41
  %529 = trunc nuw i8 %528 to i1
  br i1 %529, label %530, label %536

530:                                              ; preds = %522
  %531 = load i8, ptr %526, align 8, !tbaa !104, !range !40, !noundef !41
  %532 = trunc nuw i8 %531 to i1
  br i1 %532, label %536, label %533

533:                                              ; preds = %530
  %534 = trunc nuw i8 %.in1017 to i1
  %535 = xor i1 %534, true
  br label %536

536:                                              ; preds = %519, %533, %530, %522
  %537 = phi i32 [ %523, %530 ], [ %523, %522 ], [ %.pre1055, %519 ], [ %523, %533 ]
  %.v1036 = phi i32 [ 8, %530 ], [ 8, %522 ], [ 1, %519 ], [ 8, %533 ]
  %.in1035 = phi i8 [ %.in1017, %530 ], [ %.in1017, %522 ], [ %.in, %519 ], [ %.in1017, %533 ]
  %538 = phi ptr [ %526, %530 ], [ %526, %522 ], [ %521, %519 ], [ %526, %533 ]
  %539 = phi ptr [ %525, %530 ], [ %525, %522 ], [ %520, %519 ], [ %525, %533 ]
  %540 = phi i1 [ %524, %530 ], [ %524, %522 ], [ false, %519 ], [ %524, %533 ]
  %541 = phi i1 [ false, %530 ], [ false, %522 ], [ false, %519 ], [ %535, %533 ]
  %542 = trunc nuw i8 %.in1035 to i1
  %543 = icmp eq i32 %537, 1
  %544 = icmp eq i32 %537, 2
  %545 = icmp eq i32 %537, %.v1036
  br i1 %545, label %546, label %548

546:                                              ; preds = %536
  %547 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 19, i1 noundef zeroext true)
  br i1 %547, label %553, label %548

548:                                              ; preds = %546, %536
  br i1 %544, label %549, label %556

549:                                              ; preds = %548
  %550 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  %551 = and i1 %.not866, %550
  %552 = xor i1 %551, true
  %brmerge928 = or i1 %75, %552
  %.not934 = xor i1 %64, true
  %brmerge935 = or i1 %brmerge928, %.not934
  %not.brmerge928 = xor i1 %brmerge928, true
  br i1 %brmerge935, label %556, label %554

553:                                              ; preds = %546
  %.not866.not929 = xor i1 %.not866, true
  %brmerge930 = or i1 %75, %.not866.not929
  %.not931 = xor i1 %64, true
  %brmerge932 = or i1 %brmerge930, %.not931
  %not.brmerge930 = xor i1 %brmerge930, true
  br i1 %brmerge932, label %.thread1018, label %554

554:                                              ; preds = %549, %553
  %555 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br label %556

556:                                              ; preds = %549, %554, %548
  %557 = phi i1 [ %not.brmerge928, %549 ], [ false, %548 ], [ %555, %554 ]
  br i1 %545, label %.thread1018, label %560

.thread1018:                                      ; preds = %553, %556
  %558 = phi i1 [ %557, %556 ], [ %not.brmerge930, %553 ]
  %559 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 17, i1 noundef zeroext true)
  br i1 %559, label %564, label %560

560:                                              ; preds = %.thread1018, %556
  %561 = phi i1 [ %558, %.thread1018 ], [ %557, %556 ]
  br i1 %543, label %562, label %569

562:                                              ; preds = %560
  %563 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  %brmerge939.demorgan = and i1 %.not866, %563
  %brmerge941.not = and i1 %64, %brmerge939.demorgan
  br i1 %brmerge941.not, label %566, label %569

564:                                              ; preds = %.thread1018
  %565 = and i32 %5, 1081344
  %brmerge945.not = icmp eq i32 %565, 1048576
  br i1 %brmerge945.not, label %566, label %.thread1019

566:                                              ; preds = %564, %562
  %567 = phi i1 [ %558, %564 ], [ %561, %562 ]
  %568 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br label %569

569:                                              ; preds = %562, %566, %560
  %570 = phi i1 [ %561, %562 ], [ %561, %560 ], [ %567, %566 ]
  %571 = phi i1 [ %brmerge939.demorgan, %562 ], [ false, %560 ], [ %568, %566 ]
  br i1 %545, label %.thread1019, label %575

.thread1019:                                      ; preds = %564, %569
  %572 = phi i1 [ %571, %569 ], [ %.not866, %564 ]
  %573 = phi i1 [ %570, %569 ], [ %558, %564 ]
  %574 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 18, i1 noundef zeroext true)
  br i1 %574, label %580, label %575

575:                                              ; preds = %.thread1019, %569
  %576 = phi i1 [ %572, %.thread1019 ], [ %571, %569 ]
  %577 = phi i1 [ %573, %.thread1019 ], [ %570, %569 ]
  br i1 %544, label %578, label %584

578:                                              ; preds = %575
  %579 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 9, i1 noundef zeroext true)
  br i1 %579, label %580, label %584

580:                                              ; preds = %578, %.thread1019
  %581 = phi i1 [ %576, %578 ], [ %572, %.thread1019 ]
  %582 = phi i1 [ %577, %578 ], [ %573, %.thread1019 ]
  %583 = xor i1 %75, true
  br label %584

584:                                              ; preds = %580, %578, %575
  %585 = phi i1 [ %576, %578 ], [ %576, %575 ], [ %581, %580 ]
  %586 = phi i1 [ %577, %578 ], [ %577, %575 ], [ %582, %580 ]
  %587 = phi i1 [ false, %578 ], [ false, %575 ], [ %583, %580 ]
  br i1 %545, label %588, label %592

588:                                              ; preds = %584
  %589 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  %not.1037 = xor i1 %75, true
  %590 = and i1 %589, %not.1037
  %spec.select992 = and i1 %78, %590
  %591 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 20, i1 noundef zeroext true)
  br i1 %591, label %596, label %592

592:                                              ; preds = %584, %588
  %593 = phi i1 [ %spec.select992, %588 ], [ false, %584 ]
  br i1 %540, label %594, label %598

594:                                              ; preds = %592
  %595 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 21, i1 noundef zeroext true)
  br i1 %595, label %._crit_edge1067, label %598

._crit_edge1067:                                  ; preds = %594
  %.pre1068 = xor i1 %75, true
  br label %596

596:                                              ; preds = %._crit_edge1067, %588
  %not.1038.pre-phi = phi i1 [ %.pre1068, %._crit_edge1067 ], [ %not.1037, %588 ]
  %597 = phi i1 [ %593, %._crit_edge1067 ], [ %spec.select992, %588 ]
  %spec.select948 = and i1 %78, %not.1038.pre-phi
  br label %598

598:                                              ; preds = %596, %594, %592
  %599 = phi i1 [ %593, %594 ], [ %593, %592 ], [ %597, %596 ]
  %600 = phi i1 [ false, %594 ], [ false, %592 ], [ %spec.select948, %596 ]
  %601 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 1, i1 noundef zeroext true)
  br i1 %601, label %602, label %605

602:                                              ; preds = %598
  %603 = select i1 %542, i32 2097164, i32 2097152
  %spec.select949 = select i1 %541, i32 2097156, i32 %603
  %604 = or disjoint i32 %spec.select949, %515
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %604)
  br label %779

605:                                              ; preds = %598
  %606 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 2, i1 noundef zeroext true)
  br i1 %606, label %607, label %610

607:                                              ; preds = %605
  %608 = select i1 %542, i32 2097165, i32 2097153
  %spec.select950 = select i1 %541, i32 2097157, i32 %608
  %609 = or disjoint i32 %spec.select950, %515
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %609)
  br label %779

610:                                              ; preds = %605
  %611 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  %brmerge953.not = and i1 %64, %611
  br i1 %brmerge953.not, label %612, label %625

612:                                              ; preds = %610
  %613 = load i8, ptr %538, align 8, !tbaa !104, !range !40, !noundef !41
  %614 = trunc nuw i8 %613 to i1
  br i1 %614, label %615, label %622

615:                                              ; preds = %612
  %616 = getelementptr inbounds i8, ptr %.1790, i64 88
  %617 = load float, ptr %616, align 4, !tbaa !144
  %618 = getelementptr inbounds i8, ptr %73, i64 6448
  %619 = load float, ptr %618, align 8, !tbaa !43
  %620 = fsub float %617, %619
  %621 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %620, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.1790, float noundef %621)
  br label %779

622:                                              ; preds = %612
  %623 = select i1 %541, i32 2097158, i32 2097154
  %624 = or disjoint i32 %623, %515
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %624)
  br label %779

625:                                              ; preds = %610
  %626 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  %brmerge956.demorgan = and i1 %64, %626
  br i1 %brmerge956.demorgan, label %627, label %641

627:                                              ; preds = %625
  %628 = load i8, ptr %538, align 8, !tbaa !104, !range !40, !noundef !41
  %629 = trunc nuw i8 %628 to i1
  br i1 %629, label %630, label %638

630:                                              ; preds = %627
  %631 = getelementptr inbounds i8, ptr %.1790, i64 88
  %632 = load float, ptr %631, align 4, !tbaa !144
  %633 = getelementptr inbounds i8, ptr %73, i64 6448
  %634 = load float, ptr %633, align 8, !tbaa !43
  %635 = fadd float %632, %634
  %636 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %637 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %635, float noundef %636)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.1790, float noundef %637)
  br label %779

638:                                              ; preds = %627
  %639 = select i1 %541, i32 2097159, i32 2097155
  %640 = or disjoint i32 %639, %515
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %640)
  br label %779

641:                                              ; preds = %625
  %642 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 7, i1 noundef zeroext true)
  br i1 %642, label %643, label %647

643:                                              ; preds = %641
  %644 = load i8, ptr %538, align 8, !tbaa !104, !range !40, !noundef !41
  %645 = trunc nuw i8 %644 to i1
  %.v881 = select i1 %645, i32 2097158, i32 2097156
  %646 = or disjoint i32 %.v881, %515
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %646)
  br label %779

647:                                              ; preds = %641
  %648 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 8, i1 noundef zeroext true)
  br i1 %648, label %649, label %653

649:                                              ; preds = %647
  %650 = load i8, ptr %538, align 8, !tbaa !104, !range !40, !noundef !41
  %651 = trunc nuw i8 %650 to i1
  %.v = select i1 %651, i32 2097159, i32 2097157
  %652 = or disjoint i32 %.v, %515
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %652)
  br label %779

653:                                              ; preds = %647
  %654 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 10, i1 noundef zeroext true)
  %.not957 = xor i1 %654, true
  %brmerge958 = or i1 %75, %.not957
  br i1 %brmerge958, label %657, label %655

655:                                              ; preds = %653
  %656 = or disjoint i32 %515, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %656)
  br label %779

657:                                              ; preds = %653
  %658 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 11, i1 noundef zeroext true)
  %.not959 = xor i1 %658, true
  %brmerge960 = or i1 %75, %.not959
  br i1 %brmerge960, label %675, label %659

659:                                              ; preds = %657
  %660 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br i1 %660, label %673, label %661

661:                                              ; preds = %659
  br i1 %542, label %.sink.split, label %662

662:                                              ; preds = %661
  br i1 %518, label %663, label %673

663:                                              ; preds = %662
  %664 = getelementptr inbounds i8, ptr %73, i64 331
  %665 = load i8, ptr %664, align 1, !tbaa !136, !range !40, !noundef !41
  %666 = trunc nuw i8 %665 to i1
  br i1 %666, label %667, label %673

667:                                              ; preds = %663
  %668 = load i8, ptr %539, align 2, !tbaa !135, !range !40, !noundef !41
  %669 = trunc nuw i8 %668 to i1
  br i1 %669, label %673, label %670

670:                                              ; preds = %667
  %671 = load i8, ptr %538, align 8, !tbaa !104, !range !40, !noundef !41
  %672 = trunc nuw i8 %671 to i1
  br i1 %672, label %673, label %.sink.split

.sink.split:                                      ; preds = %670, %661
  %.sink = phi i32 [ 6291468, %661 ], [ 6291460, %670 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %.sink)
  br label %673

673:                                              ; preds = %.sink.split, %670, %667, %663, %662, %659
  %674 = or disjoint i32 %515, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %674)
  br label %779

675:                                              ; preds = %657
  %676 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 13, i1 noundef zeroext true)
  br i1 %676, label %679, label %677

677:                                              ; preds = %675
  %678 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 15, i1 noundef zeroext true)
  br i1 %678, label %679, label %690

679:                                              ; preds = %677, %675
  br i1 %64, label %680, label %779

680:                                              ; preds = %679
  %681 = and i32 %5, 2048
  %.not880 = icmp eq i32 %681, 0
  %682 = load i8, ptr %538, align 8, !tbaa !104, !range !40, !noundef !41
  %683 = trunc nuw i8 %682 to i1
  br i1 %.not880, label %.critedge962, label %684

684:                                              ; preds = %680
  %.not1031 = xor i1 %683, true
  %brmerge1032 = or i1 %75, %.not1031
  %.mux = zext i1 %.not1031 to i8
  %.mux1033 = select i1 %683, i8 %.07921010, i8 1
  br i1 %brmerge1032, label %779, label %685

.critedge962:                                     ; preds = %680
  %brmerge963 = or i1 %75, %683
  %.mux965 = select i1 %683, i8 1, i8 %.07921010
  br i1 %brmerge963, label %779, label %685

685:                                              ; preds = %684, %.critedge962
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #15
  store i32 10, ptr %21, align 4, !tbaa !105
  %686 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull %21, i32 noundef %5, ptr noundef %6, ptr noundef %7)
  br i1 %686, label %687, label %689

687:                                              ; preds = %685
  %688 = load i32, ptr %21, align 4, !tbaa !105
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %688)
  br label %689

689:                                              ; preds = %687, %685
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #15
  br label %779

690:                                              ; preds = %677
  %691 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 14, i1 noundef zeroext true)
  br i1 %691, label %779, label %692

692:                                              ; preds = %690
  %brmerge966 = or i1 %599, %600
  br i1 %brmerge966, label %693, label %694

693:                                              ; preds = %692
  %.mux967 = select i1 %599, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084, i32 noundef %.mux967)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br label %779

694:                                              ; preds = %692
  br i1 %545, label %695, label %699

695:                                              ; preds = %694
  %696 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 16, i1 noundef zeroext true)
  br i1 %696, label %697, label %699

697:                                              ; preds = %695
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %698 = getelementptr inbounds i8, ptr %.07911084, i64 3700
  store i8 1, ptr %698, align 4, !tbaa !134
  br label %779

699:                                              ; preds = %695, %694
  %brmerge968 = or i1 %585, %586
  br i1 %brmerge968, label %700, label %747

700:                                              ; preds = %699
  %701 = getelementptr inbounds i8, ptr %73, i64 264
  %702 = load ptr, ptr %701, align 8, !tbaa !145
  %.not879 = icmp eq ptr %702, null
  br i1 %.not879, label %739, label %703

703:                                              ; preds = %700
  %704 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br i1 %704, label %705, label %711

705:                                              ; preds = %703
  %706 = getelementptr inbounds i8, ptr %.07911084, i64 80
  %707 = load i32, ptr %706, align 4, !tbaa !146
  %708 = getelementptr inbounds i8, ptr %.07911084, i64 84
  %709 = load i32, ptr %708, align 4, !tbaa !147
  %710 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %707, i32 noundef %709)
  br label %711

711:                                              ; preds = %703, %705
  %712 = phi i32 [ %710, %705 ], [ 0, %703 ]
  %713 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br i1 %713, label %714, label %720

714:                                              ; preds = %711
  %715 = getelementptr inbounds i8, ptr %.07911084, i64 80
  %716 = load i32, ptr %715, align 4, !tbaa !146
  %717 = getelementptr inbounds i8, ptr %.07911084, i64 84
  %718 = load i32, ptr %717, align 4, !tbaa !147
  %719 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %716, i32 noundef %718)
  br label %723

720:                                              ; preds = %711
  %721 = getelementptr inbounds i8, ptr %.07911084, i64 4
  %722 = load i32, ptr %721, align 4, !tbaa !99
  br label %723

723:                                              ; preds = %720, %714
  %724 = phi i32 [ %719, %714 ], [ %722, %720 ]
  %725 = getelementptr inbounds i8, ptr %.07911084, i64 24
  %726 = load ptr, ptr %725, align 8, !tbaa !98
  %727 = sext i32 %712 to i64
  %728 = getelementptr inbounds i16, ptr %726, i64 %727
  %729 = sext i32 %724 to i64
  %730 = getelementptr inbounds i16, ptr %726, i64 %729
  %731 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %728, ptr noundef %730)
  %732 = add nsw i32 %731, 1
  %733 = sext i32 %732 to i64
  %734 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %733)
  %735 = load ptr, ptr %725, align 8, !tbaa !98
  %736 = getelementptr inbounds i16, ptr %735, i64 %727
  %737 = getelementptr inbounds i16, ptr %735, i64 %729
  %738 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %734, i32 noundef %732, ptr noundef %736, ptr noundef %737)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %734)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %734)
  br label %739

739:                                              ; preds = %723, %700
  br i1 %586, label %740, label %779

740:                                              ; preds = %739
  %741 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br i1 %741, label %743, label %742

742:                                              ; preds = %740
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br label %743

743:                                              ; preds = %742, %740
  %744 = getelementptr inbounds i8, ptr %.07911084, i64 3700
  store i8 1, ptr %744, align 4, !tbaa !134
  %745 = getelementptr inbounds i8, ptr %.07911084, i64 76
  %746 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.07911084, ptr noundef nonnull %745)
  br label %779

747:                                              ; preds = %699
  br i1 %587, label %748, label %779

748:                                              ; preds = %747
  %749 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not877 = icmp eq ptr %749, null
  br i1 %.not877, label %779, label %750

750:                                              ; preds = %748
  %751 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %749) #16
  %752 = shl i64 %751, 32
  %sext = add i64 %752, 4294967296
  %753 = ashr exact i64 %sext, 31
  %754 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %753)
  %755 = load i8, ptr %749, align 1, !tbaa !109
  %.not8781045 = icmp eq i8 %755, 0
  br i1 %.not8781045, label %.loopexit1039.thread, label %.lr.ph1048

.loopexit1039.thread:                             ; preds = %750
  store i16 0, ptr %754, align 2, !tbaa !138
  br label %778

.lr.ph1048:                                       ; preds = %750, %769
  %.08201047 = phi i32 [ %.1821, %769 ], [ 0, %750 ]
  %.08231046 = phi ptr [ %758, %769 ], [ %749, %750 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #15
  %756 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %22, ptr noundef nonnull %.08231046, ptr noundef null)
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds i8, ptr %.08231046, i64 %757
  %759 = load i32, ptr %22, align 4, !tbaa !105
  %760 = icmp eq i32 %759, 0
  br i1 %760, label %.thread1021, label %761

.thread1021:                                      ; preds = %.lr.ph1048
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #15
  br label %.loopexit1039

761:                                              ; preds = %.lr.ph1048
  %762 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull %22, i32 noundef %5, ptr noundef %6, ptr noundef %7)
  br i1 %762, label %763, label %769, !llvm.loop !148

763:                                              ; preds = %761
  %764 = load i32, ptr %22, align 4, !tbaa !105
  %765 = trunc i32 %764 to i16
  %766 = add nsw i32 %.08201047, 1
  %767 = sext i32 %.08201047 to i64
  %768 = getelementptr inbounds i16, ptr %754, i64 %767
  store i16 %765, ptr %768, align 2, !tbaa !138
  br label %769

769:                                              ; preds = %761, %763
  %.1821 = phi i32 [ %766, %763 ], [ %.08201047, %761 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #15
  %770 = load i8, ptr %758, align 1, !tbaa !109
  %.not878 = icmp eq i8 %770, 0
  br i1 %.not878, label %.loopexit1039, label %.lr.ph1048

.loopexit1039:                                    ; preds = %769, %.thread1021
  %.08201043 = phi i32 [ %.08201047, %.thread1021 ], [ %.1821, %769 ]
  %771 = sext i32 %.08201043 to i64
  %772 = getelementptr inbounds i16, ptr %754, i64 %771
  store i16 0, ptr %772, align 2, !tbaa !138
  %773 = icmp sgt i32 %.08201043, 0
  br i1 %773, label %774, label %778

774:                                              ; preds = %.loopexit1039
  %775 = getelementptr inbounds i8, ptr %.07911084, i64 76
  %776 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.07911084, ptr noundef nonnull %775, ptr noundef nonnull %754, i32 noundef %.08201043)
  %777 = getelementptr inbounds i8, ptr %.07911084, i64 3700
  store i8 1, ptr %777, align 4, !tbaa !134
  br label %778

778:                                              ; preds = %.loopexit1039.thread, %774, %.loopexit1039
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %754)
  br label %779

779:                                              ; preds = %684, %748, %778, %690, %689, %679, %.critedge962, %607, %638, %630, %649, %673, %697, %747, %739, %743, %693, %655, %643, %615, %622, %602
  %.0818 = phi i1 [ false, %602 ], [ false, %607 ], [ false, %615 ], [ false, %622 ], [ false, %630 ], [ false, %638 ], [ false, %643 ], [ false, %649 ], [ false, %693 ], [ false, %697 ], [ false, %743 ], [ false, %739 ], [ false, %747 ], [ false, %673 ], [ false, %655 ], [ false, %.critedge962 ], [ false, %679 ], [ false, %684 ], [ false, %689 ], [ true, %690 ], [ false, %778 ], [ false, %748 ]
  %.1805 = phi i8 [ 0, %602 ], [ 0, %607 ], [ 0, %615 ], [ 0, %622 ], [ 0, %630 ], [ 0, %638 ], [ 0, %643 ], [ 0, %649 ], [ 0, %693 ], [ 0, %697 ], [ 0, %743 ], [ 0, %739 ], [ 0, %747 ], [ 0, %673 ], [ 0, %655 ], [ %682, %.critedge962 ], [ 1, %679 ], [ %.mux, %684 ], [ 0, %689 ], [ 0, %690 ], [ 0, %778 ], [ 0, %748 ]
  %.2794 = phi i8 [ %.07921010, %602 ], [ %.07921010, %607 ], [ %.07921010, %615 ], [ %.07921010, %622 ], [ %.07921010, %630 ], [ %.07921010, %638 ], [ %.07921010, %643 ], [ %.07921010, %649 ], [ %.07921010, %693 ], [ %.07921010, %697 ], [ %.07921010, %743 ], [ %.07921010, %739 ], [ %.07921010, %747 ], [ %.07921010, %673 ], [ %.07921010, %655 ], [ %.mux965, %.critedge962 ], [ 1, %679 ], [ %.mux1033, %684 ], [ %.07921010, %689 ], [ 1, %690 ], [ %.07921010, %778 ], [ %.07921010, %748 ]
  %780 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  %781 = select i1 %780, i1 %274, i1 %.0799.in
  %.pre1056 = load i32, ptr %165, align 8, !tbaa !91
  br label %782

782:                                              ; preds = %779, %494
  %783 = phi i32 [ %.pre1056, %779 ], [ %495, %494 ]
  %.1819 = phi i1 [ %.0818, %779 ], [ false, %494 ]
  %.2806 = phi i8 [ %.1805, %779 ], [ 0, %494 ]
  %.1800.in = phi i1 [ %781, %779 ], [ %.0799.in, %494 ]
  %.3795 = phi i8 [ %.2794, %779 ], [ %.07921010, %494 ]
  %784 = icmp eq i32 %783, %85
  br i1 %784, label %.thread1099, label %985

.thread1099:                                      ; preds = %501, %497, %782
  %.37951113 = phi i8 [ %.3795, %782 ], [ %.07921010, %497 ], [ %.07921010, %501 ]
  %.1800.in1111 = phi i1 [ %.1800.in, %782 ], [ %.0799.in, %497 ], [ %.0799.in, %501 ]
  %.28061107 = phi i8 [ %.2806, %782 ], [ 0, %497 ], [ 0, %501 ]
  %.18191106 = phi i1 [ %.1819, %782 ], [ false, %497 ], [ false, %501 ]
  br i1 %275, label %786, label %785

785:                                              ; preds = %.thread1099
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 4166, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

786:                                              ; preds = %.thread1099
  %.1819.not = xor i1 %.18191106, true
  %brmerge969 = or i1 %75, %.1819.not
  br i1 %brmerge969, label %817, label %787

787:                                              ; preds = %786
  %788 = getelementptr inbounds i8, ptr %.07911084, i64 56
  %789 = load ptr, ptr %788, align 8, !tbaa !96
  %790 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %789) #16
  %.not882 = icmp eq i32 %790, 0
  br i1 %.not882, label %817, label %791

791:                                              ; preds = %787
  %792 = getelementptr inbounds i8, ptr %.07911084, i64 48
  %793 = load i32, ptr %792, align 8, !tbaa !149
  %794 = add nsw i32 %793, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #15
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23)
  %795 = icmp sgt i32 %793, 1
  br i1 %795, label %796, label %809

796:                                              ; preds = %791
  %797 = zext nneg i32 %794 to i64
  %798 = getelementptr inbounds i8, ptr %789, i64 %797
  %799 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %789, ptr noundef %798)
          to label %800 unwind label %807

800:                                              ; preds = %796
  %801 = add nsw i32 %799, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %23, i32 noundef %801)
          to label %802 unwind label %807

802:                                              ; preds = %800
  %803 = getelementptr inbounds i8, ptr %23, i64 8
  %804 = load ptr, ptr %803, align 8, !tbaa !150
  %805 = load i32, ptr %23, align 8, !tbaa !151
  %806 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %804, i32 noundef %805, ptr noundef %789, ptr noundef %798, ptr noundef null)
          to label %809 unwind label %807

807:                                              ; preds = %809, %802, %800, %796
  %808 = 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 } %808

809:                                              ; preds = %802, %791
  %810 = getelementptr inbounds i8, ptr %.07911084, i64 76
  %811 = getelementptr inbounds i8, ptr %23, i64 8
  %812 = load ptr, ptr %811, align 8, !tbaa !150
  %813 = load i32, ptr %23, align 8
  %814 = add nsw i32 %813, -1
  %815 = select i1 %795, i32 %814, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.07911084, ptr noundef nonnull %810, ptr noundef %812, i32 noundef %815)
          to label %816 unwind label %807

816:                                              ; preds = %809
  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 %817

817:                                              ; preds = %786, %787, %816
  %.0826 = phi i32 [ %794, %816 ], [ 0, %787 ], [ 0, %786 ]
  %.0824 = phi ptr [ %789, %816 ], [ null, %787 ], [ null, %786 ]
  br i1 %.18191106, label %818, label %.critedge971

818:                                              ; preds = %817
  %819 = trunc nuw i8 %.28061107 to i1
  %820 = and i32 %5, 32
  %821 = icmp ne i32 %820, 0
  %822 = and i1 %821, %819
  br i1 %822, label %.critedge971, label %957

.critedge971:                                     ; preds = %817, %818
  br i1 %75, label %836, label %823

823:                                              ; preds = %.critedge971
  %824 = getelementptr inbounds i8, ptr %.07911084, i64 64
  store i8 1, ptr %824, align 8, !tbaa !97
  %825 = getelementptr inbounds i8, ptr %.07911084, i64 32
  %826 = getelementptr inbounds i8, ptr %.07911084, i64 16
  %827 = load i32, ptr %826, align 8, !tbaa !107
  %828 = shl nsw i32 %827, 2
  %829 = or disjoint i32 %828, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %825, i32 noundef %829)
  %830 = getelementptr inbounds i8, ptr %.07911084, i64 40
  %831 = load ptr, ptr %830, align 8, !tbaa !108
  %832 = load i32, ptr %825, align 8, !tbaa !152
  %833 = getelementptr inbounds i8, ptr %.07911084, i64 24
  %834 = load ptr, ptr %833, align 8, !tbaa !98
  %835 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %831, i32 noundef %832, ptr noundef %834, ptr noundef null)
  br label %836

836:                                              ; preds = %823, %.critedge971
  %837 = and i32 %5, 524736
  %.not883 = icmp eq i32 %837, 0
  br i1 %.not883, label %949, label %838

838:                                              ; preds = %836
  br i1 %80, label %840, label %839

839:                                              ; preds = %838
  call void @__assert_fail(ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 4207, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

840:                                              ; preds = %838
  br i1 %.not863, label %843, label %841

841:                                              ; preds = %840
  %842 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 0, i1 noundef zeroext true)
  br i1 %842, label %.thread1025, label %843

843:                                              ; preds = %841, %840
  br i1 %.not861.not, label %.critedge973, label %844

844:                                              ; preds = %843
  %845 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 3, i1 noundef zeroext true)
  br i1 %845, label %.thread1025, label %846

846:                                              ; preds = %844
  %847 = call noundef zeroext i1 @_ZN5ImGui15IsKeyPressedMapEib(i32 noundef 4, i1 noundef zeroext true)
  br i1 %847, label %.thread1025, label %.critedge973

.critedge973:                                     ; preds = %843, %846
  %848 = and i32 %5, 524288
  %.not884 = icmp eq i32 %848, 0
  br i1 %.not884, label %853, label %849

849:                                              ; preds = %.critedge973
  %850 = getelementptr inbounds i8, ptr %.07911084, i64 3702
  %851 = load i8, ptr %850, align 2, !tbaa !118, !range !40, !noundef !41
  %852 = trunc nuw i8 %851 to i1
  br i1 %852, label %.thread1025, label %853

853:                                              ; preds = %.critedge973, %849
  %854 = and i32 %5, 256
  %.not885 = icmp eq i32 %854, 0
  br i1 %.not885, label %949, label %.thread1025

.thread1025:                                      ; preds = %849, %846, %844, %841, %853
  %.08291030 = phi i32 [ 256, %853 ], [ 524288, %849 ], [ 128, %846 ], [ 128, %844 ], [ 64, %841 ]
  %.08301029 = phi i32 [ 22, %853 ], [ 22, %849 ], [ 4, %846 ], [ 3, %844 ], [ 0, %841 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %24) #15
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(56) %24)
  %855 = getelementptr inbounds i8, ptr %24, i64 16
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %855, i8 0, i64 40, i1 false)
  store i32 %.08291030, ptr %24, align 8, !tbaa !153
  %856 = getelementptr inbounds i8, ptr %24, i64 4
  store i32 %5, ptr %856, align 4, !tbaa !155
  %857 = getelementptr inbounds i8, ptr %24, i64 8
  store ptr %7, ptr %857, align 8, !tbaa !156
  %858 = getelementptr inbounds i8, ptr %24, i64 20
  store i32 %.08301029, ptr %858, align 4, !tbaa !157
  %859 = getelementptr inbounds i8, ptr %.07911084, i64 40
  %860 = load ptr, ptr %859, align 8, !tbaa !108
  %861 = getelementptr inbounds i8, ptr %24, i64 24
  store ptr %860, ptr %861, align 8, !tbaa !158
  %862 = getelementptr inbounds i8, ptr %.07911084, i64 8
  %863 = load i32, ptr %862, align 8, !tbaa !100
  %864 = getelementptr inbounds i8, ptr %24, i64 32
  store i32 %863, ptr %864, align 8, !tbaa !159
  %865 = getelementptr inbounds i8, ptr %.07911084, i64 68
  %866 = load i32, ptr %865, align 4, !tbaa !119
  %867 = getelementptr inbounds i8, ptr %24, i64 36
  store i32 %866, ptr %867, align 4, !tbaa !160
  %868 = getelementptr inbounds i8, ptr %24, i64 40
  %869 = getelementptr inbounds i8, ptr %.07911084, i64 16
  %870 = getelementptr inbounds i8, ptr %.07911084, i64 24
  %871 = load ptr, ptr %870, align 8, !tbaa !98
  %872 = getelementptr inbounds i8, ptr %.07911084, i64 76
  %873 = load i32, ptr %872, align 4, !tbaa !161
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds i16, ptr %871, i64 %874
  %876 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %871, ptr noundef %875)
  %877 = getelementptr inbounds i8, ptr %24, i64 44
  store i32 %876, ptr %877, align 4, !tbaa !162
  %878 = getelementptr inbounds i8, ptr %.07911084, i64 80
  %879 = load i32, ptr %878, align 4, !tbaa !146
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds i16, ptr %871, i64 %880
  %882 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %871, ptr noundef %881)
  %883 = getelementptr inbounds i8, ptr %24, i64 48
  store i32 %882, ptr %883, align 8, !tbaa !163
  %884 = getelementptr inbounds i8, ptr %.07911084, i64 84
  %885 = load i32, ptr %884, align 4, !tbaa !147
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds i16, ptr %871, i64 %886
  %888 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %871, ptr noundef %887)
  %889 = getelementptr inbounds i8, ptr %24, i64 52
  store i32 %888, ptr %889, align 4, !tbaa !164
  %890 = call noundef i32 %6(ptr noundef nonnull %24)
  %891 = load ptr, ptr %861, align 8, !tbaa !158
  %892 = load ptr, ptr %859, align 8, !tbaa !108
  %893 = icmp eq ptr %891, %892
  br i1 %893, label %895, label %894

894:                                              ; preds = %.thread1025
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 4260, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

895:                                              ; preds = %.thread1025
  %896 = load i32, ptr %867, align 4, !tbaa !160
  %897 = load i32, ptr %865, align 4, !tbaa !119
  %898 = icmp eq i32 %896, %897
  br i1 %898, label %900, label %899

899:                                              ; preds = %895
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 4261, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

900:                                              ; preds = %895
  %901 = load i32, ptr %856, align 4, !tbaa !155
  %902 = icmp eq i32 %901, %5
  br i1 %902, label %904, label %903

903:                                              ; preds = %900
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 4262, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

904:                                              ; preds = %900
  %905 = load i32, ptr %877, align 4, !tbaa !162
  %.not887 = icmp eq i32 %905, %876
  br i1 %.not887, label %911, label %906

906:                                              ; preds = %904
  %907 = sext i32 %905 to i64
  %908 = getelementptr inbounds i8, ptr %891, i64 %907
  %909 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %891, ptr noundef %908)
  store i32 %909, ptr %872, align 4, !tbaa !161
  %910 = getelementptr inbounds i8, ptr %.07911084, i64 3700
  store i8 1, ptr %910, align 4, !tbaa !134
  br label %911

911:                                              ; preds = %906, %904
  %912 = load i32, ptr %883, align 8, !tbaa !163
  %.not888 = icmp eq i32 %912, %882
  br i1 %.not888, label %918, label %913

913:                                              ; preds = %911
  %914 = load ptr, ptr %861, align 8, !tbaa !158
  %915 = sext i32 %912 to i64
  %916 = getelementptr inbounds i8, ptr %914, i64 %915
  %917 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %914, ptr noundef %916)
  store i32 %917, ptr %878, align 4, !tbaa !146
  br label %918

918:                                              ; preds = %913, %911
  %919 = load i32, ptr %889, align 4, !tbaa !164
  %.not889 = icmp eq i32 %919, %888
  br i1 %.not889, label %925, label %920

920:                                              ; preds = %918
  %921 = load ptr, ptr %861, align 8, !tbaa !158
  %922 = sext i32 %919 to i64
  %923 = getelementptr inbounds i8, ptr %921, i64 %922
  %924 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %921, ptr noundef %923)
  store i32 %924, ptr %884, align 4, !tbaa !147
  br label %925

925:                                              ; preds = %920, %918
  %926 = load i8, ptr %868, align 8, !tbaa !165, !range !40, !noundef !41
  %927 = trunc nuw i8 %926 to i1
  br i1 %927, label %928, label %948

928:                                              ; preds = %925
  %929 = load i32, ptr %864, align 8, !tbaa !159
  %930 = load ptr, ptr %861, align 8, !tbaa !158
  %931 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %930) #16
  %932 = trunc i64 %931 to i32
  %933 = icmp eq i32 %929, %932
  br i1 %933, label %935, label %934

934:                                              ; preds = %928
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 4268, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

935:                                              ; preds = %928
  %936 = icmp sle i32 %929, %.0807
  %brmerge977 = or i1 %.not867, %936
  br i1 %brmerge977, label %941, label %937

937:                                              ; preds = %935
  %938 = load i32, ptr %869, align 8, !tbaa !107
  %939 = sub i32 %929, %.0807
  %940 = add nsw i32 %939, %938
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %869, i32 noundef %940)
  %.pre1057 = load ptr, ptr %861, align 8, !tbaa !158
  br label %941

941:                                              ; preds = %935, %937
  %942 = phi ptr [ %930, %935 ], [ %.pre1057, %937 ]
  %943 = load ptr, ptr %870, align 8, !tbaa !98
  %944 = load i32, ptr %869, align 8, !tbaa !107
  %945 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %943, i32 noundef %944, ptr noundef %942, ptr noundef null, ptr noundef null)
  %946 = getelementptr inbounds i8, ptr %.07911084, i64 4
  store i32 %945, ptr %946, align 4, !tbaa !99
  %947 = load i32, ptr %864, align 8, !tbaa !159
  store i32 %947, ptr %862, align 8, !tbaa !100
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728) %.07911084)
  br label %948

948:                                              ; preds = %941, %925
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %24) #15
  br label %949

949:                                              ; preds = %853, %948, %836
  br i1 %75, label %957, label %950

950:                                              ; preds = %949
  %951 = getelementptr inbounds i8, ptr %.07911084, i64 40
  %952 = load ptr, ptr %951, align 8, !tbaa !108
  %953 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %952, ptr noundef nonnull dereferenceable(1) %2) #16
  %.not890 = icmp eq i32 %953, 0
  br i1 %.not890, label %957, label %954

954:                                              ; preds = %950
  %955 = getelementptr inbounds i8, ptr %.07911084, i64 8
  %956 = load i32, ptr %955, align 8, !tbaa !100
  br label %957

957:                                              ; preds = %949, %950, %954, %818
  %.1827 = phi i32 [ %.0826, %949 ], [ %956, %954 ], [ %.0826, %950 ], [ %.0826, %818 ]
  %.1825 = phi ptr [ %.0824, %949 ], [ %952, %954 ], [ %.0824, %950 ], [ %.0824, %818 ]
  %.not891 = icmp ne ptr %.1825, null
  br i1 %.not891, label %958, label %982

958:                                              ; preds = %957
  %959 = icmp sgt i32 %.1827, -1
  br i1 %959, label %961, label %960

960:                                              ; preds = %958
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 4292, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

961:                                              ; preds = %958
  br i1 %.not867, label %978, label %962

962:                                              ; preds = %961
  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 !153
  %963 = getelementptr inbounds i8, ptr %25, i64 4
  store i32 %5, ptr %963, align 4, !tbaa !155
  %964 = getelementptr inbounds i8, ptr %25, i64 24
  store ptr %2, ptr %964, align 8, !tbaa !158
  %965 = getelementptr inbounds i8, ptr %25, i64 32
  store i32 %.1827, ptr %965, align 8, !tbaa !159
  %966 = add nuw nsw i32 %.1827, 1
  %967 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %966)
  %968 = getelementptr inbounds i8, ptr %25, i64 36
  store i32 %967, ptr %968, align 4, !tbaa !160
  %969 = getelementptr inbounds i8, ptr %25, i64 8
  store ptr %7, ptr %969, align 8, !tbaa !156
  %970 = call noundef i32 %6(ptr noundef nonnull %25)
  %971 = load ptr, ptr %964, align 8, !tbaa !158
  %972 = load i32, ptr %968, align 4, !tbaa !160
  %973 = load i32, ptr %965, align 8, !tbaa !159
  %974 = add nsw i32 %972, -1
  %975 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %973, i32 noundef %974)
  %.not892 = icmp sgt i32 %975, %972
  br i1 %.not892, label %976, label %977

976:                                              ; preds = %962
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 4306, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

977:                                              ; preds = %962
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %25) #15
  br label %978

978:                                              ; preds = %977, %961
  %.2828 = phi i32 [ %975, %977 ], [ %.1827, %961 ]
  %.0786 = phi i32 [ %972, %977 ], [ %3, %961 ]
  %.0783 = phi ptr [ %971, %977 ], [ %2, %961 ]
  %979 = add nsw i32 %.2828, 1
  %980 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %979, i32 noundef %.0786)
  %981 = sext i32 %980 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0783, ptr noundef nonnull %.1825, i64 noundef %981)
  br label %982

982:                                              ; preds = %978, %957
  %.1784 = phi ptr [ %.0783, %978 ], [ %2, %957 ]
  %983 = getelementptr inbounds i8, ptr %.07911084, i64 3704
  store i32 0, ptr %983, align 8, !tbaa !120
  %984 = getelementptr inbounds i8, ptr %.07911084, i64 3712
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %984, i8 0, i64 16, i1 false)
  br label %985

985:                                              ; preds = %982, %782
  %.37951112 = phi i8 [ %.37951113, %982 ], [ %.3795, %782 ]
  %.1800.in1110 = phi i1 [ %.1800.in1111, %982 ], [ %.1800.in, %782 ]
  %.28061108 = phi i8 [ %.28061107, %982 ], [ %.2806, %782 ]
  %.1803 = phi i1 [ %.not891, %982 ], [ false, %782 ]
  %.2785 = phi ptr [ %.1784, %982 ], [ %2, %782 ]
  %986 = trunc nuw i8 %.37951112 to i1
  br i1 %986, label %987, label %991

987:                                              ; preds = %985
  %988 = load i32, ptr %165, align 8, !tbaa !91
  %989 = icmp eq i32 %988, %85
  br i1 %989, label %990, label %991

990:                                              ; preds = %987
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %991

991:                                              ; preds = %990, %987, %985
  br i1 %64, label %997, label %992

992:                                              ; preds = %991
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %85, i32 noundef 1)
  %.sroa.094.0.copyload = load <2 x float>, ptr %11, align 8
  %993 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.093.0.copyload = load <2 x float>, ptr %993, align 8
  %994 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %995 = getelementptr inbounds i8, ptr %73, i64 5544
  %996 = load float, ptr %995, align 4, !tbaa !80
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.094.0.copyload, <2 x float> %.sroa.093.0.copyload, i32 noundef %994, i1 noundef zeroext true, float noundef %996)
  br label %997

997:                                              ; preds = %992, %991
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #15
  %998 = load float, ptr %11, align 8, !tbaa !126
  %999 = getelementptr inbounds i8, ptr %11, i64 4
  %1000 = load float, ptr %999, align 4, !tbaa !166
  %1001 = fadd float %.sroa.0441.1, %998
  %1002 = fadd float %.sroa.12.0.copyload, %1000
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %26, float noundef %998, float noundef %1000, float noundef %1001, float noundef %1002)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #15
  br i1 %64, label %1003, label %1006

1003:                                             ; preds = %997
  %1004 = getelementptr inbounds i8, ptr %.1790, i64 216
  %1005 = load i64, ptr %1004, align 8
  br label %1009

1006:                                             ; preds = %997
  %1007 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %95)
  %1008 = bitcast <2 x float> %1007 to i64
  br label %1009

1009:                                             ; preds = %1006, %1003
  %storemerge893 = phi i64 [ %1005, %1003 ], [ %1008, %1006 ]
  store i64 %storemerge893, 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 %304, label %1010, label %1013

1010:                                             ; preds = %1009
  %1011 = getelementptr inbounds i8, ptr %.07911084, i64 40
  %1012 = load ptr, ptr %1011, align 8, !tbaa !108
  br label %1013

1013:                                             ; preds = %1009, %1010
  %1014 = phi ptr [ %1012, %1010 ], [ %.2785, %1009 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #15
  store ptr null, ptr %29, align 8, !tbaa !42
  br i1 %314, label %1015, label %1018

1015:                                             ; preds = %1013
  %1016 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #16
  %1017 = getelementptr inbounds i8, ptr %1, i64 %1016
  store ptr %1017, ptr %29, align 8, !tbaa !42
  br label %1018

1018:                                             ; preds = %1015, %1013
  %1019 = phi ptr [ %1017, %1015 ], [ null, %1013 ]
  %.0817 = phi ptr [ %1, %1015 ], [ %1014, %1013 ]
  %brmerge978 = select i1 %274, i1 true, i1 %.1800.in1110
  br i1 %brmerge978, label %1020, label %1273

1020:                                             ; preds = %1018
  br i1 %275, label %1022, label %1021

1021:                                             ; preds = %1020
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 4352, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #14
  unreachable

1022:                                             ; preds = %1020
  br i1 %314, label %1028, label %1023

1023:                                             ; preds = %1022
  %1024 = getelementptr inbounds i8, ptr %.07911084, i64 8
  %1025 = load i32, ptr %1024, align 8, !tbaa !100
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds i8, ptr %.0817, i64 %1026
  store ptr %1027, ptr %29, align 8, !tbaa !42
  br label %1028

1028:                                             ; preds = %1023, %1022
  %.pre10621064 = phi ptr [ %1027, %1023 ], [ %1019, %1022 ]
  %1029 = getelementptr inbounds i8, ptr %.07911084, i64 24
  %1030 = load ptr, ptr %1029, align 8, !tbaa !98
  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.065.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 %274, label %1031, label %1036

1031:                                             ; preds = %1028
  %1032 = getelementptr inbounds i8, ptr %.07911084, i64 76
  %1033 = load i32, ptr %1032, align 4, !tbaa !161
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds i16, ptr %1030, i64 %1034
  br label %1036

1036:                                             ; preds = %1031, %1028
  %.sroa.071.0 = phi ptr [ %1035, %1031 ], [ null, %1028 ]
  %.sroa.065.0 = phi i32 [ -1, %1031 ], [ %.sroa.065.0.copyload, %1028 ]
  %.0812 = phi i32 [ 1, %1031 ], [ 0, %1028 ]
  br i1 %.1800.in1110, label %1037, label %1046

1037:                                             ; preds = %1036
  %1038 = getelementptr inbounds i8, ptr %.07911084, i64 80
  %1039 = load i32, ptr %1038, align 4, !tbaa !146
  %1040 = getelementptr inbounds i8, ptr %.07911084, i64 84
  %1041 = load i32, ptr %1040, align 4, !tbaa !147
  %1042 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1039, i32 noundef %1041)
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds i16, ptr %1030, i64 %1043
  %1045 = add nuw nsw i32 %.0812, 1
  br label %1046

1046:                                             ; preds = %1037, %1036
  %.sroa.7.0 = phi ptr [ %1044, %1037 ], [ null, %1036 ]
  %.sroa.9.0 = phi i32 [ -1, %1037 ], [ %.sroa.9.0.copyload, %1036 ]
  %.1813 = phi i32 [ %1045, %1037 ], [ %.0812, %1036 ]
  %.lobit = lshr exact i32 %63, 20
  %1047 = add nuw nsw i32 %.1813, %.lobit
  br label %1048

1048:                                             ; preds = %1063, %1046
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1046 ], [ %.sroa.9.2, %1063 ]
  %.sroa.065.1 = phi i32 [ %.sroa.065.0, %1046 ], [ %.sroa.065.3, %1063 ]
  %.2814 = phi i32 [ %1047, %1046 ], [ %.4, %1063 ]
  %.0809 = phi i32 [ 0, %1046 ], [ %.1810, %1063 ]
  %.0808 = phi ptr [ %1030, %1046 ], [ %1064, %1063 ]
  %1049 = load i16, ptr %.0808, align 2, !tbaa !138
  switch i16 %1049, label %1063 [
    i16 0, label %1065
    i16 10, label %1050
  ]

1050:                                             ; preds = %1048
  %1051 = add nsw i32 %.0809, 1
  %1052 = icmp eq i32 %.sroa.065.1, -1
  br i1 %1052, label %1053, label %1057

1053:                                             ; preds = %1050
  %.not895 = icmp ult ptr %.0808, %.sroa.071.0
  br i1 %.not895, label %1057, label %1054

1054:                                             ; preds = %1053
  %1055 = add nsw i32 %.2814, -1
  %1056 = icmp slt i32 %.2814, 2
  br i1 %1056, label %1065, label %1057

1057:                                             ; preds = %1054, %1053, %1050
  %.sroa.065.2 = phi i32 [ %1051, %1054 ], [ -1, %1053 ], [ %.sroa.065.1, %1050 ]
  %.3815 = phi i32 [ %1055, %1054 ], [ %.2814, %1053 ], [ %.2814, %1050 ]
  %1058 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1058, label %1059, label %1063

1059:                                             ; preds = %1057
  %.not896 = icmp ult ptr %.0808, %.sroa.7.0
  br i1 %.not896, label %1063, label %1060

1060:                                             ; preds = %1059
  %1061 = add nsw i32 %.3815, -1
  %1062 = icmp slt i32 %.3815, 2
  br i1 %1062, label %1065, label %1063

1063:                                             ; preds = %1048, %1060, %1059, %1057
  %.sroa.9.2 = phi i32 [ %1051, %1060 ], [ -1, %1059 ], [ %.sroa.9.1, %1057 ], [ %.sroa.9.1, %1048 ]
  %.sroa.065.3 = phi i32 [ %.sroa.065.2, %1060 ], [ %.sroa.065.2, %1059 ], [ %.sroa.065.2, %1057 ], [ %.sroa.065.1, %1048 ]
  %.4 = phi i32 [ %1061, %1060 ], [ %.3815, %1059 ], [ %.3815, %1057 ], [ %.2814, %1048 ]
  %.1810 = phi i32 [ %1051, %1060 ], [ %1051, %1059 ], [ %1051, %1057 ], [ %.0809, %1048 ]
  %1064 = getelementptr inbounds i8, ptr %.0808, i64 2
  br label %1048, !llvm.loop !167

1065:                                             ; preds = %1060, %1054, %1048
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1048 ], [ %.sroa.9.1, %1054 ], [ %1051, %1060 ]
  %.sroa.065.4 = phi i32 [ %.sroa.065.1, %1048 ], [ %1051, %1054 ], [ %.sroa.065.2, %1060 ]
  %.2811 = phi i32 [ %.0809, %1048 ], [ %1051, %1054 ], [ %1051, %1060 ]
  %1066 = add nsw i32 %.2811, 1
  %1067 = icmp eq i32 %.sroa.065.4, -1
  %spec.select979 = select i1 %1067, i32 %1066, i32 %.sroa.065.4
  %1068 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1068, i32 %1066, i32 %.sroa.9.3
  %1069 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.071.0, ptr noundef %1030)
  %1070 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %1069, ptr noundef %.sroa.071.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.047.0.vec.extract = extractelement <2 x float> %1070, i64 0
  store float %.sroa.047.0.vec.extract, ptr %30, align 4, !tbaa !168
  %1071 = sitofp i32 %spec.select979 to float
  %1072 = getelementptr inbounds i8, ptr %73, i64 6448
  %1073 = load float, ptr %1072, align 8, !tbaa !43
  %1074 = fmul float %1073, %1071
  %1075 = getelementptr inbounds i8, ptr %30, i64 4
  store float %1074, ptr %1075, align 4, !tbaa !169
  %1076 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1076, label %1077, label %1084

1077:                                             ; preds = %1065
  %1078 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1030)
  %1079 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %1078, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.046.0.vec.extract = extractelement <2 x float> %1079, i64 0
  store float %.sroa.046.0.vec.extract, ptr %31, align 4, !tbaa !168
  %1080 = uitofp nneg i32 %.sroa.9.4 to float
  %1081 = load float, ptr %1072, align 8, !tbaa !43
  %1082 = fmul float %1081, %1080
  %1083 = getelementptr inbounds i8, ptr %31, i64 4
  store float %1082, ptr %1083, align 4, !tbaa !169
  br label %1084

1084:                                             ; preds = %1077, %1065
  %1085 = phi float [ %1081, %1077 ], [ %1073, %1065 ]
  br i1 %64, label %1086, label %1090

1086:                                             ; preds = %1084
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #15
  %1087 = sitofp i32 %1066 to float
  %1088 = fmul float %1085, %1087
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef %.sroa.0441.1, float noundef %1088)
  %1089 = load i64, ptr %32, align 8
  store i64 %1089, ptr %28, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #15
  br label %1090

1090:                                             ; preds = %1086, %1084
  br i1 %274, label %1091, label %1147

1091:                                             ; preds = %1090
  %1092 = getelementptr inbounds i8, ptr %.07911084, i64 3700
  %1093 = load i8, ptr %1092, align 4, !tbaa !134, !range !40, !noundef !41
  %1094 = trunc nuw i8 %1093 to i1
  br i1 %1094, label %1095, label %1147

1095:                                             ; preds = %1091
  %1096 = and i32 %5, 4096
  %.not897 = icmp eq i32 %1096, 0
  br i1 %.not897, label %1097, label %1115

1097:                                             ; preds = %1095
  %1098 = fmul float %.sroa.0441.1, 2.500000e-01
  %1099 = load float, ptr %30, align 4, !tbaa !168
  %1100 = getelementptr inbounds i8, ptr %.07911084, i64 72
  %1101 = load float, ptr %1100, align 8, !tbaa !102
  %1102 = fcmp olt float %1099, %1101
  br i1 %1102, label %1103, label %1108

1103:                                             ; preds = %1097
  %1104 = fsub float %1099, %1098
  %1105 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1104)
  %1106 = fptosi float %1105 to i32
  %1107 = sitofp i32 %1106 to float
  store float %1107, ptr %1100, align 8, !tbaa !102
  br label %1117

1108:                                             ; preds = %1097
  %1109 = fsub float %1099, %.sroa.0441.1
  %1110 = fcmp ult float %1109, %1101
  br i1 %1110, label %1117, label %1111

1111:                                             ; preds = %1108
  %1112 = fadd float %1098, %1109
  %1113 = fptosi float %1112 to i32
  %1114 = sitofp i32 %1113 to float
  store float %1114, ptr %1100, align 8, !tbaa !102
  br label %1117

1115:                                             ; preds = %1095
  %1116 = getelementptr inbounds i8, ptr %.07911084, i64 72
  store float 0.000000e+00, ptr %1116, align 8, !tbaa !102
  br label %1117

1117:                                             ; preds = %1103, %1111, %1108, %1115
  br i1 %64, label %1118, label %1146

1118:                                             ; preds = %1117
  %1119 = getelementptr inbounds i8, ptr %.1790, i64 88
  %1120 = load float, ptr %1119, align 4, !tbaa !144
  %1121 = getelementptr inbounds i8, ptr %28, i64 4
  %1122 = load float, ptr %1121, align 4, !tbaa !169
  %1123 = load float, ptr %96, align 4, !tbaa !77
  %1124 = call float @llvm.fmuladd.f32(float %1123, float 2.000000e+00, float %1122)
  %1125 = fsub float %1124, %.sroa.12.0.copyload
  %1126 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1125, float noundef 0.000000e+00)
  %1127 = load float, ptr %1075, align 4, !tbaa !169
  %1128 = load float, ptr %1072, align 8, !tbaa !43
  %1129 = fsub float %1127, %1128
  %1130 = fcmp olt float %1129, %1120
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1118
  %1132 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1129)
  br label %1139

1133:                                             ; preds = %1118
  %1134 = fsub float %1127, %.sroa.12.0.copyload
  %1135 = fcmp ult float %1134, %1120
  br i1 %1135, label %1139, label %1136

1136:                                             ; preds = %1133
  %1137 = load float, ptr %96, align 4, !tbaa !77
  %1138 = call float @llvm.fmuladd.f32(float %1137, float 2.000000e+00, float %1134)
  br label %1139

1139:                                             ; preds = %1133, %1136, %1131
  %.0801 = phi float [ %1132, %1131 ], [ %1138, %1136 ], [ %1120, %1133 ]
  %1140 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.0801, float noundef 0.000000e+00, float noundef %1126)
  %1141 = load float, ptr %1119, align 4, !tbaa !144
  %1142 = fsub float %1141, %1140
  %1143 = getelementptr inbounds i8, ptr %27, i64 4
  %1144 = load float, ptr %1143, align 4, !tbaa !169
  %1145 = fadd float %1144, %1142
  store float %1145, ptr %1143, align 4, !tbaa !169
  store float %1140, ptr %1119, align 4, !tbaa !144
  br label %1146

1146:                                             ; preds = %1139, %1117
  store i8 0, ptr %1092, align 4, !tbaa !134
  br label %1147

1147:                                             ; preds = %1146, %1091, %1090
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #15
  %1148 = getelementptr inbounds i8, ptr %.07911084, i64 72
  %1149 = load float, ptr %1148, align 8, !tbaa !102
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %1149, float noundef 0.000000e+00)
  br i1 %.1800.in1110, label %1150, label %1219

1150:                                             ; preds = %1147
  %1151 = getelementptr inbounds i8, ptr %.07911084, i64 80
  %1152 = load i32, ptr %1151, align 4, !tbaa !146
  %1153 = getelementptr inbounds i8, ptr %.07911084, i64 84
  %1154 = load i32, ptr %1153, align 4, !tbaa !147
  %1155 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1152, i32 noundef %1154)
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds i16, ptr %1030, i64 %1156
  %1158 = load i32, ptr %1151, align 4, !tbaa !146
  %1159 = load i32, ptr %1153, align 4, !tbaa !147
  %1160 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1158, i32 noundef %1159)
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds i16, ptr %1030, i64 %1161
  %1163 = select i1 %274, float 1.000000e+00, float 0x3FE3333340000000
  %1164 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 42, float noundef %1163)
  %1165 = select i1 %64, float 0.000000e+00, float -1.000000e+00
  %1166 = select i1 %64, 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
  %1167 = 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> %1167, ptr %35, align 8
  %1168 = 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> %1168, 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 %1157, ptr %36, align 8, !tbaa !42
  %1169 = getelementptr inbounds i8, ptr %34, i64 4
  %1170 = icmp slt i32 %1155, %1160
  br i1 %1170, label %.lr.ph1049, label %._crit_edge

.lr.ph1049:                                       ; preds = %1150
  %1171 = extractelement <2 x float> %1168, i64 1
  %1172 = getelementptr inbounds i8, ptr %26, i64 12
  %1173 = getelementptr inbounds i8, ptr %26, i64 4
  %1174 = getelementptr inbounds i8, ptr %73, i64 6440
  %1175 = getelementptr inbounds i8, ptr %.1790, i64 720
  %1176 = getelementptr inbounds i8, ptr %37, i64 8
  %.pre1058 = load float, ptr %1072, align 8, !tbaa !43
  br label %1177

1177:                                             ; preds = %.lr.ph1049, %.loopexit
  %1178 = phi ptr [ %1157, %.lr.ph1049 ], [ %1211, %.loopexit ]
  %1179 = phi float [ %1171, %.lr.ph1049 ], [ %1217, %.loopexit ]
  %1180 = phi float [ %.pre1058, %.lr.ph1049 ], [ %1213, %.loopexit ]
  %1181 = load float, ptr %1172, align 4, !tbaa !170
  %1182 = fadd float %1181, %1180
  %1183 = fcmp ogt float %1179, %1182
  br i1 %1183, label %._crit_edge.loopexit, label %1184

1184:                                             ; preds = %1177
  %1185 = load float, ptr %1173, align 4, !tbaa !171
  %1186 = fcmp olt float %1179, %1185
  br i1 %1186, label %.preheader, label %1193

.preheader:                                       ; preds = %1184, %1189
  %1187 = phi ptr [ %1190, %1189 ], [ %1178, %1184 ]
  %1188 = icmp ult ptr %1187, %1162
  br i1 %1188, label %1189, label %.loopexit

1189:                                             ; preds = %.preheader
  %1190 = getelementptr inbounds i8, ptr %1187, i64 2
  store ptr %1190, ptr %36, align 8, !tbaa !42
  %1191 = load i16, ptr %1187, align 2, !tbaa !138
  %1192 = icmp eq i16 %1191, 10
  br i1 %1192, label %.loopexit, label %.preheader, !llvm.loop !172

1193:                                             ; preds = %1184
  %1194 = call <2 x float> @_ZL22InputTextCalcTextSizeWPKtS0_PS0_P6ImVec2b(ptr noundef %1178, ptr noundef nonnull %1162, ptr noundef nonnull %36, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1194, i64 0
  %1195 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1195, label %1202, label %1196

1196:                                             ; preds = %1193
  %1197 = load ptr, ptr %1174, align 8, !tbaa !110
  %1198 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(114) %1197, i16 noundef zeroext 32)
  %1199 = fmul float %1198, 5.000000e-01
  %1200 = fptosi float %1199 to i32
  %1201 = sitofp i32 %1200 to float
  br label %1202

1202:                                             ; preds = %1196, %1193
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1201, %1196 ], [ %.sroa.028.0.vec.extract, %1193 ]
  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
  %1203 = load float, ptr %1072, align 8, !tbaa !43
  %1204 = fsub float %1165, %1203
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 0.000000e+00, float noundef %1204)
  %1205 = 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> %1205, 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 %1166)
  %1206 = 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> %1206, 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)
  %1207 = 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 %1207, label %1208, label %1210

1208:                                             ; preds = %1202
  %1209 = load ptr, ptr %1175, align 8, !tbaa !173
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(224) %1209, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %1176, i32 noundef %1164, float noundef 0.000000e+00, i32 noundef 15)
  br label %1210

1210:                                             ; preds = %1208, %1202
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #15
  %.pre1059 = load float, ptr %1072, align 8, !tbaa !43
  %.pre1060 = load float, ptr %1169, align 4, !tbaa !169
  %.pre1061 = load ptr, ptr %36, align 8, !tbaa !42
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1189, %1210
  %1211 = phi ptr [ %.pre1061, %1210 ], [ %1187, %.preheader ], [ %1190, %1189 ]
  %1212 = phi float [ %.pre1060, %1210 ], [ %1179, %1189 ], [ %1179, %.preheader ]
  %1213 = phi float [ %.pre1059, %1210 ], [ %1180, %1189 ], [ %1180, %.preheader ]
  %1214 = load float, ptr %27, align 8, !tbaa !168
  %1215 = load float, ptr %33, align 4, !tbaa !168
  %1216 = fsub float %1214, %1215
  store float %1216, ptr %34, align 8, !tbaa !168
  %1217 = fadd float %1213, %1212
  store float %1217, ptr %1169, align 4, !tbaa !169
  %1218 = icmp ult ptr %1211, %1162
  br i1 %1218, label %1177, label %._crit_edge.loopexit, !llvm.loop !174

._crit_edge.loopexit:                             ; preds = %1177, %.loopexit
  %.pre1062.pre.pre = load ptr, ptr %29, align 8, !tbaa !42
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %1150
  %.pre1062.pre = phi ptr [ %.pre1062.pre.pre, %._crit_edge.loopexit ], [ %.pre10621064, %1150 ]
  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 %1219

1219:                                             ; preds = %._crit_edge, %1147
  %.pre1062 = phi ptr [ %.pre1062.pre, %._crit_edge ], [ %.pre10621064, %1147 ]
  br i1 %64, label %1225, label %1220

1220:                                             ; preds = %1219
  %1221 = ptrtoint ptr %.pre1062 to i64
  %1222 = ptrtoint ptr %.0817 to i64
  %1223 = sub i64 %1221, %1222
  %1224 = icmp slt i64 %1223, 2097152
  br i1 %1224, label %1225, label %1234

1225:                                             ; preds = %1220, %1219
  %. = phi ptr [ %26, %1220 ], [ null, %1219 ]
  %1226 = zext i1 %314 to i32
  %1227 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1226, float noundef 1.000000e+00)
  %1228 = getelementptr inbounds i8, ptr %.1790, i64 720
  %1229 = load ptr, ptr %1228, align 8, !tbaa !173
  %1230 = getelementptr inbounds i8, ptr %73, i64 6440
  %1231 = load ptr, ptr %1230, align 8, !tbaa !110
  %1232 = load float, ptr %1072, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #15
  %1233 = 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> %1233, ptr %44, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(224) %1229, ptr noundef %1231, float noundef %1232, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef %1227, ptr noundef %.0817, ptr noundef %.pre1062, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #15
  br label %1234

1234:                                             ; preds = %1225, %1220
  br i1 %274, label %1235, label %1272

1235:                                             ; preds = %1234
  %1236 = getelementptr inbounds i8, ptr %73, i64 24
  %1237 = load float, ptr %1236, align 8, !tbaa !175
  %1238 = getelementptr inbounds i8, ptr %.07911084, i64 3696
  %1239 = load float, ptr %1238, align 8, !tbaa !176
  %1240 = fadd float %1237, %1239
  store float %1240, ptr %1238, align 8, !tbaa !176
  %1241 = getelementptr inbounds i8, ptr %73, i64 202
  %1242 = load i8, ptr %1241, align 2, !tbaa !177, !range !40, !noundef !41
  %1243 = trunc nuw i8 %1242 to i1
  %1244 = fcmp ugt float %1240, 0.000000e+00
  %or.cond980 = select i1 %1243, i1 %1244, i1 false
  br i1 %or.cond980, label %1245, label %1248

1245:                                             ; preds = %1235
  %1246 = call float @fmodf(float noundef %1240, float noundef 0x3FF3333340000000) #15
  %1247 = fcmp ole float %1246, 0x3FE99999A0000000
  br label %1248

1248:                                             ; preds = %1245, %1235
  %1249 = phi i1 [ true, %1235 ], [ %1247, %1245 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #15
  %1250 = 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> %1250, ptr %45, align 8
  %1251 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #15
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #15
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1251, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1251, i64 1
  %1252 = load float, ptr %1072, align 8, !tbaa !43
  %1253 = fsub float %.sroa.0.4.vec.extract, %1252
  %1254 = fadd float %1253, 5.000000e-01
  %1255 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1256 = fadd float %.sroa.0.4.vec.extract, -1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %46, float noundef %.sroa.0.0.vec.extract, float noundef %1254, float noundef %1255, float noundef %1256)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #15
  br i1 %1249, label %1257, label %.critedge13

1257:                                             ; preds = %1248
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %47, ptr noundef nonnull align 4 dereferenceable(16) %26)
  %1258 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %46, ptr noundef nonnull align 4 dereferenceable(16) %47)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #15
  br i1 %1258, label %1259, label %1264

1259:                                             ; preds = %1257
  %1260 = getelementptr inbounds i8, ptr %.1790, i64 720
  %1261 = load ptr, ptr %1260, align 8, !tbaa !173
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #15
  %1262 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %46)
  store <2 x float> %1262, ptr %48, align 8
  %1263 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(224) %1261, ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %48, i32 noundef %1263, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #15
  br label %1264

.critedge13:                                      ; preds = %1248
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #15
  br label %1264

1264:                                             ; preds = %.critedge13, %1259, %1257
  br i1 %75, label %1271, label %1265

1265:                                             ; preds = %1264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #15
  %1266 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1267 = load float, ptr %1072, align 8, !tbaa !43
  %1268 = fsub float %.sroa.0.4.vec.extract, %1267
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %49, float noundef %1266, float noundef %1268)
  %1269 = getelementptr inbounds i8, ptr %73, i64 12320
  %1270 = load i64, ptr %49, align 8
  store i64 %1270, ptr %1269, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #15
  br label %1271

1271:                                             ; preds = %1265, %1264
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #15
  br label %1272

1272:                                             ; preds = %1271, %1234
  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 %1308

1273:                                             ; preds = %1018
  br i1 %64, label %.critedge982, label %1274

1274:                                             ; preds = %1273
  br i1 %314, label %1292, label %1275

1275:                                             ; preds = %1274
  %1276 = load i32, ptr %165, align 8, !tbaa !91
  %1277 = icmp eq i32 %1276, %85
  br i1 %1277, label %1278, label %1283

1278:                                             ; preds = %1275
  %1279 = getelementptr inbounds i8, ptr %.07911084, i64 8
  %1280 = load i32, ptr %1279, align 8, !tbaa !100
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds i8, ptr %.0817, i64 %1281
  store ptr %1282, ptr %29, align 8, !tbaa !42
  br label %1292

1283:                                             ; preds = %1275
  %1284 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0817) #16
  %1285 = getelementptr inbounds i8, ptr %.0817, i64 %1284
  store ptr %1285, ptr %29, align 8, !tbaa !42
  br label %1292

.critedge982:                                     ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #15
  %1286 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0817, ptr noundef nonnull %29)
  %1287 = sitofp i32 %1286 to float
  %1288 = getelementptr inbounds i8, ptr %73, i64 6448
  %1289 = load float, ptr %1288, align 8, !tbaa !43
  %1290 = fmul float %1289, %1287
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %.sroa.0441.1, float noundef %1290)
  %1291 = load i64, ptr %50, align 8
  store i64 %1291, ptr %28, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #15
  br label %1298

1292:                                             ; preds = %1274, %1278, %1283
  %1293 = phi ptr [ %1019, %1274 ], [ %1282, %1278 ], [ %1285, %1283 ]
  %1294 = ptrtoint ptr %1293 to i64
  %1295 = ptrtoint ptr %.0817 to i64
  %1296 = sub i64 %1294, %1295
  %1297 = icmp slt i64 %1296, 2097152
  br i1 %1297, label %1298, label %1308

1298:                                             ; preds = %.critedge982, %1292
  %.14 = phi ptr [ %26, %1292 ], [ null, %.critedge982 ]
  %1299 = zext i1 %314 to i32
  %1300 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1299, float noundef 1.000000e+00)
  %1301 = getelementptr inbounds i8, ptr %.1790, i64 720
  %1302 = load ptr, ptr %1301, align 8, !tbaa !173
  %1303 = getelementptr inbounds i8, ptr %73, i64 6440
  %1304 = load ptr, ptr %1303, align 8, !tbaa !110
  %1305 = getelementptr inbounds i8, ptr %73, i64 6448
  %1306 = load float, ptr %1305, align 8, !tbaa !43
  %1307 = load ptr, ptr %29, align 8, !tbaa !42
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(224) %1302, ptr noundef %1304, float noundef %1306, ptr noundef nonnull align 4 dereferenceable(8) %27, i32 noundef %1300, ptr noundef %.0817, ptr noundef %1307, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1308

1308:                                             ; preds = %1292, %1298, %1272
  br i1 %brmerge912, label %1310, label %1309

1309:                                             ; preds = %1308
  call void @_ZN5ImGui7PopFontEv()
  br label %1310

1310:                                             ; preds = %1308, %1309
  br i1 %64, label %1311, label %1312

1311:                                             ; preds = %1310
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %28)
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %1312

1312:                                             ; preds = %1311, %1310
  %1313 = getelementptr inbounds i8, ptr %73, i64 12392
  %1314 = load i8, ptr %1313, align 8, !tbaa !178, !range !40, !noundef !41
  %1315 = trunc nuw i8 %1314 to i1
  %or.cond989 = and i1 %brmerge912, %1315
  br i1 %or.cond989, label %1316, label %1318

1316:                                             ; preds = %1312
  %1317 = load ptr, ptr %29, align 8, !tbaa !42
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %27, ptr noundef %.0817, ptr noundef %1317)
  br label %1318

1318:                                             ; preds = %1316, %1312
  br i1 %101, label %1319, label %1329

1319:                                             ; preds = %1318
  %1320 = getelementptr inbounds i8, ptr %11, i64 8
  %1321 = load float, ptr %1320, align 8, !tbaa !179
  %1322 = getelementptr inbounds i8, ptr %73, i64 5560
  %1323 = load float, ptr %1322, align 4, !tbaa !78
  %1324 = fadd float %1321, %1323
  %1325 = load float, ptr %999, align 4, !tbaa !166
  %1326 = load float, ptr %96, align 4, !tbaa !77
  %1327 = fadd float %1325, %1326
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %1324, float noundef %1327)
  %1328 = load <2 x float>, ptr %51, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1328, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1329

1329:                                             ; preds = %1319, %1318
  %1330 = and i32 %5, 2097152
  %.not898 = icmp eq i32 %1330, 0
  %or.cond985 = and i1 %.not898, %.1803
  br i1 %or.cond985, label %1331, label %1332

1331:                                             ; preds = %1329
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %85)
  br label %1332

1332:                                             ; preds = %1329, %1331
  %1333 = and i32 %5, 32
  %.not899 = icmp eq i32 %1333, 0
  %1334 = trunc nuw i8 %.28061108 to i1
  %.1 = select i1 %.not899, i1 %.1803, i1 %1334
  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 %1335

1335:                                             ; preds = %136, %137, %1332, %116
  %.2 = phi i1 [ %.1, %1332 ], [ false, %136 ], [ false, %116 ], [ false, %137 ]
  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 %1336

1336:                                             ; preds = %8, %1335
  %.3 = phi i1 [ %.2, %1335 ], [ false, %8 ]
  ret i1 %.3
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3728)) 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(3728)) local_unnamed_addr #9 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3728)) local_unnamed_addr #4 align 2

declare noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(114), 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(3728)) 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 #9

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) local_unnamed_addr #9

; 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 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

; 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(3728)) 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 #9

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 #9

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

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

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(114), i16 noundef zeroext) local_unnamed_addr #9 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 #10 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 #9 align 2

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

declare void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(224), 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"="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 #10 = { 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 #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 139}
!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, !12, i64 64, !12, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !11, i64 84, !11, i64 92, !11, i64 100, !11, i64 108, !11, i64 116, !11, i64 124, !13, i64 132, !13, i64 133, !13, i64 134, !13, i64 135, !13, i64 136, !13, i64 137, !13, i64 138, !13, i64 139, !13, i64 140, !13, i64 141, !13, i64 142, !13, i64 143, !8, i64 144, !14, i64 146, !14, i64 148, !14, i64 150, !10, i64 152, !8, i64 156, !8, i64 157, !8, i64 158, !13, i64 159, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !11, i64 184, !11, i64 192, !15, i64 200, !16, i64 216, !18, i64 544, !18, i64 560, !18, i64 576, !18, i64 592, !18, i64 608, !18, i64 624, !18, i64 640, !25, i64 656, !25, i64 660, !10, i64 664, !12, i64 668, !12, i64 672, !26, i64 680, !28, i64 696, !12, i64 712, !10, i64 716, !7, i64 720, !29, i64 728, !7, i64 952, !7, i64 960, !7, i64 968, !7, i64 976, !7, i64 984, !8, i64 992, !8, i64 1000, !13, i64 1032, !10, i64 1036, !10, i64 1040}
!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, !12, i64 48, !12, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !10, i64 68, !10, i64 72, !18, i64 76, !18, i64 92, !19, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !13, i64 128, !13, i64 129, !13, i64 130, !11, i64 132, !20, i64 140, !10, i64 176, !10, i64 180, !21, i64 184, !7, i64 200, !7, i64 208, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !12, i64 236, !12, i64 240, !22, i64 248, !23, i64 264, !23, i64 280, !24, i64 296, !8, i64 312}
!17 = !{!"_ZTS6ImVec1", !12, i64 0}
!18 = !{!"_ZTS6ImRect", !11, i64 0, !11, i64 8}
!19 = !{!"_ZTS13ImGuiNavLayer", !8, i64 0}
!20 = !{!"_ZTS16ImGuiMenuColumns", !12, i64 0, !12, i64 4, !12, i64 8, !8, i64 12, !8, i64 24}
!21 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !7, i64 8}
!22 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!23 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !7, i64 8}
!24 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!25 = !{!"_ZTS8ImVec2ih", !14, i64 0, !14, i64 2}
!26 = !{!"_ZTS12ImGuiStorage", !27, i64 0}
!27 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !7, i64 8}
!28 = !{!"_ZTS8ImVectorI12ImGuiColumnsE", !10, i64 0, !10, i64 4, !7, i64 8}
!29 = !{!"_ZTS10ImDrawList", !30, i64 0, !31, i64 16, !32, i64 32, !10, i64 48, !7, i64 56, !7, i64 64, !10, i64 72, !7, i64 80, !7, i64 88, !33, i64 96, !34, i64 112, !35, i64 128, !36, i64 144, !38, i64 200}
!30 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !7, i64 8}
!31 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !7, i64 8}
!32 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !7, i64 8}
!33 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !7, i64 8}
!34 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !7, i64 8}
!35 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !7, i64 8}
!36 = !{!"_ZTS9ImDrawCmd", !37, i64 0, !7, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !7, i64 40, !7, i64 48}
!37 = !{!"_ZTS6ImVec4", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12}
!38 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !39, i64 8}
!39 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !7, i64 8}
!40 = !{i8 0, i8 2}
!41 = !{}
!42 = !{!7, !7, i64 0}
!43 = !{!44, !12, i64 6448}
!44 = !{!"_ZTS12ImGuiContext", !13, i64 0, !13, i64 1, !45, i64 8, !46, i64 5480, !7, i64 6440, !12, i64 6448, !12, i64 6452, !47, i64 6456, !48, i64 6672, !10, i64 6680, !10, i64 6684, !10, i64 6688, !13, i64 6692, !13, i64 6693, !13, i64 6694, !13, i64 6695, !10, i64 6696, !7, i64 6704, !21, i64 6712, !21, i64 6728, !21, i64 6744, !21, i64 6760, !26, i64 6776, !10, i64 6792, !7, i64 6800, !7, i64 6808, !7, i64 6816, !7, i64 6824, !7, i64 6832, !7, i64 6840, !11, i64 6848, !12, i64 6856, !10, i64 6860, !10, i64 6864, !13, i64 6868, !13, i64 6869, !12, i64 6872, !12, i64 6876, !10, i64 6880, !10, i64 6884, !12, i64 6888, !13, i64 6892, !13, i64 6893, !13, i64 6894, !13, i64 6895, !13, i64 6896, !13, i64 6897, !10, i64 6900, !10, i64 6904, !49, i64 6912, !11, i64 6920, !7, i64 6928, !50, i64 6936, !10, i64 6940, !10, i64 6944, !13, i64 6948, !13, i64 6949, !7, i64 6952, !10, i64 6960, !12, i64 6964, !51, i64 6968, !52, i64 7080, !53, i64 7104, !54, i64 7120, !55, i64 7136, !56, i64 7152, !56, i64 7168, !7, i64 7184, !10, i64 7192, !10, i64 7196, !10, i64 7200, !10, i64 7204, !10, i64 7208, !10, i64 7212, !10, i64 7216, !10, i64 7220, !10, i64 7224, !10, i64 7228, !10, i64 7232, !50, i64 7236, !18, i64 7240, !10, i64 7256, !19, i64 7260, !10, i64 7264, !13, i64 7268, !13, i64 7269, !13, i64 7270, !13, i64 7271, !13, i64 7272, !13, i64 7273, !13, i64 7274, !10, i64 7276, !18, i64 7280, !13, i64 7296, !10, i64 7300, !57, i64 7304, !10, i64 7308, !10, i64 7312, !10, i64 7316, !10, i64 7320, !58, i64 7328, !58, i64 7376, !58, i64 7424, !7, i64 7472, !10, i64 7480, !7, i64 7488, !7, i64 7496, !7, i64 7504, !12, i64 7512, !12, i64 7516, !13, i64 7520, !7, i64 7528, !7, i64 7536, !10, i64 7544, !10, i64 7548, !10, i64 7552, !10, i64 7556, !13, i64 7560, !59, i64 7568, !60, i64 7624, !12, i64 7656, !29, i64 7664, !29, i64 7888, !10, i64 8112, !13, i64 8116, !13, i64 8117, !13, i64 8118, !10, i64 8120, !10, i64 8124, !10, i64 8128, !61, i64 8136, !18, i64 8200, !10, i64 8216, !10, i64 8220, !12, i64 8224, !10, i64 8228, !10, i64 8232, !10, i64 8236, !10, i64 8240, !62, i64 8248, !8, i64 8264, !7, i64 8280, !63, i64 8288, !65, i64 8328, !66, i64 8344, !11, i64 8360, !67, i64 8368, !71, i64 12096, !10, i64 12216, !10, i64 12220, !12, i64 12224, !12, i64 12228, !8, i64 12232, !37, i64 12244, !12, i64 12260, !13, i64 12264, !13, i64 12265, !12, i64 12268, !12, i64 12272, !12, i64 12276, !10, i64 12280, !68, i64 12288, !15, i64 12304, !11, i64 12320, !11, i64 12328, !8, i64 12336, !13, i64 12337, !12, i64 12340, !73, i64 12344, !74, i64 12360, !75, i64 12376, !13, i64 12392, !76, i64 12396, !7, i64 12400, !73, i64 12408, !12, i64 12424, !13, i64 12428, !10, i64 12432, !10, i64 12436, !10, i64 12440, !13, i64 12444, !10, i64 12448, !8, i64 12452, !10, i64 12932, !12, i64 12936, !10, i64 12940, !10, i64 12944, !10, i64 12948, !8, i64 12952}
!45 = !{!"_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, !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, !7, i64 288, !11, i64 296, !8, i64 304, !12, i64 312, !12, i64 316, !13, i64 320, !13, i64 321, !13, i64 322, !13, i64 323, !8, i64 324, !8, i64 836, !13, i64 920, !13, i64 921, !13, i64 922, !13, i64 923, !13, i64 924, !13, i64 925, !13, i64 926, !12, i64 928, !10, i64 932, !10, i64 936, !10, i64 940, !10, i64 944, !10, i64 948, !11, i64 952, !10, i64 960, !11, i64 964, !8, i64 972, !8, i64 1016, !8, i64 1056, !8, i64 1061, !8, i64 1066, !8, i64 1071, !8, i64 1076, !8, i64 1084, !8, i64 1104, !8, i64 1124, !8, i64 1164, !8, i64 1184, !8, i64 3232, !8, i64 5280, !8, i64 5364, !12, i64 5448, !14, i64 5452, !31, i64 5456}
!46 = !{!"_ZTS10ImGuiStyle", !12, i64 0, !11, i64 4, !12, i64 12, !12, i64 16, !11, i64 20, !11, i64 28, !10, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !11, i64 56, !12, i64 64, !12, i64 68, !11, i64 72, !11, i64 80, !11, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !12, i64 132, !10, i64 136, !11, i64 140, !11, i64 148, !11, i64 156, !11, i64 164, !12, i64 172, !13, i64 176, !13, i64 177, !13, i64 178, !12, i64 180, !12, i64 184, !8, i64 188}
!47 = !{!"_ZTS20ImDrawListSharedData", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !37, i64 28, !10, i64 44, !8, i64 48, !8, i64 144, !7, i64 208}
!48 = !{!"double", !8, i64 0}
!49 = !{!"long long", !8, i64 0}
!50 = !{!"_ZTS16ImGuiInputSource", !8, i64 0}
!51 = !{!"_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, !18, i64 60, !7, i64 80, !7, i64 88, !12, i64 96, !11, i64 100}
!52 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !12, i64 4, !10, i64 8, !10, i64 12, !13, i64 16}
!53 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!54 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!55 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!56 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!57 = !{!"_ZTS15ImGuiNavForward", !8, i64 0}
!58 = !{!"_ZTS18ImGuiNavMoveResult", !7, i64 0, !10, i64 8, !10, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !18, i64 28}
!59 = !{!"_ZTS10ImDrawData", !13, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !11, i64 28, !11, i64 36, !11, i64 44}
!60 = !{!"_ZTS17ImDrawDataBuilder", !8, i64 0}
!61 = !{!"_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}
!62 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!63 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !64, i64 0, !26, i64 16, !10, i64 32}
!64 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!66 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !10, i64 4, !10, i64 8, !31, i64 16, !68, i64 32, !68, i64 48, !13, i64 64, !10, i64 68, !12, i64 72, !69, i64 76, !12, i64 3696, !13, i64 3700, !13, i64 3701, !13, i64 3702, !10, i64 3704, !7, i64 3712, !7, i64 3720}
!68 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!69 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !10, i64 0, !10, i64 4, !10, i64 8, !8, i64 12, !8, i64 13, !8, i64 14, !8, i64 15, !8, i64 16, !8, i64 17, !8, i64 18, !8, i64 19, !12, i64 20, !70, i64 24}
!70 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !14, i64 3582, !14, i64 3584, !10, i64 3588, !10, i64 3592}
!71 = !{!"_ZTS6ImFont", !23, i64 0, !12, i64 16, !12, i64 20, !31, i64 24, !72, i64 40, !7, i64 56, !11, i64 64, !7, i64 72, !7, i64 80, !14, i64 88, !14, i64 90, !14, i64 92, !13, i64 94, !12, i64 96, !12, i64 100, !12, i64 104, !10, i64 108, !8, i64 112}
!72 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!73 = !{!"_ZTS15ImGuiTextBuffer", !68, i64 0}
!74 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!75 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !68, i64 0}
!76 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!77 = !{!46, !12, i64 60}
!78 = !{!46, !12, i64 80}
!79 = !{!12, !12, i64 0}
!80 = !{!46, !12, i64 64}
!81 = !{!46, !12, i64 68}
!82 = !{!44, !7, i64 6800}
!83 = !{!6, !10, i64 328}
!84 = !{!6, !10, i64 336}
!85 = !{!6, !12, i64 124}
!86 = !{!44, !10, i64 8112}
!87 = !{!44, !7, i64 7528}
!88 = !{!44, !10, i64 7544}
!89 = !{!6, !10, i64 440}
!90 = !{!13, !13, i64 0}
!91 = !{!44, !10, i64 6880}
!92 = !{!44, !10, i64 7212}
!93 = !{!44, !10, i64 7200}
!94 = !{!44, !50, i64 7236}
!95 = !{!44, !10, i64 6944}
!96 = !{!67, !7, i64 56}
!97 = !{!67, !13, i64 64}
!98 = !{!67, !7, i64 24}
!99 = !{!67, !10, i64 4}
!100 = !{!67, !10, i64 8}
!101 = !{!67, !10, i64 0}
!102 = !{!67, !12, i64 72}
!103 = !{!67, !8, i64 88}
!104 = !{!45, !13, i64 320}
!105 = !{!10, !10, i64 0}
!106 = !{!44, !49, i64 6912}
!107 = !{!67, !10, i64 16}
!108 = !{!67, !7, i64 40}
!109 = !{!8, !8, i64 0}
!110 = !{!44, !7, i64 6440}
!111 = !{!71, !12, i64 20}
!112 = !{!71, !12, i64 96}
!113 = !{!71, !7, i64 72}
!114 = !{!71, !7, i64 56}
!115 = !{!116, !12, i64 4}
!116 = !{!"_ZTS11ImFontGlyph", !10, i64 0, !10, i64 3, !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}
!117 = !{!71, !12, i64 16}
!118 = !{!67, !13, i64 3702}
!119 = !{!67, !10, i64 68}
!120 = !{!67, !10, i64 3704}
!121 = !{!67, !7, i64 3712}
!122 = !{!67, !7, i64 3720}
!123 = !{!44, !13, i64 6893}
!124 = !{!44, !10, i64 12948}
!125 = !{!45, !12, i64 296}
!126 = !{!18, !12, i64 0}
!127 = !{!46, !12, i64 56}
!128 = !{!45, !12, i64 300}
!129 = !{!6, !12, i64 220}
!130 = !{!45, !13, i64 193}
!131 = !{!67, !13, i64 3701}
!132 = !{!45, !12, i64 952}
!133 = !{!45, !12, i64 956}
!134 = !{!67, !13, i64 3700}
!135 = !{!45, !13, i64 322}
!136 = !{!45, !13, i64 323}
!137 = !{!45, !13, i64 321}
!138 = !{!14, !14, i64 0}
!139 = !{!45, !10, i64 5456}
!140 = distinct !{!140, !141}
!141 = !{!"llvm.loop.mustprogress"}
!142 = !{!44, !13, i64 6892}
!143 = !{!45, !10, i64 960}
!144 = !{!6, !12, i64 88}
!145 = !{!45, !7, i64 256}
!146 = !{!67, !10, i64 80}
!147 = !{!67, !10, i64 84}
!148 = distinct !{!148, !141}
!149 = !{!67, !10, i64 48}
!150 = !{!31, !7, i64 8}
!151 = !{!31, !10, i64 0}
!152 = !{!67, !10, i64 32}
!153 = !{!154, !10, i64 0}
!154 = !{!"_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}
!155 = !{!154, !10, i64 4}
!156 = !{!154, !7, i64 8}
!157 = !{!154, !10, i64 20}
!158 = !{!154, !7, i64 24}
!159 = !{!154, !10, i64 32}
!160 = !{!154, !10, i64 36}
!161 = !{!67, !10, i64 76}
!162 = !{!154, !10, i64 44}
!163 = !{!154, !10, i64 48}
!164 = !{!154, !10, i64 52}
!165 = !{!154, !13, i64 40}
!166 = !{!18, !12, i64 4}
!167 = distinct !{!167, !141}
!168 = !{!11, !12, i64 0}
!169 = !{!11, !12, i64 4}
!170 = !{!37, !12, i64 12}
!171 = !{!37, !12, i64 4}
!172 = distinct !{!172, !141}
!173 = !{!6, !7, i64 720}
!174 = distinct !{!174, !141}
!175 = !{!45, !12, i64 16}
!176 = !{!67, !12, i64 3696}
!177 = !{!44, !13, i64 202}
!178 = !{!44, !13, i64 12392}
!179 = !{!18, !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