; LLVM IR from PepcyCh/bisemutum-engine :: bisemutum/thirdparty/ImGuizmo (ImSequencer)

; 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.ImVector.0 = type { i32, i32, ptr }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%class.anon = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%class.anon.7 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.CustomDraw = type { i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%"struct.ImSequencer::SequenceInterface" = type <{ ptr, i8, [7 x i8] }>

@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth = external hidden global float, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget = external hidden global float, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry = external hidden global i32, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos = external hidden global i32, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart = external hidden global i32, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar = external hidden global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame = external hidden global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView = external hidden global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource = external hidden global %struct.ImVec2, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar = external hidden global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar = external hidden global i8, align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_i(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, i32 noundef %5) #0 personality ptr @__gxx_personality_v0 {
  %7 = alloca i1, align 1
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.ImVector.0, align 8
  %33 = alloca %struct.ImVector.0, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca %struct.ImRect, align 4
  %40 = alloca %struct.ImVec2, align 4
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca %struct.ImVec2, align 4
  %43 = alloca [512 x i8], align 16
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca i8, align 1
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca %struct.ImVec2, align 4
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca %struct.ImRect, align 4
  %55 = alloca float, align 4
  %56 = alloca %struct.ImVec2, align 4
  %57 = alloca %struct.ImRect, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 4
  %61 = alloca %struct.ImVec2, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %class.anon, align 8
  %68 = alloca %class.anon.7, align 8
  %69 = alloca i32, align 4
  %70 = alloca %struct.ImVec2, align 4
  %71 = alloca i64, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca %struct.ImVec2, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i64, align 8
  %80 = alloca %struct.ImVec2, align 4
  %81 = alloca %struct.ImVec2, align 4
  %82 = alloca %struct.ImVec2, align 4
  %83 = alloca %struct.ImVec2, align 4
  %84 = alloca %struct.ImVec2, align 4
  %85 = alloca i32, align 4
  %86 = alloca i8, align 1
  %87 = alloca i32, align 4
  %88 = alloca %struct.ImVec2, align 4
  %89 = alloca %struct.ImVec2, align 4
  %90 = alloca i32, align 4
  %91 = alloca ptr, align 8
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca i64, align 8
  %95 = alloca %struct.ImVec2, align 4
  %96 = alloca %struct.ImVec2, align 4
  %97 = alloca %struct.ImVec2, align 4
  %98 = alloca %struct.ImVec2, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca %struct.ImRect, align 4
  %102 = alloca float, align 4
  %103 = alloca float, align 4
  %104 = alloca float, align 4
  %105 = alloca [3 x %struct.ImRect], align 16
  %106 = alloca %struct.ImVec2, align 4
  %107 = alloca %struct.ImVec2, align 4
  %108 = alloca [3 x i32], align 4
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca ptr, align 8
  %113 = alloca %struct.ImRect, align 4
  %114 = alloca %struct.ImVec2, align 4
  %115 = alloca %struct.ImVec2, align 4
  %116 = alloca %struct.ImRect, align 4
  %117 = alloca %struct.ImVec2, align 4
  %118 = alloca %struct.ImVec2, align 4
  %119 = alloca %struct.ImVec2, align 4
  %120 = alloca %struct.ImVec2, align 4
  %121 = alloca %struct.ImRect, align 4
  %122 = alloca %struct.ImVec2, align 4
  %123 = alloca %struct.ImVec2, align 4
  %124 = alloca %struct.ImVec2, align 4
  %125 = alloca %struct.ImVec2, align 4
  %126 = alloca %struct.ImRect, align 4
  %127 = alloca %struct.ImVec2, align 4
  %128 = alloca %struct.ImVec2, align 4
  %129 = alloca %struct.ImVec2, align 4
  %130 = alloca %struct.ImVec2, align 4
  %131 = alloca %struct.ImRect, align 4
  %132 = alloca %struct.ImVec2, align 4
  %133 = alloca %struct.ImVec2, align 4
  %134 = alloca %struct.ImVec2, align 4
  %135 = alloca %struct.ImVec2, align 4
  %136 = alloca %struct.CustomDraw, align 4
  %137 = alloca %struct.ImVec2, align 4
  %138 = alloca %struct.ImRect, align 4
  %139 = alloca %struct.ImVec2, align 4
  %140 = alloca %struct.ImVec2, align 4
  %141 = alloca %struct.ImVec2, align 4
  %142 = alloca %struct.ImVec2, align 4
  %143 = alloca %struct.ImRect, align 4
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca %struct.ImVec2, align 4
  %146 = alloca %struct.ImVec2, align 4
  %147 = alloca %struct.ImVec2, align 4
  %148 = alloca %struct.CustomDraw, align 4
  %149 = alloca i32, align 4
  %150 = alloca ptr, align 8
  %151 = alloca ptr, align 8
  %152 = alloca ptr, align 8
  %153 = alloca ptr, align 8
  %154 = alloca float, align 4
  %155 = alloca %struct.ImVec2, align 4
  %156 = alloca %struct.ImVec2, align 4
  %157 = alloca [512 x i8], align 16
  %158 = alloca %struct.ImVec2, align 4
  %159 = alloca ptr, align 8
  %160 = alloca ptr, align 8
  %161 = alloca ptr, align 8
  %162 = alloca ptr, align 8
  %163 = alloca ptr, align 8
  %164 = alloca ptr, align 8
  %165 = alloca ptr, align 8
  %166 = alloca ptr, align 8
  %167 = alloca %struct.ImRect, align 4
  %168 = alloca %struct.ImVec2, align 4
  %169 = alloca %struct.ImVec2, align 4
  %170 = alloca i8, align 1
  %171 = alloca i32, align 4
  %172 = alloca %struct.ImRect, align 4
  %173 = alloca %struct.ImVec2, align 4
  %174 = alloca %struct.ImVec2, align 4
  %175 = alloca i8, align 1
  %176 = alloca i32, align 4
  %177 = alloca %struct.ImVec2, align 4
  %178 = alloca %struct.ImVec2, align 4
  %179 = alloca float, align 4
  %180 = alloca %struct.ImVec2, align 4
  %181 = alloca %struct.ImVec2, align 4
  %182 = alloca %struct.ImRect, align 4
  %183 = alloca i8, align 1
  %184 = alloca %struct.ImVec2, align 4
  %185 = alloca %struct.ImVec2, align 4
  %186 = alloca %struct.ImRect, align 4
  %187 = alloca %struct.ImVec2, align 4
  %188 = alloca %struct.ImRect, align 4
  %189 = alloca %struct.ImVec2, align 4
  %190 = alloca i8, align 1
  %191 = alloca i8, align 1
  %192 = alloca %struct.ImRect, align 4
  %193 = alloca float, align 4
  %194 = alloca float, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca float, align 4
  %198 = alloca float, align 4
  %199 = alloca float, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca float, align 4
  %203 = alloca i8, align 1
  %204 = alloca ptr, align 8
  %205 = alloca ptr, align 8
  %206 = alloca ptr, align 8
  %207 = alloca ptr, align 8
  %208 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store i32 %5, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  store i8 0, ptr %14, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %209 = call noundef nonnull align 8 dereferenceable(14264) ptr @_ZN5ImGui5GetIOEv()
  store ptr %209, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.ImGuiIO, ptr %210, i32 0, i32 56
  %212 = getelementptr inbounds %struct.ImVec2, ptr %211, i32 0, i32 0
  %213 = load float, ptr %212, align 4, !tbaa !13
  %214 = fptosi float %213 to i32
  store i32 %214, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %215 = load ptr, ptr %15, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.ImGuiIO, ptr %215, i32 0, i32 56
  %217 = getelementptr inbounds %struct.ImVec2, ptr %216, i32 0, i32 1
  %218 = load float, ptr %217, align 4, !tbaa !19
  %219 = fptosi float %218 to i32
  store i32 %219, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  store i32 200, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 -1, ptr %19, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 -1, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  store i32 20, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #9
  store i8 0, ptr %22, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %220 = load ptr, ptr %8, align 8, !tbaa !5
  %221 = load ptr, ptr %220, align 8, !tbaa !20
  %222 = getelementptr inbounds ptr, ptr %221, i64 2
  %223 = load ptr, ptr %222, align 8
  %224 = call noundef i32 %223(ptr noundef nonnull align 8 dereferenceable(9) %220)
  store i32 %224, ptr %23, align 4, !tbaa !9
  %225 = load i32, ptr %23, align 4, !tbaa !9
  %226 = icmp ne i32 %225, 0
  br i1 %226, label %228, label %227

227:                                              ; preds = %6
  store i1 false, ptr %7, align 1
  store i32 1, ptr %24, align 4
  br label %2972

228:                                              ; preds = %6
  call void @_ZN5ImGui10BeginGroupEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %229 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  store ptr %229, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %230 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %230, ptr %26, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %231 = call <2 x float> @_ZN5ImGui21GetContentRegionAvailEv()
  store <2 x float> %231, ptr %27, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %232 = load ptr, ptr %12, align 8, !tbaa !5
  %233 = icmp ne ptr %232, null
  br i1 %233, label %234, label %237

234:                                              ; preds = %228
  %235 = load ptr, ptr %12, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  br label %238

237:                                              ; preds = %228
  br label %238

238:                                              ; preds = %237, %234
  %239 = phi i32 [ %236, %234 ], [ 0, %237 ]
  store i32 %239, ptr %28, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %240 = load i32, ptr %23, align 4, !tbaa !9
  %241 = load i32, ptr %21, align 4, !tbaa !9
  %242 = mul nsw i32 %240, %241
  store i32 %242, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %243

243:                                              ; preds = %258, %238
  %244 = load i32, ptr %30, align 4, !tbaa !9
  %245 = load i32, ptr %23, align 4, !tbaa !9
  %246 = icmp slt i32 %244, %245
  br i1 %246, label %248, label %247

247:                                              ; preds = %243
  store i32 2, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %261

248:                                              ; preds = %243
  %249 = load ptr, ptr %8, align 8, !tbaa !5
  %250 = load i32, ptr %30, align 4, !tbaa !9
  %251 = load ptr, ptr %249, align 8, !tbaa !20
  %252 = getelementptr inbounds ptr, ptr %251, i64 15
  %253 = load ptr, ptr %252, align 8
  %254 = call noundef i64 %253(ptr noundef nonnull align 8 dereferenceable(9) %249, i32 noundef %250)
  %255 = trunc i64 %254 to i32
  %256 = load i32, ptr %29, align 4, !tbaa !9
  %257 = add nsw i32 %256, %255
  store i32 %257, ptr %29, align 4, !tbaa !9
  br label %258

258:                                              ; preds = %248
  %259 = load i32, ptr %30, align 4, !tbaa !9
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr %30, align 4, !tbaa !9
  br label %243, !llvm.loop !22

261:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %262 = load ptr, ptr %8, align 8, !tbaa !5
  %263 = load ptr, ptr %262, align 8, !tbaa !20
  %264 = getelementptr inbounds ptr, ptr %263, i64 1
  %265 = load ptr, ptr %264, align 8
  %266 = call noundef i32 %265(ptr noundef nonnull align 8 dereferenceable(9) %262)
  %267 = load ptr, ptr %8, align 8, !tbaa !5
  %268 = load ptr, ptr %267, align 8, !tbaa !20
  %269 = getelementptr inbounds ptr, ptr %268, i64 0
  %270 = load ptr, ptr %269, align 8
  %271 = call noundef i32 %270(ptr noundef nonnull align 8 dereferenceable(9) %267)
  %272 = sub nsw i32 %266, %271
  %273 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %272, i32 noundef 1)
  store i32 %273, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32)
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #9
  invoke void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %274 unwind label %322

274:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %275 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %276 = load float, ptr %275, align 4, !tbaa !24
  %277 = load i32, ptr %18, align 4, !tbaa !9
  %278 = sitofp i32 %277 to float
  %279 = fsub float %276, %278
  %280 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %281 = fdiv float %279, %280
  %282 = call float @llvm.floor.f32(float %281)
  %283 = fptosi float %282 to i32
  store i32 %283, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %284 = load i32, ptr %36, align 4, !tbaa !9
  %285 = sitofp i32 %284 to float
  %286 = load i32, ptr %31, align 4, !tbaa !9
  %287 = sitofp i32 %286 to float
  %288 = fdiv float %285, %287
  %289 = invoke noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %288, float noundef 1.000000e+00)
          to label %290 unwind label %326

290:                                              ; preds = %274
  store float %289, ptr %37, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %291 = load float, ptr %37, align 4, !tbaa !25
  %292 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %293 = load float, ptr %292, align 4, !tbaa !24
  %294 = load i32, ptr %18, align 4, !tbaa !9
  %295 = sitofp i32 %294 to float
  %296 = fsub float %293, %295
  %297 = fmul float %291, %296
  store float %297, ptr %38, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %298 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %27)
          to label %299 unwind label %330

299:                                              ; preds = %290
  store <2 x float> %298, ptr %40, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %40)
          to label %300 unwind label %330

300:                                              ; preds = %299
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  %301 = invoke noundef zeroext i1 @_ZN5ImGui15IsWindowFocusedEi(i32 noundef 0)
          to label %302 unwind label %334

302:                                              ; preds = %300
  br i1 %301, label %303, label %370

303:                                              ; preds = %302
  %304 = load ptr, ptr %15, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.ImGuiIO, ptr %304, i32 0, i32 62
  %306 = load i8, ptr %305, align 2, !tbaa !26, !range !27, !noundef !28
  %307 = trunc i8 %306 to i1
  br i1 %307, label %308, label %370

308:                                              ; preds = %303
  %309 = load ptr, ptr %15, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImGuiIO, ptr %309, i32 0, i32 57
  %311 = getelementptr inbounds [5 x i8], ptr %310, i64 0, i64 2
  %312 = load i8, ptr %311, align 2, !tbaa !11, !range !27, !noundef !28
  %313 = trunc i8 %312 to i1
  br i1 %313, label %314, label %370

314:                                              ; preds = %308
  %315 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !11, !range !27, !noundef !28
  %316 = trunc i8 %315 to i1
  br i1 %316, label %338, label %317

317:                                              ; preds = %314
  %318 = load ptr, ptr %15, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ImGuiIO, ptr %318, i32 0, i32 56
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, ptr align 4 %319, i64 8, i1 false), !tbaa.struct !29
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !11
  %320 = load ptr, ptr %12, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  store i32 %321, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !9
  br label %338

322:                                              ; preds = %261
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %34, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %35, align 4
  br label %2971

326:                                              ; preds = %274
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %34, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %35, align 4
  br label %2970

330:                                              ; preds = %299, %290
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %34, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  br label %2969

334:                                              ; preds = %2959, %2943, %2929, %2910, %2902, %2849, %2848, %407, %393, %387, %383, %380, %364, %358, %338, %300
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %34, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %35, align 4
  br label %2969

338:                                              ; preds = %317, %314
  %339 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !9
  %340 = load ptr, ptr %15, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiIO, ptr %340, i32 0, i32 56
  %342 = getelementptr inbounds %struct.ImVec2, ptr %341, i32 0, i32 0
  %343 = load float, ptr %342, align 4, !tbaa !13
  %344 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, align 4, !tbaa !24
  %345 = fsub float %343, %344
  %346 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %347 = fdiv float %345, %346
  %348 = fptosi float %347 to i32
  %349 = sub nsw i32 %339, %348
  %350 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %349, ptr %350, align 4, !tbaa !9
  %351 = load ptr, ptr %12, align 8, !tbaa !5
  %352 = load i32, ptr %351, align 4, !tbaa !9
  %353 = load ptr, ptr %8, align 8, !tbaa !5
  %354 = load ptr, ptr %353, align 8, !tbaa !20
  %355 = getelementptr inbounds ptr, ptr %354, i64 0
  %356 = load ptr, ptr %355, align 8
  %357 = invoke noundef i32 %356(ptr noundef nonnull align 8 dereferenceable(9) %353)
          to label %358 unwind label %334

358:                                              ; preds = %338
  %359 = load ptr, ptr %8, align 8, !tbaa !5
  %360 = load ptr, ptr %359, align 8, !tbaa !20
  %361 = getelementptr inbounds ptr, ptr %360, i64 1
  %362 = load ptr, ptr %361, align 8
  %363 = invoke noundef i32 %362(ptr noundef nonnull align 8 dereferenceable(9) %359)
          to label %364 unwind label %334

364:                                              ; preds = %358
  %365 = load i32, ptr %36, align 4, !tbaa !9
  %366 = sub nsw i32 %363, %365
  %367 = invoke noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %352, i32 noundef %357, i32 noundef %366)
          to label %368 unwind label %334

368:                                              ; preds = %364
  %369 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %367, ptr %369, align 4, !tbaa !9
  br label %370

370:                                              ; preds = %368, %308, %303, %302
  %371 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !11, !range !27, !noundef !28
  %372 = trunc i8 %371 to i1
  br i1 %372, label %373, label %380

373:                                              ; preds = %370
  %374 = load ptr, ptr %15, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiIO, ptr %374, i32 0, i32 57
  %376 = getelementptr inbounds [5 x i8], ptr %375, i64 0, i64 2
  %377 = load i8, ptr %376, align 2, !tbaa !11, !range !27, !noundef !28
  %378 = trunc i8 %377 to i1
  br i1 %378, label %380, label %379

379:                                              ; preds = %373
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !11
  br label %380

380:                                              ; preds = %379, %373, %370
  %381 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  %382 = invoke noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %381, float noundef 0x3FB99999A0000000, float noundef 5.000000e+01)
          to label %383 unwind label %334

383:                                              ; preds = %380
  store float %382, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  %384 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %385 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  %386 = invoke noundef float @_ZL6ImLerpIfET_S0_S0_f(float noundef %384, float noundef %385, float noundef 0x3FD51EB860000000)
          to label %387 unwind label %334

387:                                              ; preds = %383
  store float %386, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %388 = load ptr, ptr %8, align 8, !tbaa !5
  %389 = load ptr, ptr %388, align 8, !tbaa !20
  %390 = getelementptr inbounds ptr, ptr %389, i64 1
  %391 = load ptr, ptr %390, align 8
  %392 = invoke noundef i32 %391(ptr noundef nonnull align 8 dereferenceable(9) %388)
          to label %393 unwind label %334

393:                                              ; preds = %387
  %394 = load ptr, ptr %8, align 8, !tbaa !5
  %395 = load ptr, ptr %394, align 8, !tbaa !20
  %396 = getelementptr inbounds ptr, ptr %395, i64 0
  %397 = load ptr, ptr %396, align 8
  %398 = invoke noundef i32 %397(ptr noundef nonnull align 8 dereferenceable(9) %394)
          to label %399 unwind label %334

399:                                              ; preds = %393
  %400 = sub nsw i32 %392, %398
  store i32 %400, ptr %31, align 4, !tbaa !9
  %401 = load i32, ptr %36, align 4, !tbaa !9
  %402 = load i32, ptr %31, align 4, !tbaa !9
  %403 = icmp sge i32 %401, %402
  br i1 %403, label %404, label %415

404:                                              ; preds = %399
  %405 = load ptr, ptr %12, align 8, !tbaa !5
  %406 = icmp ne ptr %405, null
  br i1 %406, label %407, label %415

407:                                              ; preds = %404
  %408 = load ptr, ptr %8, align 8, !tbaa !5
  %409 = load ptr, ptr %408, align 8, !tbaa !20
  %410 = getelementptr inbounds ptr, ptr %409, i64 0
  %411 = load ptr, ptr %410, align 8
  %412 = invoke noundef i32 %411(ptr noundef nonnull align 8 dereferenceable(9) %408)
          to label %413 unwind label %334

413:                                              ; preds = %407
  %414 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %412, ptr %414, align 4, !tbaa !9
  br label %415

415:                                              ; preds = %413, %404, %399
  %416 = load ptr, ptr %10, align 8, !tbaa !5
  %417 = icmp ne ptr %416, null
  br i1 %417, label %418, label %484

418:                                              ; preds = %415
  %419 = load ptr, ptr %10, align 8, !tbaa !5
  %420 = load i8, ptr %419, align 1, !tbaa !11, !range !27, !noundef !28
  %421 = trunc i8 %420 to i1
  br i1 %421, label %484, label %422

422:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %423 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %424 = load float, ptr %423, align 4, !tbaa !24
  %425 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %426 = load float, ptr %425, align 4, !tbaa !24
  %427 = fsub float %424, %426
  %428 = load i32, ptr %21, align 4, !tbaa !9
  %429 = sitofp i32 %428 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %427, float noundef %429)
          to label %430 unwind label %467

430:                                              ; preds = %422
  %431 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str, ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef 0)
          to label %432 unwind label %467

432:                                              ; preds = %430
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  %433 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %434 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %435 = load float, ptr %434, align 4, !tbaa !24
  %436 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %437 = load float, ptr %436, align 4, !tbaa !24
  %438 = fadd float %435, %437
  %439 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %440 = load float, ptr %439, align 4, !tbaa !30
  %441 = load i32, ptr %21, align 4, !tbaa !9
  %442 = sitofp i32 %441 to float
  %443 = fadd float %440, %442
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef %438, float noundef %443)
          to label %444 unwind label %471

444:                                              ; preds = %432
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %433, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %42, i32 noundef -12765129, float noundef 0.000000e+00, i32 noundef 0)
          to label %445 unwind label %471

445:                                              ; preds = %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 512, ptr %43) #9
  %446 = getelementptr inbounds [512 x i8], ptr %43, i64 0, i64 0
  %447 = load ptr, ptr %8, align 8, !tbaa !5
  %448 = load ptr, ptr %447, align 8, !tbaa !20
  %449 = getelementptr inbounds ptr, ptr %448, i64 8
  %450 = load ptr, ptr %449, align 8
  %451 = invoke noundef ptr %450(ptr noundef nonnull align 8 dereferenceable(9) %447)
          to label %452 unwind label %475

452:                                              ; preds = %445
  %453 = load i32, ptr %31, align 4, !tbaa !9
  %454 = load i32, ptr %23, align 4, !tbaa !9
  %455 = invoke noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %446, i64 noundef 512, ptr noundef %451, i32 noundef %453, i32 noundef %454)
          to label %456 unwind label %475

456:                                              ; preds = %452
  %457 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %458 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %459 = load float, ptr %458, align 4, !tbaa !24
  %460 = fadd float %459, 2.600000e+01
  %461 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %462 = load float, ptr %461, align 4, !tbaa !30
  %463 = fadd float %462, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %460, float noundef %463)
          to label %464 unwind label %479

464:                                              ; preds = %456
  %465 = getelementptr inbounds [512 x i8], ptr %43, i64 0, i64 0
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %457, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef -1, ptr noundef %465, ptr noundef null)
          to label %466 unwind label %479

466:                                              ; preds = %464
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr %43) #9
  br label %2848

467:                                              ; preds = %430, %422
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %34, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  br label %2969

471:                                              ; preds = %444, %432
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %34, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %2969

475:                                              ; preds = %452, %445
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %34, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %35, align 4
  br label %483

479:                                              ; preds = %464, %456
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %34, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %483

483:                                              ; preds = %479, %475
  call void @llvm.lifetime.end.p0(i64 512, ptr %43) #9
  br label %2969

484:                                              ; preds = %418, %415
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #9
  store i8 1, ptr %45, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %485 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %486 = load float, ptr %485, align 4, !tbaa !24
  %487 = load i32, ptr %21, align 4, !tbaa !9
  %488 = sitofp i32 %487 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef %486, float noundef %488)
          to label %489 unwind label %599

489:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %490 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %491 = load float, ptr %490, align 4, !tbaa !24
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %47, float noundef %491, float noundef 1.400000e+01)
          to label %492 unwind label %603

492:                                              ; preds = %489
  %493 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.1, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef 0)
          to label %494 unwind label %603

494:                                              ; preds = %492
  %495 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %496 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %46)
          to label %497 unwind label %607

497:                                              ; preds = %494
  store <2 x float> %496, ptr %48, align 4
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %495, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %48, i32 noundef -65536, float noundef 0.000000e+00, i32 noundef 0)
          to label %498 unwind label %607

498:                                              ; preds = %497
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %499 = invoke <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
          to label %500 unwind label %611

500:                                              ; preds = %498
  store <2 x float> %499, ptr %49, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %501 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %502 = load float, ptr %501, align 4, !tbaa !24
  %503 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 1
  %504 = load float, ptr %503, align 4, !tbaa !30
  %505 = fsub float %504, 8.000000e+00
  %506 = getelementptr inbounds %struct.ImVec2, ptr %46, i32 0, i32 1
  %507 = load float, ptr %506, align 4, !tbaa !30
  %508 = fsub float %505, %507
  %509 = load i8, ptr %45, align 1, !tbaa !11, !range !27, !noundef !28
  %510 = trunc i8 %509 to i1
  br i1 %510, label %511, label %514

511:                                              ; preds = %500
  %512 = getelementptr inbounds %struct.ImVec2, ptr %47, i32 0, i32 1
  %513 = load float, ptr %512, align 4, !tbaa !30
  br label %515

514:                                              ; preds = %500
  br label %515

515:                                              ; preds = %514, %511
  %516 = phi float [ %513, %511 ], [ 0.000000e+00, %514 ]
  %517 = fsub float %508, %516
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %502, float noundef %517)
          to label %518 unwind label %615

518:                                              ; preds = %515
  invoke void @_ZN5ImGui14PushStyleColorEij(i32 noundef 7, i32 noundef 0)
          to label %519 unwind label %615

519:                                              ; preds = %518
  %520 = invoke noundef zeroext i1 @_ZN5ImGui15BeginChildFrameEjRK6ImVec2i(i32 noundef 889, ptr noundef nonnull align 4 dereferenceable(8) %50, i32 noundef 0)
          to label %521 unwind label %615

521:                                              ; preds = %519
  %522 = invoke noundef zeroext i1 @_ZN5ImGui15IsWindowFocusedEi(i32 noundef 0)
          to label %523 unwind label %615

523:                                              ; preds = %521
  %524 = load ptr, ptr %8, align 8, !tbaa !5
  %525 = getelementptr inbounds %"struct.ImSequencer::SequenceInterface", ptr %524, i32 0, i32 1
  %526 = zext i1 %522 to i8
  store i8 %526, ptr %525, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %527 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %528 = load float, ptr %527, align 4, !tbaa !24
  %529 = load i32, ptr %29, align 4, !tbaa !9
  %530 = sitofp i32 %529 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %528, float noundef %530)
          to label %531 unwind label %619

531:                                              ; preds = %523
  %532 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.2, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef 0)
          to label %533 unwind label %619

533:                                              ; preds = %531
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %534 = invoke <2 x float> @_ZN5ImGui14GetItemRectMinEv()
          to label %535 unwind label %623

535:                                              ; preds = %533
  store <2 x float> %534, ptr %52, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %536 = invoke <2 x float> @_ZN5ImGui14GetItemRectMaxEv()
          to label %537 unwind label %627

537:                                              ; preds = %535
  store <2 x float> %536, ptr %53, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #9
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %54, ptr noundef nonnull align 4 dereferenceable(8) %52, ptr noundef nonnull align 4 dereferenceable(8) %53)
          to label %538 unwind label %631

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %539 = getelementptr inbounds %struct.ImVec2, ptr %53, i32 0, i32 1
  %540 = load float, ptr %539, align 4, !tbaa !30
  %541 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %542 = load float, ptr %541, align 4, !tbaa !30
  %543 = fsub float %540, %542
  store float %543, ptr %55, align 4, !tbaa !25
  %544 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %545 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %27)
          to label %546 unwind label %635

546:                                              ; preds = %538
  store <2 x float> %545, ptr %56, align 4
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %544, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %56, i32 noundef -14408668, float noundef 0.000000e+00, i32 noundef 0)
          to label %547 unwind label %635

547:                                              ; preds = %546
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %548 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %549 = load float, ptr %548, align 4, !tbaa !24
  %550 = load i32, ptr %18, align 4, !tbaa !9
  %551 = sitofp i32 %550 to float
  %552 = fadd float %549, %551
  %553 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %554 = load float, ptr %553, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %552, float noundef %554)
          to label %555 unwind label %639

555:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %556 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %557 = load float, ptr %556, align 4, !tbaa !24
  %558 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %559 = load float, ptr %558, align 4, !tbaa !24
  %560 = fadd float %557, %559
  %561 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %562 = load float, ptr %561, align 4, !tbaa !30
  %563 = load i32, ptr %21, align 4, !tbaa !9
  %564 = sitofp i32 %563 to float
  %565 = fadd float %562, %564
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %560, float noundef %565)
          to label %566 unwind label %643

566:                                              ; preds = %555
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %57, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59)
          to label %567 unwind label %643

567:                                              ; preds = %566
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  %568 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !11, !range !27, !noundef !28
  %569 = trunc i8 %568 to i1
  br i1 %569, label %652, label %570

570:                                              ; preds = %567
  %571 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !11, !range !27, !noundef !28
  %572 = trunc i8 %571 to i1
  br i1 %572, label %652, label %573

573:                                              ; preds = %570
  %574 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %575 = icmp eq i32 %574, -1
  br i1 %575, label %576, label %652

576:                                              ; preds = %573
  %577 = load i32, ptr %13, align 4, !tbaa !9
  %578 = and i32 %577, 8
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %652

580:                                              ; preds = %576
  %581 = load ptr, ptr %9, align 8, !tbaa !5
  %582 = icmp ne ptr %581, null
  br i1 %582, label %583, label %652

583:                                              ; preds = %580
  %584 = load ptr, ptr %9, align 8, !tbaa !5
  %585 = load i32, ptr %584, align 4, !tbaa !9
  %586 = icmp sge i32 %585, 0
  br i1 %586, label %587, label %652

587:                                              ; preds = %583
  %588 = load ptr, ptr %15, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.ImGuiIO, ptr %588, i32 0, i32 56
  %590 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %57, ptr noundef nonnull align 4 dereferenceable(8) %589)
          to label %591 unwind label %648

591:                                              ; preds = %587
  br i1 %590, label %592, label %652

592:                                              ; preds = %591
  %593 = load ptr, ptr %15, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.ImGuiIO, ptr %593, i32 0, i32 57
  %595 = getelementptr inbounds [5 x i8], ptr %594, i64 0, i64 0
  %596 = load i8, ptr %595, align 4, !tbaa !11, !range !27, !noundef !28
  %597 = trunc i8 %596 to i1
  br i1 %597, label %598, label %652

598:                                              ; preds = %592
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !11
  br label %652

599:                                              ; preds = %484
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %34, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %35, align 4
  br label %2847

603:                                              ; preds = %492, %489
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %34, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %35, align 4
  br label %2846

607:                                              ; preds = %497, %494
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %34, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %2846

611:                                              ; preds = %498
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %34, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %35, align 4
  br label %2845

615:                                              ; preds = %521, %519, %518, %515
  %616 = landingpad { ptr, i32 }
          cleanup
  %617 = extractvalue { ptr, i32 } %616, 0
  store ptr %617, ptr %34, align 8
  %618 = extractvalue { ptr, i32 } %616, 1
  store i32 %618, ptr %35, align 4
  br label %2844

619:                                              ; preds = %531, %523
  %620 = landingpad { ptr, i32 }
          cleanup
  %621 = extractvalue { ptr, i32 } %620, 0
  store ptr %621, ptr %34, align 8
  %622 = extractvalue { ptr, i32 } %620, 1
  store i32 %622, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %2844

623:                                              ; preds = %533
  %624 = landingpad { ptr, i32 }
          cleanup
  %625 = extractvalue { ptr, i32 } %624, 0
  store ptr %625, ptr %34, align 8
  %626 = extractvalue { ptr, i32 } %624, 1
  store i32 %626, ptr %35, align 4
  br label %2843

627:                                              ; preds = %535
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %34, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %35, align 4
  br label %2842

631:                                              ; preds = %537
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %34, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %35, align 4
  br label %2841

635:                                              ; preds = %546, %538
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %34, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %2840

639:                                              ; preds = %547
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %34, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %35, align 4
  br label %647

643:                                              ; preds = %566, %555
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %34, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  br label %647

647:                                              ; preds = %643, %639
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  br label %2839

648:                                              ; preds = %810, %757, %751, %747, %734, %700, %690, %682, %658, %587
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %34, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %35, align 4
  br label %2839

652:                                              ; preds = %598, %592, %591, %583, %580, %576, %573, %570, %567
  %653 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !11, !range !27, !noundef !28
  %654 = trunc i8 %653 to i1
  br i1 %654, label %655, label %717

655:                                              ; preds = %652
  %656 = load i32, ptr %31, align 4, !tbaa !9
  %657 = icmp ne i32 %656, 0
  br i1 %657, label %658, label %709

658:                                              ; preds = %655
  %659 = load ptr, ptr %15, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiIO, ptr %659, i32 0, i32 56
  %661 = getelementptr inbounds %struct.ImVec2, ptr %660, i32 0, i32 0
  %662 = load float, ptr %661, align 4, !tbaa !13
  %663 = getelementptr inbounds %struct.ImRect, ptr %57, i32 0, i32 0
  %664 = getelementptr inbounds %struct.ImVec2, ptr %663, i32 0, i32 0
  %665 = load float, ptr %664, align 4, !tbaa !33
  %666 = fsub float %662, %665
  %667 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %668 = fdiv float %666, %667
  %669 = fptosi float %668 to i32
  %670 = load i32, ptr %28, align 4, !tbaa !9
  %671 = add nsw i32 %669, %670
  %672 = load ptr, ptr %9, align 8, !tbaa !5
  store i32 %671, ptr %672, align 4, !tbaa !9
  %673 = load ptr, ptr %9, align 8, !tbaa !5
  %674 = load i32, ptr %673, align 4, !tbaa !9
  %675 = load ptr, ptr %8, align 8, !tbaa !5
  %676 = load ptr, ptr %675, align 8, !tbaa !20
  %677 = getelementptr inbounds ptr, ptr %676, i64 0
  %678 = load ptr, ptr %677, align 8
  %679 = invoke noundef i32 %678(ptr noundef nonnull align 8 dereferenceable(9) %675)
          to label %680 unwind label %648

680:                                              ; preds = %658
  %681 = icmp slt i32 %674, %679
  br i1 %681, label %682, label %690

682:                                              ; preds = %680
  %683 = load ptr, ptr %8, align 8, !tbaa !5
  %684 = load ptr, ptr %683, align 8, !tbaa !20
  %685 = getelementptr inbounds ptr, ptr %684, i64 0
  %686 = load ptr, ptr %685, align 8
  %687 = invoke noundef i32 %686(ptr noundef nonnull align 8 dereferenceable(9) %683)
          to label %688 unwind label %648

688:                                              ; preds = %682
  %689 = load ptr, ptr %9, align 8, !tbaa !5
  store i32 %687, ptr %689, align 4, !tbaa !9
  br label %690

690:                                              ; preds = %688, %680
  %691 = load ptr, ptr %9, align 8, !tbaa !5
  %692 = load i32, ptr %691, align 4, !tbaa !9
  %693 = load ptr, ptr %8, align 8, !tbaa !5
  %694 = load ptr, ptr %693, align 8, !tbaa !20
  %695 = getelementptr inbounds ptr, ptr %694, i64 1
  %696 = load ptr, ptr %695, align 8
  %697 = invoke noundef i32 %696(ptr noundef nonnull align 8 dereferenceable(9) %693)
          to label %698 unwind label %648

698:                                              ; preds = %690
  %699 = icmp sge i32 %692, %697
  br i1 %699, label %700, label %708

700:                                              ; preds = %698
  %701 = load ptr, ptr %8, align 8, !tbaa !5
  %702 = load ptr, ptr %701, align 8, !tbaa !20
  %703 = getelementptr inbounds ptr, ptr %702, i64 1
  %704 = load ptr, ptr %703, align 8
  %705 = invoke noundef i32 %704(ptr noundef nonnull align 8 dereferenceable(9) %701)
          to label %706 unwind label %648

706:                                              ; preds = %700
  %707 = load ptr, ptr %9, align 8, !tbaa !5
  store i32 %705, ptr %707, align 4, !tbaa !9
  br label %708

708:                                              ; preds = %706, %698
  br label %709

709:                                              ; preds = %708, %655
  %710 = load ptr, ptr %15, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ImGuiIO, ptr %710, i32 0, i32 57
  %712 = getelementptr inbounds [5 x i8], ptr %711, i64 0, i64 0
  %713 = load i8, ptr %712, align 4, !tbaa !11, !range !27, !noundef !28
  %714 = trunc i8 %713 to i1
  br i1 %714, label %716, label %715

715:                                              ; preds = %709
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !11
  br label %716

716:                                              ; preds = %715, %709
  br label %717

717:                                              ; preds = %716, %652
  %718 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %719 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %720 = load float, ptr %719, align 4, !tbaa !24
  %721 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %722 = load float, ptr %721, align 4, !tbaa !24
  %723 = fadd float %720, %722
  %724 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %725 = load float, ptr %724, align 4, !tbaa !30
  %726 = load i32, ptr %21, align 4, !tbaa !9
  %727 = sitofp i32 %726 to float
  %728 = fadd float %725, %727
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %723, float noundef %728)
          to label %729 unwind label %753

729:                                              ; preds = %717
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %718, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef -12765129, float noundef 0.000000e+00, i32 noundef 0)
          to label %730 unwind label %753

730:                                              ; preds = %729
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  %731 = load i32, ptr %13, align 4, !tbaa !9
  %732 = and i32 %731, 16
  %733 = icmp ne i32 %732, 0
  br i1 %733, label %734, label %813

734:                                              ; preds = %730
  %735 = load ptr, ptr %25, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %737 = load float, ptr %736, align 4, !tbaa !24
  %738 = load i32, ptr %18, align 4, !tbaa !9
  %739 = sitofp i32 %738 to float
  %740 = fadd float %737, %739
  %741 = load i32, ptr %21, align 4, !tbaa !9
  %742 = sitofp i32 %741 to float
  %743 = fsub float %740, %742
  %744 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %745 = load float, ptr %744, align 4, !tbaa !30
  %746 = fadd float %745, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef %743, float noundef %746)
          to label %747 unwind label %648

747:                                              ; preds = %734
  %748 = load <2 x float>, ptr %61, align 4
  %749 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %735, <2 x float> %748, i1 noundef zeroext true)
          to label %750 unwind label %648

750:                                              ; preds = %747
  br i1 %749, label %751, label %757

751:                                              ; preds = %750
  invoke void @_ZN5ImGui9OpenPopupEPKci(ptr noundef @.str.3, i32 noundef 0)
          to label %752 unwind label %648

752:                                              ; preds = %751
  br label %757

753:                                              ; preds = %729, %717
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %34, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %2839

757:                                              ; preds = %752, %750
  %758 = invoke noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef @.str.3, i32 noundef 0)
          to label %759 unwind label %648

759:                                              ; preds = %757
  br i1 %758, label %760, label %812

760:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  store i32 0, ptr %62, align 4, !tbaa !9
  br label %761

761:                                              ; preds = %806, %760
  %762 = load i32, ptr %62, align 4, !tbaa !9
  %763 = load ptr, ptr %8, align 8, !tbaa !5
  %764 = load ptr, ptr %763, align 8, !tbaa !20
  %765 = getelementptr inbounds ptr, ptr %764, i64 5
  %766 = load ptr, ptr %765, align 8
  %767 = invoke noundef i32 %766(ptr noundef nonnull align 8 dereferenceable(9) %763)
          to label %768 unwind label %771

768:                                              ; preds = %761
  %769 = icmp slt i32 %762, %767
  br i1 %769, label %775, label %770

770:                                              ; preds = %768
  store i32 5, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %810

771:                                              ; preds = %792, %786, %775, %761
  %772 = landingpad { ptr, i32 }
          cleanup
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %34, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %35, align 4
  br label %809

775:                                              ; preds = %768
  %776 = load ptr, ptr %8, align 8, !tbaa !5
  %777 = load i32, ptr %62, align 4, !tbaa !9
  %778 = load ptr, ptr %776, align 8, !tbaa !20
  %779 = getelementptr inbounds ptr, ptr %778, i64 6
  %780 = load ptr, ptr %779, align 8
  %781 = invoke noundef ptr %780(ptr noundef nonnull align 8 dereferenceable(9) %776, i32 noundef %777)
          to label %782 unwind label %771

782:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef 0.000000e+00, float noundef 0.000000e+00)
          to label %783 unwind label %801

783:                                              ; preds = %782
  %784 = invoke noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %781, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %63)
          to label %785 unwind label %801

785:                                              ; preds = %783
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br i1 %784, label %786, label %805

786:                                              ; preds = %785
  %787 = load ptr, ptr %8, align 8, !tbaa !5
  %788 = load i32, ptr %62, align 4, !tbaa !9
  %789 = load ptr, ptr %787, align 8, !tbaa !20
  %790 = getelementptr inbounds ptr, ptr %789, i64 10
  %791 = load ptr, ptr %790, align 8
  invoke void %791(ptr noundef nonnull align 8 dereferenceable(9) %787, i32 noundef %788)
          to label %792 unwind label %771

792:                                              ; preds = %786
  %793 = load ptr, ptr %8, align 8, !tbaa !5
  %794 = load ptr, ptr %793, align 8, !tbaa !20
  %795 = getelementptr inbounds ptr, ptr %794, i64 2
  %796 = load ptr, ptr %795, align 8
  %797 = invoke noundef i32 %796(ptr noundef nonnull align 8 dereferenceable(9) %793)
          to label %798 unwind label %771

798:                                              ; preds = %792
  %799 = sub nsw i32 %797, 1
  %800 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %799, ptr %800, align 4, !tbaa !9
  br label %805

801:                                              ; preds = %783, %782
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %34, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br label %809

805:                                              ; preds = %798, %785
  br label %806

806:                                              ; preds = %805
  %807 = load i32, ptr %62, align 4, !tbaa !9
  %808 = add nsw i32 %807, 1
  store i32 %808, ptr %62, align 4, !tbaa !9
  br label %761, !llvm.loop !35

809:                                              ; preds = %801, %771
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2839

810:                                              ; preds = %770
  invoke void @_ZN5ImGui8EndPopupEv()
          to label %811 unwind label %648

811:                                              ; preds = %810
  store i8 1, ptr %22, align 1, !tbaa !11
  br label %812

812:                                              ; preds = %811, %759
  br label %813

813:                                              ; preds = %812, %730
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  store i32 10, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %814

814:                                              ; preds = %820, %813
  %815 = load i32, ptr %64, align 4, !tbaa !9
  %816 = sitofp i32 %815 to float
  %817 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %818 = fmul float %816, %817
  %819 = fcmp olt float %818, 1.500000e+02
  br i1 %819, label %820, label %825

820:                                              ; preds = %814
  %821 = load i32, ptr %64, align 4, !tbaa !9
  %822 = mul nsw i32 %821, 2
  store i32 %822, ptr %64, align 4, !tbaa !9
  %823 = load i32, ptr %65, align 4, !tbaa !9
  %824 = mul nsw i32 %823, 2
  store i32 %824, ptr %65, align 4, !tbaa !9
  br label %814, !llvm.loop !36

825:                                              ; preds = %814
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %826 = load i32, ptr %64, align 4, !tbaa !9
  %827 = sdiv i32 %826, 2
  store i32 %827, ptr %66, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 72, ptr %67) #9
  %828 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 0
  store ptr %64, ptr %828, align 8, !tbaa !5
  %829 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 1
  store ptr %8, ptr %829, align 8, !tbaa !5
  %830 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 2
  store ptr %66, ptr %830, align 8, !tbaa !5
  %831 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 3
  store ptr %26, ptr %831, align 8, !tbaa !5
  %832 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 4
  store ptr %18, ptr %832, align 8, !tbaa !5
  %833 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 5
  store ptr %28, ptr %833, align 8, !tbaa !5
  %834 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 6
  store ptr %21, ptr %834, align 8, !tbaa !5
  %835 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 7
  store ptr %27, ptr %835, align 8, !tbaa !5
  %836 = getelementptr inbounds %class.anon, ptr %67, i32 0, i32 8
  store ptr %25, ptr %836, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %68) #9
  %837 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 0
  store ptr %26, ptr %837, align 8, !tbaa !5
  %838 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 1
  store ptr %18, ptr %838, align 8, !tbaa !5
  %839 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 2
  store ptr %28, ptr %839, align 8, !tbaa !5
  %840 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 3
  store ptr %52, ptr %840, align 8, !tbaa !5
  %841 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 4
  store ptr %53, ptr %841, align 8, !tbaa !5
  %842 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 5
  store ptr %27, ptr %842, align 8, !tbaa !5
  %843 = getelementptr inbounds %class.anon.7, ptr %68, i32 0, i32 6
  store ptr %25, ptr %843, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %844 = load ptr, ptr %8, align 8, !tbaa !5
  %845 = load ptr, ptr %844, align 8, !tbaa !20
  %846 = getelementptr inbounds ptr, ptr %845, i64 0
  %847 = load ptr, ptr %846, align 8
  %848 = invoke noundef i32 %847(ptr noundef nonnull align 8 dereferenceable(9) %844)
          to label %849 unwind label %860

849:                                              ; preds = %825
  store i32 %848, ptr %69, align 4, !tbaa !9
  br label %850

850:                                              ; preds = %868, %849
  %851 = load i32, ptr %69, align 4, !tbaa !9
  %852 = load ptr, ptr %8, align 8, !tbaa !5
  %853 = load ptr, ptr %852, align 8, !tbaa !20
  %854 = getelementptr inbounds ptr, ptr %853, i64 1
  %855 = load ptr, ptr %854, align 8
  %856 = invoke noundef i32 %855(ptr noundef nonnull align 8 dereferenceable(9) %852)
          to label %857 unwind label %860

857:                                              ; preds = %850
  %858 = icmp sle i32 %851, %856
  br i1 %858, label %864, label %859

859:                                              ; preds = %857
  store i32 10, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %872

860:                                              ; preds = %864, %850, %825
  %861 = landingpad { ptr, i32 }
          cleanup
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %34, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %2838

864:                                              ; preds = %857
  %865 = load i32, ptr %69, align 4, !tbaa !9
  %866 = load i32, ptr %21, align 4, !tbaa !9
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72) %67, i32 noundef %865, i32 noundef %866)
          to label %867 unwind label %860

867:                                              ; preds = %864
  br label %868

868:                                              ; preds = %867
  %869 = load i32, ptr %65, align 4, !tbaa !9
  %870 = load i32, ptr %69, align 4, !tbaa !9
  %871 = add nsw i32 %870, %869
  store i32 %871, ptr %69, align 4, !tbaa !9
  br label %850, !llvm.loop !37

872:                                              ; preds = %859
  %873 = load ptr, ptr %8, align 8, !tbaa !5
  %874 = load ptr, ptr %873, align 8, !tbaa !20
  %875 = getelementptr inbounds ptr, ptr %874, i64 0
  %876 = load ptr, ptr %875, align 8
  %877 = invoke noundef i32 %876(ptr noundef nonnull align 8 dereferenceable(9) %873)
          to label %878 unwind label %898

878:                                              ; preds = %872
  %879 = load i32, ptr %21, align 4, !tbaa !9
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72) %67, i32 noundef %877, i32 noundef %879)
          to label %880 unwind label %898

880:                                              ; preds = %878
  %881 = load ptr, ptr %8, align 8, !tbaa !5
  %882 = load ptr, ptr %881, align 8, !tbaa !20
  %883 = getelementptr inbounds ptr, ptr %882, i64 1
  %884 = load ptr, ptr %883, align 8
  %885 = invoke noundef i32 %884(ptr noundef nonnull align 8 dereferenceable(9) %881)
          to label %886 unwind label %898

886:                                              ; preds = %880
  %887 = load i32, ptr %21, align 4, !tbaa !9
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72) %67, i32 noundef %885, i32 noundef %887)
          to label %888 unwind label %898

888:                                              ; preds = %886
  %889 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  %890 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %50)
          to label %891 unwind label %902

891:                                              ; preds = %888
  store <2 x float> %890, ptr %70, align 4
  invoke void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %889, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %70, i1 noundef zeroext true)
          to label %892 unwind label %902

892:                                              ; preds = %891
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  store i64 0, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  store i32 0, ptr %72, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %1004, %892
  %894 = load i32, ptr %72, align 4, !tbaa !9
  %895 = load i32, ptr %23, align 4, !tbaa !9
  %896 = icmp slt i32 %894, %895
  br i1 %896, label %906, label %897

897:                                              ; preds = %893
  store i32 13, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %1008

898:                                              ; preds = %886, %880, %878, %872
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %34, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %35, align 4
  br label %2838

902:                                              ; preds = %891, %888
  %903 = landingpad { ptr, i32 }
          cleanup
  %904 = extractvalue { ptr, i32 } %903, 0
  store ptr %904, ptr %34, align 8
  %905 = extractvalue { ptr, i32 } %903, 1
  store i32 %905, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  br label %2838

906:                                              ; preds = %893
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %907 = load ptr, ptr %8, align 8, !tbaa !5
  %908 = load i32, ptr %72, align 4, !tbaa !9
  %909 = load ptr, ptr %907, align 8, !tbaa !20
  %910 = getelementptr inbounds ptr, ptr %909, i64 9
  %911 = load ptr, ptr %910, align 8
  invoke void %911(ptr noundef nonnull align 8 dereferenceable(9) %907, i32 noundef %908, ptr noundef null, ptr noundef null, ptr noundef %73, ptr noundef null)
          to label %912 unwind label %961

912:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %913 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %914 = load float, ptr %913, align 4, !tbaa !24
  %915 = fadd float %914, 3.000000e+00
  %916 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %917 = load float, ptr %916, align 4, !tbaa !30
  %918 = load i32, ptr %72, align 4, !tbaa !9
  %919 = load i32, ptr %21, align 4, !tbaa !9
  %920 = mul nsw i32 %918, %919
  %921 = sitofp i32 %920 to float
  %922 = fadd float %917, %921
  %923 = fadd float %922, 2.000000e+00
  %924 = load i64, ptr %71, align 8, !tbaa !38
  %925 = uitofp i64 %924 to float
  %926 = fadd float %923, %925
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %74, float noundef %915, float noundef %926)
          to label %927 unwind label %965

927:                                              ; preds = %912
  %928 = load ptr, ptr %25, align 8, !tbaa !5
  %929 = load ptr, ptr %8, align 8, !tbaa !5
  %930 = load i32, ptr %72, align 4, !tbaa !9
  %931 = load ptr, ptr %929, align 8, !tbaa !20
  %932 = getelementptr inbounds ptr, ptr %931, i64 7
  %933 = load ptr, ptr %932, align 8
  %934 = invoke noundef ptr %933(ptr noundef nonnull align 8 dereferenceable(9) %929, i32 noundef %930)
          to label %935 unwind label %965

935:                                              ; preds = %927
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %928, ptr noundef nonnull align 4 dereferenceable(8) %74, i32 noundef -1, ptr noundef %934, ptr noundef null)
          to label %936 unwind label %965

936:                                              ; preds = %935
  %937 = load i32, ptr %13, align 4, !tbaa !9
  %938 = and i32 %937, 32
  %939 = icmp ne i32 %938, 0
  br i1 %939, label %940, label %994

940:                                              ; preds = %936
  %941 = load ptr, ptr %25, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %943 = load float, ptr %942, align 4, !tbaa !24
  %944 = load i32, ptr %18, align 4, !tbaa !9
  %945 = sitofp i32 %944 to float
  %946 = fadd float %943, %945
  %947 = load i32, ptr %21, align 4, !tbaa !9
  %948 = sitofp i32 %947 to float
  %949 = fsub float %946, %948
  %950 = fadd float %949, 2.000000e+00
  %951 = fsub float %950, 1.000000e+01
  %952 = getelementptr inbounds %struct.ImVec2, ptr %74, i32 0, i32 1
  %953 = load float, ptr %952, align 4, !tbaa !30
  %954 = fadd float %953, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %75, float noundef %951, float noundef %954)
          to label %955 unwind label %965

955:                                              ; preds = %940
  %956 = load <2 x float>, ptr %75, align 4
  %957 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %941, <2 x float> %956, i1 noundef zeroext false)
          to label %958 unwind label %965

958:                                              ; preds = %955
  br i1 %957, label %959, label %969

959:                                              ; preds = %958
  %960 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %960, ptr %19, align 4, !tbaa !9
  br label %969

961:                                              ; preds = %906
  %962 = landingpad { ptr, i32 }
          cleanup
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %34, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, ptr %35, align 4
  br label %1007

965:                                              ; preds = %994, %987, %969, %955, %940, %935, %927, %912
  %966 = landingpad { ptr, i32 }
          cleanup
  %967 = extractvalue { ptr, i32 } %966, 0
  store ptr %967, ptr %34, align 8
  %968 = extractvalue { ptr, i32 } %966, 1
  store i32 %968, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  br label %1007

969:                                              ; preds = %959, %958
  %970 = load ptr, ptr %25, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %972 = load float, ptr %971, align 4, !tbaa !24
  %973 = load i32, ptr %18, align 4, !tbaa !9
  %974 = sitofp i32 %973 to float
  %975 = fadd float %972, %974
  %976 = load i32, ptr %21, align 4, !tbaa !9
  %977 = sitofp i32 %976 to float
  %978 = fsub float %975, %977
  %979 = load i32, ptr %21, align 4, !tbaa !9
  %980 = sitofp i32 %979 to float
  %981 = fsub float %978, %980
  %982 = fadd float %981, 2.000000e+00
  %983 = fsub float %982, 1.000000e+01
  %984 = getelementptr inbounds %struct.ImVec2, ptr %74, i32 0, i32 1
  %985 = load float, ptr %984, align 4, !tbaa !30
  %986 = fadd float %985, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %76, float noundef %983, float noundef %986)
          to label %987 unwind label %965

987:                                              ; preds = %969
  %988 = load <2 x float>, ptr %76, align 4
  %989 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %970, <2 x float> %988, i1 noundef zeroext true)
          to label %990 unwind label %965

990:                                              ; preds = %987
  br i1 %989, label %991, label %993

991:                                              ; preds = %990
  %992 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %992, ptr %20, align 4, !tbaa !9
  br label %993

993:                                              ; preds = %991, %990
  br label %994

994:                                              ; preds = %993, %936
  %995 = load ptr, ptr %8, align 8, !tbaa !5
  %996 = load i32, ptr %72, align 4, !tbaa !9
  %997 = load ptr, ptr %995, align 8, !tbaa !20
  %998 = getelementptr inbounds ptr, ptr %997, i64 15
  %999 = load ptr, ptr %998, align 8
  %1000 = invoke noundef i64 %999(ptr noundef nonnull align 8 dereferenceable(9) %995, i32 noundef %996)
          to label %1001 unwind label %965

1001:                                             ; preds = %994
  %1002 = load i64, ptr %71, align 8, !tbaa !38
  %1003 = add i64 %1002, %1000
  store i64 %1003, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %1004

1004:                                             ; preds = %1001
  %1005 = load i32, ptr %72, align 4, !tbaa !9
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr %72, align 4, !tbaa !9
  br label %893, !llvm.loop !40

1007:                                             ; preds = %965, %961
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %2837

1008:                                             ; preds = %897
  store i64 0, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  store i32 0, ptr %77, align 4, !tbaa !9
  br label %1009

1009:                                             ; preds = %1124, %1008
  %1010 = load i32, ptr %77, align 4, !tbaa !9
  %1011 = load i32, ptr %23, align 4, !tbaa !9
  %1012 = icmp slt i32 %1010, %1011
  br i1 %1012, label %1014, label %1013

1013:                                             ; preds = %1009
  store i32 16, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %1129

1014:                                             ; preds = %1009
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %1015 = load i32, ptr %77, align 4, !tbaa !9
  %1016 = and i32 %1015, 1
  %1017 = icmp ne i32 %1016, 0
  %1018 = zext i1 %1017 to i64
  %1019 = select i1 %1017, i32 -12962250, i32 -12501699
  store i32 %1019, ptr %78, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %1020 = load ptr, ptr %8, align 8, !tbaa !5
  %1021 = load i32, ptr %77, align 4, !tbaa !9
  %1022 = load ptr, ptr %1020, align 8, !tbaa !20
  %1023 = getelementptr inbounds ptr, ptr %1022, i64 15
  %1024 = load ptr, ptr %1023, align 8
  %1025 = invoke noundef i64 %1024(ptr noundef nonnull align 8 dereferenceable(9) %1020, i32 noundef %1021)
          to label %1026 unwind label %1105

1026:                                             ; preds = %1014
  store i64 %1025, ptr %79, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  %1027 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1028 = load float, ptr %1027, align 4, !tbaa !24
  %1029 = load i32, ptr %18, align 4, !tbaa !9
  %1030 = sitofp i32 %1029 to float
  %1031 = fadd float %1028, %1030
  %1032 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %1033 = load float, ptr %1032, align 4, !tbaa !30
  %1034 = load i32, ptr %21, align 4, !tbaa !9
  %1035 = load i32, ptr %77, align 4, !tbaa !9
  %1036 = mul nsw i32 %1034, %1035
  %1037 = sitofp i32 %1036 to float
  %1038 = fadd float %1033, %1037
  %1039 = fadd float %1038, 1.000000e+00
  %1040 = load i64, ptr %71, align 8, !tbaa !38
  %1041 = uitofp i64 %1040 to float
  %1042 = fadd float %1039, %1041
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %80, float noundef %1031, float noundef %1042)
          to label %1043 unwind label %1109

1043:                                             ; preds = %1026
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %1044 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %1045 = load float, ptr %1044, align 4, !tbaa !24
  %1046 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %1047 = load float, ptr %1046, align 4, !tbaa !24
  %1048 = fadd float %1045, %1047
  %1049 = getelementptr inbounds %struct.ImVec2, ptr %80, i32 0, i32 1
  %1050 = load float, ptr %1049, align 4, !tbaa !30
  %1051 = load i32, ptr %21, align 4, !tbaa !9
  %1052 = sitofp i32 %1051 to float
  %1053 = fadd float %1050, %1052
  %1054 = fsub float %1053, 1.000000e+00
  %1055 = load i64, ptr %79, align 8, !tbaa !38
  %1056 = uitofp i64 %1055 to float
  %1057 = fadd float %1054, %1056
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %81, float noundef %1048, float noundef %1057)
          to label %1058 unwind label %1113

1058:                                             ; preds = %1043
  %1059 = load i8, ptr %22, align 1, !tbaa !11, !range !27, !noundef !28
  %1060 = trunc i8 %1059 to i1
  br i1 %1060, label %1117, label %1061

1061:                                             ; preds = %1058
  %1062 = load i32, ptr %17, align 4, !tbaa !9
  %1063 = sitofp i32 %1062 to float
  %1064 = getelementptr inbounds %struct.ImVec2, ptr %80, i32 0, i32 1
  %1065 = load float, ptr %1064, align 4, !tbaa !30
  %1066 = fcmp oge float %1063, %1065
  br i1 %1066, label %1067, label %1117

1067:                                             ; preds = %1061
  %1068 = load i32, ptr %17, align 4, !tbaa !9
  %1069 = sitofp i32 %1068 to float
  %1070 = getelementptr inbounds %struct.ImVec2, ptr %80, i32 0, i32 1
  %1071 = load float, ptr %1070, align 4, !tbaa !30
  %1072 = load i32, ptr %21, align 4, !tbaa !9
  %1073 = sext i32 %1072 to i64
  %1074 = load i64, ptr %79, align 8, !tbaa !38
  %1075 = add i64 %1073, %1074
  %1076 = uitofp i64 %1075 to float
  %1077 = fadd float %1071, %1076
  %1078 = fcmp olt float %1069, %1077
  br i1 %1078, label %1079, label %1117

1079:                                             ; preds = %1067
  %1080 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1081 = icmp eq i32 %1080, -1
  br i1 %1081, label %1082, label %1117

1082:                                             ; preds = %1079
  %1083 = load i32, ptr %16, align 4, !tbaa !9
  %1084 = sitofp i32 %1083 to float
  %1085 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1086 = load float, ptr %1085, align 4, !tbaa !24
  %1087 = fcmp ogt float %1084, %1086
  br i1 %1087, label %1088, label %1117

1088:                                             ; preds = %1082
  %1089 = load i32, ptr %16, align 4, !tbaa !9
  %1090 = sitofp i32 %1089 to float
  %1091 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1092 = load float, ptr %1091, align 4, !tbaa !24
  %1093 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %1094 = load float, ptr %1093, align 4, !tbaa !24
  %1095 = fadd float %1092, %1094
  %1096 = fcmp olt float %1090, %1095
  br i1 %1096, label %1097, label %1117

1097:                                             ; preds = %1088
  %1098 = load i32, ptr %78, align 4, !tbaa !9
  %1099 = add i32 %1098, -2145382392
  store i32 %1099, ptr %78, align 4, !tbaa !9
  %1100 = load i32, ptr %18, align 4, !tbaa !9
  %1101 = sitofp i32 %1100 to float
  %1102 = getelementptr inbounds %struct.ImVec2, ptr %80, i32 0, i32 0
  %1103 = load float, ptr %1102, align 4, !tbaa !24
  %1104 = fsub float %1103, %1101
  store float %1104, ptr %1102, align 4, !tbaa !24
  br label %1117

1105:                                             ; preds = %1014
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %34, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %35, align 4
  br label %1128

1109:                                             ; preds = %1026
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %34, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %35, align 4
  br label %1127

1113:                                             ; preds = %1117, %1043
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %34, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %1127

1117:                                             ; preds = %1097, %1088, %1082, %1079, %1067, %1061, %1058
  %1118 = load ptr, ptr %25, align 8, !tbaa !5
  %1119 = load i32, ptr %78, align 4, !tbaa !9
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1118, ptr noundef nonnull align 4 dereferenceable(8) %80, ptr noundef nonnull align 4 dereferenceable(8) %81, i32 noundef %1119, float noundef 0.000000e+00, i32 noundef 0)
          to label %1120 unwind label %1113

1120:                                             ; preds = %1117
  %1121 = load i64, ptr %79, align 8, !tbaa !38
  %1122 = load i64, ptr %71, align 8, !tbaa !38
  %1123 = add i64 %1122, %1121
  store i64 %1123, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %1124

1124:                                             ; preds = %1120
  %1125 = load i32, ptr %77, align 4, !tbaa !9
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr %77, align 4, !tbaa !9
  br label %1009, !llvm.loop !41

1127:                                             ; preds = %1113, %1109
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  br label %1128

1128:                                             ; preds = %1127, %1105
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %2837

1129:                                             ; preds = %1013
  %1130 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %1131 = load i32, ptr %18, align 4, !tbaa !9
  %1132 = sitofp i32 %1131 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %83, float noundef %1132, float noundef 0.000000e+00)
          to label %1133 unwind label %1155

1133:                                             ; preds = %1129
  %1134 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %83)
          to label %1135 unwind label %1155

1135:                                             ; preds = %1133
  store <2 x float> %1134, ptr %82, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  %1136 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %50)
          to label %1137 unwind label %1159

1137:                                             ; preds = %1135
  store <2 x float> %1136, ptr %84, align 4
  invoke void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %1130, ptr noundef nonnull align 4 dereferenceable(8) %82, ptr noundef nonnull align 4 dereferenceable(8) %84, i1 noundef zeroext true)
          to label %1138 unwind label %1159

1138:                                             ; preds = %1137
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %1139 = load ptr, ptr %8, align 8, !tbaa !5
  %1140 = load ptr, ptr %1139, align 8, !tbaa !20
  %1141 = getelementptr inbounds ptr, ptr %1140, i64 0
  %1142 = load ptr, ptr %1141, align 8
  %1143 = invoke noundef i32 %1142(ptr noundef nonnull align 8 dereferenceable(9) %1139)
          to label %1144 unwind label %1164

1144:                                             ; preds = %1138
  store i32 %1143, ptr %85, align 4, !tbaa !9
  br label %1145

1145:                                             ; preds = %1173, %1144
  %1146 = load i32, ptr %85, align 4, !tbaa !9
  %1147 = load ptr, ptr %8, align 8, !tbaa !5
  %1148 = load ptr, ptr %1147, align 8, !tbaa !20
  %1149 = getelementptr inbounds ptr, ptr %1148, i64 1
  %1150 = load ptr, ptr %1149, align 8
  %1151 = invoke noundef i32 %1150(ptr noundef nonnull align 8 dereferenceable(9) %1147)
          to label %1152 unwind label %1164

1152:                                             ; preds = %1145
  %1153 = icmp sle i32 %1146, %1151
  br i1 %1153, label %1168, label %1154

1154:                                             ; preds = %1152
  store i32 19, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %1177

1155:                                             ; preds = %1133, %1129
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %34, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %35, align 4
  br label %1163

1159:                                             ; preds = %1137, %1135
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %34, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  br label %1163

1163:                                             ; preds = %1159, %1155
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  br label %2837

1164:                                             ; preds = %1168, %1145, %1138
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %34, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %2837

1168:                                             ; preds = %1152
  %1169 = load i32, ptr %85, align 4, !tbaa !9
  %1170 = load float, ptr %55, align 4, !tbaa !25
  %1171 = fptosi float %1170 to i32
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56) %68, i32 noundef %1169, i32 noundef %1171)
          to label %1172 unwind label %1164

1172:                                             ; preds = %1168
  br label %1173

1173:                                             ; preds = %1172
  %1174 = load i32, ptr %65, align 4, !tbaa !9
  %1175 = load i32, ptr %85, align 4, !tbaa !9
  %1176 = add nsw i32 %1175, %1174
  store i32 %1176, ptr %85, align 4, !tbaa !9
  br label %1145, !llvm.loop !42

1177:                                             ; preds = %1154
  %1178 = load ptr, ptr %8, align 8, !tbaa !5
  %1179 = load ptr, ptr %1178, align 8, !tbaa !20
  %1180 = getelementptr inbounds ptr, ptr %1179, i64 0
  %1181 = load ptr, ptr %1180, align 8
  %1182 = invoke noundef i32 %1181(ptr noundef nonnull align 8 dereferenceable(9) %1178)
          to label %1183 unwind label %1214

1183:                                             ; preds = %1177
  %1184 = load float, ptr %55, align 4, !tbaa !25
  %1185 = fptosi float %1184 to i32
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56) %68, i32 noundef %1182, i32 noundef %1185)
          to label %1186 unwind label %1214

1186:                                             ; preds = %1183
  %1187 = load ptr, ptr %8, align 8, !tbaa !5
  %1188 = load ptr, ptr %1187, align 8, !tbaa !20
  %1189 = getelementptr inbounds ptr, ptr %1188, i64 1
  %1190 = load ptr, ptr %1189, align 8
  %1191 = invoke noundef i32 %1190(ptr noundef nonnull align 8 dereferenceable(9) %1187)
          to label %1192 unwind label %1214

1192:                                             ; preds = %1186
  %1193 = load float, ptr %55, align 4, !tbaa !25
  %1194 = fptosi float %1193 to i32
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56) %68, i32 noundef %1191, i32 noundef %1194)
          to label %1195 unwind label %1214

1195:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #9
  %1196 = load ptr, ptr %11, align 8, !tbaa !5
  %1197 = icmp ne ptr %1196, null
  br i1 %1197, label %1198, label %1202

1198:                                             ; preds = %1195
  %1199 = load ptr, ptr %11, align 8, !tbaa !5
  %1200 = load i32, ptr %1199, align 4, !tbaa !9
  %1201 = icmp sge i32 %1200, 0
  br label %1202

1202:                                             ; preds = %1198, %1195
  %1203 = phi i1 [ false, %1195 ], [ %1201, %1198 ]
  %1204 = zext i1 %1203 to i8
  store i8 %1204, ptr %86, align 1, !tbaa !11
  %1205 = load i8, ptr %86, align 1, !tbaa !11, !range !27, !noundef !28
  %1206 = trunc i8 %1205 to i1
  br i1 %1206, label %1207, label %1279

1207:                                             ; preds = %1202
  store i64 0, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  store i32 0, ptr %87, align 4, !tbaa !9
  br label %1208

1208:                                             ; preds = %1228, %1207
  %1209 = load i32, ptr %87, align 4, !tbaa !9
  %1210 = load ptr, ptr %11, align 8, !tbaa !5
  %1211 = load i32, ptr %1210, align 4, !tbaa !9
  %1212 = icmp slt i32 %1209, %1211
  br i1 %1212, label %1218, label %1213

1213:                                             ; preds = %1208
  store i32 22, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %1235

1214:                                             ; preds = %1192, %1186, %1183, %1177
  %1215 = landingpad { ptr, i32 }
          cleanup
  %1216 = extractvalue { ptr, i32 } %1215, 0
  store ptr %1216, ptr %34, align 8
  %1217 = extractvalue { ptr, i32 } %1215, 1
  store i32 %1217, ptr %35, align 4
  br label %2837

1218:                                             ; preds = %1208
  %1219 = load ptr, ptr %8, align 8, !tbaa !5
  %1220 = load i32, ptr %87, align 4, !tbaa !9
  %1221 = load ptr, ptr %1219, align 8, !tbaa !20
  %1222 = getelementptr inbounds ptr, ptr %1221, i64 15
  %1223 = load ptr, ptr %1222, align 8
  %1224 = invoke noundef i64 %1223(ptr noundef nonnull align 8 dereferenceable(9) %1219, i32 noundef %1220)
          to label %1225 unwind label %1231

1225:                                             ; preds = %1218
  %1226 = load i64, ptr %71, align 8, !tbaa !38
  %1227 = add i64 %1226, %1224
  store i64 %1227, ptr %71, align 8, !tbaa !38
  br label %1228

1228:                                             ; preds = %1225
  %1229 = load i32, ptr %87, align 4, !tbaa !9
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr %87, align 4, !tbaa !9
  br label %1208, !llvm.loop !43

1231:                                             ; preds = %1218
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %34, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %2836

1235:                                             ; preds = %1213
  %1236 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %1237 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1238 = load float, ptr %1237, align 4, !tbaa !24
  %1239 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %1240 = load float, ptr %1239, align 4, !tbaa !30
  %1241 = load i32, ptr %21, align 4, !tbaa !9
  %1242 = load ptr, ptr %11, align 8, !tbaa !5
  %1243 = load i32, ptr %1242, align 4, !tbaa !9
  %1244 = mul nsw i32 %1241, %1243
  %1245 = sitofp i32 %1244 to float
  %1246 = fadd float %1240, %1245
  %1247 = load i64, ptr %71, align 8, !tbaa !38
  %1248 = uitofp i64 %1247 to float
  %1249 = fadd float %1246, %1248
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %88, float noundef %1238, float noundef %1249)
          to label %1250 unwind label %1270

1250:                                             ; preds = %1235
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %1251 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1252 = load float, ptr %1251, align 4, !tbaa !24
  %1253 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %1254 = load float, ptr %1253, align 4, !tbaa !24
  %1255 = fadd float %1252, %1254
  %1256 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %1257 = load float, ptr %1256, align 4, !tbaa !30
  %1258 = load i32, ptr %21, align 4, !tbaa !9
  %1259 = load ptr, ptr %11, align 8, !tbaa !5
  %1260 = load i32, ptr %1259, align 4, !tbaa !9
  %1261 = add nsw i32 %1260, 1
  %1262 = mul nsw i32 %1258, %1261
  %1263 = sitofp i32 %1262 to float
  %1264 = fadd float %1257, %1263
  %1265 = load i64, ptr %71, align 8, !tbaa !38
  %1266 = uitofp i64 %1265 to float
  %1267 = fadd float %1264, %1266
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %89, float noundef %1255, float noundef %1267)
          to label %1268 unwind label %1274

1268:                                             ; preds = %1250
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1236, ptr noundef nonnull align 4 dereferenceable(8) %88, ptr noundef nonnull align 4 dereferenceable(8) %89, i32 noundef -2146402049, float noundef 1.000000e+00, i32 noundef 0)
          to label %1269 unwind label %1274

1269:                                             ; preds = %1268
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %1279

1270:                                             ; preds = %1235
  %1271 = landingpad { ptr, i32 }
          cleanup
  %1272 = extractvalue { ptr, i32 } %1271, 0
  store ptr %1272, ptr %34, align 8
  %1273 = extractvalue { ptr, i32 } %1271, 1
  store i32 %1273, ptr %35, align 4
  br label %1278

1274:                                             ; preds = %1268, %1250
  %1275 = landingpad { ptr, i32 }
          cleanup
  %1276 = extractvalue { ptr, i32 } %1275, 0
  store ptr %1276, ptr %34, align 8
  %1277 = extractvalue { ptr, i32 } %1275, 1
  store i32 %1277, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  br label %1278

1278:                                             ; preds = %1274, %1270
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %2836

1279:                                             ; preds = %1269, %1202
  store i64 0, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  store i32 0, ptr %90, align 4, !tbaa !9
  br label %1280

1280:                                             ; preds = %1887, %1279
  %1281 = load i32, ptr %90, align 4, !tbaa !9
  %1282 = load i32, ptr %23, align 4, !tbaa !9
  %1283 = icmp slt i32 %1281, %1282
  br i1 %1283, label %1285, label %1284

1284:                                             ; preds = %1280
  store i32 25, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %1901

1285:                                             ; preds = %1280
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %1286 = load ptr, ptr %8, align 8, !tbaa !5
  %1287 = load i32, ptr %90, align 4, !tbaa !9
  %1288 = load ptr, ptr %1286, align 8, !tbaa !20
  %1289 = getelementptr inbounds ptr, ptr %1288, i64 9
  %1290 = load ptr, ptr %1289, align 8
  invoke void %1290(ptr noundef nonnull align 8 dereferenceable(9) %1286, i32 noundef %1287, ptr noundef %91, ptr noundef %92, ptr noundef null, ptr noundef %93)
          to label %1291 unwind label %1396

1291:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  %1292 = load ptr, ptr %8, align 8, !tbaa !5
  %1293 = load i32, ptr %90, align 4, !tbaa !9
  %1294 = load ptr, ptr %1292, align 8, !tbaa !20
  %1295 = getelementptr inbounds ptr, ptr %1294, i64 15
  %1296 = load ptr, ptr %1295, align 8
  %1297 = invoke noundef i64 %1296(ptr noundef nonnull align 8 dereferenceable(9) %1292, i32 noundef %1293)
          to label %1298 unwind label %1400

1298:                                             ; preds = %1291
  store i64 %1297, ptr %94, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %1299 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1300 = load float, ptr %1299, align 4, !tbaa !24
  %1301 = load i32, ptr %18, align 4, !tbaa !9
  %1302 = sitofp i32 %1301 to float
  %1303 = fadd float %1300, %1302
  %1304 = load i32, ptr %28, align 4, !tbaa !9
  %1305 = sitofp i32 %1304 to float
  %1306 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1307 = fneg float %1305
  %1308 = call float @llvm.fmuladd.f32(float %1307, float %1306, float %1303)
  %1309 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %1310 = load float, ptr %1309, align 4, !tbaa !30
  %1311 = load i32, ptr %21, align 4, !tbaa !9
  %1312 = load i32, ptr %90, align 4, !tbaa !9
  %1313 = mul nsw i32 %1311, %1312
  %1314 = sitofp i32 %1313 to float
  %1315 = fadd float %1310, %1314
  %1316 = fadd float %1315, 1.000000e+00
  %1317 = load i64, ptr %71, align 8, !tbaa !38
  %1318 = uitofp i64 %1317 to float
  %1319 = fadd float %1316, %1318
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %95, float noundef %1308, float noundef %1319)
          to label %1320 unwind label %1404

1320:                                             ; preds = %1298
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #9
  %1321 = getelementptr inbounds %struct.ImVec2, ptr %95, i32 0, i32 0
  %1322 = load float, ptr %1321, align 4, !tbaa !24
  %1323 = load ptr, ptr %91, align 8, !tbaa !5
  %1324 = load i32, ptr %1323, align 4, !tbaa !9
  %1325 = sitofp i32 %1324 to float
  %1326 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1327 = call float @llvm.fmuladd.f32(float %1325, float %1326, float %1322)
  %1328 = getelementptr inbounds %struct.ImVec2, ptr %95, i32 0, i32 1
  %1329 = load float, ptr %1328, align 4, !tbaa !30
  %1330 = fadd float %1329, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %96, float noundef %1327, float noundef %1330)
          to label %1331 unwind label %1408

1331:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #9
  %1332 = getelementptr inbounds %struct.ImVec2, ptr %95, i32 0, i32 0
  %1333 = load float, ptr %1332, align 4, !tbaa !24
  %1334 = load ptr, ptr %92, align 8, !tbaa !5
  %1335 = load i32, ptr %1334, align 4, !tbaa !9
  %1336 = sitofp i32 %1335 to float
  %1337 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1338 = call float @llvm.fmuladd.f32(float %1336, float %1337, float %1333)
  %1339 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1340 = fadd float %1338, %1339
  %1341 = getelementptr inbounds %struct.ImVec2, ptr %95, i32 0, i32 1
  %1342 = load float, ptr %1341, align 4, !tbaa !30
  %1343 = load i32, ptr %21, align 4, !tbaa !9
  %1344 = sitofp i32 %1343 to float
  %1345 = fadd float %1342, %1344
  %1346 = fsub float %1345, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %97, float noundef %1340, float noundef %1346)
          to label %1347 unwind label %1412

1347:                                             ; preds = %1331
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  %1348 = getelementptr inbounds %struct.ImVec2, ptr %95, i32 0, i32 0
  %1349 = load float, ptr %1348, align 4, !tbaa !24
  %1350 = load ptr, ptr %92, align 8, !tbaa !5
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  %1352 = sitofp i32 %1351 to float
  %1353 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1354 = call float @llvm.fmuladd.f32(float %1352, float %1353, float %1349)
  %1355 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1356 = fadd float %1354, %1355
  %1357 = getelementptr inbounds %struct.ImVec2, ptr %95, i32 0, i32 1
  %1358 = load float, ptr %1357, align 4, !tbaa !30
  %1359 = load i32, ptr %21, align 4, !tbaa !9
  %1360 = sitofp i32 %1359 to float
  %1361 = fadd float %1358, %1360
  %1362 = fsub float %1361, 2.000000e+00
  %1363 = load i64, ptr %94, align 8, !tbaa !38
  %1364 = uitofp i64 %1363 to float
  %1365 = fadd float %1362, %1364
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %98, float noundef %1356, float noundef %1365)
          to label %1366 unwind label %1416

1366:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %1367 = load i32, ptr %93, align 4, !tbaa !9
  %1368 = or i32 %1367, -16777216
  store i32 %1368, ptr %99, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %1369 = load i32, ptr %93, align 4, !tbaa !9
  %1370 = and i32 %1369, 16777215
  %1371 = or i32 %1370, 1073741824
  store i32 %1371, ptr %100, align 4, !tbaa !9
  %1372 = getelementptr inbounds %struct.ImVec2, ptr %96, i32 0, i32 0
  %1373 = load float, ptr %1372, align 4, !tbaa !24
  %1374 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %1375 = load float, ptr %1374, align 4, !tbaa !24
  %1376 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1377 = load float, ptr %1376, align 4, !tbaa !24
  %1378 = fadd float %1375, %1377
  %1379 = fcmp ole float %1373, %1378
  br i1 %1379, label %1380, label %1424

1380:                                             ; preds = %1366
  %1381 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 0
  %1382 = load float, ptr %1381, align 4, !tbaa !24
  %1383 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %1384 = load float, ptr %1383, align 4, !tbaa !24
  %1385 = load i32, ptr %18, align 4, !tbaa !9
  %1386 = sitofp i32 %1385 to float
  %1387 = fadd float %1384, %1386
  %1388 = fcmp oge float %1382, %1387
  br i1 %1388, label %1389, label %1424

1389:                                             ; preds = %1380
  %1390 = load ptr, ptr %25, align 8, !tbaa !5
  %1391 = load i32, ptr %100, align 4, !tbaa !9
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1390, ptr noundef nonnull align 4 dereferenceable(8) %96, ptr noundef nonnull align 4 dereferenceable(8) %98, i32 noundef %1391, float noundef 2.000000e+00, i32 noundef 0)
          to label %1392 unwind label %1420

1392:                                             ; preds = %1389
  %1393 = load ptr, ptr %25, align 8, !tbaa !5
  %1394 = load i32, ptr %99, align 4, !tbaa !9
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1393, ptr noundef nonnull align 4 dereferenceable(8) %96, ptr noundef nonnull align 4 dereferenceable(8) %97, i32 noundef %1394, float noundef 2.000000e+00, i32 noundef 0)
          to label %1395 unwind label %1420

1395:                                             ; preds = %1392
  br label %1424

1396:                                             ; preds = %1285
  %1397 = landingpad { ptr, i32 }
          cleanup
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %34, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %35, align 4
  br label %1900

1400:                                             ; preds = %1291
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %34, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %35, align 4
  br label %1899

1404:                                             ; preds = %1298
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %34, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %35, align 4
  br label %1898

1408:                                             ; preds = %1320
  %1409 = landingpad { ptr, i32 }
          cleanup
  %1410 = extractvalue { ptr, i32 } %1409, 0
  store ptr %1410, ptr %34, align 8
  %1411 = extractvalue { ptr, i32 } %1409, 1
  store i32 %1411, ptr %35, align 4
  br label %1897

1412:                                             ; preds = %1331
  %1413 = landingpad { ptr, i32 }
          cleanup
  %1414 = extractvalue { ptr, i32 } %1413, 0
  store ptr %1414, ptr %34, align 8
  %1415 = extractvalue { ptr, i32 } %1413, 1
  store i32 %1415, ptr %35, align 4
  br label %1896

1416:                                             ; preds = %1347
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %34, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %35, align 4
  br label %1895

1420:                                             ; preds = %1438, %1392, %1389
  %1421 = landingpad { ptr, i32 }
          cleanup
  %1422 = extractvalue { ptr, i32 } %1421, 0
  store ptr %1422, ptr %34, align 8
  %1423 = extractvalue { ptr, i32 } %1421, 1
  store i32 %1423, ptr %35, align 4
  br label %1894

1424:                                             ; preds = %1395, %1380, %1366
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #9
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %101, ptr noundef nonnull align 4 dereferenceable(8) %96, ptr noundef nonnull align 4 dereferenceable(8) %97)
          to label %1425 unwind label %1445

1425:                                             ; preds = %1424
  %1426 = load ptr, ptr %15, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.ImGuiIO, ptr %1426, i32 0, i32 56
  %1428 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %101, ptr noundef nonnull align 4 dereferenceable(8) %1427)
          to label %1429 unwind label %1445

1429:                                             ; preds = %1425
  br i1 %1428, label %1430, label %1436

1430:                                             ; preds = %1429
  %1431 = load ptr, ptr %15, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.ImGuiIO, ptr %1431, i32 0, i32 71
  %1433 = getelementptr inbounds [5 x i8], ptr %1432, i64 0, i64 0
  %1434 = load i8, ptr %1433, align 1, !tbaa !11, !range !27, !noundef !28
  %1435 = trunc i8 %1434 to i1
  br label %1436

1436:                                             ; preds = %1430, %1429
  %1437 = phi i1 [ false, %1429 ], [ %1435, %1430 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #9
  br i1 %1437, label %1438, label %1449

1438:                                             ; preds = %1436
  %1439 = load ptr, ptr %8, align 8, !tbaa !5
  %1440 = load i32, ptr %90, align 4, !tbaa !9
  %1441 = load ptr, ptr %1439, align 8, !tbaa !20
  %1442 = getelementptr inbounds ptr, ptr %1441, i64 16
  %1443 = load ptr, ptr %1442, align 8
  invoke void %1443(ptr noundef nonnull align 8 dereferenceable(9) %1439, i32 noundef %1440)
          to label %1444 unwind label %1420

1444:                                             ; preds = %1438
  br label %1449

1445:                                             ; preds = %1425, %1424
  %1446 = landingpad { ptr, i32 }
          cleanup
  %1447 = extractvalue { ptr, i32 } %1446, 0
  store ptr %1447, ptr %34, align 8
  %1448 = extractvalue { ptr, i32 } %1446, 1
  store i32 %1448, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #9
  br label %1894

1449:                                             ; preds = %1444, %1436
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %1450 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 0
  %1451 = load float, ptr %1450, align 4, !tbaa !24
  %1452 = getelementptr inbounds %struct.ImVec2, ptr %96, i32 0, i32 0
  %1453 = load float, ptr %1452, align 4, !tbaa !24
  %1454 = fdiv float %1453, 3.000000e+00
  %1455 = fsub float %1451, %1454
  store float %1455, ptr %102, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %1456 = load float, ptr %102, align 4, !tbaa !25
  %1457 = invoke noundef float @_ZL5ImMinIfET_S0_S0_(float noundef 1.000000e+01, float noundef %1456)
          to label %1458 unwind label %1503

1458:                                             ; preds = %1449
  store float %1457, ptr %103, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  %1459 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1460 = fdiv float %1459, 2.000000e+00
  %1461 = load float, ptr %103, align 4, !tbaa !25
  %1462 = load float, ptr %102, align 4, !tbaa !25
  %1463 = invoke noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1460, float noundef %1461, float noundef %1462)
          to label %1464 unwind label %1507

1464:                                             ; preds = %1458
  store float %1463, ptr %104, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 48, ptr %105) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #9
  %1465 = getelementptr inbounds %struct.ImVec2, ptr %96, i32 0, i32 0
  %1466 = load float, ptr %1465, align 4, !tbaa !24
  %1467 = load float, ptr %104, align 4, !tbaa !25
  %1468 = fadd float %1466, %1467
  %1469 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 1
  %1470 = load float, ptr %1469, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %106, float noundef %1468, float noundef %1470)
          to label %1471 unwind label %1511

1471:                                             ; preds = %1464
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %105, ptr noundef nonnull align 4 dereferenceable(8) %96, ptr noundef nonnull align 4 dereferenceable(8) %106)
          to label %1472 unwind label %1511

1472:                                             ; preds = %1471
  %1473 = getelementptr inbounds %struct.ImRect, ptr %105, i64 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %1474 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 0
  %1475 = load float, ptr %1474, align 4, !tbaa !24
  %1476 = load float, ptr %104, align 4, !tbaa !25
  %1477 = fsub float %1475, %1476
  %1478 = getelementptr inbounds %struct.ImVec2, ptr %96, i32 0, i32 1
  %1479 = load float, ptr %1478, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %107, float noundef %1477, float noundef %1479)
          to label %1480 unwind label %1515

1480:                                             ; preds = %1472
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %1473, ptr noundef nonnull align 4 dereferenceable(8) %107, ptr noundef nonnull align 4 dereferenceable(8) %97)
          to label %1481 unwind label %1515

1481:                                             ; preds = %1480
  %1482 = getelementptr inbounds %struct.ImRect, ptr %105, i64 2
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %1482, ptr noundef nonnull align 4 dereferenceable(8) %96, ptr noundef nonnull align 4 dereferenceable(8) %97)
          to label %1483 unwind label %1515

1483:                                             ; preds = %1481
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr %108) #9
  store i32 -1, ptr %108, align 4, !tbaa !9
  %1484 = getelementptr inbounds i32, ptr %108, i64 1
  store i32 -1, ptr %1484, align 4, !tbaa !9
  %1485 = getelementptr inbounds i32, ptr %108, i64 2
  %1486 = load i32, ptr %99, align 4, !tbaa !9
  %1487 = load i8, ptr %86, align 1, !tbaa !11, !range !27, !noundef !28
  %1488 = trunc i8 %1487 to i1
  %1489 = zext i1 %1488 to i64
  %1490 = select i1 %1488, i32 0, i32 2105376
  %1491 = add i32 %1486, %1490
  store i32 %1491, ptr %1485, align 4, !tbaa !9
  %1492 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1493 = icmp eq i32 %1492, -1
  br i1 %1493, label %1494, label %1614

1494:                                             ; preds = %1483
  %1495 = load i32, ptr %13, align 4, !tbaa !9
  %1496 = and i32 %1495, 2
  %1497 = icmp ne i32 %1496, 0
  br i1 %1497, label %1498, label %1614

1498:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  store i32 2, ptr %109, align 4, !tbaa !9
  br label %1499

1499:                                             ; preds = %1548, %1498
  %1500 = load i32, ptr %109, align 4, !tbaa !9
  %1501 = icmp sge i32 %1500, 0
  br i1 %1501, label %1520, label %1502

1502:                                             ; preds = %1499
  store i32 28, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %1551

1503:                                             ; preds = %1449
  %1504 = landingpad { ptr, i32 }
          cleanup
  %1505 = extractvalue { ptr, i32 } %1504, 0
  store ptr %1505, ptr %34, align 8
  %1506 = extractvalue { ptr, i32 } %1504, 1
  store i32 %1506, ptr %35, align 4
  br label %1893

1507:                                             ; preds = %1458
  %1508 = landingpad { ptr, i32 }
          cleanup
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %34, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %35, align 4
  br label %1892

1511:                                             ; preds = %1471, %1464
  %1512 = landingpad { ptr, i32 }
          cleanup
  %1513 = extractvalue { ptr, i32 } %1512, 0
  store ptr %1513, ptr %34, align 8
  %1514 = extractvalue { ptr, i32 } %1512, 1
  store i32 %1514, ptr %35, align 4
  br label %1519

1515:                                             ; preds = %1481, %1480, %1472
  %1516 = landingpad { ptr, i32 }
          cleanup
  %1517 = extractvalue { ptr, i32 } %1516, 0
  store ptr %1517, ptr %34, align 8
  %1518 = extractvalue { ptr, i32 } %1516, 1
  store i32 %1518, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  br label %1519

1519:                                             ; preds = %1515, %1511
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  br label %1891

1520:                                             ; preds = %1499
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #9
  %1521 = load i32, ptr %109, align 4, !tbaa !9
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds [3 x %struct.ImRect], ptr %105, i64 0, i64 %1522
  store ptr %1523, ptr %110, align 8, !tbaa !5
  %1524 = load ptr, ptr %110, align 8, !tbaa !5
  %1525 = load ptr, ptr %15, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.ImGuiIO, ptr %1525, i32 0, i32 56
  %1527 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %1524, ptr noundef nonnull align 4 dereferenceable(8) %1526)
          to label %1528 unwind label %1530

1528:                                             ; preds = %1520
  br i1 %1527, label %1534, label %1529

1529:                                             ; preds = %1528
  store i32 30, ptr %24, align 4
  br label %1545

1530:                                             ; preds = %1534, %1520
  %1531 = landingpad { ptr, i32 }
          cleanup
  %1532 = extractvalue { ptr, i32 } %1531, 0
  store ptr %1532, ptr %34, align 8
  %1533 = extractvalue { ptr, i32 } %1531, 1
  store i32 %1533, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %1890

1534:                                             ; preds = %1528
  %1535 = load ptr, ptr %25, align 8, !tbaa !5
  %1536 = load ptr, ptr %110, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.ImRect, ptr %1536, i32 0, i32 0
  %1538 = load ptr, ptr %110, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.ImRect, ptr %1538, i32 0, i32 1
  %1540 = load i32, ptr %109, align 4, !tbaa !9
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds [3 x i32], ptr %108, i64 0, i64 %1541
  %1543 = load i32, ptr %1542, align 4, !tbaa !9
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1535, ptr noundef nonnull align 4 dereferenceable(8) %1537, ptr noundef nonnull align 4 dereferenceable(8) %1539, i32 noundef %1543, float noundef 2.000000e+00, i32 noundef 0)
          to label %1544 unwind label %1530

1544:                                             ; preds = %1534
  store i32 0, ptr %24, align 4
  br label %1545

1545:                                             ; preds = %1544, %1529
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  %1546 = load i32, ptr %24, align 4
  switch i32 %1546, label %2979 [
    i32 0, label %1547
    i32 30, label %1548
  ]

1547:                                             ; preds = %1545
  br label %1548

1548:                                             ; preds = %1547, %1545
  %1549 = load i32, ptr %109, align 4, !tbaa !9
  %1550 = add nsw i32 %1549, -1
  store i32 %1550, ptr %109, align 4, !tbaa !9
  br label %1499, !llvm.loop !44

1551:                                             ; preds = %1502
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  store i32 0, ptr %111, align 4, !tbaa !9
  br label %1552

1552:                                             ; preds = %1608, %1551
  %1553 = load i32, ptr %111, align 4, !tbaa !9
  %1554 = icmp slt i32 %1553, 3
  br i1 %1554, label %1556, label %1555

1555:                                             ; preds = %1552
  store i32 31, ptr %24, align 4
  br label %1612

1556:                                             ; preds = %1552
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  %1557 = load i32, ptr %111, align 4, !tbaa !9
  %1558 = sext i32 %1557 to i64
  %1559 = getelementptr inbounds [3 x %struct.ImRect], ptr %105, i64 0, i64 %1558
  store ptr %1559, ptr %112, align 8, !tbaa !5
  %1560 = load ptr, ptr %112, align 8, !tbaa !5
  %1561 = load ptr, ptr %15, align 8, !tbaa !5
  %1562 = getelementptr inbounds %struct.ImGuiIO, ptr %1561, i32 0, i32 56
  %1563 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %1560, ptr noundef nonnull align 4 dereferenceable(8) %1562)
          to label %1564 unwind label %1566

1564:                                             ; preds = %1556
  br i1 %1563, label %1570, label %1565

1565:                                             ; preds = %1564
  store i32 33, ptr %24, align 4
  br label %1605

1566:                                             ; preds = %1593, %1584, %1556
  %1567 = landingpad { ptr, i32 }
          cleanup
  %1568 = extractvalue { ptr, i32 } %1567, 0
  store ptr %1568, ptr %34, align 8
  %1569 = extractvalue { ptr, i32 } %1567, 1
  store i32 %1569, ptr %35, align 4
  br label %1611

1570:                                             ; preds = %1564
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #9
  %1571 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %50)
          to label %1572 unwind label %1580

1572:                                             ; preds = %1570
  store <2 x float> %1571, ptr %114, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %113, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %114)
          to label %1573 unwind label %1580

1573:                                             ; preds = %1572
  %1574 = load ptr, ptr %15, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.ImGuiIO, ptr %1574, i32 0, i32 56
  %1576 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %113, ptr noundef nonnull align 4 dereferenceable(8) %1575)
          to label %1577 unwind label %1580

1577:                                             ; preds = %1573
  %1578 = xor i1 %1576, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #9
  br i1 %1578, label %1579, label %1584

1579:                                             ; preds = %1577
  store i32 33, ptr %24, align 4
  br label %1605

1580:                                             ; preds = %1573, %1572, %1570
  %1581 = landingpad { ptr, i32 }
          cleanup
  %1582 = extractvalue { ptr, i32 } %1581, 0
  store ptr %1582, ptr %34, align 8
  %1583 = extractvalue { ptr, i32 } %1581, 1
  store i32 %1583, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #9
  br label %1611

1584:                                             ; preds = %1577
  %1585 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %1586 unwind label %1566

1586:                                             ; preds = %1584
  br i1 %1585, label %1587, label %1604

1587:                                             ; preds = %1586
  %1588 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !11, !range !27, !noundef !28
  %1589 = trunc i8 %1588 to i1
  br i1 %1589, label %1604, label %1590

1590:                                             ; preds = %1587
  %1591 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !11, !range !27, !noundef !28
  %1592 = trunc i8 %1591 to i1
  br i1 %1592, label %1604, label %1593

1593:                                             ; preds = %1590
  %1594 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %1594, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1595 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1595, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !9
  %1596 = load i32, ptr %111, align 4, !tbaa !9
  %1597 = add nsw i32 %1596, 1
  store i32 %1597, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %1598 = load ptr, ptr %8, align 8, !tbaa !5
  %1599 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1600 = load ptr, ptr %1598, align 8, !tbaa !20
  %1601 = getelementptr inbounds ptr, ptr %1600, i64 3
  %1602 = load ptr, ptr %1601, align 8
  invoke void %1602(ptr noundef nonnull align 8 dereferenceable(9) %1598, i32 noundef %1599)
          to label %1603 unwind label %1566

1603:                                             ; preds = %1593
  store i32 31, ptr %24, align 4
  br label %1605

1604:                                             ; preds = %1590, %1587, %1586
  store i32 0, ptr %24, align 4
  br label %1605

1605:                                             ; preds = %1604, %1603, %1579, %1565
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  %1606 = load i32, ptr %24, align 4
  switch i32 %1606, label %1612 [
    i32 0, label %1607
    i32 33, label %1608
  ]

1607:                                             ; preds = %1605
  br label %1608

1608:                                             ; preds = %1607, %1605
  %1609 = load i32, ptr %111, align 4, !tbaa !9
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr %111, align 4, !tbaa !9
  br label %1552, !llvm.loop !45

1611:                                             ; preds = %1580, %1566
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %1890

1612:                                             ; preds = %1605, %1555
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

1614:                                             ; preds = %1613, %1494, %1483
  %1615 = load i64, ptr %94, align 8, !tbaa !38
  %1616 = icmp ugt i64 %1615, 0
  br i1 %1616, label %1617, label %1779

1617:                                             ; preds = %1614
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #9
  %1618 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %1619 = load float, ptr %1618, align 4, !tbaa !24
  %1620 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %1621 = load float, ptr %1620, align 4, !tbaa !30
  %1622 = load i32, ptr %21, align 4, !tbaa !9
  %1623 = load i32, ptr %90, align 4, !tbaa !9
  %1624 = mul nsw i32 %1622, %1623
  %1625 = sitofp i32 %1624 to float
  %1626 = fadd float %1621, %1625
  %1627 = fadd float %1626, 1.000000e+00
  %1628 = load i64, ptr %71, align 8, !tbaa !38
  %1629 = uitofp i64 %1628 to float
  %1630 = fadd float %1627, %1629
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %115, float noundef %1619, float noundef %1630)
          to label %1631 unwind label %1730

1631:                                             ; preds = %1617
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #9
  %1632 = load i32, ptr %18, align 4, !tbaa !9
  %1633 = sitofp i32 %1632 to float
  %1634 = load i32, ptr %28, align 4, !tbaa !9
  %1635 = load ptr, ptr %8, align 8, !tbaa !5
  %1636 = load ptr, ptr %1635, align 8, !tbaa !20
  %1637 = getelementptr inbounds ptr, ptr %1636, i64 0
  %1638 = load ptr, ptr %1637, align 8
  %1639 = invoke noundef i32 %1638(ptr noundef nonnull align 8 dereferenceable(9) %1635)
          to label %1640 unwind label %1734

1640:                                             ; preds = %1631
  %1641 = sub nsw i32 %1634, %1639
  %1642 = sitofp i32 %1641 to float
  %1643 = fsub float %1642, 5.000000e-01
  %1644 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1645 = fneg float %1643
  %1646 = call float @llvm.fmuladd.f32(float %1645, float %1644, float %1633)
  %1647 = load i32, ptr %21, align 4, !tbaa !9
  %1648 = sitofp i32 %1647 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %118, float noundef %1646, float noundef %1648)
          to label %1649 unwind label %1734

1649:                                             ; preds = %1640
  %1650 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %115, ptr noundef nonnull align 4 dereferenceable(8) %118)
          to label %1651 unwind label %1734

1651:                                             ; preds = %1649
  store <2 x float> %1650, ptr %117, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #9
  %1652 = load i32, ptr %18, align 4, !tbaa !9
  %1653 = sitofp i32 %1652 to float
  %1654 = load ptr, ptr %8, align 8, !tbaa !5
  %1655 = load ptr, ptr %1654, align 8, !tbaa !20
  %1656 = getelementptr inbounds ptr, ptr %1655, i64 1
  %1657 = load ptr, ptr %1656, align 8
  %1658 = invoke noundef i32 %1657(ptr noundef nonnull align 8 dereferenceable(9) %1654)
          to label %1659 unwind label %1738

1659:                                             ; preds = %1651
  %1660 = load i32, ptr %28, align 4, !tbaa !9
  %1661 = sub nsw i32 %1658, %1660
  %1662 = sitofp i32 %1661 to float
  %1663 = fsub float %1662, 5.000000e-01
  %1664 = fadd float %1663, 2.000000e+00
  %1665 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1666 = call float @llvm.fmuladd.f32(float %1664, float %1665, float %1653)
  %1667 = load i64, ptr %94, align 8, !tbaa !38
  %1668 = load i32, ptr %21, align 4, !tbaa !9
  %1669 = sext i32 %1668 to i64
  %1670 = add i64 %1667, %1669
  %1671 = uitofp i64 %1670 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %120, float noundef %1666, float noundef %1671)
          to label %1672 unwind label %1738

1672:                                             ; preds = %1659
  %1673 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %115, ptr noundef nonnull align 4 dereferenceable(8) %120)
          to label %1674 unwind label %1738

1674:                                             ; preds = %1672
  store <2 x float> %1673, ptr %119, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %116, ptr noundef nonnull align 4 dereferenceable(8) %117, ptr noundef nonnull align 4 dereferenceable(8) %119)
          to label %1675 unwind label %1738

1675:                                             ; preds = %1674
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #9
  %1676 = load i32, ptr %18, align 4, !tbaa !9
  %1677 = sitofp i32 %1676 to float
  %1678 = load i32, ptr %21, align 4, !tbaa !9
  %1679 = sitofp i32 %1678 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %123, float noundef %1677, float noundef %1679)
          to label %1680 unwind label %1743

1680:                                             ; preds = %1675
  %1681 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %115, ptr noundef nonnull align 4 dereferenceable(8) %123)
          to label %1682 unwind label %1743

1682:                                             ; preds = %1680
  store <2 x float> %1681, ptr %122, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #9
  %1683 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %1684 = load float, ptr %1683, align 4, !tbaa !24
  %1685 = load i64, ptr %94, align 8, !tbaa !38
  %1686 = load i32, ptr %21, align 4, !tbaa !9
  %1687 = sext i32 %1686 to i64
  %1688 = add i64 %1685, %1687
  %1689 = uitofp i64 %1688 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %125, float noundef %1684, float noundef %1689)
          to label %1690 unwind label %1747

1690:                                             ; preds = %1682
  %1691 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %115, ptr noundef nonnull align 4 dereferenceable(8) %125)
          to label %1692 unwind label %1747

1692:                                             ; preds = %1690
  store <2 x float> %1691, ptr %124, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %121, ptr noundef nonnull align 4 dereferenceable(8) %122, ptr noundef nonnull align 4 dereferenceable(8) %124)
          to label %1693 unwind label %1747

1693:                                             ; preds = %1692
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #9
  %1694 = load i32, ptr %21, align 4, !tbaa !9
  %1695 = sitofp i32 %1694 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %128, float noundef 0.000000e+00, float noundef %1695)
          to label %1696 unwind label %1752

1696:                                             ; preds = %1693
  %1697 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %115, ptr noundef nonnull align 4 dereferenceable(8) %128)
          to label %1698 unwind label %1752

1698:                                             ; preds = %1696
  store <2 x float> %1697, ptr %127, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #9
  %1699 = load i32, ptr %18, align 4, !tbaa !9
  %1700 = sitofp i32 %1699 to float
  %1701 = load i64, ptr %94, align 8, !tbaa !38
  %1702 = uitofp i64 %1701 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %130, float noundef %1700, float noundef %1702)
          to label %1703 unwind label %1756

1703:                                             ; preds = %1698
  %1704 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %115, ptr noundef nonnull align 4 dereferenceable(8) %130)
          to label %1705 unwind label %1756

1705:                                             ; preds = %1703
  store <2 x float> %1704, ptr %129, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %126, ptr noundef nonnull align 4 dereferenceable(8) %127, ptr noundef nonnull align 4 dereferenceable(8) %129)
          to label %1706 unwind label %1756

1706:                                             ; preds = %1705
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #9
  %1707 = load i32, ptr %21, align 4, !tbaa !9
  %1708 = sitofp i32 %1707 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %133, float noundef 0.000000e+00, float noundef %1708)
          to label %1709 unwind label %1761

1709:                                             ; preds = %1706
  %1710 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %133)
          to label %1711 unwind label %1761

1711:                                             ; preds = %1709
  store <2 x float> %1710, ptr %132, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #9
  %1712 = load i32, ptr %18, align 4, !tbaa !9
  %1713 = sitofp i32 %1712 to float
  %1714 = load i64, ptr %94, align 8, !tbaa !38
  %1715 = load i32, ptr %21, align 4, !tbaa !9
  %1716 = sext i32 %1715 to i64
  %1717 = add i64 %1714, %1716
  %1718 = uitofp i64 %1717 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %135, float noundef %1713, float noundef %1718)
          to label %1719 unwind label %1765

1719:                                             ; preds = %1711
  %1720 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %135)
          to label %1721 unwind label %1765

1721:                                             ; preds = %1719
  store <2 x float> %1720, ptr %134, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %131, ptr noundef nonnull align 4 dereferenceable(8) %132, ptr noundef nonnull align 4 dereferenceable(8) %134)
          to label %1722 unwind label %1765

1722:                                             ; preds = %1721
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #9
  call void @llvm.lifetime.start.p0(i64 68, ptr %136) #9
  %1723 = getelementptr inbounds %struct.CustomDraw, ptr %136, i32 0, i32 0
  %1724 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %1724, ptr %1723, align 4, !tbaa !46
  %1725 = getelementptr inbounds %struct.CustomDraw, ptr %136, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1725, ptr align 4 %116, i64 16, i1 false), !tbaa.struct !48
  %1726 = getelementptr inbounds %struct.CustomDraw, ptr %136, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1726, ptr align 4 %126, i64 16, i1 false), !tbaa.struct !48
  %1727 = getelementptr inbounds %struct.CustomDraw, ptr %136, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1727, ptr align 4 %121, i64 16, i1 false), !tbaa.struct !48
  %1728 = getelementptr inbounds %struct.CustomDraw, ptr %136, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1728, ptr align 4 %131, i64 16, i1 false), !tbaa.struct !48
  invoke void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(68) %136)
          to label %1729 unwind label %1770

1729:                                             ; preds = %1722
  call void @llvm.lifetime.end.p0(i64 68, ptr %136) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  br label %1883

1730:                                             ; preds = %1617
  %1731 = landingpad { ptr, i32 }
          cleanup
  %1732 = extractvalue { ptr, i32 } %1731, 0
  store ptr %1732, ptr %34, align 8
  %1733 = extractvalue { ptr, i32 } %1731, 1
  store i32 %1733, ptr %35, align 4
  br label %1778

1734:                                             ; preds = %1649, %1640, %1631
  %1735 = landingpad { ptr, i32 }
          cleanup
  %1736 = extractvalue { ptr, i32 } %1735, 0
  store ptr %1736, ptr %34, align 8
  %1737 = extractvalue { ptr, i32 } %1735, 1
  store i32 %1737, ptr %35, align 4
  br label %1742

1738:                                             ; preds = %1674, %1672, %1659, %1651
  %1739 = landingpad { ptr, i32 }
          cleanup
  %1740 = extractvalue { ptr, i32 } %1739, 0
  store ptr %1740, ptr %34, align 8
  %1741 = extractvalue { ptr, i32 } %1739, 1
  store i32 %1741, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #9
  br label %1742

1742:                                             ; preds = %1738, %1734
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #9
  br label %1777

1743:                                             ; preds = %1680, %1675
  %1744 = landingpad { ptr, i32 }
          cleanup
  %1745 = extractvalue { ptr, i32 } %1744, 0
  store ptr %1745, ptr %34, align 8
  %1746 = extractvalue { ptr, i32 } %1744, 1
  store i32 %1746, ptr %35, align 4
  br label %1751

1747:                                             ; preds = %1692, %1690, %1682
  %1748 = landingpad { ptr, i32 }
          cleanup
  %1749 = extractvalue { ptr, i32 } %1748, 0
  store ptr %1749, ptr %34, align 8
  %1750 = extractvalue { ptr, i32 } %1748, 1
  store i32 %1750, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  br label %1751

1751:                                             ; preds = %1747, %1743
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  br label %1776

1752:                                             ; preds = %1696, %1693
  %1753 = landingpad { ptr, i32 }
          cleanup
  %1754 = extractvalue { ptr, i32 } %1753, 0
  store ptr %1754, ptr %34, align 8
  %1755 = extractvalue { ptr, i32 } %1753, 1
  store i32 %1755, ptr %35, align 4
  br label %1760

1756:                                             ; preds = %1705, %1703, %1698
  %1757 = landingpad { ptr, i32 }
          cleanup
  %1758 = extractvalue { ptr, i32 } %1757, 0
  store ptr %1758, ptr %34, align 8
  %1759 = extractvalue { ptr, i32 } %1757, 1
  store i32 %1759, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #9
  br label %1760

1760:                                             ; preds = %1756, %1752
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #9
  br label %1775

1761:                                             ; preds = %1709, %1706
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %34, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %35, align 4
  br label %1769

1765:                                             ; preds = %1721, %1719, %1711
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %34, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #9
  br label %1769

1769:                                             ; preds = %1765, %1761
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #9
  br label %1774

1770:                                             ; preds = %1722
  %1771 = landingpad { ptr, i32 }
          cleanup
  %1772 = extractvalue { ptr, i32 } %1771, 0
  store ptr %1772, ptr %34, align 8
  %1773 = extractvalue { ptr, i32 } %1771, 1
  store i32 %1773, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 68, ptr %136) #9
  br label %1774

1774:                                             ; preds = %1770, %1769
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #9
  br label %1775

1775:                                             ; preds = %1774, %1760
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #9
  br label %1776

1776:                                             ; preds = %1775, %1751
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #9
  br label %1777

1777:                                             ; preds = %1776, %1742
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #9
  br label %1778

1778:                                             ; preds = %1777, %1730
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #9
  br label %1890

1779:                                             ; preds = %1614
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #9
  %1780 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %1781 = load float, ptr %1780, align 4, !tbaa !24
  %1782 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 1
  %1783 = load float, ptr %1782, align 4, !tbaa !30
  %1784 = load i32, ptr %21, align 4, !tbaa !9
  %1785 = load i32, ptr %90, align 4, !tbaa !9
  %1786 = mul nsw i32 %1784, %1785
  %1787 = sitofp i32 %1786 to float
  %1788 = fadd float %1783, %1787
  %1789 = load i64, ptr %71, align 8, !tbaa !38
  %1790 = uitofp i64 %1789 to float
  %1791 = fadd float %1788, %1790
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %137, float noundef %1781, float noundef %1791)
          to label %1792 unwind label %1854

1792:                                             ; preds = %1779
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #9
  %1793 = load i32, ptr %18, align 4, !tbaa !9
  %1794 = sitofp i32 %1793 to float
  %1795 = load i32, ptr %28, align 4, !tbaa !9
  %1796 = load ptr, ptr %8, align 8, !tbaa !5
  %1797 = load ptr, ptr %1796, align 8, !tbaa !20
  %1798 = getelementptr inbounds ptr, ptr %1797, i64 0
  %1799 = load ptr, ptr %1798, align 8
  %1800 = invoke noundef i32 %1799(ptr noundef nonnull align 8 dereferenceable(9) %1796)
          to label %1801 unwind label %1858

1801:                                             ; preds = %1792
  %1802 = sub nsw i32 %1795, %1800
  %1803 = sitofp i32 %1802 to float
  %1804 = fsub float %1803, 5.000000e-01
  %1805 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1806 = fneg float %1804
  %1807 = call float @llvm.fmuladd.f32(float %1806, float %1805, float %1794)
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %140, float noundef %1807, float noundef 0.000000e+00)
          to label %1808 unwind label %1858

1808:                                             ; preds = %1801
  %1809 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(8) %140)
          to label %1810 unwind label %1858

1810:                                             ; preds = %1808
  store <2 x float> %1809, ptr %139, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #9
  %1811 = load i32, ptr %18, align 4, !tbaa !9
  %1812 = sitofp i32 %1811 to float
  %1813 = load ptr, ptr %8, align 8, !tbaa !5
  %1814 = load ptr, ptr %1813, align 8, !tbaa !20
  %1815 = getelementptr inbounds ptr, ptr %1814, i64 1
  %1816 = load ptr, ptr %1815, align 8
  %1817 = invoke noundef i32 %1816(ptr noundef nonnull align 8 dereferenceable(9) %1813)
          to label %1818 unwind label %1862

1818:                                             ; preds = %1810
  %1819 = load i32, ptr %28, align 4, !tbaa !9
  %1820 = sub nsw i32 %1817, %1819
  %1821 = sitofp i32 %1820 to float
  %1822 = fsub float %1821, 5.000000e-01
  %1823 = fadd float %1822, 2.000000e+00
  %1824 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1825 = call float @llvm.fmuladd.f32(float %1823, float %1824, float %1812)
  %1826 = load i32, ptr %21, align 4, !tbaa !9
  %1827 = sitofp i32 %1826 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %142, float noundef %1825, float noundef %1827)
          to label %1828 unwind label %1862

1828:                                             ; preds = %1818
  %1829 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(8) %142)
          to label %1830 unwind label %1862

1830:                                             ; preds = %1828
  store <2 x float> %1829, ptr %141, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %138, ptr noundef nonnull align 4 dereferenceable(8) %139, ptr noundef nonnull align 4 dereferenceable(8) %141)
          to label %1831 unwind label %1862

1831:                                             ; preds = %1830
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %143) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #9
  %1832 = load i32, ptr %18, align 4, !tbaa !9
  %1833 = sitofp i32 %1832 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef %1833, float noundef 0.000000e+00)
          to label %1834 unwind label %1867

1834:                                             ; preds = %1831
  %1835 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(8) %145)
          to label %1836 unwind label %1867

1836:                                             ; preds = %1834
  store <2 x float> %1835, ptr %144, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #9
  %1837 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %1838 = load float, ptr %1837, align 4, !tbaa !24
  %1839 = load i32, ptr %21, align 4, !tbaa !9
  %1840 = sitofp i32 %1839 to float
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %147, float noundef %1838, float noundef %1840)
          to label %1841 unwind label %1871

1841:                                             ; preds = %1836
  %1842 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(8) %147)
          to label %1843 unwind label %1871

1843:                                             ; preds = %1841
  store <2 x float> %1842, ptr %146, align 4
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %143, ptr noundef nonnull align 4 dereferenceable(8) %144, ptr noundef nonnull align 4 dereferenceable(8) %146)
          to label %1844 unwind label %1871

1844:                                             ; preds = %1843
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #9
  call void @llvm.lifetime.start.p0(i64 68, ptr %148) #9
  %1845 = getelementptr inbounds %struct.CustomDraw, ptr %148, i32 0, i32 0
  %1846 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %1846, ptr %1845, align 4, !tbaa !46
  %1847 = getelementptr inbounds %struct.CustomDraw, ptr %148, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1847, ptr align 4 %138, i64 16, i1 false), !tbaa.struct !48
  %1848 = getelementptr inbounds %struct.CustomDraw, ptr %148, i32 0, i32 2
  invoke void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %1848)
          to label %1849 unwind label %1876

1849:                                             ; preds = %1844
  %1850 = getelementptr inbounds %struct.CustomDraw, ptr %148, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1850, ptr align 4 %143, i64 16, i1 false), !tbaa.struct !48
  %1851 = getelementptr inbounds %struct.CustomDraw, ptr %148, i32 0, i32 4
  invoke void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %1851)
          to label %1852 unwind label %1876

1852:                                             ; preds = %1849
  invoke void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 4 dereferenceable(68) %148)
          to label %1853 unwind label %1876

1853:                                             ; preds = %1852
  call void @llvm.lifetime.end.p0(i64 68, ptr %148) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #9
  br label %1883

1854:                                             ; preds = %1779
  %1855 = landingpad { ptr, i32 }
          cleanup
  %1856 = extractvalue { ptr, i32 } %1855, 0
  store ptr %1856, ptr %34, align 8
  %1857 = extractvalue { ptr, i32 } %1855, 1
  store i32 %1857, ptr %35, align 4
  br label %1882

1858:                                             ; preds = %1808, %1801, %1792
  %1859 = landingpad { ptr, i32 }
          cleanup
  %1860 = extractvalue { ptr, i32 } %1859, 0
  store ptr %1860, ptr %34, align 8
  %1861 = extractvalue { ptr, i32 } %1859, 1
  store i32 %1861, ptr %35, align 4
  br label %1866

1862:                                             ; preds = %1830, %1828, %1818, %1810
  %1863 = landingpad { ptr, i32 }
          cleanup
  %1864 = extractvalue { ptr, i32 } %1863, 0
  store ptr %1864, ptr %34, align 8
  %1865 = extractvalue { ptr, i32 } %1863, 1
  store i32 %1865, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #9
  br label %1866

1866:                                             ; preds = %1862, %1858
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #9
  br label %1881

1867:                                             ; preds = %1834, %1831
  %1868 = landingpad { ptr, i32 }
          cleanup
  %1869 = extractvalue { ptr, i32 } %1868, 0
  store ptr %1869, ptr %34, align 8
  %1870 = extractvalue { ptr, i32 } %1868, 1
  store i32 %1870, ptr %35, align 4
  br label %1875

1871:                                             ; preds = %1843, %1841, %1836
  %1872 = landingpad { ptr, i32 }
          cleanup
  %1873 = extractvalue { ptr, i32 } %1872, 0
  store ptr %1873, ptr %34, align 8
  %1874 = extractvalue { ptr, i32 } %1872, 1
  store i32 %1874, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #9
  br label %1875

1875:                                             ; preds = %1871, %1867
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #9
  br label %1880

1876:                                             ; preds = %1852, %1849, %1844
  %1877 = landingpad { ptr, i32 }
          cleanup
  %1878 = extractvalue { ptr, i32 } %1877, 0
  store ptr %1878, ptr %34, align 8
  %1879 = extractvalue { ptr, i32 } %1877, 1
  store i32 %1879, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 68, ptr %148) #9
  br label %1880

1880:                                             ; preds = %1876, %1875
  call void @llvm.lifetime.end.p0(i64 16, ptr %143) #9
  br label %1881

1881:                                             ; preds = %1880, %1866
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #9
  br label %1882

1882:                                             ; preds = %1881, %1854
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #9
  br label %1890

1883:                                             ; preds = %1853, %1729
  %1884 = load i64, ptr %94, align 8, !tbaa !38
  %1885 = load i64, ptr %71, align 8, !tbaa !38
  %1886 = add i64 %1885, %1884
  store i64 %1886, ptr %71, align 8, !tbaa !38
  call void @llvm.lifetime.end.p0(i64 12, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  br label %1887

1887:                                             ; preds = %1883
  %1888 = load i32, ptr %90, align 4, !tbaa !9
  %1889 = add nsw i32 %1888, 1
  store i32 %1889, ptr %90, align 4, !tbaa !9
  br label %1280, !llvm.loop !49

1890:                                             ; preds = %1882, %1778, %1611, %1530
  call void @llvm.lifetime.end.p0(i64 12, ptr %108) #9
  br label %1891

1891:                                             ; preds = %1890, %1519
  call void @llvm.lifetime.end.p0(i64 48, ptr %105) #9
  br label %1892

1892:                                             ; preds = %1891, %1507
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %1893

1893:                                             ; preds = %1892, %1503
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %1894

1894:                                             ; preds = %1893, %1445, %1420
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %1895

1895:                                             ; preds = %1894, %1416
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  br label %1896

1896:                                             ; preds = %1895, %1412
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  br label %1897

1897:                                             ; preds = %1896, %1408
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  br label %1898

1898:                                             ; preds = %1897, %1404
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  br label %1899

1899:                                             ; preds = %1898, %1400
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  br label %1900

1900:                                             ; preds = %1899, %1396
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %2836

1901:                                             ; preds = %1284
  %1902 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1903 = icmp sge i32 %1902, 0
  br i1 %1903, label %1904, label %2038

1904:                                             ; preds = %1901
  invoke void @_ZN5ImGui28SetNextFrameWantCaptureMouseEb(i1 noundef zeroext true)
          to label %1905 unwind label %1928

1905:                                             ; preds = %1904
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %1906 = load i32, ptr %16, align 4, !tbaa !9
  %1907 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !9
  %1908 = sub nsw i32 %1906, %1907
  %1909 = sitofp i32 %1908 to float
  %1910 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %1911 = fdiv float %1909, %1910
  %1912 = fptosi float %1911 to i32
  store i32 %1912, ptr %149, align 4, !tbaa !9
  %1913 = load i32, ptr %149, align 4, !tbaa !9
  %1914 = call i32 @llvm.abs.i32(i32 %1913, i1 true)
  %1915 = icmp sgt i32 %1914, 0
  br i1 %1915, label %1916, label %2008

1916:                                             ; preds = %1905
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #9
  %1917 = load ptr, ptr %8, align 8, !tbaa !5
  %1918 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1919 = load ptr, ptr %1917, align 8, !tbaa !20
  %1920 = getelementptr inbounds ptr, ptr %1919, i64 9
  %1921 = load ptr, ptr %1920, align 8
  invoke void %1921(ptr noundef nonnull align 8 dereferenceable(9) %1917, i32 noundef %1918, ptr noundef %150, ptr noundef %151, ptr noundef null, ptr noundef null)
          to label %1922 unwind label %1932

1922:                                             ; preds = %1916
  %1923 = load ptr, ptr %11, align 8, !tbaa !5
  %1924 = icmp ne ptr %1923, null
  br i1 %1924, label %1925, label %1936

1925:                                             ; preds = %1922
  %1926 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %1927 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %1926, ptr %1927, align 4, !tbaa !9
  br label %1936

1928:                                             ; preds = %2359, %2355, %2354, %2122, %2120, %2050, %1904
  %1929 = landingpad { ptr, i32 }
          cleanup
  %1930 = extractvalue { ptr, i32 } %1929, 0
  store ptr %1930, ptr %34, align 8
  %1931 = extractvalue { ptr, i32 } %1929, 1
  store i32 %1931, ptr %35, align 4
  br label %2836

1932:                                             ; preds = %1916
  %1933 = landingpad { ptr, i32 }
          cleanup
  %1934 = extractvalue { ptr, i32 } %1933, 0
  store ptr %1934, ptr %34, align 8
  %1935 = extractvalue { ptr, i32 } %1933, 1
  store i32 %1935, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #9
  br label %2037

1936:                                             ; preds = %1925, %1922
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #9
  %1937 = load ptr, ptr %150, align 8, !tbaa !5
  store ptr %1937, ptr %152, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #9
  %1938 = load ptr, ptr %151, align 8, !tbaa !5
  store ptr %1938, ptr %153, align 8, !tbaa !5
  %1939 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %1940 = and i32 %1939, 1
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1947

1942:                                             ; preds = %1936
  %1943 = load i32, ptr %149, align 4, !tbaa !9
  %1944 = load ptr, ptr %152, align 8, !tbaa !5
  %1945 = load i32, ptr %1944, align 4, !tbaa !9
  %1946 = add nsw i32 %1945, %1943
  store i32 %1946, ptr %1944, align 4, !tbaa !9
  br label %1947

1947:                                             ; preds = %1942, %1936
  %1948 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %1949 = and i32 %1948, 2
  %1950 = icmp ne i32 %1949, 0
  br i1 %1950, label %1951, label %1956

1951:                                             ; preds = %1947
  %1952 = load i32, ptr %149, align 4, !tbaa !9
  %1953 = load ptr, ptr %153, align 8, !tbaa !5
  %1954 = load i32, ptr %1953, align 4, !tbaa !9
  %1955 = add nsw i32 %1954, %1952
  store i32 %1955, ptr %1953, align 4, !tbaa !9
  br label %1956

1956:                                             ; preds = %1951, %1947
  %1957 = load ptr, ptr %152, align 8, !tbaa !5
  %1958 = load i32, ptr %1957, align 4, !tbaa !9
  %1959 = icmp slt i32 %1958, 0
  br i1 %1959, label %1960, label %1972

1960:                                             ; preds = %1956
  %1961 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %1962 = and i32 %1961, 2
  %1963 = icmp ne i32 %1962, 0
  br i1 %1963, label %1964, label %1970

1964:                                             ; preds = %1960
  %1965 = load ptr, ptr %152, align 8, !tbaa !5
  %1966 = load i32, ptr %1965, align 4, !tbaa !9
  %1967 = load ptr, ptr %153, align 8, !tbaa !5
  %1968 = load i32, ptr %1967, align 4, !tbaa !9
  %1969 = sub nsw i32 %1968, %1966
  store i32 %1969, ptr %1967, align 4, !tbaa !9
  br label %1970

1970:                                             ; preds = %1964, %1960
  %1971 = load ptr, ptr %152, align 8, !tbaa !5
  store i32 0, ptr %1971, align 4, !tbaa !9
  br label %1972

1972:                                             ; preds = %1970, %1956
  %1973 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %1974 = and i32 %1973, 1
  %1975 = icmp ne i32 %1974, 0
  br i1 %1975, label %1976, label %1986

1976:                                             ; preds = %1972
  %1977 = load ptr, ptr %152, align 8, !tbaa !5
  %1978 = load i32, ptr %1977, align 4, !tbaa !9
  %1979 = load ptr, ptr %153, align 8, !tbaa !5
  %1980 = load i32, ptr %1979, align 4, !tbaa !9
  %1981 = icmp sgt i32 %1978, %1980
  br i1 %1981, label %1982, label %1986

1982:                                             ; preds = %1976
  %1983 = load ptr, ptr %153, align 8, !tbaa !5
  %1984 = load i32, ptr %1983, align 4, !tbaa !9
  %1985 = load ptr, ptr %152, align 8, !tbaa !5
  store i32 %1984, ptr %1985, align 4, !tbaa !9
  br label %1986

1986:                                             ; preds = %1982, %1976, %1972
  %1987 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %1988 = and i32 %1987, 2
  %1989 = icmp ne i32 %1988, 0
  br i1 %1989, label %1990, label %2000

1990:                                             ; preds = %1986
  %1991 = load ptr, ptr %153, align 8, !tbaa !5
  %1992 = load i32, ptr %1991, align 4, !tbaa !9
  %1993 = load ptr, ptr %152, align 8, !tbaa !5
  %1994 = load i32, ptr %1993, align 4, !tbaa !9
  %1995 = icmp slt i32 %1992, %1994
  br i1 %1995, label %1996, label %2000

1996:                                             ; preds = %1990
  %1997 = load ptr, ptr %152, align 8, !tbaa !5
  %1998 = load i32, ptr %1997, align 4, !tbaa !9
  %1999 = load ptr, ptr %153, align 8, !tbaa !5
  store i32 %1998, ptr %1999, align 4, !tbaa !9
  br label %2000

2000:                                             ; preds = %1996, %1990, %1986
  %2001 = load i32, ptr %149, align 4, !tbaa !9
  %2002 = sitofp i32 %2001 to float
  %2003 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %2004 = fmul float %2002, %2003
  %2005 = fptosi float %2004 to i32
  %2006 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !9
  %2007 = add nsw i32 %2006, %2005
  store i32 %2007, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #9
  br label %2008

2008:                                             ; preds = %2000, %1905
  %2009 = load ptr, ptr %15, align 8, !tbaa !5
  %2010 = getelementptr inbounds %struct.ImGuiIO, ptr %2009, i32 0, i32 57
  %2011 = getelementptr inbounds [5 x i8], ptr %2010, i64 0, i64 0
  %2012 = load i8, ptr %2011, align 4, !tbaa !11, !range !27, !noundef !28
  %2013 = trunc i8 %2012 to i1
  br i1 %2013, label %2036, label %2014

2014:                                             ; preds = %2008
  %2015 = load i32, ptr %149, align 4, !tbaa !9
  %2016 = icmp ne i32 %2015, 0
  br i1 %2016, label %2026, label %2017

2017:                                             ; preds = %2014
  %2018 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !9
  %2019 = icmp ne i32 %2018, 0
  br i1 %2019, label %2020, label %2026

2020:                                             ; preds = %2017
  %2021 = load ptr, ptr %11, align 8, !tbaa !5
  %2022 = icmp ne ptr %2021, null
  br i1 %2022, label %2023, label %2026

2023:                                             ; preds = %2020
  %2024 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %2025 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %2024, ptr %2025, align 4, !tbaa !9
  store i8 1, ptr %14, align 1, !tbaa !11
  br label %2026

2026:                                             ; preds = %2023, %2020, %2017, %2014
  store i32 -1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %2027 = load ptr, ptr %8, align 8, !tbaa !5
  %2028 = load ptr, ptr %2027, align 8, !tbaa !20
  %2029 = getelementptr inbounds ptr, ptr %2028, i64 4
  %2030 = load ptr, ptr %2029, align 8
  invoke void %2030(ptr noundef nonnull align 8 dereferenceable(9) %2027)
          to label %2031 unwind label %2032

2031:                                             ; preds = %2026
  br label %2036

2032:                                             ; preds = %2026
  %2033 = landingpad { ptr, i32 }
          cleanup
  %2034 = extractvalue { ptr, i32 } %2033, 0
  store ptr %2034, ptr %34, align 8
  %2035 = extractvalue { ptr, i32 } %2033, 1
  store i32 %2035, ptr %35, align 4
  br label %2037

2036:                                             ; preds = %2031, %2008
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %2038

2037:                                             ; preds = %2032, %1932
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %2836

2038:                                             ; preds = %2036, %1901
  %2039 = load ptr, ptr %9, align 8, !tbaa !5
  %2040 = icmp ne ptr %2039, null
  br i1 %2040, label %2041, label %2120

2041:                                             ; preds = %2038
  %2042 = load ptr, ptr %12, align 8, !tbaa !5
  %2043 = icmp ne ptr %2042, null
  br i1 %2043, label %2044, label %2120

2044:                                             ; preds = %2041
  %2045 = load ptr, ptr %9, align 8, !tbaa !5
  %2046 = load i32, ptr %2045, align 4, !tbaa !9
  %2047 = load ptr, ptr %12, align 8, !tbaa !5
  %2048 = load i32, ptr %2047, align 4, !tbaa !9
  %2049 = icmp sge i32 %2046, %2048
  br i1 %2049, label %2050, label %2120

2050:                                             ; preds = %2044
  %2051 = load ptr, ptr %9, align 8, !tbaa !5
  %2052 = load i32, ptr %2051, align 4, !tbaa !9
  %2053 = load ptr, ptr %8, align 8, !tbaa !5
  %2054 = load ptr, ptr %2053, align 8, !tbaa !20
  %2055 = getelementptr inbounds ptr, ptr %2054, i64 1
  %2056 = load ptr, ptr %2055, align 8
  %2057 = invoke noundef i32 %2056(ptr noundef nonnull align 8 dereferenceable(9) %2053)
          to label %2058 unwind label %1928

2058:                                             ; preds = %2050
  %2059 = icmp sle i32 %2052, %2057
  br i1 %2059, label %2060, label %2120

2060:                                             ; preds = %2058
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #9
  %2061 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %2062 = load float, ptr %2061, align 4, !tbaa !24
  %2063 = load i32, ptr %18, align 4, !tbaa !9
  %2064 = sitofp i32 %2063 to float
  %2065 = fadd float %2062, %2064
  %2066 = load ptr, ptr %9, align 8, !tbaa !5
  %2067 = load i32, ptr %2066, align 4, !tbaa !9
  %2068 = load i32, ptr %28, align 4, !tbaa !9
  %2069 = sub nsw i32 %2067, %2068
  %2070 = sitofp i32 %2069 to float
  %2071 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %2072 = call float @llvm.fmuladd.f32(float %2070, float %2071, float %2065)
  %2073 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %2074 = fdiv float %2073, 2.000000e+00
  %2075 = fadd float %2072, %2074
  %2076 = fsub float %2075, 4.000000e+00
  store float %2076, ptr %154, align 4, !tbaa !25
  %2077 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #9
  %2078 = load float, ptr %154, align 4, !tbaa !25
  %2079 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2080 = load float, ptr %2079, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %155, float noundef %2078, float noundef %2080)
          to label %2081 unwind label %2101

2081:                                             ; preds = %2060
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #9
  %2082 = load float, ptr %154, align 4, !tbaa !25
  %2083 = getelementptr inbounds %struct.ImVec2, ptr %53, i32 0, i32 1
  %2084 = load float, ptr %2083, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %156, float noundef %2082, float noundef %2084)
          to label %2085 unwind label %2105

2085:                                             ; preds = %2081
  invoke void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %2077, ptr noundef nonnull align 4 dereferenceable(8) %155, ptr noundef nonnull align 4 dereferenceable(8) %156, i32 noundef -1607849217, float noundef 8.000000e+00)
          to label %2086 unwind label %2105

2086:                                             ; preds = %2085
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #9
  call void @llvm.lifetime.start.p0(i64 512, ptr %157) #9
  %2087 = getelementptr inbounds [512 x i8], ptr %157, i64 0, i64 0
  %2088 = load ptr, ptr %9, align 8, !tbaa !5
  %2089 = load i32, ptr %2088, align 4, !tbaa !9
  %2090 = invoke noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %2087, i64 noundef 512, ptr noundef @.str.4, i32 noundef %2089)
          to label %2091 unwind label %2110

2091:                                             ; preds = %2086
  %2092 = load ptr, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #9
  %2093 = load float, ptr %154, align 4, !tbaa !25
  %2094 = fadd float %2093, 1.000000e+01
  %2095 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2096 = load float, ptr %2095, align 4, !tbaa !30
  %2097 = fadd float %2096, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %158, float noundef %2094, float noundef %2097)
          to label %2098 unwind label %2114

2098:                                             ; preds = %2091
  %2099 = getelementptr inbounds [512 x i8], ptr %157, i64 0, i64 0
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %2092, ptr noundef nonnull align 4 dereferenceable(8) %158, i32 noundef -14013697, ptr noundef %2099, ptr noundef null)
          to label %2100 unwind label %2114

2100:                                             ; preds = %2098
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr %157) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #9
  br label %2120

2101:                                             ; preds = %2060
  %2102 = landingpad { ptr, i32 }
          cleanup
  %2103 = extractvalue { ptr, i32 } %2102, 0
  store ptr %2103, ptr %34, align 8
  %2104 = extractvalue { ptr, i32 } %2102, 1
  store i32 %2104, ptr %35, align 4
  br label %2109

2105:                                             ; preds = %2085, %2081
  %2106 = landingpad { ptr, i32 }
          cleanup
  %2107 = extractvalue { ptr, i32 } %2106, 0
  store ptr %2107, ptr %34, align 8
  %2108 = extractvalue { ptr, i32 } %2106, 1
  store i32 %2108, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  br label %2109

2109:                                             ; preds = %2105, %2101
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #9
  br label %2119

2110:                                             ; preds = %2086
  %2111 = landingpad { ptr, i32 }
          cleanup
  %2112 = extractvalue { ptr, i32 } %2111, 0
  store ptr %2112, ptr %34, align 8
  %2113 = extractvalue { ptr, i32 } %2111, 1
  store i32 %2113, ptr %35, align 4
  br label %2118

2114:                                             ; preds = %2098, %2091
  %2115 = landingpad { ptr, i32 }
          cleanup
  %2116 = extractvalue { ptr, i32 } %2115, 0
  store ptr %2116, ptr %34, align 8
  %2117 = extractvalue { ptr, i32 } %2115, 1
  store i32 %2117, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #9
  br label %2118

2118:                                             ; preds = %2114, %2110
  call void @llvm.lifetime.end.p0(i64 512, ptr %157) #9
  br label %2119

2119:                                             ; preds = %2118, %2109
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #9
  br label %2836

2120:                                             ; preds = %2100, %2058, %2044, %2041, %2038
  %2121 = load ptr, ptr %25, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList11PopClipRectEv(ptr noundef nonnull align 8 dereferenceable(196) %2121)
          to label %2122 unwind label %1928

2122:                                             ; preds = %2120
  %2123 = load ptr, ptr %25, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList11PopClipRectEv(ptr noundef nonnull align 8 dereferenceable(196) %2123)
          to label %2124 unwind label %1928

2124:                                             ; preds = %2122
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #9
  store ptr %32, ptr %159, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #9
  %2125 = load ptr, ptr %159, align 8, !tbaa !5
  %2126 = invoke noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %2125)
          to label %2127 unwind label %2136

2127:                                             ; preds = %2124
  store ptr %2126, ptr %160, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #9
  %2128 = load ptr, ptr %159, align 8, !tbaa !5
  %2129 = invoke noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %2128)
          to label %2130 unwind label %2140

2130:                                             ; preds = %2127
  store ptr %2129, ptr %161, align 8, !tbaa !5
  br label %2131

2131:                                             ; preds = %2163, %2130
  %2132 = load ptr, ptr %160, align 8, !tbaa !5
  %2133 = load ptr, ptr %161, align 8, !tbaa !5
  %2134 = icmp ne ptr %2132, %2133
  br i1 %2134, label %2144, label %2135

2135:                                             ; preds = %2131
  store i32 34, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #9
  br label %2172

2136:                                             ; preds = %2124
  %2137 = landingpad { ptr, i32 }
          cleanup
  %2138 = extractvalue { ptr, i32 } %2137, 0
  store ptr %2138, ptr %34, align 8
  %2139 = extractvalue { ptr, i32 } %2137, 1
  store i32 %2139, ptr %35, align 4
  br label %2171

2140:                                             ; preds = %2127
  %2141 = landingpad { ptr, i32 }
          cleanup
  %2142 = extractvalue { ptr, i32 } %2141, 0
  store ptr %2142, ptr %34, align 8
  %2143 = extractvalue { ptr, i32 } %2141, 1
  store i32 %2143, ptr %35, align 4
  br label %2170

2144:                                             ; preds = %2131
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #9
  %2145 = load ptr, ptr %160, align 8, !tbaa !5
  store ptr %2145, ptr %162, align 8, !tbaa !5
  %2146 = load ptr, ptr %8, align 8, !tbaa !5
  %2147 = load ptr, ptr %162, align 8, !tbaa !5
  %2148 = getelementptr inbounds %struct.CustomDraw, ptr %2147, i32 0, i32 0
  %2149 = load i32, ptr %2148, align 4, !tbaa !46
  %2150 = load ptr, ptr %25, align 8, !tbaa !5
  %2151 = load ptr, ptr %162, align 8, !tbaa !5
  %2152 = getelementptr inbounds %struct.CustomDraw, ptr %2151, i32 0, i32 1
  %2153 = load ptr, ptr %162, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.CustomDraw, ptr %2153, i32 0, i32 2
  %2155 = load ptr, ptr %162, align 8, !tbaa !5
  %2156 = getelementptr inbounds %struct.CustomDraw, ptr %2155, i32 0, i32 3
  %2157 = load ptr, ptr %162, align 8, !tbaa !5
  %2158 = getelementptr inbounds %struct.CustomDraw, ptr %2157, i32 0, i32 4
  %2159 = load ptr, ptr %2146, align 8, !tbaa !20
  %2160 = getelementptr inbounds ptr, ptr %2159, i64 17
  %2161 = load ptr, ptr %2160, align 8
  invoke void %2161(ptr noundef nonnull align 8 dereferenceable(9) %2146, i32 noundef %2149, ptr noundef %2150, ptr noundef nonnull align 4 dereferenceable(16) %2152, ptr noundef nonnull align 4 dereferenceable(16) %2154, ptr noundef nonnull align 4 dereferenceable(16) %2156, ptr noundef nonnull align 4 dereferenceable(16) %2158)
          to label %2162 unwind label %2166

2162:                                             ; preds = %2144
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #9
  br label %2163

2163:                                             ; preds = %2162
  %2164 = load ptr, ptr %160, align 8, !tbaa !5
  %2165 = getelementptr inbounds %struct.CustomDraw, ptr %2164, i32 1
  store ptr %2165, ptr %160, align 8, !tbaa !5
  br label %2131

2166:                                             ; preds = %2144
  %2167 = landingpad { ptr, i32 }
          cleanup
  %2168 = extractvalue { ptr, i32 } %2167, 0
  store ptr %2168, ptr %34, align 8
  %2169 = extractvalue { ptr, i32 } %2167, 1
  store i32 %2169, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #9
  br label %2170

2170:                                             ; preds = %2166, %2140
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #9
  br label %2171

2171:                                             ; preds = %2170, %2136
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #9
  br label %2836

2172:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #9
  store ptr %33, ptr %163, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #9
  %2173 = load ptr, ptr %163, align 8, !tbaa !5
  %2174 = invoke noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %2173)
          to label %2175 unwind label %2184

2175:                                             ; preds = %2172
  store ptr %2174, ptr %164, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #9
  %2176 = load ptr, ptr %163, align 8, !tbaa !5
  %2177 = invoke noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %2176)
          to label %2178 unwind label %2188

2178:                                             ; preds = %2175
  store ptr %2177, ptr %165, align 8, !tbaa !5
  br label %2179

2179:                                             ; preds = %2207, %2178
  %2180 = load ptr, ptr %164, align 8, !tbaa !5
  %2181 = load ptr, ptr %165, align 8, !tbaa !5
  %2182 = icmp ne ptr %2180, %2181
  br i1 %2182, label %2192, label %2183

2183:                                             ; preds = %2179
  store i32 36, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #9
  br label %2216

2184:                                             ; preds = %2172
  %2185 = landingpad { ptr, i32 }
          cleanup
  %2186 = extractvalue { ptr, i32 } %2185, 0
  store ptr %2186, ptr %34, align 8
  %2187 = extractvalue { ptr, i32 } %2185, 1
  store i32 %2187, ptr %35, align 4
  br label %2215

2188:                                             ; preds = %2175
  %2189 = landingpad { ptr, i32 }
          cleanup
  %2190 = extractvalue { ptr, i32 } %2189, 0
  store ptr %2190, ptr %34, align 8
  %2191 = extractvalue { ptr, i32 } %2189, 1
  store i32 %2191, ptr %35, align 4
  br label %2214

2192:                                             ; preds = %2179
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #9
  %2193 = load ptr, ptr %164, align 8, !tbaa !5
  store ptr %2193, ptr %166, align 8, !tbaa !5
  %2194 = load ptr, ptr %8, align 8, !tbaa !5
  %2195 = load ptr, ptr %166, align 8, !tbaa !5
  %2196 = getelementptr inbounds %struct.CustomDraw, ptr %2195, i32 0, i32 0
  %2197 = load i32, ptr %2196, align 4, !tbaa !46
  %2198 = load ptr, ptr %25, align 8, !tbaa !5
  %2199 = load ptr, ptr %166, align 8, !tbaa !5
  %2200 = getelementptr inbounds %struct.CustomDraw, ptr %2199, i32 0, i32 1
  %2201 = load ptr, ptr %166, align 8, !tbaa !5
  %2202 = getelementptr inbounds %struct.CustomDraw, ptr %2201, i32 0, i32 3
  %2203 = load ptr, ptr %2194, align 8, !tbaa !20
  %2204 = getelementptr inbounds ptr, ptr %2203, i64 18
  %2205 = load ptr, ptr %2204, align 8
  invoke void %2205(ptr noundef nonnull align 8 dereferenceable(9) %2194, i32 noundef %2197, ptr noundef %2198, ptr noundef nonnull align 4 dereferenceable(16) %2200, ptr noundef nonnull align 4 dereferenceable(16) %2202)
          to label %2206 unwind label %2210

2206:                                             ; preds = %2192
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #9
  br label %2207

2207:                                             ; preds = %2206
  %2208 = load ptr, ptr %164, align 8, !tbaa !5
  %2209 = getelementptr inbounds %struct.CustomDraw, ptr %2208, i32 1
  store ptr %2209, ptr %164, align 8, !tbaa !5
  br label %2179

2210:                                             ; preds = %2192
  %2211 = landingpad { ptr, i32 }
          cleanup
  %2212 = extractvalue { ptr, i32 } %2211, 0
  store ptr %2212, ptr %34, align 8
  %2213 = extractvalue { ptr, i32 } %2211, 1
  store i32 %2213, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #9
  br label %2214

2214:                                             ; preds = %2210, %2188
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #9
  br label %2215

2215:                                             ; preds = %2214, %2184
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #9
  br label %2836

2216:                                             ; preds = %2183
  %2217 = load i32, ptr %13, align 4, !tbaa !9
  %2218 = and i32 %2217, 64
  %2219 = icmp ne i32 %2218, 0
  br i1 %2219, label %2220, label %2354

2220:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 16, ptr %167) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #9
  %2221 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %2222 = load float, ptr %2221, align 4, !tbaa !24
  %2223 = fadd float %2222, 1.000000e+02
  %2224 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2225 = load float, ptr %2224, align 4, !tbaa !30
  %2226 = fadd float %2225, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %168, float noundef %2223, float noundef %2226)
          to label %2227 unwind label %2299

2227:                                             ; preds = %2220
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #9
  %2228 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %2229 = load float, ptr %2228, align 4, !tbaa !24
  %2230 = fadd float %2229, 1.000000e+02
  %2231 = fadd float %2230, 3.000000e+01
  %2232 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2233 = load float, ptr %2232, align 4, !tbaa !30
  %2234 = load i32, ptr %21, align 4, !tbaa !9
  %2235 = sitofp i32 %2234 to float
  %2236 = fadd float %2233, %2235
  %2237 = fsub float %2236, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %169, float noundef %2231, float noundef %2237)
          to label %2238 unwind label %2303

2238:                                             ; preds = %2227
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %167, ptr noundef nonnull align 4 dereferenceable(8) %168, ptr noundef nonnull align 4 dereferenceable(8) %169)
          to label %2239 unwind label %2303

2239:                                             ; preds = %2238
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %170) #9
  %2240 = load ptr, ptr %15, align 8, !tbaa !5
  %2241 = getelementptr inbounds %struct.ImGuiIO, ptr %2240, i32 0, i32 56
  %2242 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %167, ptr noundef nonnull align 4 dereferenceable(8) %2241)
          to label %2243 unwind label %2308

2243:                                             ; preds = %2239
  %2244 = zext i1 %2242 to i8
  store i8 %2244, ptr %170, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #9
  %2245 = load i8, ptr %170, align 1, !tbaa !11, !range !27, !noundef !28
  %2246 = trunc i8 %2245 to i1
  %2247 = zext i1 %2246 to i64
  %2248 = select i1 %2246, i32 -15695617, i32 -16777216
  store i32 %2248, ptr %171, align 4, !tbaa !9
  %2249 = load ptr, ptr %25, align 8, !tbaa !5
  %2250 = getelementptr inbounds %struct.ImRect, ptr %167, i32 0, i32 0
  %2251 = load i32, ptr %171, align 4, !tbaa !9
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %2249, ptr noundef nonnull align 4 dereferenceable(8) %2250, i32 noundef %2251, ptr noundef @.str.5, ptr noundef null)
          to label %2252 unwind label %2312

2252:                                             ; preds = %2243
  call void @llvm.lifetime.start.p0(i64 16, ptr %172) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #9
  %2253 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %2254 = load float, ptr %2253, align 4, !tbaa !24
  %2255 = fadd float %2254, 1.400000e+02
  %2256 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2257 = load float, ptr %2256, align 4, !tbaa !30
  %2258 = fadd float %2257, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %173, float noundef %2255, float noundef %2258)
          to label %2259 unwind label %2316

2259:                                             ; preds = %2252
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #9
  %2260 = getelementptr inbounds %struct.ImVec2, ptr %52, i32 0, i32 0
  %2261 = load float, ptr %2260, align 4, !tbaa !24
  %2262 = fadd float %2261, 1.400000e+02
  %2263 = fadd float %2262, 3.000000e+01
  %2264 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2265 = load float, ptr %2264, align 4, !tbaa !30
  %2266 = load i32, ptr %21, align 4, !tbaa !9
  %2267 = sitofp i32 %2266 to float
  %2268 = fadd float %2265, %2267
  %2269 = fsub float %2268, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %174, float noundef %2263, float noundef %2269)
          to label %2270 unwind label %2320

2270:                                             ; preds = %2259
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %172, ptr noundef nonnull align 4 dereferenceable(8) %173, ptr noundef nonnull align 4 dereferenceable(8) %174)
          to label %2271 unwind label %2320

2271:                                             ; preds = %2270
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %175) #9
  %2272 = load ptr, ptr %15, align 8, !tbaa !5
  %2273 = getelementptr inbounds %struct.ImGuiIO, ptr %2272, i32 0, i32 56
  %2274 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %172, ptr noundef nonnull align 4 dereferenceable(8) %2273)
          to label %2275 unwind label %2325

2275:                                             ; preds = %2271
  %2276 = zext i1 %2274 to i8
  store i8 %2276, ptr %175, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #9
  %2277 = load i8, ptr %175, align 1, !tbaa !11, !range !27, !noundef !28
  %2278 = trunc i8 %2277 to i1
  %2279 = zext i1 %2278 to i64
  %2280 = select i1 %2278, i32 -15695617, i32 -16777216
  store i32 %2280, ptr %176, align 4, !tbaa !9
  %2281 = load ptr, ptr %25, align 8, !tbaa !5
  %2282 = getelementptr inbounds %struct.ImRect, ptr %172, i32 0, i32 0
  %2283 = load i32, ptr %176, align 4, !tbaa !9
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %2281, ptr noundef nonnull align 4 dereferenceable(8) %2282, i32 noundef %2283, ptr noundef @.str.6, ptr noundef null)
          to label %2284 unwind label %2329

2284:                                             ; preds = %2275
  %2285 = load i8, ptr %170, align 1, !tbaa !11, !range !27, !noundef !28
  %2286 = trunc i8 %2285 to i1
  br i1 %2286, label %2287, label %2333

2287:                                             ; preds = %2284
  %2288 = load ptr, ptr %15, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.ImGuiIO, ptr %2288, i32 0, i32 74
  %2290 = getelementptr inbounds [5 x i8], ptr %2289, i64 0, i64 0
  %2291 = load i8, ptr %2290, align 2, !tbaa !11, !range !27, !noundef !28
  %2292 = trunc i8 %2291 to i1
  br i1 %2292, label %2293, label %2333

2293:                                             ; preds = %2287
  %2294 = load ptr, ptr %8, align 8, !tbaa !5
  %2295 = load ptr, ptr %2294, align 8, !tbaa !20
  %2296 = getelementptr inbounds ptr, ptr %2295, i64 13
  %2297 = load ptr, ptr %2296, align 8
  invoke void %2297(ptr noundef nonnull align 8 dereferenceable(9) %2294)
          to label %2298 unwind label %2329

2298:                                             ; preds = %2293
  br label %2333

2299:                                             ; preds = %2220
  %2300 = landingpad { ptr, i32 }
          cleanup
  %2301 = extractvalue { ptr, i32 } %2300, 0
  store ptr %2301, ptr %34, align 8
  %2302 = extractvalue { ptr, i32 } %2300, 1
  store i32 %2302, ptr %35, align 4
  br label %2307

2303:                                             ; preds = %2238, %2227
  %2304 = landingpad { ptr, i32 }
          cleanup
  %2305 = extractvalue { ptr, i32 } %2304, 0
  store ptr %2305, ptr %34, align 8
  %2306 = extractvalue { ptr, i32 } %2304, 1
  store i32 %2306, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #9
  br label %2307

2307:                                             ; preds = %2303, %2299
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #9
  br label %2353

2308:                                             ; preds = %2239
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %34, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %35, align 4
  br label %2352

2312:                                             ; preds = %2243
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %34, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %35, align 4
  br label %2351

2316:                                             ; preds = %2252
  %2317 = landingpad { ptr, i32 }
          cleanup
  %2318 = extractvalue { ptr, i32 } %2317, 0
  store ptr %2318, ptr %34, align 8
  %2319 = extractvalue { ptr, i32 } %2317, 1
  store i32 %2319, ptr %35, align 4
  br label %2324

2320:                                             ; preds = %2270, %2259
  %2321 = landingpad { ptr, i32 }
          cleanup
  %2322 = extractvalue { ptr, i32 } %2321, 0
  store ptr %2322, ptr %34, align 8
  %2323 = extractvalue { ptr, i32 } %2321, 1
  store i32 %2323, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #9
  br label %2324

2324:                                             ; preds = %2320, %2316
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #9
  br label %2350

2325:                                             ; preds = %2271
  %2326 = landingpad { ptr, i32 }
          cleanup
  %2327 = extractvalue { ptr, i32 } %2326, 0
  store ptr %2327, ptr %34, align 8
  %2328 = extractvalue { ptr, i32 } %2326, 1
  store i32 %2328, ptr %35, align 4
  br label %2349

2329:                                             ; preds = %2342, %2293, %2275
  %2330 = landingpad { ptr, i32 }
          cleanup
  %2331 = extractvalue { ptr, i32 } %2330, 0
  store ptr %2331, ptr %34, align 8
  %2332 = extractvalue { ptr, i32 } %2330, 1
  store i32 %2332, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  br label %2349

2333:                                             ; preds = %2298, %2287, %2284
  %2334 = load i8, ptr %175, align 1, !tbaa !11, !range !27, !noundef !28
  %2335 = trunc i8 %2334 to i1
  br i1 %2335, label %2336, label %2348

2336:                                             ; preds = %2333
  %2337 = load ptr, ptr %15, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.ImGuiIO, ptr %2337, i32 0, i32 74
  %2339 = getelementptr inbounds [5 x i8], ptr %2338, i64 0, i64 0
  %2340 = load i8, ptr %2339, align 2, !tbaa !11, !range !27, !noundef !28
  %2341 = trunc i8 %2340 to i1
  br i1 %2341, label %2342, label %2348

2342:                                             ; preds = %2336
  %2343 = load ptr, ptr %8, align 8, !tbaa !5
  %2344 = load ptr, ptr %2343, align 8, !tbaa !20
  %2345 = getelementptr inbounds ptr, ptr %2344, i64 14
  %2346 = load ptr, ptr %2345, align 8
  invoke void %2346(ptr noundef nonnull align 8 dereferenceable(9) %2343)
          to label %2347 unwind label %2329

2347:                                             ; preds = %2342
  br label %2348

2348:                                             ; preds = %2347, %2336, %2333
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %172) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %167) #9
  br label %2354

2349:                                             ; preds = %2329, %2325
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #9
  br label %2350

2350:                                             ; preds = %2349, %2324
  call void @llvm.lifetime.end.p0(i64 16, ptr %172) #9
  br label %2351

2351:                                             ; preds = %2350, %2312
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #9
  br label %2352

2352:                                             ; preds = %2351, %2308
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #9
  br label %2353

2353:                                             ; preds = %2352, %2307
  call void @llvm.lifetime.end.p0(i64 16, ptr %167) #9
  br label %2836

2354:                                             ; preds = %2348, %2216
  invoke void @_ZN5ImGui13EndChildFrameEv()
          to label %2355 unwind label %1928

2355:                                             ; preds = %2354
  invoke void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
          to label %2356 unwind label %1928

2356:                                             ; preds = %2355
  %2357 = load i8, ptr %45, align 1, !tbaa !11, !range !27, !noundef !28
  %2358 = trunc i8 %2357 to i1
  br i1 %2358, label %2359, label %2835

2359:                                             ; preds = %2356
  %2360 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef @.str.7, ptr noundef nonnull align 4 dereferenceable(8) %47, i32 noundef 0)
          to label %2361 unwind label %1928

2361:                                             ; preds = %2359
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #9
  %2362 = invoke <2 x float> @_ZN5ImGui14GetItemRectMinEv()
          to label %2363 unwind label %2506

2363:                                             ; preds = %2361
  store <2 x float> %2362, ptr %177, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #9
  %2364 = invoke <2 x float> @_ZN5ImGui14GetItemRectMaxEv()
          to label %2365 unwind label %2510

2365:                                             ; preds = %2363
  store <2 x float> %2364, ptr %178, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #9
  %2366 = load i32, ptr %28, align 4, !tbaa !9
  %2367 = load ptr, ptr %8, align 8, !tbaa !5
  %2368 = load ptr, ptr %2367, align 8, !tbaa !20
  %2369 = getelementptr inbounds ptr, ptr %2368, i64 0
  %2370 = load ptr, ptr %2369, align 8
  %2371 = invoke noundef i32 %2370(ptr noundef nonnull align 8 dereferenceable(9) %2367)
          to label %2372 unwind label %2514

2372:                                             ; preds = %2365
  %2373 = sub nsw i32 %2366, %2371
  %2374 = sitofp i32 %2373 to float
  %2375 = load i32, ptr %31, align 4, !tbaa !9
  %2376 = sitofp i32 %2375 to float
  %2377 = fdiv float %2374, %2376
  %2378 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %2379 = load float, ptr %2378, align 4, !tbaa !24
  %2380 = load i32, ptr %18, align 4, !tbaa !9
  %2381 = sitofp i32 %2380 to float
  %2382 = fsub float %2379, %2381
  %2383 = fmul float %2377, %2382
  store float %2383, ptr %179, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #9
  %2384 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 0
  %2385 = load float, ptr %2384, align 4, !tbaa !24
  %2386 = load i32, ptr %18, align 4, !tbaa !9
  %2387 = sitofp i32 %2386 to float
  %2388 = fadd float %2385, %2387
  %2389 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 1
  %2390 = load float, ptr %2389, align 4, !tbaa !30
  %2391 = fsub float %2390, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %180, float noundef %2388, float noundef %2391)
          to label %2392 unwind label %2518

2392:                                             ; preds = %2372
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #9
  %2393 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 0
  %2394 = load float, ptr %2393, align 4, !tbaa !24
  %2395 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %2396 = load float, ptr %2395, align 4, !tbaa !24
  %2397 = fadd float %2394, %2396
  %2398 = getelementptr inbounds %struct.ImVec2, ptr %178, i32 0, i32 1
  %2399 = load float, ptr %2398, align 4, !tbaa !30
  %2400 = fsub float %2399, 1.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %181, float noundef %2397, float noundef %2400)
          to label %2401 unwind label %2522

2401:                                             ; preds = %2392
  %2402 = load ptr, ptr %25, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2402, ptr noundef nonnull align 4 dereferenceable(8) %180, ptr noundef nonnull align 4 dereferenceable(8) %181, i32 noundef -14540254, float noundef 0.000000e+00, i32 noundef 0)
          to label %2403 unwind label %2522

2403:                                             ; preds = %2401
  call void @llvm.lifetime.start.p0(i64 16, ptr %182) #9
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %182, ptr noundef nonnull align 4 dereferenceable(8) %180, ptr noundef nonnull align 4 dereferenceable(8) %181)
          to label %2404 unwind label %2526

2404:                                             ; preds = %2403
  call void @llvm.lifetime.start.p0(i64 1, ptr %183) #9
  %2405 = load ptr, ptr %15, align 8, !tbaa !5
  %2406 = getelementptr inbounds %struct.ImGuiIO, ptr %2405, i32 0, i32 56
  %2407 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %182, ptr noundef nonnull align 4 dereferenceable(8) %2406)
          to label %2408 unwind label %2530

2408:                                             ; preds = %2404
  %2409 = zext i1 %2407 to i8
  store i8 %2409, ptr %183, align 1, !tbaa !11
  %2410 = load ptr, ptr %25, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2410, ptr noundef nonnull align 4 dereferenceable(8) %180, ptr noundef nonnull align 4 dereferenceable(8) %181, i32 noundef -15724528, float noundef 8.000000e+00, i32 noundef 0)
          to label %2411 unwind label %2530

2411:                                             ; preds = %2408
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #9
  %2412 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 0
  %2413 = load float, ptr %2412, align 4, !tbaa !24
  %2414 = load i32, ptr %18, align 4, !tbaa !9
  %2415 = sitofp i32 %2414 to float
  %2416 = fadd float %2413, %2415
  %2417 = load float, ptr %179, align 4, !tbaa !25
  %2418 = fadd float %2416, %2417
  %2419 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 1
  %2420 = load float, ptr %2419, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %184, float noundef %2418, float noundef %2420)
          to label %2421 unwind label %2534

2421:                                             ; preds = %2411
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #9
  %2422 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 0
  %2423 = load float, ptr %2422, align 4, !tbaa !24
  %2424 = load i32, ptr %18, align 4, !tbaa !9
  %2425 = sitofp i32 %2424 to float
  %2426 = fadd float %2423, %2425
  %2427 = load float, ptr %38, align 4, !tbaa !25
  %2428 = fadd float %2426, %2427
  %2429 = load float, ptr %179, align 4, !tbaa !25
  %2430 = fadd float %2428, %2429
  %2431 = getelementptr inbounds %struct.ImVec2, ptr %178, i32 0, i32 1
  %2432 = load float, ptr %2431, align 4, !tbaa !30
  %2433 = fsub float %2432, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %185, float noundef %2430, float noundef %2433)
          to label %2434 unwind label %2538

2434:                                             ; preds = %2421
  %2435 = load ptr, ptr %25, align 8, !tbaa !5
  %2436 = load i8, ptr %183, align 1, !tbaa !11, !range !27, !noundef !28
  %2437 = trunc i8 %2436 to i1
  br i1 %2437, label %2441, label %2438

2438:                                             ; preds = %2434
  %2439 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2440 = trunc i8 %2439 to i1
  br label %2441

2441:                                             ; preds = %2438, %2434
  %2442 = phi i1 [ true, %2434 ], [ %2440, %2438 ]
  %2443 = zext i1 %2442 to i64
  %2444 = select i1 %2442, i32 -10461088, i32 -11513776
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2435, ptr noundef nonnull align 4 dereferenceable(8) %184, ptr noundef nonnull align 4 dereferenceable(8) %185, i32 noundef %2444, float noundef 6.000000e+00, i32 noundef 0)
          to label %2445 unwind label %2538

2445:                                             ; preds = %2441
  call void @llvm.lifetime.start.p0(i64 16, ptr %186) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #9
  %2446 = getelementptr inbounds %struct.ImVec2, ptr %184, i32 0, i32 0
  %2447 = load float, ptr %2446, align 4, !tbaa !24
  %2448 = fadd float %2447, 1.400000e+01
  %2449 = getelementptr inbounds %struct.ImVec2, ptr %185, i32 0, i32 1
  %2450 = load float, ptr %2449, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %187, float noundef %2448, float noundef %2450)
          to label %2451 unwind label %2542

2451:                                             ; preds = %2445
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %186, ptr noundef nonnull align 4 dereferenceable(8) %184, ptr noundef nonnull align 4 dereferenceable(8) %187)
          to label %2452 unwind label %2542

2452:                                             ; preds = %2451
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %188) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #9
  %2453 = getelementptr inbounds %struct.ImVec2, ptr %185, i32 0, i32 0
  %2454 = load float, ptr %2453, align 4, !tbaa !24
  %2455 = fsub float %2454, 1.400000e+01
  %2456 = getelementptr inbounds %struct.ImVec2, ptr %184, i32 0, i32 1
  %2457 = load float, ptr %2456, align 4, !tbaa !30
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %189, float noundef %2455, float noundef %2457)
          to label %2458 unwind label %2546

2458:                                             ; preds = %2452
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %188, ptr noundef nonnull align 4 dereferenceable(8) %189, ptr noundef nonnull align 4 dereferenceable(8) %185)
          to label %2459 unwind label %2546

2459:                                             ; preds = %2458
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %190) #9
  %2460 = load ptr, ptr %15, align 8, !tbaa !5
  %2461 = getelementptr inbounds %struct.ImGuiIO, ptr %2460, i32 0, i32 56
  %2462 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %186, ptr noundef nonnull align 4 dereferenceable(8) %2461)
          to label %2463 unwind label %2550

2463:                                             ; preds = %2459
  %2464 = zext i1 %2462 to i8
  store i8 %2464, ptr %190, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %191) #9
  %2465 = load ptr, ptr %15, align 8, !tbaa !5
  %2466 = getelementptr inbounds %struct.ImGuiIO, ptr %2465, i32 0, i32 56
  %2467 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %188, ptr noundef nonnull align 4 dereferenceable(8) %2466)
          to label %2468 unwind label %2554

2468:                                             ; preds = %2463
  %2469 = zext i1 %2467 to i8
  store i8 %2469, ptr %191, align 1, !tbaa !11
  %2470 = load ptr, ptr %25, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.ImRect, ptr %186, i32 0, i32 0
  %2472 = getelementptr inbounds %struct.ImRect, ptr %186, i32 0, i32 1
  %2473 = load i8, ptr %190, align 1, !tbaa !11, !range !27, !noundef !28
  %2474 = trunc i8 %2473 to i1
  br i1 %2474, label %2478, label %2475

2475:                                             ; preds = %2468
  %2476 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2477 = trunc i8 %2476 to i1
  br label %2478

2478:                                             ; preds = %2475, %2468
  %2479 = phi i1 [ true, %2468 ], [ %2477, %2475 ]
  %2480 = zext i1 %2479 to i64
  %2481 = select i1 %2479, i32 -5592406, i32 -10066330
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2470, ptr noundef nonnull align 4 dereferenceable(8) %2471, ptr noundef nonnull align 4 dereferenceable(8) %2472, i32 noundef %2481, float noundef 6.000000e+00, i32 noundef 0)
          to label %2482 unwind label %2554

2482:                                             ; preds = %2478
  %2483 = load ptr, ptr %25, align 8, !tbaa !5
  %2484 = getelementptr inbounds %struct.ImRect, ptr %188, i32 0, i32 0
  %2485 = getelementptr inbounds %struct.ImRect, ptr %188, i32 0, i32 1
  %2486 = load i8, ptr %191, align 1, !tbaa !11, !range !27, !noundef !28
  %2487 = trunc i8 %2486 to i1
  br i1 %2487, label %2491, label %2488

2488:                                             ; preds = %2482
  %2489 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2490 = trunc i8 %2489 to i1
  br label %2491

2491:                                             ; preds = %2488, %2482
  %2492 = phi i1 [ true, %2482 ], [ %2490, %2488 ]
  %2493 = zext i1 %2492 to i64
  %2494 = select i1 %2492, i32 -5592406, i32 -10066330
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %2483, ptr noundef nonnull align 4 dereferenceable(8) %2484, ptr noundef nonnull align 4 dereferenceable(8) %2485, i32 noundef %2494, float noundef 6.000000e+00, i32 noundef 0)
          to label %2495 unwind label %2554

2495:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 16, ptr %192) #9
  invoke void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %192, ptr noundef nonnull align 4 dereferenceable(8) %184, ptr noundef nonnull align 4 dereferenceable(8) %185)
          to label %2496 unwind label %2558

2496:                                             ; preds = %2495
  %2497 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2498 = trunc i8 %2497 to i1
  br i1 %2498, label %2499, label %2625

2499:                                             ; preds = %2496
  %2500 = load ptr, ptr %15, align 8, !tbaa !5
  %2501 = getelementptr inbounds %struct.ImGuiIO, ptr %2500, i32 0, i32 57
  %2502 = getelementptr inbounds [5 x i8], ptr %2501, i64 0, i64 0
  %2503 = load i8, ptr %2502, align 4, !tbaa !11, !range !27, !noundef !28
  %2504 = trunc i8 %2503 to i1
  br i1 %2504, label %2562, label %2505

2505:                                             ; preds = %2499
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !11
  br label %2624

2506:                                             ; preds = %2361
  %2507 = landingpad { ptr, i32 }
          cleanup
  %2508 = extractvalue { ptr, i32 } %2507, 0
  store ptr %2508, ptr %34, align 8
  %2509 = extractvalue { ptr, i32 } %2507, 1
  store i32 %2509, ptr %35, align 4
  br label %2834

2510:                                             ; preds = %2363
  %2511 = landingpad { ptr, i32 }
          cleanup
  %2512 = extractvalue { ptr, i32 } %2511, 0
  store ptr %2512, ptr %34, align 8
  %2513 = extractvalue { ptr, i32 } %2511, 1
  store i32 %2513, ptr %35, align 4
  br label %2833

2514:                                             ; preds = %2365
  %2515 = landingpad { ptr, i32 }
          cleanup
  %2516 = extractvalue { ptr, i32 } %2515, 0
  store ptr %2516, ptr %34, align 8
  %2517 = extractvalue { ptr, i32 } %2515, 1
  store i32 %2517, ptr %35, align 4
  br label %2832

2518:                                             ; preds = %2372
  %2519 = landingpad { ptr, i32 }
          cleanup
  %2520 = extractvalue { ptr, i32 } %2519, 0
  store ptr %2520, ptr %34, align 8
  %2521 = extractvalue { ptr, i32 } %2519, 1
  store i32 %2521, ptr %35, align 4
  br label %2831

2522:                                             ; preds = %2401, %2392
  %2523 = landingpad { ptr, i32 }
          cleanup
  %2524 = extractvalue { ptr, i32 } %2523, 0
  store ptr %2524, ptr %34, align 8
  %2525 = extractvalue { ptr, i32 } %2523, 1
  store i32 %2525, ptr %35, align 4
  br label %2830

2526:                                             ; preds = %2403
  %2527 = landingpad { ptr, i32 }
          cleanup
  %2528 = extractvalue { ptr, i32 } %2527, 0
  store ptr %2528, ptr %34, align 8
  %2529 = extractvalue { ptr, i32 } %2527, 1
  store i32 %2529, ptr %35, align 4
  br label %2829

2530:                                             ; preds = %2408, %2404
  %2531 = landingpad { ptr, i32 }
          cleanup
  %2532 = extractvalue { ptr, i32 } %2531, 0
  store ptr %2532, ptr %34, align 8
  %2533 = extractvalue { ptr, i32 } %2531, 1
  store i32 %2533, ptr %35, align 4
  br label %2828

2534:                                             ; preds = %2411
  %2535 = landingpad { ptr, i32 }
          cleanup
  %2536 = extractvalue { ptr, i32 } %2535, 0
  store ptr %2536, ptr %34, align 8
  %2537 = extractvalue { ptr, i32 } %2535, 1
  store i32 %2537, ptr %35, align 4
  br label %2827

2538:                                             ; preds = %2441, %2421
  %2539 = landingpad { ptr, i32 }
          cleanup
  %2540 = extractvalue { ptr, i32 } %2539, 0
  store ptr %2540, ptr %34, align 8
  %2541 = extractvalue { ptr, i32 } %2539, 1
  store i32 %2541, ptr %35, align 4
  br label %2826

2542:                                             ; preds = %2451, %2445
  %2543 = landingpad { ptr, i32 }
          cleanup
  %2544 = extractvalue { ptr, i32 } %2543, 0
  store ptr %2544, ptr %34, align 8
  %2545 = extractvalue { ptr, i32 } %2543, 1
  store i32 %2545, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #9
  br label %2825

2546:                                             ; preds = %2458, %2452
  %2547 = landingpad { ptr, i32 }
          cleanup
  %2548 = extractvalue { ptr, i32 } %2547, 0
  store ptr %2548, ptr %34, align 8
  %2549 = extractvalue { ptr, i32 } %2547, 1
  store i32 %2549, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #9
  br label %2824

2550:                                             ; preds = %2459
  %2551 = landingpad { ptr, i32 }
          cleanup
  %2552 = extractvalue { ptr, i32 } %2551, 0
  store ptr %2552, ptr %34, align 8
  %2553 = extractvalue { ptr, i32 } %2551, 1
  store i32 %2553, ptr %35, align 4
  br label %2823

2554:                                             ; preds = %2491, %2478, %2463
  %2555 = landingpad { ptr, i32 }
          cleanup
  %2556 = extractvalue { ptr, i32 } %2555, 0
  store ptr %2556, ptr %34, align 8
  %2557 = extractvalue { ptr, i32 } %2555, 1
  store i32 %2557, ptr %35, align 4
  br label %2822

2558:                                             ; preds = %2813, %2803, %2779, %2774, %2495
  %2559 = landingpad { ptr, i32 }
          cleanup
  %2560 = extractvalue { ptr, i32 } %2559, 0
  store ptr %2560, ptr %34, align 8
  %2561 = extractvalue { ptr, i32 } %2559, 1
  store i32 %2561, ptr %35, align 4
  br label %2821

2562:                                             ; preds = %2499
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #9
  %2563 = load float, ptr %38, align 4, !tbaa !25
  %2564 = load ptr, ptr %15, align 8, !tbaa !5
  %2565 = getelementptr inbounds %struct.ImGuiIO, ptr %2564, i32 0, i32 52
  %2566 = getelementptr inbounds %struct.ImVec2, ptr %2565, i32 0, i32 0
  %2567 = load float, ptr %2566, align 8, !tbaa !50
  %2568 = fadd float %2563, %2567
  %2569 = invoke noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2568, float noundef 4.400000e+01)
          to label %2570 unwind label %2614

2570:                                             ; preds = %2562
  store float %2569, ptr %193, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #9
  %2571 = load float, ptr %193, align 4, !tbaa !25
  %2572 = load float, ptr %38, align 4, !tbaa !25
  %2573 = fdiv float %2571, %2572
  store float %2573, ptr %194, align 4, !tbaa !25
  %2574 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %2575 = load float, ptr %194, align 4, !tbaa !25
  %2576 = fdiv float %2574, %2575
  store float %2576, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  store float %2576, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #9
  %2577 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %2578 = load float, ptr %2577, align 4, !tbaa !24
  %2579 = load i32, ptr %18, align 4, !tbaa !9
  %2580 = sitofp i32 %2579 to float
  %2581 = fsub float %2578, %2580
  %2582 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  %2583 = fdiv float %2581, %2582
  %2584 = fptosi float %2583 to i32
  store i32 %2584, ptr %195, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #9
  %2585 = load ptr, ptr %12, align 8, !tbaa !5
  %2586 = load i32, ptr %2585, align 4, !tbaa !9
  %2587 = load i32, ptr %195, align 4, !tbaa !9
  %2588 = add nsw i32 %2586, %2587
  store i32 %2588, ptr %196, align 4, !tbaa !9
  %2589 = load i32, ptr %196, align 4, !tbaa !9
  %2590 = load ptr, ptr %8, align 8, !tbaa !5
  %2591 = load ptr, ptr %2590, align 8, !tbaa !20
  %2592 = getelementptr inbounds ptr, ptr %2591, i64 1
  %2593 = load ptr, ptr %2592, align 8
  %2594 = invoke noundef i32 %2593(ptr noundef nonnull align 8 dereferenceable(9) %2590)
          to label %2595 unwind label %2618

2595:                                             ; preds = %2570
  %2596 = icmp sgt i32 %2589, %2594
  br i1 %2596, label %2597, label %2622

2597:                                             ; preds = %2595
  %2598 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %2599 = load float, ptr %2598, align 4, !tbaa !24
  %2600 = load i32, ptr %18, align 4, !tbaa !9
  %2601 = sitofp i32 %2600 to float
  %2602 = fsub float %2599, %2601
  %2603 = load ptr, ptr %8, align 8, !tbaa !5
  %2604 = load ptr, ptr %2603, align 8, !tbaa !20
  %2605 = getelementptr inbounds ptr, ptr %2604, i64 1
  %2606 = load ptr, ptr %2605, align 8
  %2607 = invoke noundef i32 %2606(ptr noundef nonnull align 8 dereferenceable(9) %2603)
          to label %2608 unwind label %2618

2608:                                             ; preds = %2597
  %2609 = load ptr, ptr %12, align 8, !tbaa !5
  %2610 = load i32, ptr %2609, align 4, !tbaa !9
  %2611 = sub nsw i32 %2607, %2610
  %2612 = sitofp i32 %2611 to float
  %2613 = fdiv float %2602, %2612
  store float %2613, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  store float %2613, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  br label %2622

2614:                                             ; preds = %2562
  %2615 = landingpad { ptr, i32 }
          cleanup
  %2616 = extractvalue { ptr, i32 } %2615, 0
  store ptr %2616, ptr %34, align 8
  %2617 = extractvalue { ptr, i32 } %2615, 1
  store i32 %2617, ptr %35, align 4
  br label %2623

2618:                                             ; preds = %2597, %2570
  %2619 = landingpad { ptr, i32 }
          cleanup
  %2620 = extractvalue { ptr, i32 } %2619, 0
  store ptr %2620, ptr %34, align 8
  %2621 = extractvalue { ptr, i32 } %2619, 1
  store i32 %2621, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #9
  br label %2623

2622:                                             ; preds = %2608, %2595
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #9
  br label %2624

2623:                                             ; preds = %2618, %2614
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #9
  br label %2821

2624:                                             ; preds = %2622, %2505
  br label %2820

2625:                                             ; preds = %2496
  %2626 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2627 = trunc i8 %2626 to i1
  br i1 %2627, label %2628, label %2715

2628:                                             ; preds = %2625
  %2629 = load ptr, ptr %15, align 8, !tbaa !5
  %2630 = getelementptr inbounds %struct.ImGuiIO, ptr %2629, i32 0, i32 57
  %2631 = getelementptr inbounds [5 x i8], ptr %2630, i64 0, i64 0
  %2632 = load i8, ptr %2631, align 4, !tbaa !11, !range !27, !noundef !28
  %2633 = trunc i8 %2632 to i1
  br i1 %2633, label %2635, label %2634

2634:                                             ; preds = %2628
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !11
  br label %2714

2635:                                             ; preds = %2628
  %2636 = load ptr, ptr %15, align 8, !tbaa !5
  %2637 = getelementptr inbounds %struct.ImGuiIO, ptr %2636, i32 0, i32 52
  %2638 = getelementptr inbounds %struct.ImVec2, ptr %2637, i32 0, i32 0
  %2639 = load float, ptr %2638, align 8, !tbaa !50
  %2640 = call float @llvm.fabs.f32(float %2639)
  %2641 = fcmp ogt float %2640, 0x3E80000000000000
  br i1 %2641, label %2642, label %2713

2642:                                             ; preds = %2635
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #9
  %2643 = load float, ptr %38, align 4, !tbaa !25
  %2644 = load ptr, ptr %15, align 8, !tbaa !5
  %2645 = getelementptr inbounds %struct.ImGuiIO, ptr %2644, i32 0, i32 52
  %2646 = getelementptr inbounds %struct.ImVec2, ptr %2645, i32 0, i32 0
  %2647 = load float, ptr %2646, align 8, !tbaa !50
  %2648 = fsub float %2643, %2647
  %2649 = invoke noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2648, float noundef 4.400000e+01)
          to label %2650 unwind label %2700

2650:                                             ; preds = %2642
  store float %2649, ptr %197, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #9
  %2651 = load float, ptr %197, align 4, !tbaa !25
  %2652 = load float, ptr %38, align 4, !tbaa !25
  %2653 = fdiv float %2651, %2652
  store float %2653, ptr %198, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #9
  %2654 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  store float %2654, ptr %199, align 4, !tbaa !25
  %2655 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  %2656 = load float, ptr %198, align 4, !tbaa !25
  %2657 = fdiv float %2655, %2656
  store float %2657, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  store float %2657, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #9
  %2658 = load i32, ptr %36, align 4, !tbaa !9
  %2659 = sitofp i32 %2658 to float
  %2660 = load float, ptr %198, align 4, !tbaa !25
  %2661 = fdiv float %2659, %2660
  %2662 = fptosi float %2661 to i32
  store i32 %2662, ptr %200, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #9
  %2663 = load ptr, ptr %12, align 8, !tbaa !5
  %2664 = load i32, ptr %2663, align 4, !tbaa !9
  %2665 = load i32, ptr %200, align 4, !tbaa !9
  %2666 = add nsw i32 %2664, %2665
  %2667 = load i32, ptr %36, align 4, !tbaa !9
  %2668 = sub nsw i32 %2666, %2667
  store i32 %2668, ptr %201, align 4, !tbaa !9
  %2669 = load i32, ptr %201, align 4, !tbaa !9
  %2670 = load ptr, ptr %8, align 8, !tbaa !5
  %2671 = load ptr, ptr %2670, align 8, !tbaa !20
  %2672 = getelementptr inbounds ptr, ptr %2671, i64 0
  %2673 = load ptr, ptr %2672, align 8
  %2674 = invoke noundef i32 %2673(ptr noundef nonnull align 8 dereferenceable(9) %2670)
          to label %2675 unwind label %2704

2675:                                             ; preds = %2650
  %2676 = load ptr, ptr %8, align 8, !tbaa !5
  %2677 = load ptr, ptr %2676, align 8, !tbaa !20
  %2678 = getelementptr inbounds ptr, ptr %2677, i64 1
  %2679 = load ptr, ptr %2678, align 8
  %2680 = invoke noundef i32 %2679(ptr noundef nonnull align 8 dereferenceable(9) %2676)
          to label %2681 unwind label %2704

2681:                                             ; preds = %2675
  %2682 = load i32, ptr %36, align 4, !tbaa !9
  %2683 = sub nsw i32 %2680, %2682
  %2684 = load ptr, ptr %8, align 8, !tbaa !5
  %2685 = load ptr, ptr %2684, align 8, !tbaa !20
  %2686 = getelementptr inbounds ptr, ptr %2685, i64 0
  %2687 = load ptr, ptr %2686, align 8
  %2688 = invoke noundef i32 %2687(ptr noundef nonnull align 8 dereferenceable(9) %2684)
          to label %2689 unwind label %2704

2689:                                             ; preds = %2681
  %2690 = invoke noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2683, i32 noundef %2688)
          to label %2691 unwind label %2704

2691:                                             ; preds = %2689
  %2692 = invoke noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %2669, i32 noundef %2674, i32 noundef %2690)
          to label %2693 unwind label %2704

2693:                                             ; preds = %2691
  store i32 %2692, ptr %201, align 4, !tbaa !9
  %2694 = load i32, ptr %201, align 4, !tbaa !9
  %2695 = load ptr, ptr %12, align 8, !tbaa !5
  %2696 = load i32, ptr %2695, align 4, !tbaa !9
  %2697 = icmp eq i32 %2694, %2696
  br i1 %2697, label %2698, label %2708

2698:                                             ; preds = %2693
  %2699 = load float, ptr %199, align 4, !tbaa !25
  store float %2699, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !25
  store float %2699, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !25
  br label %2711

2700:                                             ; preds = %2642
  %2701 = landingpad { ptr, i32 }
          cleanup
  %2702 = extractvalue { ptr, i32 } %2701, 0
  store ptr %2702, ptr %34, align 8
  %2703 = extractvalue { ptr, i32 } %2701, 1
  store i32 %2703, ptr %35, align 4
  br label %2712

2704:                                             ; preds = %2691, %2689, %2681, %2675, %2650
  %2705 = landingpad { ptr, i32 }
          cleanup
  %2706 = extractvalue { ptr, i32 } %2705, 0
  store ptr %2706, ptr %34, align 8
  %2707 = extractvalue { ptr, i32 } %2705, 1
  store i32 %2707, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #9
  br label %2712

2708:                                             ; preds = %2693
  %2709 = load i32, ptr %201, align 4, !tbaa !9
  %2710 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %2709, ptr %2710, align 4, !tbaa !9
  br label %2711

2711:                                             ; preds = %2708, %2698
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #9
  br label %2713

2712:                                             ; preds = %2704, %2700
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #9
  br label %2821

2713:                                             ; preds = %2711, %2635
  br label %2714

2714:                                             ; preds = %2713, %2634
  br label %2819

2715:                                             ; preds = %2625
  %2716 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2717 = trunc i8 %2716 to i1
  br i1 %2717, label %2718, label %2774

2718:                                             ; preds = %2715
  %2719 = load ptr, ptr %15, align 8, !tbaa !5
  %2720 = getelementptr inbounds %struct.ImGuiIO, ptr %2719, i32 0, i32 57
  %2721 = getelementptr inbounds [5 x i8], ptr %2720, i64 0, i64 0
  %2722 = load i8, ptr %2721, align 4, !tbaa !11, !range !27, !noundef !28
  %2723 = trunc i8 %2722 to i1
  br i1 %2723, label %2725, label %2724

2724:                                             ; preds = %2718
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !11
  br label %2773

2725:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #9
  %2726 = load float, ptr %38, align 4, !tbaa !25
  %2727 = load i32, ptr %36, align 4, !tbaa !9
  %2728 = sitofp i32 %2727 to float
  %2729 = fdiv float %2726, %2728
  store float %2729, ptr %202, align 4, !tbaa !25
  %2730 = load ptr, ptr %15, align 8, !tbaa !5
  %2731 = getelementptr inbounds %struct.ImGuiIO, ptr %2730, i32 0, i32 56
  %2732 = getelementptr inbounds %struct.ImVec2, ptr %2731, i32 0, i32 0
  %2733 = load float, ptr %2732, align 4, !tbaa !13
  %2734 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, align 4, !tbaa !24
  %2735 = fsub float %2733, %2734
  %2736 = load float, ptr %202, align 4, !tbaa !25
  %2737 = fdiv float %2735, %2736
  %2738 = fptosi float %2737 to i32
  %2739 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !9
  %2740 = sub nsw i32 %2738, %2739
  %2741 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %2740, ptr %2741, align 4, !tbaa !9
  %2742 = load ptr, ptr %12, align 8, !tbaa !5
  %2743 = load i32, ptr %2742, align 4, !tbaa !9
  %2744 = load ptr, ptr %8, align 8, !tbaa !5
  %2745 = load ptr, ptr %2744, align 8, !tbaa !20
  %2746 = getelementptr inbounds ptr, ptr %2745, i64 0
  %2747 = load ptr, ptr %2746, align 8
  %2748 = invoke noundef i32 %2747(ptr noundef nonnull align 8 dereferenceable(9) %2744)
          to label %2749 unwind label %2769

2749:                                             ; preds = %2725
  %2750 = load ptr, ptr %8, align 8, !tbaa !5
  %2751 = load ptr, ptr %2750, align 8, !tbaa !20
  %2752 = getelementptr inbounds ptr, ptr %2751, i64 1
  %2753 = load ptr, ptr %2752, align 8
  %2754 = invoke noundef i32 %2753(ptr noundef nonnull align 8 dereferenceable(9) %2750)
          to label %2755 unwind label %2769

2755:                                             ; preds = %2749
  %2756 = load i32, ptr %36, align 4, !tbaa !9
  %2757 = sub nsw i32 %2754, %2756
  %2758 = load ptr, ptr %8, align 8, !tbaa !5
  %2759 = load ptr, ptr %2758, align 8, !tbaa !20
  %2760 = getelementptr inbounds ptr, ptr %2759, i64 0
  %2761 = load ptr, ptr %2760, align 8
  %2762 = invoke noundef i32 %2761(ptr noundef nonnull align 8 dereferenceable(9) %2758)
          to label %2763 unwind label %2769

2763:                                             ; preds = %2755
  %2764 = invoke noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2757, i32 noundef %2762)
          to label %2765 unwind label %2769

2765:                                             ; preds = %2763
  %2766 = invoke noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %2743, i32 noundef %2748, i32 noundef %2764)
          to label %2767 unwind label %2769

2767:                                             ; preds = %2765
  %2768 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %2766, ptr %2768, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #9
  br label %2773

2769:                                             ; preds = %2765, %2763, %2755, %2749, %2725
  %2770 = landingpad { ptr, i32 }
          cleanup
  %2771 = extractvalue { ptr, i32 } %2770, 0
  store ptr %2771, ptr %34, align 8
  %2772 = extractvalue { ptr, i32 } %2770, 1
  store i32 %2772, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #9
  br label %2821

2773:                                             ; preds = %2767, %2724
  br label %2818

2774:                                             ; preds = %2715
  %2775 = load ptr, ptr %15, align 8, !tbaa !5
  %2776 = getelementptr inbounds %struct.ImGuiIO, ptr %2775, i32 0, i32 56
  %2777 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %192, ptr noundef nonnull align 4 dereferenceable(8) %2776)
          to label %2778 unwind label %2558

2778:                                             ; preds = %2774
  br i1 %2777, label %2779, label %2797

2779:                                             ; preds = %2778
  %2780 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %2781 unwind label %2558

2781:                                             ; preds = %2779
  br i1 %2780, label %2782, label %2797

2782:                                             ; preds = %2781
  %2783 = load ptr, ptr %12, align 8, !tbaa !5
  %2784 = icmp ne ptr %2783, null
  br i1 %2784, label %2785, label %2797

2785:                                             ; preds = %2782
  %2786 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !11, !range !27, !noundef !28
  %2787 = trunc i8 %2786 to i1
  br i1 %2787, label %2797, label %2788

2788:                                             ; preds = %2785
  %2789 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !9
  %2790 = icmp eq i32 %2789, -1
  br i1 %2790, label %2791, label %2797

2791:                                             ; preds = %2788
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !11
  %2792 = load ptr, ptr %15, align 8, !tbaa !5
  %2793 = getelementptr inbounds %struct.ImGuiIO, ptr %2792, i32 0, i32 56
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, ptr align 4 %2793, i64 8, i1 false), !tbaa.struct !29
  %2794 = load ptr, ptr %12, align 8, !tbaa !5
  %2795 = load i32, ptr %2794, align 4, !tbaa !9
  %2796 = sub nsw i32 0, %2795
  store i32 %2796, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !9
  br label %2797

2797:                                             ; preds = %2791, %2788, %2785, %2782, %2781, %2778
  %2798 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2799 = trunc i8 %2798 to i1
  br i1 %2799, label %2807, label %2800

2800:                                             ; preds = %2797
  %2801 = load i8, ptr %191, align 1, !tbaa !11, !range !27, !noundef !28
  %2802 = trunc i8 %2801 to i1
  br i1 %2802, label %2803, label %2807

2803:                                             ; preds = %2800
  %2804 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %2805 unwind label %2558

2805:                                             ; preds = %2803
  br i1 %2804, label %2806, label %2807

2806:                                             ; preds = %2805
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !11
  br label %2807

2807:                                             ; preds = %2806, %2805, %2800, %2797
  %2808 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !11, !range !27, !noundef !28
  %2809 = trunc i8 %2808 to i1
  br i1 %2809, label %2817, label %2810

2810:                                             ; preds = %2807
  %2811 = load i8, ptr %190, align 1, !tbaa !11, !range !27, !noundef !28
  %2812 = trunc i8 %2811 to i1
  br i1 %2812, label %2813, label %2817

2813:                                             ; preds = %2810
  %2814 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %2815 unwind label %2558

2815:                                             ; preds = %2813
  br i1 %2814, label %2816, label %2817

2816:                                             ; preds = %2815
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !11
  br label %2817

2817:                                             ; preds = %2816, %2815, %2810, %2807
  br label %2818

2818:                                             ; preds = %2817, %2773
  br label %2819

2819:                                             ; preds = %2818, %2714
  br label %2820

2820:                                             ; preds = %2819, %2624
  call void @llvm.lifetime.end.p0(i64 16, ptr %192) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %186) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %182) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  br label %2835

2821:                                             ; preds = %2769, %2712, %2623, %2558
  call void @llvm.lifetime.end.p0(i64 16, ptr %192) #9
  br label %2822

2822:                                             ; preds = %2821, %2554
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #9
  br label %2823

2823:                                             ; preds = %2822, %2550
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #9
  br label %2824

2824:                                             ; preds = %2823, %2546
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #9
  br label %2825

2825:                                             ; preds = %2824, %2542
  call void @llvm.lifetime.end.p0(i64 16, ptr %186) #9
  br label %2826

2826:                                             ; preds = %2825, %2538
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #9
  br label %2827

2827:                                             ; preds = %2826, %2534
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #9
  br label %2828

2828:                                             ; preds = %2827, %2530
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #9
  br label %2829

2829:                                             ; preds = %2828, %2526
  call void @llvm.lifetime.end.p0(i64 16, ptr %182) #9
  br label %2830

2830:                                             ; preds = %2829, %2522
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #9
  br label %2831

2831:                                             ; preds = %2830, %2518
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  br label %2832

2832:                                             ; preds = %2831, %2514
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #9
  br label %2833

2833:                                             ; preds = %2832, %2510
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #9
  br label %2834

2834:                                             ; preds = %2833, %2506
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  br label %2836

2835:                                             ; preds = %2820, %2356
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #9
  br label %2848

2836:                                             ; preds = %2834, %2353, %2215, %2171, %2119, %2037, %1928, %1900, %1278, %1231
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #9
  br label %2837

2837:                                             ; preds = %2836, %1214, %1164, %1163, %1128, %1007
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  br label %2838

2838:                                             ; preds = %2837, %902, %898, %860
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2839

2839:                                             ; preds = %2838, %809, %753, %648, %647
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  br label %2840

2840:                                             ; preds = %2839, %635
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2841

2841:                                             ; preds = %2840, %631
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  br label %2842

2842:                                             ; preds = %2841, %627
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %2843

2843:                                             ; preds = %2842, %623
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %2844

2844:                                             ; preds = %2843, %619, %615
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %2845

2845:                                             ; preds = %2844, %611
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %2846

2846:                                             ; preds = %2845, %607, %603
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %2847

2847:                                             ; preds = %2846, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #9
  br label %2969

2848:                                             ; preds = %2835, %466
  invoke void @_ZN5ImGui8EndGroupEv()
          to label %2849 unwind label %334

2849:                                             ; preds = %2848
  %2850 = load ptr, ptr %15, align 8, !tbaa !5
  %2851 = getelementptr inbounds %struct.ImGuiIO, ptr %2850, i32 0, i32 56
  %2852 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %2851)
          to label %2853 unwind label %334

2853:                                             ; preds = %2849
  br i1 %2852, label %2854, label %2899

2854:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #9
  store i8 0, ptr %203, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #9
  store ptr %32, ptr %204, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #9
  %2855 = load ptr, ptr %204, align 8, !tbaa !5
  %2856 = invoke noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %2855)
          to label %2857 unwind label %2866

2857:                                             ; preds = %2854
  store ptr %2856, ptr %205, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #9
  %2858 = load ptr, ptr %204, align 8, !tbaa !5
  %2859 = invoke noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %2858)
          to label %2860 unwind label %2870

2860:                                             ; preds = %2857
  store ptr %2859, ptr %206, align 8, !tbaa !5
  br label %2861

2861:                                             ; preds = %2888, %2860
  %2862 = load ptr, ptr %205, align 8, !tbaa !5
  %2863 = load ptr, ptr %206, align 8, !tbaa !5
  %2864 = icmp ne ptr %2862, %2863
  br i1 %2864, label %2874, label %2865

2865:                                             ; preds = %2861
  store i32 38, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #9
  br label %2893

2866:                                             ; preds = %2854
  %2867 = landingpad { ptr, i32 }
          cleanup
  %2868 = extractvalue { ptr, i32 } %2867, 0
  store ptr %2868, ptr %34, align 8
  %2869 = extractvalue { ptr, i32 } %2867, 1
  store i32 %2869, ptr %35, align 4
  br label %2892

2870:                                             ; preds = %2857
  %2871 = landingpad { ptr, i32 }
          cleanup
  %2872 = extractvalue { ptr, i32 } %2871, 0
  store ptr %2872, ptr %34, align 8
  %2873 = extractvalue { ptr, i32 } %2871, 1
  store i32 %2873, ptr %35, align 4
  br label %2891

2874:                                             ; preds = %2861
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #9
  %2875 = load ptr, ptr %205, align 8, !tbaa !5
  store ptr %2875, ptr %207, align 8, !tbaa !5
  %2876 = load ptr, ptr %207, align 8, !tbaa !5
  %2877 = getelementptr inbounds %struct.CustomDraw, ptr %2876, i32 0, i32 1
  %2878 = load ptr, ptr %15, align 8, !tbaa !5
  %2879 = getelementptr inbounds %struct.ImGuiIO, ptr %2878, i32 0, i32 56
  %2880 = invoke noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %2877, ptr noundef nonnull align 4 dereferenceable(8) %2879)
          to label %2881 unwind label %2883

2881:                                             ; preds = %2874
  br i1 %2880, label %2882, label %2887

2882:                                             ; preds = %2881
  store i8 1, ptr %203, align 1, !tbaa !11
  br label %2887

2883:                                             ; preds = %2874
  %2884 = landingpad { ptr, i32 }
          cleanup
  %2885 = extractvalue { ptr, i32 } %2884, 0
  store ptr %2885, ptr %34, align 8
  %2886 = extractvalue { ptr, i32 } %2884, 1
  store i32 %2886, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #9
  br label %2891

2887:                                             ; preds = %2882, %2881
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #9
  br label %2888

2888:                                             ; preds = %2887
  %2889 = load ptr, ptr %205, align 8, !tbaa !5
  %2890 = getelementptr inbounds %struct.CustomDraw, ptr %2889, i32 1
  store ptr %2890, ptr %205, align 8, !tbaa !5
  br label %2861

2891:                                             ; preds = %2883, %2870
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #9
  br label %2892

2892:                                             ; preds = %2891, %2866
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #9
  br label %2969

2893:                                             ; preds = %2865
  %2894 = load i8, ptr %203, align 1, !tbaa !11, !range !27, !noundef !28
  %2895 = trunc i8 %2894 to i1
  br i1 %2895, label %2896, label %2897

2896:                                             ; preds = %2893
  br label %2898

2897:                                             ; preds = %2893
  br label %2898

2898:                                             ; preds = %2897, %2896
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #9
  br label %2899

2899:                                             ; preds = %2898, %2853
  %2900 = load ptr, ptr %10, align 8, !tbaa !5
  %2901 = icmp ne ptr %2900, null
  br i1 %2901, label %2902, label %2926

2902:                                             ; preds = %2899
  %2903 = load ptr, ptr %25, align 8, !tbaa !5
  %2904 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %2905 = load float, ptr %2904, align 4, !tbaa !24
  %2906 = fadd float %2905, 2.000000e+00
  %2907 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %2908 = load float, ptr %2907, align 4, !tbaa !30
  %2909 = fadd float %2908, 2.000000e+00
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %208, float noundef %2906, float noundef %2909)
          to label %2910 unwind label %334

2910:                                             ; preds = %2902
  %2911 = load ptr, ptr %10, align 8, !tbaa !5
  %2912 = load i8, ptr %2911, align 1, !tbaa !11, !range !27, !noundef !28
  %2913 = trunc i8 %2912 to i1
  %2914 = xor i1 %2913, true
  %2915 = load <2 x float>, ptr %208, align 4
  %2916 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %2903, <2 x float> %2915, i1 noundef zeroext %2914)
          to label %2917 unwind label %334

2917:                                             ; preds = %2910
  br i1 %2916, label %2918, label %2925

2918:                                             ; preds = %2917
  %2919 = load ptr, ptr %10, align 8, !tbaa !5
  %2920 = load i8, ptr %2919, align 1, !tbaa !11, !range !27, !noundef !28
  %2921 = trunc i8 %2920 to i1
  %2922 = xor i1 %2921, true
  %2923 = load ptr, ptr %10, align 8, !tbaa !5
  %2924 = zext i1 %2922 to i8
  store i8 %2924, ptr %2923, align 1, !tbaa !11
  br label %2925

2925:                                             ; preds = %2918, %2917
  br label %2926

2926:                                             ; preds = %2925, %2899
  %2927 = load i32, ptr %19, align 4, !tbaa !9
  %2928 = icmp ne i32 %2927, -1
  br i1 %2928, label %2929, label %2956

2929:                                             ; preds = %2926
  %2930 = load ptr, ptr %8, align 8, !tbaa !5
  %2931 = load i32, ptr %19, align 4, !tbaa !9
  %2932 = load ptr, ptr %2930, align 8, !tbaa !20
  %2933 = getelementptr inbounds ptr, ptr %2932, i64 11
  %2934 = load ptr, ptr %2933, align 8
  invoke void %2934(ptr noundef nonnull align 8 dereferenceable(9) %2930, i32 noundef %2931)
          to label %2935 unwind label %334

2935:                                             ; preds = %2929
  %2936 = load ptr, ptr %11, align 8, !tbaa !5
  %2937 = icmp ne ptr %2936, null
  br i1 %2937, label %2938, label %2955

2938:                                             ; preds = %2935
  %2939 = load ptr, ptr %11, align 8, !tbaa !5
  %2940 = load i32, ptr %2939, align 4, !tbaa !9
  %2941 = load i32, ptr %19, align 4, !tbaa !9
  %2942 = icmp eq i32 %2940, %2941
  br i1 %2942, label %2953, label %2943

2943:                                             ; preds = %2938
  %2944 = load ptr, ptr %11, align 8, !tbaa !5
  %2945 = load i32, ptr %2944, align 4, !tbaa !9
  %2946 = load ptr, ptr %8, align 8, !tbaa !5
  %2947 = load ptr, ptr %2946, align 8, !tbaa !20
  %2948 = getelementptr inbounds ptr, ptr %2947, i64 2
  %2949 = load ptr, ptr %2948, align 8
  %2950 = invoke noundef i32 %2949(ptr noundef nonnull align 8 dereferenceable(9) %2946)
          to label %2951 unwind label %334

2951:                                             ; preds = %2943
  %2952 = icmp sge i32 %2945, %2950
  br i1 %2952, label %2953, label %2955

2953:                                             ; preds = %2951, %2938
  %2954 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 -1, ptr %2954, align 4, !tbaa !9
  br label %2955

2955:                                             ; preds = %2953, %2951, %2935
  br label %2956

2956:                                             ; preds = %2955, %2926
  %2957 = load i32, ptr %20, align 4, !tbaa !9
  %2958 = icmp ne i32 %2957, -1
  br i1 %2958, label %2959, label %2966

2959:                                             ; preds = %2956
  %2960 = load ptr, ptr %8, align 8, !tbaa !5
  %2961 = load i32, ptr %20, align 4, !tbaa !9
  %2962 = load ptr, ptr %2960, align 8, !tbaa !20
  %2963 = getelementptr inbounds ptr, ptr %2962, i64 12
  %2964 = load ptr, ptr %2963, align 8
  invoke void %2964(ptr noundef nonnull align 8 dereferenceable(9) %2960, i32 noundef %2961)
          to label %2965 unwind label %334

2965:                                             ; preds = %2959
  br label %2966

2966:                                             ; preds = %2965, %2956
  %2967 = load i8, ptr %14, align 1, !tbaa !11, !range !27, !noundef !28
  %2968 = trunc i8 %2967 to i1
  store i1 %2968, ptr %7, align 1
  store i32 1, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %2972

2969:                                             ; preds = %2892, %2847, %483, %471, %467, %334, %330
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %2970

2970:                                             ; preds = %2969, %326
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #9
  br label %2971

2971:                                             ; preds = %2970, %322
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  br label %2974

2972:                                             ; preds = %2966, %227
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  %2973 = load i1, ptr %7, align 1
  ret i1 %2973

2974:                                             ; preds = %2971
  %2975 = load ptr, ptr %34, align 8
  %2976 = load i32, ptr %35, align 4
  %2977 = insertvalue { ptr, i32 } poison, ptr %2975, 0
  %2978 = insertvalue { ptr, i32 } %2977, i32 %2976, 1
  resume { ptr, i32 } %2978

2979:                                             ; preds = %1545
  unreachable
}

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

declare noundef nonnull align 8 dereferenceable(14264) ptr @_ZN5ImGui5GetIOEv() #2

declare void @_ZN5ImGui10BeginGroupEv() #2

declare noundef ptr @_ZN5ImGui17GetWindowDrawListEv() #2

declare <2 x float> @_ZN5ImGui18GetCursorScreenPosEv() #2

declare <2 x float> @_ZN5ImGui21GetContentRegionAvailEv() #2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawEC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui15IsWindowFocusedEi(i32 noundef) #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) #6

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

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

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

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

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

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

declare noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) #2

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

declare void @_ZN5ImGui14PushStyleColorEij(i32 noundef, i32 noundef) #2

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

declare <2 x float> @_ZN5ImGui14GetItemRectMinEv() #2

declare <2 x float> @_ZN5ImGui14GetItemRectMaxEv() #2

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

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

declare void @_ZN5ImGui9OpenPopupEPKci(ptr noundef, i32 noundef) #2

declare noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef, i32 noundef) #2

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

declare void @_ZN5ImGui8EndPopupEv() #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef, i32 noundef) #7 align 2

declare void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef) #7 align 2

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

declare noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef, i1 noundef zeroext) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(68)) #7 align 2

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

declare void @_ZN5ImGui28SetNextFrameWantCaptureMouseEb(i1 noundef zeroext) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #4

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

declare void @_ZN10ImDrawList11PopClipRectEv(ptr noundef nonnull align 8 dereferenceable(196)) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

declare void @_ZN5ImGui13EndChildFrameEv() #2

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #2

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

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

declare void @_ZN5ImGui8EndGroupEv() #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 #8 = { 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 #9 = { nounwind }

!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, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !16, i64 3572}
!14 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !15, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !16, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !6, i64 72, !6, i64 80, !16, i64 88, !12, i64 92, !6, i64 96, !15, i64 104, !12, i64 112, !12, i64 113, !12, i64 114, !12, i64 115, !12, i64 116, !12, i64 117, !12, i64 118, !12, i64 119, !16, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !12, i64 208, !12, i64 209, !12, i64 210, !12, i64 211, !12, i64 212, !12, i64 213, !12, i64 214, !16, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !15, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !15, i64 3572, !7, i64 3580, !16, i64 3588, !16, i64 3592, !12, i64 3596, !12, i64 3597, !12, i64 3598, !12, i64 3599, !10, i64 3600, !7, i64 3604, !12, i64 14036, !15, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !16, i64 14236, !12, i64 14240, !12, i64 14241, !7, i64 14242, !12, i64 14243, !17, i64 14244, !18, i64 14248}
!15 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!16 = !{!"float", !7, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!19 = !{!14, !16, i64 3576}
!20 = !{!21, !21, i64 0}
!21 = !{!"vtable pointer", !8, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = !{!15, !16, i64 0}
!25 = !{!16, !16, i64 0}
!26 = !{!14, !12, i64 3598}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = !{i64 0, i64 4, !25, i64 4, i64 4, !25}
!30 = !{!15, !16, i64 4}
!31 = !{!32, !12, i64 8}
!32 = !{!"_ZTSN11ImSequencer17SequenceInterfaceE", !12, i64 8}
!33 = !{!34, !16, i64 0}
!34 = !{!"_ZTS6ImRect", !15, i64 0, !15, i64 8}
!35 = distinct !{!35, !23}
!36 = distinct !{!36, !23}
!37 = distinct !{!37, !23}
!38 = !{!39, !39, i64 0}
!39 = !{!"long", !7, i64 0}
!40 = distinct !{!40, !23}
!41 = distinct !{!41, !23}
!42 = distinct !{!42, !23}
!43 = distinct !{!43, !23}
!44 = distinct !{!44, !23}
!45 = distinct !{!45, !23}
!46 = !{!47, !10, i64 0}
!47 = !{!"_ZTSZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10CustomDraw", !10, i64 0, !34, i64 4, !34, i64 20, !34, i64 36, !34, i64 52}
!48 = !{i64 0, i64 4, !25, i64 4, i64 4, !25, i64 8, i64 4, !25, i64 12, i64 4, !25}
!49 = distinct !{!49, !23}
!50 = !{!14, !16, i64 240}


; 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.ImVector.0 = type { i32, i32, ptr }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%class.anon = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%class.anon.7 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.CustomDraw = type { i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect }

@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth = external hidden local_unnamed_addr global float, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget = external hidden local_unnamed_addr global float, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry = external hidden local_unnamed_addr global i32, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos = external hidden local_unnamed_addr global i32, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart = external hidden local_unnamed_addr global i32, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar = external hidden local_unnamed_addr global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame = external hidden local_unnamed_addr global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView = external hidden local_unnamed_addr global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource = external hidden local_unnamed_addr global %struct.ImVec2, align 4
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame = external hidden local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar = external hidden local_unnamed_addr global i8, align 1
@_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar = external hidden local_unnamed_addr global i8, align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_i(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, i32 noundef %5) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca %struct.ImVec2, align 8
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca i32, align 4
  %14 = alloca %struct.ImVector.0, align 8
  %15 = alloca %struct.ImVector.0, align 8
  %16 = alloca %struct.ImRect, align 4
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca [512 x i8], align 16
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 8
  %25 = alloca %struct.ImVec2, align 8
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 8
  %29 = alloca %struct.ImVec2, align 8
  %30 = alloca %struct.ImRect, align 4
  %31 = alloca %struct.ImVec2, align 8
  %32 = alloca %struct.ImRect, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 4
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImVec2, align 8
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %class.anon, align 8
  %41 = alloca %class.anon.7, align 8
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca i32, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 8
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec2, align 8
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca %struct.ImVec2, align 8
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca %struct.ImVec2, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 4
  %61 = alloca %struct.ImRect, align 4
  %62 = alloca [3 x %struct.ImRect], align 16
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca %struct.ImVec2, align 4
  %65 = alloca %struct.ImRect, align 4
  %66 = alloca %struct.ImVec2, align 8
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImRect, align 4
  %69 = alloca %struct.ImVec2, align 8
  %70 = alloca %struct.ImVec2, align 4
  %71 = alloca %struct.ImVec2, align 8
  %72 = alloca %struct.ImVec2, align 4
  %73 = alloca %struct.ImRect, align 4
  %74 = alloca %struct.ImVec2, align 8
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca %struct.ImVec2, align 8
  %77 = alloca %struct.ImVec2, align 4
  %78 = alloca %struct.ImRect, align 4
  %79 = alloca %struct.ImVec2, align 8
  %80 = alloca %struct.ImVec2, align 4
  %81 = alloca %struct.ImVec2, align 8
  %82 = alloca %struct.ImVec2, align 4
  %83 = alloca %struct.ImRect, align 4
  %84 = alloca %struct.ImVec2, align 8
  %85 = alloca %struct.ImVec2, align 4
  %86 = alloca %struct.ImVec2, align 8
  %87 = alloca %struct.ImVec2, align 4
  %88 = alloca %struct.CustomDraw, align 4
  %89 = alloca %struct.ImVec2, align 4
  %90 = alloca %struct.ImRect, align 4
  %91 = alloca %struct.ImVec2, align 8
  %92 = alloca %struct.ImVec2, align 4
  %93 = alloca %struct.ImVec2, align 8
  %94 = alloca %struct.ImVec2, align 4
  %95 = alloca %struct.ImRect, align 4
  %96 = alloca %struct.ImVec2, align 8
  %97 = alloca %struct.ImVec2, align 4
  %98 = alloca %struct.ImVec2, align 8
  %99 = alloca %struct.ImVec2, align 4
  %100 = alloca %struct.CustomDraw, align 4
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca %struct.ImVec2, align 4
  %104 = alloca %struct.ImVec2, align 4
  %105 = alloca [512 x i8], align 16
  %106 = alloca %struct.ImVec2, align 4
  %107 = alloca %struct.ImRect, align 4
  %108 = alloca %struct.ImVec2, align 4
  %109 = alloca %struct.ImVec2, align 4
  %110 = alloca %struct.ImRect, align 4
  %111 = alloca %struct.ImVec2, align 4
  %112 = alloca %struct.ImVec2, align 4
  %113 = alloca %struct.ImVec2, align 4
  %114 = alloca %struct.ImVec2, align 4
  %115 = alloca %struct.ImRect, align 4
  %116 = alloca %struct.ImVec2, align 4
  %117 = alloca %struct.ImVec2, align 4
  %118 = alloca %struct.ImRect, align 4
  %119 = alloca %struct.ImVec2, align 4
  %120 = alloca %struct.ImRect, align 4
  %121 = alloca %struct.ImVec2, align 4
  %122 = alloca %struct.ImRect, align 4
  %123 = alloca %struct.ImVec2, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  %124 = tail call noundef nonnull align 8 dereferenceable(14264) ptr @_ZN5ImGui5GetIOEv()
  %125 = getelementptr inbounds i8, ptr %124, i64 3572
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = fptosi float %126 to i32
  %128 = getelementptr inbounds i8, ptr %124, i64 3576
  %129 = load float, ptr %128, align 8, !tbaa !17
  %130 = fptosi float %129 to i32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #9
  store i32 200, ptr %8, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #9
  store i32 20, ptr %9, align 4, !tbaa !18
  %131 = load ptr, ptr %0, align 8, !tbaa !19
  %132 = getelementptr inbounds i8, ptr %131, i64 16
  %133 = load ptr, ptr %132, align 8
  %134 = tail call noundef i32 %133(ptr noundef nonnull align 8 dereferenceable(9) %0)
  %.not440 = icmp eq i32 %134, 0
  br i1 %.not440, label %1720, label %135

135:                                              ; preds = %6
  tail call void @_ZN5ImGui10BeginGroupEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  %136 = tail call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  store ptr %136, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  %137 = tail call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %137, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %138 = tail call <2 x float> @_ZN5ImGui21GetContentRegionAvailEv()
  store <2 x float> %138, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #9
  %139 = icmp ne ptr %4, null
  br i1 %139, label %140, label %142

140:                                              ; preds = %135
  %141 = load i32, ptr %4, align 4, !tbaa !18
  br label %142

142:                                              ; preds = %135, %140
  %143 = phi i32 [ %141, %140 ], [ 0, %135 ]
  store i32 %143, ptr %13, align 4, !tbaa !18
  %144 = mul nsw i32 %134, 20
  %145 = icmp sgt i32 %134, 0
  br i1 %145, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph, %142
  %.0348.lcssa = phi i32 [ %144, %142 ], [ %178, %.lr.ph ]
  %146 = load ptr, ptr %0, align 8, !tbaa !19
  %147 = getelementptr inbounds i8, ptr %146, i64 8
  %148 = load ptr, ptr %147, align 8
  %149 = tail call noundef i32 %148(ptr noundef nonnull align 8 dereferenceable(9) %0)
  %150 = load ptr, ptr %0, align 8, !tbaa !19
  %151 = load ptr, ptr %150, align 8
  %152 = tail call noundef i32 %151(ptr noundef nonnull align 8 dereferenceable(9) %0)
  %153 = sub nsw i32 %149, %152
  %154 = tail call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %153, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15)
  %155 = load float, ptr %12, align 8, !tbaa !21
  %156 = load i32, ptr %8, align 4, !tbaa !18
  %157 = sitofp i32 %156 to float
  %158 = fsub float %155, %157
  %159 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %160 = fdiv float %158, %159
  %161 = call float @llvm.floor.f32(float %160)
  %162 = fptosi float %161 to i32
  %163 = sitofp i32 %162 to float
  %164 = sitofp i32 %154 to float
  %165 = fdiv float %163, %164
  %166 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %165, float noundef 1.000000e+00)
  %167 = load float, ptr %12, align 8, !tbaa !21
  %168 = load i32, ptr %8, align 4, !tbaa !18
  %169 = sitofp i32 %168 to float
  %170 = fsub float %167, %169
  %171 = fmul float %166, %170
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  %172 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %12)
          to label %180 unwind label %199

.lr.ph:                                           ; preds = %142, %.lr.ph
  %.0348569 = phi i32 [ %178, %.lr.ph ], [ %144, %142 ]
  %.0349568 = phi i32 [ %179, %.lr.ph ], [ 0, %142 ]
  %173 = load ptr, ptr %0, align 8, !tbaa !19
  %174 = getelementptr inbounds i8, ptr %173, i64 120
  %175 = load ptr, ptr %174, align 8
  %176 = tail call noundef i64 %175(ptr noundef nonnull align 8 dereferenceable(9) %0, i32 noundef %.0349568)
  %177 = trunc i64 %176 to i32
  %178 = add nsw i32 %.0348569, %177
  %179 = add nuw nsw i32 %.0349568, 1
  %exitcond.not = icmp eq i32 %179, %134
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !23

180:                                              ; preds = %._crit_edge
  store <2 x float> %172, ptr %17, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  %181 = invoke noundef zeroext i1 @_ZN5ImGui15IsWindowFocusedEi(i32 noundef 0)
          to label %182 unwind label %201

182:                                              ; preds = %180
  br i1 %181, label %183, label %225

183:                                              ; preds = %182
  %184 = getelementptr inbounds i8, ptr %124, i64 3598
  %185 = load i8, ptr %184, align 2, !tbaa !25, !range !26, !noundef !27
  %186 = trunc nuw i8 %185 to i1
  br i1 %186, label %187, label %225

187:                                              ; preds = %183
  %188 = getelementptr inbounds i8, ptr %124, i64 3582
  %189 = load i8, ptr %188, align 2, !tbaa !28, !range !26, !noundef !27
  %190 = trunc nuw i8 %189 to i1
  br i1 %190, label %191, label %225

191:                                              ; preds = %187
  %192 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !28, !range !26, !noundef !27
  %193 = trunc nuw i8 %192 to i1
  br i1 %193, label %._crit_edge630, label %194

._crit_edge630:                                   ; preds = %191
  %.pre = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !18
  %.pre631 = load float, ptr %125, align 4, !tbaa !9
  %.pre632 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, align 4, !tbaa !21
  br label %203

194:                                              ; preds = %191
  %195 = load i64, ptr %125, align 4
  store i64 %195, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, align 4
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !28
  %196 = load i32, ptr %4, align 4, !tbaa !18
  store i32 %196, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !18
  %197 = trunc i64 %195 to i32
  %198 = bitcast i32 %197 to float
  br label %203

199:                                              ; preds = %._crit_edge
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  br label %1719

201:                                              ; preds = %1713, %1704, %1695, %1678, %1669, %251, %243, %233, %216, %203, %180
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %1719

203:                                              ; preds = %._crit_edge630, %194
  %204 = phi float [ %.pre632, %._crit_edge630 ], [ %198, %194 ]
  %205 = phi float [ %.pre631, %._crit_edge630 ], [ %198, %194 ]
  %206 = phi i32 [ %.pre, %._crit_edge630 ], [ %196, %194 ]
  %207 = fsub float %205, %204
  %208 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %209 = fdiv float %207, %208
  %210 = fptosi float %209 to i32
  %211 = sub nsw i32 %206, %210
  store i32 %211, ptr %4, align 4, !tbaa !18
  %212 = load ptr, ptr %7, align 8, !tbaa !5
  %213 = load ptr, ptr %212, align 8, !tbaa !19
  %214 = load ptr, ptr %213, align 8
  %215 = invoke noundef i32 %214(ptr noundef nonnull align 8 dereferenceable(9) %212)
          to label %216 unwind label %201

216:                                              ; preds = %203
  %217 = load ptr, ptr %7, align 8, !tbaa !5
  %218 = load ptr, ptr %217, align 8, !tbaa !19
  %219 = getelementptr inbounds i8, ptr %218, i64 8
  %220 = load ptr, ptr %219, align 8
  %221 = invoke noundef i32 %220(ptr noundef nonnull align 8 dereferenceable(9) %217)
          to label %222 unwind label %201

222:                                              ; preds = %216
  %223 = sub nsw i32 %221, %162
  %224 = call noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %211, i32 noundef %215, i32 noundef %223)
  store i32 %224, ptr %4, align 4, !tbaa !18
  br label %225

225:                                              ; preds = %222, %187, %183, %182
  %226 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !28, !range !26, !noundef !27
  %227 = trunc nuw i8 %226 to i1
  br i1 %227, label %228, label %233

228:                                              ; preds = %225
  %229 = getelementptr inbounds i8, ptr %124, i64 3582
  %230 = load i8, ptr %229, align 2, !tbaa !28, !range !26, !noundef !27
  %231 = trunc nuw i8 %230 to i1
  br i1 %231, label %233, label %232

232:                                              ; preds = %228
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11panningView, align 1, !tbaa !28
  br label %233

233:                                              ; preds = %232, %228, %225
  %234 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  %235 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %234, float noundef 0x3FB99999A0000000, float noundef 5.000000e+01)
  store float %235, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  %236 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %237 = call noundef float @_ZL6ImLerpIfET_S0_S0_f(float noundef %236, float noundef %235, float noundef 0x3FD51EB860000000)
  store float %237, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %238 = load ptr, ptr %7, align 8, !tbaa !5
  %239 = load ptr, ptr %238, align 8, !tbaa !19
  %240 = getelementptr inbounds i8, ptr %239, i64 8
  %241 = load ptr, ptr %240, align 8
  %242 = invoke noundef i32 %241(ptr noundef nonnull align 8 dereferenceable(9) %238)
          to label %243 unwind label %201

243:                                              ; preds = %233
  %244 = load ptr, ptr %7, align 8, !tbaa !5
  %245 = load ptr, ptr %244, align 8, !tbaa !19
  %246 = load ptr, ptr %245, align 8
  %247 = invoke noundef i32 %246(ptr noundef nonnull align 8 dereferenceable(9) %244)
          to label %248 unwind label %201

248:                                              ; preds = %243
  %249 = sub nsw i32 %242, %247
  %250 = icmp sle i32 %249, %162
  %or.cond = and i1 %139, %250
  br i1 %or.cond, label %251, label %257

251:                                              ; preds = %248
  %252 = load ptr, ptr %7, align 8, !tbaa !5
  %253 = load ptr, ptr %252, align 8, !tbaa !19
  %254 = load ptr, ptr %253, align 8
  %255 = invoke noundef i32 %254(ptr noundef nonnull align 8 dereferenceable(9) %252)
          to label %256 unwind label %201

256:                                              ; preds = %251
  store i32 %255, ptr %4, align 4, !tbaa !18
  br label %257

257:                                              ; preds = %256, %248
  %.not441 = icmp eq ptr %2, null
  br i1 %.not441, label %302, label %258

258:                                              ; preds = %257
  %259 = load i8, ptr %2, align 1, !tbaa !28, !range !26, !noundef !27
  %260 = trunc nuw i8 %259 to i1
  br i1 %260, label %302, label %261

261:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  %262 = load float, ptr %12, align 8, !tbaa !21
  %263 = load float, ptr %11, align 8, !tbaa !21
  %264 = fsub float %262, %263
  %265 = load i32, ptr %9, align 4, !tbaa !18
  %266 = sitofp i32 %265 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %264, float noundef %266)
  %267 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str, ptr noundef nonnull align 4 dereferenceable(8) %18, i32 noundef 0)
          to label %268 unwind label %293

268:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  %269 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  %270 = load float, ptr %12, align 8, !tbaa !21
  %271 = load float, ptr %11, align 8, !tbaa !21
  %272 = fadd float %270, %271
  %273 = getelementptr inbounds i8, ptr %11, i64 4
  %274 = load float, ptr %273, align 4, !tbaa !29
  %275 = load i32, ptr %9, align 4, !tbaa !18
  %276 = sitofp i32 %275 to float
  %277 = fadd float %274, %276
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %272, float noundef %277)
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %269, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %19, i32 noundef -12765129, float noundef 0.000000e+00, i32 noundef 0)
          to label %278 unwind label %295

278:                                              ; preds = %268
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %20) #9
  %279 = load ptr, ptr %7, align 8, !tbaa !5
  %280 = load ptr, ptr %279, align 8, !tbaa !19
  %281 = getelementptr inbounds i8, ptr %280, i64 64
  %282 = load ptr, ptr %281, align 8
  %283 = invoke noundef ptr %282(ptr noundef nonnull align 8 dereferenceable(9) %279)
          to label %284 unwind label %297

284:                                              ; preds = %278
  %285 = invoke noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %20, i64 noundef 512, ptr noundef %283, i32 noundef %249, i32 noundef %134)
          to label %286 unwind label %297

286:                                              ; preds = %284
  %287 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  %288 = load float, ptr %11, align 8, !tbaa !21
  %289 = fadd float %288, 2.600000e+01
  %290 = load float, ptr %273, align 4, !tbaa !29
  %291 = fadd float %290, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef %289, float noundef %291)
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %287, ptr noundef nonnull align 4 dereferenceable(8) %21, i32 noundef -1, ptr noundef nonnull %20, ptr noundef null)
          to label %292 unwind label %299

292:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %20) #9
  br label %1669

293:                                              ; preds = %261
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %1719

295:                                              ; preds = %268
  %296 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  br label %1719

297:                                              ; preds = %284, %278
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %301

299:                                              ; preds = %286
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  br label %301

301:                                              ; preds = %299, %297
  %.pn = phi { ptr, i32 } [ %300, %299 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %20) #9
  br label %1719

302:                                              ; preds = %258, %257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  %303 = load float, ptr %12, align 8, !tbaa !21
  %304 = load i32, ptr %9, align 4, !tbaa !18
  %305 = sitofp i32 %304 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef %303, float noundef %305)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %306 = load float, ptr %12, align 8, !tbaa !21
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %306, float noundef 1.400000e+01)
  %307 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.1, ptr noundef nonnull align 4 dereferenceable(8) %22, i32 noundef 0)
          to label %308 unwind label %384

308:                                              ; preds = %302
  %309 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %310 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %311 unwind label %386

311:                                              ; preds = %308
  store <2 x float> %310, ptr %24, align 8
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %309, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %24, i32 noundef -65536, float noundef 0.000000e+00, i32 noundef 0)
          to label %312 unwind label %386

312:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  %313 = invoke <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
          to label %314 unwind label %388

314:                                              ; preds = %312
  store <2 x float> %313, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  %315 = load float, ptr %12, align 8, !tbaa !21
  %316 = getelementptr inbounds i8, ptr %12, i64 4
  %317 = load float, ptr %316, align 4, !tbaa !29
  %318 = fadd float %317, -8.000000e+00
  %319 = getelementptr inbounds i8, ptr %22, i64 4
  %320 = load float, ptr %319, align 4, !tbaa !29
  %321 = fsub float %318, %320
  %322 = getelementptr inbounds i8, ptr %23, i64 4
  %323 = load float, ptr %322, align 4
  %324 = fsub float %321, %323
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %315, float noundef %324)
  invoke void @_ZN5ImGui14PushStyleColorEij(i32 noundef 7, i32 noundef 0)
          to label %325 unwind label %390

325:                                              ; preds = %314
  %326 = invoke noundef zeroext i1 @_ZN5ImGui15BeginChildFrameEjRK6ImVec2i(i32 noundef 889, ptr noundef nonnull align 4 dereferenceable(8) %26, i32 noundef 0)
          to label %327 unwind label %390

327:                                              ; preds = %325
  %328 = invoke noundef zeroext i1 @_ZN5ImGui15IsWindowFocusedEi(i32 noundef 0)
          to label %329 unwind label %390

329:                                              ; preds = %327
  %330 = load ptr, ptr %7, align 8, !tbaa !5
  %331 = getelementptr inbounds i8, ptr %330, i64 8
  %332 = zext i1 %328 to i8
  store i8 %332, ptr %331, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  %333 = load float, ptr %12, align 8, !tbaa !21
  %334 = sitofp i32 %.0348.lcssa to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %333, float noundef %334)
  %335 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.2, ptr noundef nonnull align 4 dereferenceable(8) %27, i32 noundef 0)
          to label %336 unwind label %392

336:                                              ; preds = %329
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  %337 = invoke <2 x float> @_ZN5ImGui14GetItemRectMinEv()
          to label %338 unwind label %394

338:                                              ; preds = %336
  store <2 x float> %337, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  %339 = invoke <2 x float> @_ZN5ImGui14GetItemRectMaxEv()
          to label %340 unwind label %396

340:                                              ; preds = %338
  store <2 x float> %339, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %30, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %29)
  %341 = getelementptr inbounds i8, ptr %29, i64 4
  %342 = load float, ptr %341, align 4, !tbaa !29
  %343 = getelementptr inbounds i8, ptr %28, i64 4
  %344 = load float, ptr %343, align 4, !tbaa !29
  %345 = fsub float %342, %344
  %346 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  %347 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %12)
          to label %348 unwind label %398

348:                                              ; preds = %340
  store <2 x float> %347, ptr %31, align 8
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %346, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef -14408668, float noundef 0.000000e+00, i32 noundef 0)
          to label %349 unwind label %398

349:                                              ; preds = %348
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #9
  %350 = load float, ptr %11, align 8, !tbaa !21
  %351 = load i32, ptr %8, align 4, !tbaa !18
  %352 = sitofp i32 %351 to float
  %353 = fadd float %350, %352
  %354 = getelementptr inbounds i8, ptr %11, i64 4
  %355 = load float, ptr %354, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %353, float noundef %355)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  %356 = load float, ptr %11, align 8, !tbaa !21
  %357 = load float, ptr %12, align 8, !tbaa !21
  %358 = fadd float %356, %357
  %359 = load float, ptr %354, align 4, !tbaa !29
  %360 = load i32, ptr %9, align 4, !tbaa !18
  %361 = sitofp i32 %360 to float
  %362 = fadd float %359, %361
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %358, float noundef %362)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  %363 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28, !range !26, !noundef !27
  %364 = trunc nuw i8 %363 to i1
  br i1 %364, label %402, label %365

365:                                              ; preds = %349
  %366 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28, !range !26, !noundef !27
  %367 = trunc nuw i8 %366 to i1
  %368 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4
  %369 = icmp ne i32 %368, -1
  %or.cond3.not = select i1 %367, i1 true, i1 %369
  br i1 %or.cond3.not, label %402, label %370

370:                                              ; preds = %365
  %371 = and i32 %5, 8
  %372 = icmp ne i32 %371, 0
  %373 = icmp ne ptr %1, null
  %or.cond5 = and i1 %373, %372
  br i1 %or.cond5, label %374, label %402

374:                                              ; preds = %370
  %375 = load i32, ptr %1, align 4, !tbaa !18
  %376 = icmp sgt i32 %375, -1
  br i1 %376, label %377, label %402

377:                                              ; preds = %374
  %378 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %378, label %379, label %402

379:                                              ; preds = %377
  %380 = getelementptr inbounds i8, ptr %124, i64 3580
  %381 = load i8, ptr %380, align 4, !tbaa !28, !range !26, !noundef !27
  %382 = trunc nuw i8 %381 to i1
  br i1 %382, label %383, label %402

383:                                              ; preds = %379
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28
  br label %402

384:                                              ; preds = %302
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %1668

386:                                              ; preds = %311, %308
  %387 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %1668

388:                                              ; preds = %312
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %1667

390:                                              ; preds = %327, %325, %314
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %1666

392:                                              ; preds = %329
  %393 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  br label %1666

394:                                              ; preds = %336
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %1665

396:                                              ; preds = %338
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %1664

398:                                              ; preds = %348, %340
  %399 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %1663

400:                                              ; preds = %485, %475, %472, %458, %435, %427, %421, %406
  %401 = landingpad { ptr, i32 }
          cleanup
  br label %1662

402:                                              ; preds = %383, %379, %377, %374, %370, %365, %349
  %403 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28, !range !26, !noundef !27
  %404 = trunc nuw i8 %403 to i1
  br i1 %404, label %405, label %447

405:                                              ; preds = %402
  %.not = icmp eq i32 %242, %247
  br i1 %.not, label %442, label %406

406:                                              ; preds = %405
  %407 = load float, ptr %125, align 4, !tbaa !9
  %408 = load float, ptr %32, align 4, !tbaa !32
  %409 = fsub float %407, %408
  %410 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %411 = fdiv float %409, %410
  %412 = fptosi float %411 to i32
  %413 = load i32, ptr %13, align 4, !tbaa !18
  %414 = add nsw i32 %413, %412
  store i32 %414, ptr %1, align 4, !tbaa !18
  %415 = load ptr, ptr %7, align 8, !tbaa !5
  %416 = load ptr, ptr %415, align 8, !tbaa !19
  %417 = load ptr, ptr %416, align 8
  %418 = invoke noundef i32 %417(ptr noundef nonnull align 8 dereferenceable(9) %415)
          to label %419 unwind label %400

419:                                              ; preds = %406
  %420 = icmp slt i32 %414, %418
  br i1 %420, label %421, label %._crit_edge633

._crit_edge633:                                   ; preds = %419
  %.pre634 = load i32, ptr %1, align 4, !tbaa !18
  br label %427

421:                                              ; preds = %419
  %422 = load ptr, ptr %7, align 8, !tbaa !5
  %423 = load ptr, ptr %422, align 8, !tbaa !19
  %424 = load ptr, ptr %423, align 8
  %425 = invoke noundef i32 %424(ptr noundef nonnull align 8 dereferenceable(9) %422)
          to label %426 unwind label %400

426:                                              ; preds = %421
  store i32 %425, ptr %1, align 4, !tbaa !18
  br label %427

427:                                              ; preds = %._crit_edge633, %426
  %428 = phi i32 [ %.pre634, %._crit_edge633 ], [ %425, %426 ]
  %429 = load ptr, ptr %7, align 8, !tbaa !5
  %430 = load ptr, ptr %429, align 8, !tbaa !19
  %431 = getelementptr inbounds i8, ptr %430, i64 8
  %432 = load ptr, ptr %431, align 8
  %433 = invoke noundef i32 %432(ptr noundef nonnull align 8 dereferenceable(9) %429)
          to label %434 unwind label %400

434:                                              ; preds = %427
  %.not444 = icmp slt i32 %428, %433
  br i1 %.not444, label %442, label %435

435:                                              ; preds = %434
  %436 = load ptr, ptr %7, align 8, !tbaa !5
  %437 = load ptr, ptr %436, align 8, !tbaa !19
  %438 = getelementptr inbounds i8, ptr %437, i64 8
  %439 = load ptr, ptr %438, align 8
  %440 = invoke noundef i32 %439(ptr noundef nonnull align 8 dereferenceable(9) %436)
          to label %441 unwind label %400

441:                                              ; preds = %435
  store i32 %440, ptr %1, align 4, !tbaa !18
  br label %442

442:                                              ; preds = %434, %441, %405
  %443 = getelementptr inbounds i8, ptr %124, i64 3580
  %444 = load i8, ptr %443, align 4, !tbaa !28, !range !26, !noundef !27
  %445 = trunc nuw i8 %444 to i1
  br i1 %445, label %447, label %446

446:                                              ; preds = %442
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28
  br label %447

447:                                              ; preds = %442, %446, %402
  %448 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  %449 = load float, ptr %12, align 8, !tbaa !21
  %450 = load float, ptr %11, align 8, !tbaa !21
  %451 = fadd float %449, %450
  %452 = load float, ptr %354, align 4, !tbaa !29
  %453 = load i32, ptr %9, align 4, !tbaa !18
  %454 = sitofp i32 %453 to float
  %455 = fadd float %452, %454
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %451, float noundef %455)
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %448, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %35, i32 noundef -12765129, float noundef 0.000000e+00, i32 noundef 0)
          to label %456 unwind label %473

456:                                              ; preds = %447
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  %457 = and i32 %5, 16
  %.not445 = icmp eq i32 %457, 0
  br i1 %.not445, label %514, label %458

458:                                              ; preds = %456
  %459 = load ptr, ptr %10, align 8, !tbaa !5
  %460 = load float, ptr %11, align 8, !tbaa !21
  %461 = load i32, ptr %8, align 4, !tbaa !18
  %462 = sitofp i32 %461 to float
  %463 = fadd float %460, %462
  %464 = load i32, ptr %9, align 4, !tbaa !18
  %465 = sitofp i32 %464 to float
  %466 = fsub float %463, %465
  %467 = load float, ptr %354, align 4, !tbaa !29
  %468 = fadd float %467, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %36, float noundef %466, float noundef %468)
  %469 = load <2 x float>, ptr %36, align 8
  %470 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %459, <2 x float> %469, i1 noundef zeroext true)
          to label %471 unwind label %400

471:                                              ; preds = %458
  br i1 %470, label %472, label %475

472:                                              ; preds = %471
  invoke void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.3, i32 noundef 0)
          to label %475 unwind label %400

473:                                              ; preds = %447
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  br label %1662

475:                                              ; preds = %472, %471
  %476 = invoke noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.3, i32 noundef 0)
          to label %477 unwind label %400

477:                                              ; preds = %475
  br i1 %476, label %.preheader557, label %514

.preheader557:                                    ; preds = %477, %512
  %.0399 = phi i32 [ %513, %512 ], [ 0, %477 ]
  %478 = load ptr, ptr %7, align 8, !tbaa !5
  %479 = load ptr, ptr %478, align 8, !tbaa !19
  %480 = getelementptr inbounds i8, ptr %479, i64 40
  %481 = load ptr, ptr %480, align 8
  %482 = invoke noundef i32 %481(ptr noundef nonnull align 8 dereferenceable(9) %478)
          to label %483 unwind label %486

483:                                              ; preds = %.preheader557
  %484 = icmp slt i32 %.0399, %482
  br i1 %484, label %488, label %485

485:                                              ; preds = %483
  invoke void @_ZN5ImGui8EndPopupEv()
          to label %514 unwind label %400

486:                                              ; preds = %502, %497, %488, %.preheader557
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %1662

488:                                              ; preds = %483
  %489 = load ptr, ptr %7, align 8, !tbaa !5
  %490 = load ptr, ptr %489, align 8, !tbaa !19
  %491 = getelementptr inbounds i8, ptr %490, i64 48
  %492 = load ptr, ptr %491, align 8
  %493 = invoke noundef ptr %492(ptr noundef nonnull align 8 dereferenceable(9) %489, i32 noundef %.0399)
          to label %494 unwind label %486

494:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %495 = invoke noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %493, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %37)
          to label %496 unwind label %510

496:                                              ; preds = %494
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  br i1 %495, label %497, label %512

497:                                              ; preds = %496
  %498 = load ptr, ptr %7, align 8, !tbaa !5
  %499 = load ptr, ptr %498, align 8, !tbaa !19
  %500 = getelementptr inbounds i8, ptr %499, i64 80
  %501 = load ptr, ptr %500, align 8
  invoke void %501(ptr noundef nonnull align 8 dereferenceable(9) %498, i32 noundef %.0399)
          to label %502 unwind label %486

502:                                              ; preds = %497
  %503 = load ptr, ptr %7, align 8, !tbaa !5
  %504 = load ptr, ptr %503, align 8, !tbaa !19
  %505 = getelementptr inbounds i8, ptr %504, i64 16
  %506 = load ptr, ptr %505, align 8
  %507 = invoke noundef i32 %506(ptr noundef nonnull align 8 dereferenceable(9) %503)
          to label %508 unwind label %486

508:                                              ; preds = %502
  %509 = add nsw i32 %507, -1
  store i32 %509, ptr %3, align 4, !tbaa !18
  br label %512

510:                                              ; preds = %494
  %511 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  br label %1662

512:                                              ; preds = %496, %508
  %513 = add nuw nsw i32 %.0399, 1
  br label %.preheader557, !llvm.loop !34

514:                                              ; preds = %485, %477, %456
  %.0346 = phi i1 [ false, %477 ], [ false, %456 ], [ true, %485 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #9
  store i32 10, ptr %38, align 4, !tbaa !18
  %515 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %516 = fmul float %515, 1.000000e+01
  %517 = fcmp olt float %516, 1.500000e+02
  br i1 %517, label %.lr.ph572, label %524

.lr.ph572:                                        ; preds = %514, %.lr.ph572
  %.0400570 = phi i32 [ %520, %.lr.ph572 ], [ 1, %514 ]
  %518 = phi i32 [ %519, %.lr.ph572 ], [ 10, %514 ]
  %519 = shl nsw i32 %518, 1
  %520 = shl nsw i32 %.0400570, 1
  %521 = sitofp i32 %519 to float
  %522 = fmul float %515, %521
  %523 = fcmp olt float %522, 1.500000e+02
  br i1 %523, label %.lr.ph572, label %._crit_edge573, !llvm.loop !35

._crit_edge573:                                   ; preds = %.lr.ph572
  store i32 %519, ptr %38, align 4, !tbaa !18
  br label %524

524:                                              ; preds = %._crit_edge573, %514
  %.0400.lcssa = phi i32 [ %520, %._crit_edge573 ], [ 1, %514 ]
  %.lcssa567 = phi i32 [ %518, %._crit_edge573 ], [ 5, %514 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #9
  store i32 %.lcssa567, ptr %39, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %40) #9
  store ptr %38, ptr %40, align 8, !tbaa !5
  %525 = getelementptr inbounds i8, ptr %40, i64 8
  store ptr %7, ptr %525, align 8, !tbaa !5
  %526 = getelementptr inbounds i8, ptr %40, i64 16
  store ptr %39, ptr %526, align 8, !tbaa !5
  %527 = getelementptr inbounds i8, ptr %40, i64 24
  store ptr %11, ptr %527, align 8, !tbaa !5
  %528 = getelementptr inbounds i8, ptr %40, i64 32
  store ptr %8, ptr %528, align 8, !tbaa !5
  %529 = getelementptr inbounds i8, ptr %40, i64 40
  store ptr %13, ptr %529, align 8, !tbaa !5
  %530 = getelementptr inbounds i8, ptr %40, i64 48
  store ptr %9, ptr %530, align 8, !tbaa !5
  %531 = getelementptr inbounds i8, ptr %40, i64 56
  store ptr %12, ptr %531, align 8, !tbaa !5
  %532 = getelementptr inbounds i8, ptr %40, i64 64
  store ptr %10, ptr %532, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %41) #9
  store ptr %11, ptr %41, align 8, !tbaa !5
  %533 = getelementptr inbounds i8, ptr %41, i64 8
  store ptr %8, ptr %533, align 8, !tbaa !5
  %534 = getelementptr inbounds i8, ptr %41, i64 16
  store ptr %13, ptr %534, align 8, !tbaa !5
  %535 = getelementptr inbounds i8, ptr %41, i64 24
  store ptr %28, ptr %535, align 8, !tbaa !5
  %536 = getelementptr inbounds i8, ptr %41, i64 32
  store ptr %29, ptr %536, align 8, !tbaa !5
  %537 = getelementptr inbounds i8, ptr %41, i64 40
  store ptr %12, ptr %537, align 8, !tbaa !5
  %538 = getelementptr inbounds i8, ptr %41, i64 48
  store ptr %10, ptr %538, align 8, !tbaa !5
  %539 = load ptr, ptr %7, align 8, !tbaa !5
  %540 = load ptr, ptr %539, align 8, !tbaa !19
  %541 = load ptr, ptr %540, align 8
  %542 = invoke noundef i32 %541(ptr noundef nonnull align 8 dereferenceable(9) %539)
          to label %.preheader551 unwind label %.loopexit.split-lp553

.preheader551:                                    ; preds = %524, %556
  %.0401 = phi i32 [ %557, %556 ], [ %542, %524 ]
  %543 = load ptr, ptr %7, align 8, !tbaa !5
  %544 = load ptr, ptr %543, align 8, !tbaa !19
  %545 = getelementptr inbounds i8, ptr %544, i64 8
  %546 = load ptr, ptr %545, align 8
  %547 = invoke noundef i32 %546(ptr noundef nonnull align 8 dereferenceable(9) %543)
          to label %548 unwind label %.loopexit552

548:                                              ; preds = %.preheader551
  %.not446 = icmp sgt i32 %.0401, %547
  br i1 %.not446, label %549, label %554

549:                                              ; preds = %548
  %550 = load ptr, ptr %7, align 8, !tbaa !5
  %551 = load ptr, ptr %550, align 8, !tbaa !19
  %552 = load ptr, ptr %551, align 8
  %553 = invoke noundef i32 %552(ptr noundef nonnull align 8 dereferenceable(9) %550)
          to label %558 unwind label %578

.loopexit552:                                     ; preds = %.preheader551, %554
  %lpad.loopexit554 = landingpad { ptr, i32 }
          cleanup
  br label %1661

.loopexit.split-lp553:                            ; preds = %524
  %lpad.loopexit.split-lp555 = landingpad { ptr, i32 }
          cleanup
  br label %1661

554:                                              ; preds = %548
  %555 = load i32, ptr %9, align 4, !tbaa !18
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72) %40, i32 noundef %.0401, i32 noundef %555)
          to label %556 unwind label %.loopexit552

556:                                              ; preds = %554
  %557 = add nsw i32 %.0401, %.0400.lcssa
  br label %.preheader551, !llvm.loop !36

558:                                              ; preds = %549
  %559 = load i32, ptr %9, align 4, !tbaa !18
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72) %40, i32 noundef %553, i32 noundef %559)
          to label %560 unwind label %578

560:                                              ; preds = %558
  %561 = load ptr, ptr %7, align 8, !tbaa !5
  %562 = load ptr, ptr %561, align 8, !tbaa !19
  %563 = getelementptr inbounds i8, ptr %562, i64 8
  %564 = load ptr, ptr %563, align 8
  %565 = invoke noundef i32 %564(ptr noundef nonnull align 8 dereferenceable(9) %561)
          to label %566 unwind label %578

566:                                              ; preds = %560
  %567 = load i32, ptr %9, align 4, !tbaa !18
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72) %40, i32 noundef %565, i32 noundef %567)
          to label %568 unwind label %578

568:                                              ; preds = %566
  %569 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #9
  %570 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %26)
          to label %571 unwind label %580

571:                                              ; preds = %568
  store <2 x float> %570, ptr %42, align 8
  invoke void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %569, ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %42, i1 noundef zeroext true)
          to label %572 unwind label %580

572:                                              ; preds = %571
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #9
  br i1 %145, label %.lr.ph582, label %._crit_edge588

.lr.ph582:                                        ; preds = %572
  %573 = and i32 %5, 32
  %.not517 = icmp eq i32 %573, 0
  %574 = getelementptr inbounds i8, ptr %44, i64 4
  br label %582

.preheader550:                                    ; preds = %648
  br i1 %145, label %.lr.ph587, label %._crit_edge588

.lr.ph587:                                        ; preds = %.preheader550
  %575 = getelementptr inbounds i8, ptr %47, i64 4
  %576 = sitofp i32 %130 to float
  %577 = sitofp i32 %127 to float
  br label %656

578:                                              ; preds = %566, %560, %558, %549
  %579 = landingpad { ptr, i32 }
          cleanup
  br label %1661

580:                                              ; preds = %571, %568
  %581 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #9
  br label %1661

582:                                              ; preds = %.lr.ph582, %648
  %.0337580 = phi i32 [ -1, %.lr.ph582 ], [ %.2339, %648 ]
  %.0343579 = phi i32 [ -1, %.lr.ph582 ], [ %.1344, %648 ]
  %.0402578 = phi i64 [ 0, %.lr.ph582 ], [ %649, %648 ]
  %.0406577 = phi i32 [ 0, %.lr.ph582 ], [ %650, %648 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #9
  %583 = load ptr, ptr %7, align 8, !tbaa !5
  %584 = load ptr, ptr %583, align 8, !tbaa !19
  %585 = getelementptr inbounds i8, ptr %584, i64 72
  %586 = load ptr, ptr %585, align 8
  invoke void %586(ptr noundef nonnull align 8 dereferenceable(9) %583, i32 noundef %.0406577, ptr noundef null, ptr noundef null, ptr noundef nonnull %43, ptr noundef null)
          to label %587 unwind label %637

587:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #9
  %588 = load float, ptr %28, align 8, !tbaa !21
  %589 = fadd float %588, 3.000000e+00
  %590 = load float, ptr %343, align 4, !tbaa !29
  %591 = load i32, ptr %9, align 4, !tbaa !18
  %592 = mul nsw i32 %591, %.0406577
  %593 = sitofp i32 %592 to float
  %594 = fadd float %590, %593
  %595 = fadd float %594, 2.000000e+00
  %596 = uitofp i64 %.0402578 to float
  %597 = fadd float %595, %596
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %589, float noundef %597)
  %598 = load ptr, ptr %10, align 8, !tbaa !5
  %599 = load ptr, ptr %7, align 8, !tbaa !5
  %600 = load ptr, ptr %599, align 8, !tbaa !19
  %601 = getelementptr inbounds i8, ptr %600, i64 56
  %602 = load ptr, ptr %601, align 8
  %603 = invoke noundef ptr %602(ptr noundef nonnull align 8 dereferenceable(9) %599, i32 noundef %.0406577)
          to label %604 unwind label %639

604:                                              ; preds = %587
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %598, ptr noundef nonnull align 4 dereferenceable(8) %44, i32 noundef -1, ptr noundef %603, ptr noundef null)
          to label %605 unwind label %639

605:                                              ; preds = %604
  br i1 %.not517, label %642, label %606

606:                                              ; preds = %605
  %607 = load ptr, ptr %10, align 8, !tbaa !5
  %608 = load float, ptr %28, align 8, !tbaa !21
  %609 = load i32, ptr %8, align 4, !tbaa !18
  %610 = sitofp i32 %609 to float
  %611 = fadd float %608, %610
  %612 = load i32, ptr %9, align 4, !tbaa !18
  %613 = sitofp i32 %612 to float
  %614 = fsub float %611, %613
  %615 = fadd float %614, 2.000000e+00
  %616 = fadd float %615, -1.000000e+01
  %617 = load float, ptr %574, align 4, !tbaa !29
  %618 = fadd float %617, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %616, float noundef %618)
  %619 = load <2 x float>, ptr %45, align 8
  %620 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %607, <2 x float> %619, i1 noundef zeroext false)
          to label %621 unwind label %639

621:                                              ; preds = %606
  %622 = load ptr, ptr %10, align 8, !tbaa !5
  %623 = load float, ptr %28, align 8, !tbaa !21
  %624 = load i32, ptr %8, align 4, !tbaa !18
  %625 = sitofp i32 %624 to float
  %626 = fadd float %623, %625
  %627 = load i32, ptr %9, align 4, !tbaa !18
  %628 = sitofp i32 %627 to float
  %629 = fsub float %626, %628
  %630 = fsub float %629, %628
  %631 = fadd float %630, 2.000000e+00
  %632 = fadd float %631, -1.000000e+01
  %633 = load float, ptr %574, align 4, !tbaa !29
  %634 = fadd float %633, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef %632, float noundef %634)
  %635 = load <2 x float>, ptr %46, align 8
  %636 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %622, <2 x float> %635, i1 noundef zeroext true)
          to label %641 unwind label %639

637:                                              ; preds = %582
  %638 = landingpad { ptr, i32 }
          cleanup
  br label %651

639:                                              ; preds = %642, %621, %606, %604, %587
  %640 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #9
  br label %651

641:                                              ; preds = %621
  %spec.select = select i1 %620, i32 %.0406577, i32 %.0337580
  %spec.select533 = select i1 %636, i32 %.0406577, i32 %.0343579
  br label %642

642:                                              ; preds = %641, %605
  %.1344 = phi i32 [ %.0343579, %605 ], [ %spec.select533, %641 ]
  %.2339 = phi i32 [ %.0337580, %605 ], [ %spec.select, %641 ]
  %643 = load ptr, ptr %7, align 8, !tbaa !5
  %644 = load ptr, ptr %643, align 8, !tbaa !19
  %645 = getelementptr inbounds i8, ptr %644, i64 120
  %646 = load ptr, ptr %645, align 8
  %647 = invoke noundef i64 %646(ptr noundef nonnull align 8 dereferenceable(9) %643, i32 noundef %.0406577)
          to label %648 unwind label %639

648:                                              ; preds = %642
  %649 = add i64 %647, %.0402578
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #9
  %650 = add nuw nsw i32 %.0406577, 1
  %exitcond624.not = icmp eq i32 %650, %134
  br i1 %exitcond624.not, label %.preheader550, label %582, !llvm.loop !37

651:                                              ; preds = %639, %637
  %.pn518 = phi { ptr, i32 } [ %640, %639 ], [ %638, %637 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #9
  br label %1661

._crit_edge588:                                   ; preds = %718, %572, %.preheader550
  %.0337.lcssa644 = phi i32 [ %.2339, %.preheader550 ], [ -1, %572 ], [ %.2339, %718 ]
  %.0343.lcssa643 = phi i32 [ %.1344, %.preheader550 ], [ -1, %572 ], [ %.1344, %718 ]
  %652 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #9
  %653 = load i32, ptr %8, align 4, !tbaa !18
  %654 = sitofp i32 %653 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %654, float noundef 0.000000e+00)
  %655 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %50)
          to label %721 unwind label %742

656:                                              ; preds = %.lr.ph587, %718
  %.1403586 = phi i64 [ 0, %.lr.ph587 ], [ %719, %718 ]
  %.0407585 = phi i32 [ 0, %.lr.ph587 ], [ %720, %718 ]
  %657 = and i32 %.0407585, 1
  %.not514 = icmp eq i32 %657, 0
  %658 = select i1 %.not514, i32 -12501699, i32 -12962250
  %659 = load ptr, ptr %7, align 8, !tbaa !5
  %660 = load ptr, ptr %659, align 8, !tbaa !19
  %661 = getelementptr inbounds i8, ptr %660, i64 120
  %662 = load ptr, ptr %661, align 8
  %663 = invoke noundef i64 %662(ptr noundef nonnull align 8 dereferenceable(9) %659, i32 noundef %.0407585)
          to label %664 unwind label %712

664:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #9
  %665 = load float, ptr %28, align 8, !tbaa !21
  %666 = load i32, ptr %8, align 4, !tbaa !18
  %667 = sitofp i32 %666 to float
  %668 = fadd float %665, %667
  %669 = load float, ptr %343, align 4, !tbaa !29
  %670 = load i32, ptr %9, align 4, !tbaa !18
  %671 = mul nsw i32 %670, %.0407585
  %672 = sitofp i32 %671 to float
  %673 = fadd float %669, %672
  %674 = fadd float %673, 1.000000e+00
  %675 = uitofp i64 %.1403586 to float
  %676 = fadd float %674, %675
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %47, float noundef %668, float noundef %676)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #9
  %677 = load float, ptr %12, align 8, !tbaa !21
  %678 = load float, ptr %11, align 8, !tbaa !21
  %679 = fadd float %677, %678
  %680 = load float, ptr %575, align 4, !tbaa !29
  %681 = load i32, ptr %9, align 4, !tbaa !18
  %682 = sitofp i32 %681 to float
  %683 = fadd float %680, %682
  %684 = fadd float %683, -1.000000e+00
  %685 = uitofp i64 %663 to float
  %686 = fadd float %684, %685
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef %679, float noundef %686)
  br i1 %.0346, label %716, label %687

687:                                              ; preds = %664
  %688 = load float, ptr %575, align 4, !tbaa !29
  %689 = fcmp ugt float %688, %576
  br i1 %689, label %716, label %690

690:                                              ; preds = %687
  %691 = load i32, ptr %9, align 4, !tbaa !18
  %692 = sext i32 %691 to i64
  %693 = add i64 %663, %692
  %694 = uitofp i64 %693 to float
  %695 = fadd float %688, %694
  %696 = fcmp ogt float %695, %576
  %697 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4
  %698 = icmp eq i32 %697, -1
  %or.cond7 = select i1 %696, i1 %698, i1 false
  br i1 %or.cond7, label %699, label %716

699:                                              ; preds = %690
  %700 = load float, ptr %28, align 8, !tbaa !21
  %701 = fcmp olt float %700, %577
  br i1 %701, label %702, label %716

702:                                              ; preds = %699
  %703 = load float, ptr %12, align 8, !tbaa !21
  %704 = fadd float %700, %703
  %705 = fcmp ogt float %704, %577
  br i1 %705, label %706, label %716

706:                                              ; preds = %702
  %707 = add i32 %658, -2145382392
  %708 = load i32, ptr %8, align 4, !tbaa !18
  %709 = sitofp i32 %708 to float
  %710 = load float, ptr %47, align 4, !tbaa !21
  %711 = fsub float %710, %709
  store float %711, ptr %47, align 4, !tbaa !21
  br label %716

712:                                              ; preds = %656
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %1661

714:                                              ; preds = %716
  %715 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #9
  br label %1661

716:                                              ; preds = %706, %702, %699, %690, %687, %664
  %.0408 = phi i32 [ %658, %664 ], [ %707, %706 ], [ %658, %702 ], [ %658, %699 ], [ %658, %690 ], [ %658, %687 ]
  %717 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %717, ptr noundef nonnull align 4 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(8) %48, i32 noundef %.0408, float noundef 0.000000e+00, i32 noundef 0)
          to label %718 unwind label %714

718:                                              ; preds = %716
  %719 = add i64 %663, %.1403586
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #9
  %720 = add nuw nsw i32 %.0407585, 1
  %exitcond625.not = icmp eq i32 %720, %134
  br i1 %exitcond625.not, label %._crit_edge588, label %656, !llvm.loop !38

721:                                              ; preds = %._crit_edge588
  store <2 x float> %655, ptr %49, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #9
  %722 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %26)
          to label %723 unwind label %744

723:                                              ; preds = %721
  store <2 x float> %722, ptr %51, align 8
  invoke void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %652, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %51, i1 noundef zeroext true)
          to label %724 unwind label %744

724:                                              ; preds = %723
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  %725 = load ptr, ptr %7, align 8, !tbaa !5
  %726 = load ptr, ptr %725, align 8, !tbaa !19
  %727 = load ptr, ptr %726, align 8
  %728 = invoke noundef i32 %727(ptr noundef nonnull align 8 dereferenceable(9) %725)
          to label %.preheader544 unwind label %.loopexit.split-lp546

.preheader544:                                    ; preds = %724
  %729 = fptosi float %345 to i32
  br label %730

730:                                              ; preds = %.preheader544, %748
  %.0409 = phi i32 [ %749, %748 ], [ %728, %.preheader544 ]
  %731 = load ptr, ptr %7, align 8, !tbaa !5
  %732 = load ptr, ptr %731, align 8, !tbaa !19
  %733 = getelementptr inbounds i8, ptr %732, i64 8
  %734 = load ptr, ptr %733, align 8
  %735 = invoke noundef i32 %734(ptr noundef nonnull align 8 dereferenceable(9) %731)
          to label %736 unwind label %.loopexit545

736:                                              ; preds = %730
  %.not449 = icmp sgt i32 %.0409, %735
  br i1 %.not449, label %737, label %747

737:                                              ; preds = %736
  %738 = load ptr, ptr %7, align 8, !tbaa !5
  %739 = load ptr, ptr %738, align 8, !tbaa !19
  %740 = load ptr, ptr %739, align 8
  %741 = invoke noundef i32 %740(ptr noundef nonnull align 8 dereferenceable(9) %738)
          to label %750 unwind label %783

742:                                              ; preds = %._crit_edge588
  %743 = landingpad { ptr, i32 }
          cleanup
  br label %746

744:                                              ; preds = %723, %721
  %745 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #9
  br label %746

746:                                              ; preds = %744, %742
  %.pn447 = phi { ptr, i32 } [ %745, %744 ], [ %743, %742 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  br label %1661

.loopexit545:                                     ; preds = %730, %747
  %lpad.loopexit547 = landingpad { ptr, i32 }
          cleanup
  br label %1661

.loopexit.split-lp546:                            ; preds = %724
  %lpad.loopexit.split-lp548 = landingpad { ptr, i32 }
          cleanup
  br label %1661

747:                                              ; preds = %736
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56) %41, i32 noundef %.0409, i32 noundef %729)
          to label %748 unwind label %.loopexit545

748:                                              ; preds = %747
  %749 = add nsw i32 %.0409, %.0400.lcssa
  br label %730, !llvm.loop !39

750:                                              ; preds = %737
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56) %41, i32 noundef %741, i32 noundef %729)
          to label %751 unwind label %783

751:                                              ; preds = %750
  %752 = load ptr, ptr %7, align 8, !tbaa !5
  %753 = load ptr, ptr %752, align 8, !tbaa !19
  %754 = getelementptr inbounds i8, ptr %753, i64 8
  %755 = load ptr, ptr %754, align 8
  %756 = invoke noundef i32 %755(ptr noundef nonnull align 8 dereferenceable(9) %752)
          to label %757 unwind label %783

757:                                              ; preds = %751
  invoke void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56) %41, i32 noundef %756, i32 noundef %729)
          to label %758 unwind label %783

758:                                              ; preds = %757
  %759 = icmp ne ptr %3, null
  br i1 %759, label %760, label %.thread

760:                                              ; preds = %758
  %761 = load i32, ptr %3, align 4, !tbaa !18
  %762 = icmp sgt i32 %761, -1
  br i1 %762, label %.preheader543, label %.thread

.preheader543:                                    ; preds = %760
  %.not640 = icmp eq i32 %761, 0
  br i1 %.not640, label %._crit_edge592, label %.lr.ph591

._crit_edge592:                                   ; preds = %790, %.preheader543
  %.2404.lcssa = phi i64 [ 0, %.preheader543 ], [ %791, %790 ]
  %.lcssa = phi i32 [ 0, %.preheader543 ], [ %793, %790 ]
  %763 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #9
  %764 = load float, ptr %28, align 8, !tbaa !21
  %765 = load float, ptr %343, align 4, !tbaa !29
  %766 = load i32, ptr %9, align 4, !tbaa !18
  %767 = mul nsw i32 %766, %.lcssa
  %768 = sitofp i32 %767 to float
  %769 = fadd float %765, %768
  %770 = uitofp i64 %.2404.lcssa to float
  %771 = fadd float %769, %770
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %764, float noundef %771)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #9
  %772 = load float, ptr %28, align 8, !tbaa !21
  %773 = load float, ptr %12, align 8, !tbaa !21
  %774 = fadd float %772, %773
  %775 = load float, ptr %343, align 4, !tbaa !29
  %776 = load i32, ptr %9, align 4, !tbaa !18
  %777 = load i32, ptr %3, align 4, !tbaa !18
  %778 = add nsw i32 %777, 1
  %779 = mul nsw i32 %778, %776
  %780 = sitofp i32 %779 to float
  %781 = fadd float %775, %780
  %782 = fadd float %781, %770
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %774, float noundef %782)
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %763, ptr noundef nonnull align 4 dereferenceable(8) %52, ptr noundef nonnull align 4 dereferenceable(8) %53, i32 noundef -2146402049, float noundef 1.000000e+00, i32 noundef 0)
          to label %797 unwind label %798

783:                                              ; preds = %757, %751, %750, %737
  %784 = landingpad { ptr, i32 }
          cleanup
  br label %1661

.lr.ph591:                                        ; preds = %.preheader543, %790
  %.2404590 = phi i64 [ %791, %790 ], [ 0, %.preheader543 ]
  %.0410589 = phi i32 [ %792, %790 ], [ 0, %.preheader543 ]
  %785 = load ptr, ptr %7, align 8, !tbaa !5
  %786 = load ptr, ptr %785, align 8, !tbaa !19
  %787 = getelementptr inbounds i8, ptr %786, i64 120
  %788 = load ptr, ptr %787, align 8
  %789 = invoke noundef i64 %788(ptr noundef nonnull align 8 dereferenceable(9) %785, i32 noundef %.0410589)
          to label %790 unwind label %795

790:                                              ; preds = %.lr.ph591
  %791 = add i64 %789, %.2404590
  %792 = add nuw nsw i32 %.0410589, 1
  %793 = load i32, ptr %3, align 4, !tbaa !18
  %794 = icmp slt i32 %792, %793
  br i1 %794, label %.lr.ph591, label %._crit_edge592, !llvm.loop !40

795:                                              ; preds = %.lr.ph591
  %796 = landingpad { ptr, i32 }
          cleanup
  br label %1661

797:                                              ; preds = %._crit_edge592
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #9
  br label %.thread

798:                                              ; preds = %._crit_edge592
  %799 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #9
  br label %1661

.thread:                                          ; preds = %758, %797, %760
  %800 = phi i32 [ 0, %797 ], [ 2105376, %760 ], [ 2105376, %758 ]
  br i1 %145, label %.lr.ph599, label %._crit_edge600

.lr.ph599:                                        ; preds = %.thread
  %801 = getelementptr inbounds i8, ptr %57, i64 4
  %802 = getelementptr inbounds i8, ptr %124, i64 14133
  %803 = getelementptr inbounds i8, ptr %59, i64 4
  %804 = getelementptr inbounds i8, ptr %62, i64 16
  %805 = getelementptr inbounds i8, ptr %58, i64 4
  %806 = getelementptr inbounds i8, ptr %62, i64 32
  %807 = and i32 %5, 2
  %.not483 = icmp eq i32 %807, 0
  %808 = getelementptr inbounds i8, ptr %88, i64 4
  %809 = getelementptr inbounds i8, ptr %88, i64 20
  %810 = getelementptr inbounds i8, ptr %88, i64 36
  %811 = getelementptr inbounds i8, ptr %88, i64 52
  %812 = getelementptr inbounds i8, ptr %100, i64 4
  %813 = getelementptr inbounds i8, ptr %100, i64 20
  %814 = getelementptr inbounds i8, ptr %100, i64 36
  %815 = getelementptr inbounds i8, ptr %100, i64 52
  %816 = getelementptr inbounds i8, ptr %62, i64 40
  %817 = getelementptr inbounds i8, ptr %62, i64 24
  %818 = getelementptr inbounds i8, ptr %62, i64 8
  br label %821

._crit_edge600:                                   ; preds = %1174, %.thread
  %819 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  %820 = icmp sgt i32 %819, -1
  br i1 %820, label %1180, label %1263

821:                                              ; preds = %.lr.ph599, %1174
  %.3405598 = phi i64 [ 0, %.lr.ph599 ], [ %1175, %1174 ]
  %.0411597 = phi i32 [ 0, %.lr.ph599 ], [ %1176, %1174 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #9
  %822 = load ptr, ptr %7, align 8, !tbaa !5
  %823 = load ptr, ptr %822, align 8, !tbaa !19
  %824 = getelementptr inbounds i8, ptr %823, i64 72
  %825 = load ptr, ptr %824, align 8
  invoke void %825(ptr noundef nonnull align 8 dereferenceable(9) %822, i32 noundef %.0411597, ptr noundef nonnull %54, ptr noundef nonnull %55, ptr noundef null, ptr noundef nonnull %56)
          to label %826 unwind label %903

826:                                              ; preds = %821
  %827 = load ptr, ptr %7, align 8, !tbaa !5
  %828 = load ptr, ptr %827, align 8, !tbaa !19
  %829 = getelementptr inbounds i8, ptr %828, i64 120
  %830 = load ptr, ptr %829, align 8
  %831 = invoke noundef i64 %830(ptr noundef nonnull align 8 dereferenceable(9) %827, i32 noundef %.0411597)
          to label %832 unwind label %905

832:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #9
  %833 = load float, ptr %28, align 8, !tbaa !21
  %834 = load i32, ptr %8, align 4, !tbaa !18
  %835 = sitofp i32 %834 to float
  %836 = fadd float %833, %835
  %837 = load i32, ptr %13, align 4, !tbaa !18
  %838 = sitofp i32 %837 to float
  %839 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %840 = fneg float %838
  %841 = call float @llvm.fmuladd.f32(float %840, float %839, float %836)
  %842 = load float, ptr %343, align 4, !tbaa !29
  %843 = load i32, ptr %9, align 4, !tbaa !18
  %844 = mul nsw i32 %843, %.0411597
  %845 = sitofp i32 %844 to float
  %846 = fadd float %842, %845
  %847 = fadd float %846, 1.000000e+00
  %848 = uitofp i64 %.3405598 to float
  %849 = fadd float %847, %848
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %57, float noundef %841, float noundef %849)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #9
  %850 = load float, ptr %57, align 4, !tbaa !21
  %851 = load ptr, ptr %54, align 8, !tbaa !5
  %852 = load i32, ptr %851, align 4, !tbaa !18
  %853 = sitofp i32 %852 to float
  %854 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %855 = call float @llvm.fmuladd.f32(float %853, float %854, float %850)
  %856 = load float, ptr %801, align 4, !tbaa !29
  %857 = fadd float %856, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef %855, float noundef %857)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #9
  %858 = load float, ptr %57, align 4, !tbaa !21
  %859 = load ptr, ptr %55, align 8, !tbaa !5
  %860 = load i32, ptr %859, align 4, !tbaa !18
  %861 = sitofp i32 %860 to float
  %862 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %863 = call float @llvm.fmuladd.f32(float %861, float %862, float %858)
  %864 = fadd float %862, %863
  %865 = load float, ptr %801, align 4, !tbaa !29
  %866 = load i32, ptr %9, align 4, !tbaa !18
  %867 = sitofp i32 %866 to float
  %868 = fadd float %865, %867
  %869 = fadd float %868, -2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %864, float noundef %869)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #9
  %870 = load float, ptr %57, align 4, !tbaa !21
  %871 = load ptr, ptr %55, align 8, !tbaa !5
  %872 = load i32, ptr %871, align 4, !tbaa !18
  %873 = sitofp i32 %872 to float
  %874 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %875 = call float @llvm.fmuladd.f32(float %873, float %874, float %870)
  %876 = fadd float %874, %875
  %877 = load float, ptr %801, align 4, !tbaa !29
  %878 = load i32, ptr %9, align 4, !tbaa !18
  %879 = sitofp i32 %878 to float
  %880 = fadd float %877, %879
  %881 = fadd float %880, -2.000000e+00
  %882 = uitofp i64 %831 to float
  %883 = fadd float %881, %882
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %876, float noundef %883)
  %884 = load i32, ptr %56, align 4, !tbaa !18
  %885 = or i32 %884, -16777216
  %886 = and i32 %884, 16777215
  %887 = or disjoint i32 %886, 1073741824
  %888 = load float, ptr %58, align 4, !tbaa !21
  %889 = load float, ptr %12, align 8, !tbaa !21
  %890 = load float, ptr %28, align 8, !tbaa !21
  %891 = fadd float %889, %890
  %892 = fcmp ugt float %888, %891
  br i1 %892, label %909, label %893

893:                                              ; preds = %832
  %894 = load float, ptr %59, align 4, !tbaa !21
  %895 = load i32, ptr %8, align 4, !tbaa !18
  %896 = sitofp i32 %895 to float
  %897 = fadd float %890, %896
  %898 = fcmp ult float %894, %897
  br i1 %898, label %909, label %899

899:                                              ; preds = %893
  %900 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %900, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %887, float noundef 2.000000e+00, i32 noundef 0)
          to label %901 unwind label %907

901:                                              ; preds = %899
  %902 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %902, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, i32 noundef %885, float noundef 2.000000e+00, i32 noundef 0)
          to label %909 unwind label %907

903:                                              ; preds = %821
  %904 = landingpad { ptr, i32 }
          cleanup
  br label %1179

905:                                              ; preds = %826
  %906 = landingpad { ptr, i32 }
          cleanup
  br label %1179

907:                                              ; preds = %914, %901, %899
  %908 = landingpad { ptr, i32 }
          cleanup
  br label %1178

909:                                              ; preds = %901, %893, %832
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #9
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %61, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59)
  %910 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %61, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %910, label %911, label %.critedge

911:                                              ; preds = %909
  %912 = load i8, ptr %802, align 1, !tbaa !28, !range !26, !noundef !27
  %913 = trunc nuw i8 %912 to i1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #9
  br i1 %913, label %914, label %919

914:                                              ; preds = %911
  %915 = load ptr, ptr %7, align 8, !tbaa !5
  %916 = load ptr, ptr %915, align 8, !tbaa !19
  %917 = getelementptr inbounds i8, ptr %916, i64 128
  %918 = load ptr, ptr %917, align 8
  invoke void %918(ptr noundef nonnull align 8 dereferenceable(9) %915, i32 noundef %.0411597)
          to label %919 unwind label %907

.critedge:                                        ; preds = %909
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #9
  br label %919

919:                                              ; preds = %914, %.critedge, %911
  %920 = load float, ptr %59, align 4, !tbaa !21
  %921 = load float, ptr %58, align 4, !tbaa !21
  %922 = fdiv float %921, 3.000000e+00
  %923 = fsub float %920, %922
  %924 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef 1.000000e+01, float noundef %923)
  %925 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %926 = fmul float %925, 5.000000e-01
  %927 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %926, float noundef %924, float noundef %923)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %62) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #9
  %928 = load float, ptr %58, align 4, !tbaa !21
  %929 = fadd float %927, %928
  %930 = load float, ptr %803, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %929, float noundef %930)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %62, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %63)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #9
  %931 = load float, ptr %59, align 4, !tbaa !21
  %932 = fsub float %931, %927
  %933 = load float, ptr %805, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef %932, float noundef %933)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %804, ptr noundef nonnull align 4 dereferenceable(8) %64, ptr noundef nonnull align 4 dereferenceable(8) %59)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %806, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #9
  %934 = add nsw i32 %885, %800
  %935 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  %936 = icmp ne i32 %935, -1
  %or.cond534 = or i1 %.not483, %936
  br i1 %or.cond534, label %.loopexit540, label %.preheader542.preheader

.preheader542.preheader:                          ; preds = %919
  %937 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %806, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %937, label %940, label %.preheader542.1

938:                                              ; preds = %946, %943, %940
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %1177

940:                                              ; preds = %.preheader542.preheader
  %941 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %941, ptr noundef nonnull align 4 dereferenceable(8) %806, ptr noundef nonnull align 4 dereferenceable(8) %816, i32 noundef %934, float noundef 2.000000e+00, i32 noundef 0)
          to label %.preheader542.1 unwind label %938

.preheader542.1:                                  ; preds = %940, %.preheader542.preheader
  %942 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %804, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %942, label %943, label %.preheader542.2

943:                                              ; preds = %.preheader542.1
  %944 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %944, ptr noundef nonnull align 4 dereferenceable(8) %804, ptr noundef nonnull align 4 dereferenceable(8) %817, i32 noundef -1, float noundef 2.000000e+00, i32 noundef 0)
          to label %.preheader542.2 unwind label %938

.preheader542.2:                                  ; preds = %943, %.preheader542.1
  %945 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %62, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %945, label %946, label %.preheader.preheader

946:                                              ; preds = %.preheader542.2
  %947 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %947, ptr noundef nonnull align 4 dereferenceable(8) %62, ptr noundef nonnull align 4 dereferenceable(8) %818, i32 noundef -1, float noundef 2.000000e+00, i32 noundef 0)
          to label %.preheader.preheader unwind label %938

.preheader.preheader:                             ; preds = %946, %.preheader542.2
  %948 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %62, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %948, label %949, label %.preheader.1

.loopexit541:                                     ; preds = %988, %974, %955
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %1177

.loopexit.split-lp:                               ; preds = %964
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %1177

949:                                              ; preds = %.preheader.preheader
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #9
  %950 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %26)
          to label %951 unwind label %953

951:                                              ; preds = %949
  store <2 x float> %950, ptr %66, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %66)
  %952 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(8) %125)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  br i1 %952, label %955, label %.preheader.1

953:                                              ; preds = %984, %970, %949
  %954 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  br label %1177

955:                                              ; preds = %951
  %956 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %957 unwind label %.loopexit541

957:                                              ; preds = %955
  br i1 %956, label %958, label %.preheader.1

958:                                              ; preds = %957
  %959 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28, !range !26, !noundef !27
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %.preheader.1, label %961

961:                                              ; preds = %958
  %962 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28, !range !26, !noundef !27
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %.preheader.1, label %964

964:                                              ; preds = %994, %980, %961
  %.0413596.lcssa616.wide = phi i32 [ 1, %961 ], [ 2, %980 ], [ 3, %994 ]
  store i32 %.0411597, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  store i32 %127, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !18
  store i32 %.0413596.lcssa616.wide, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !18
  %965 = load ptr, ptr %7, align 8, !tbaa !5
  %966 = load ptr, ptr %965, align 8, !tbaa !19
  %967 = getelementptr inbounds i8, ptr %966, i64 24
  %968 = load ptr, ptr %967, align 8
  invoke void %968(ptr noundef nonnull align 8 dereferenceable(9) %965, i32 noundef %.0411597)
          to label %.loopexit540 unwind label %.loopexit.split-lp

.preheader.1:                                     ; preds = %.preheader.preheader, %951, %961, %958, %957
  %969 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %804, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %969, label %970, label %.preheader.2

970:                                              ; preds = %.preheader.1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #9
  %971 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %26)
          to label %972 unwind label %953

972:                                              ; preds = %970
  store <2 x float> %971, ptr %66, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %66)
  %973 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(8) %125)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  br i1 %973, label %974, label %.preheader.2

974:                                              ; preds = %972
  %975 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %976 unwind label %.loopexit541

976:                                              ; preds = %974
  br i1 %975, label %977, label %.preheader.2

977:                                              ; preds = %976
  %978 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28, !range !26, !noundef !27
  %979 = trunc nuw i8 %978 to i1
  br i1 %979, label %.preheader.2, label %980

980:                                              ; preds = %977
  %981 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28, !range !26, !noundef !27
  %982 = trunc nuw i8 %981 to i1
  br i1 %982, label %.preheader.2, label %964

.preheader.2:                                     ; preds = %980, %977, %976, %972, %.preheader.1
  %983 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %806, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %983, label %984, label %.loopexit540

984:                                              ; preds = %.preheader.2
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #9
  %985 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %26)
          to label %986 unwind label %953

986:                                              ; preds = %984
  store <2 x float> %985, ptr %66, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %66)
  %987 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %65, ptr noundef nonnull align 4 dereferenceable(8) %125)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  br i1 %987, label %988, label %.loopexit540

988:                                              ; preds = %986
  %989 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %990 unwind label %.loopexit541

990:                                              ; preds = %988
  br i1 %989, label %991, label %.loopexit540

991:                                              ; preds = %990
  %992 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28, !range !26, !noundef !27
  %993 = trunc nuw i8 %992 to i1
  br i1 %993, label %.loopexit540, label %994

994:                                              ; preds = %991
  %995 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28, !range !26, !noundef !27
  %996 = trunc nuw i8 %995 to i1
  br i1 %996, label %.loopexit540, label %964

.loopexit540:                                     ; preds = %.preheader.2, %986, %990, %991, %994, %964, %919
  %.not486 = icmp eq i64 %831, 0
  br i1 %.not486, label %1105, label %997

997:                                              ; preds = %.loopexit540
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #9
  %998 = load float, ptr %11, align 8, !tbaa !21
  %999 = load float, ptr %343, align 4, !tbaa !29
  %1000 = load i32, ptr %9, align 4, !tbaa !18
  %1001 = mul nsw i32 %1000, %.0411597
  %1002 = sitofp i32 %1001 to float
  %1003 = fadd float %999, %1002
  %1004 = fadd float %1003, 1.000000e+00
  %1005 = fadd float %1004, %848
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %998, float noundef %1005)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #9
  %1006 = load i32, ptr %8, align 4, !tbaa !18
  %1007 = load i32, ptr %13, align 4, !tbaa !18
  %1008 = load ptr, ptr %7, align 8, !tbaa !5
  %1009 = load ptr, ptr %1008, align 8, !tbaa !19
  %1010 = load ptr, ptr %1009, align 8
  %1011 = invoke noundef i32 %1010(ptr noundef nonnull align 8 dereferenceable(9) %1008)
          to label %1012 unwind label %1079

1012:                                             ; preds = %997
  %1013 = sitofp i32 %1006 to float
  %1014 = sub nsw i32 %1007, %1011
  %1015 = sitofp i32 %1014 to float
  %1016 = fadd float %1015, -5.000000e-01
  %1017 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1018 = fneg float %1016
  %1019 = call float @llvm.fmuladd.f32(float %1018, float %1017, float %1013)
  %1020 = load i32, ptr %9, align 4, !tbaa !18
  %1021 = sitofp i32 %1020 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %70, float noundef %1019, float noundef %1021)
  %1022 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(8) %70)
          to label %1023 unwind label %1079

1023:                                             ; preds = %1012
  store <2 x float> %1022, ptr %69, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #9
  %1024 = load i32, ptr %8, align 4, !tbaa !18
  %1025 = load ptr, ptr %7, align 8, !tbaa !5
  %1026 = load ptr, ptr %1025, align 8, !tbaa !19
  %1027 = getelementptr inbounds i8, ptr %1026, i64 8
  %1028 = load ptr, ptr %1027, align 8
  %1029 = invoke noundef i32 %1028(ptr noundef nonnull align 8 dereferenceable(9) %1025)
          to label %1030 unwind label %1081

1030:                                             ; preds = %1023
  %1031 = sitofp i32 %1024 to float
  %1032 = load i32, ptr %13, align 4, !tbaa !18
  %1033 = sub nsw i32 %1029, %1032
  %1034 = sitofp i32 %1033 to float
  %1035 = fadd float %1034, -5.000000e-01
  %1036 = fadd float %1035, 2.000000e+00
  %1037 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1038 = call float @llvm.fmuladd.f32(float %1036, float %1037, float %1031)
  %1039 = load i32, ptr %9, align 4, !tbaa !18
  %1040 = sext i32 %1039 to i64
  %1041 = add i64 %831, %1040
  %1042 = uitofp i64 %1041 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %72, float noundef %1038, float noundef %1042)
  %1043 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(8) %72)
          to label %1044 unwind label %1081

1044:                                             ; preds = %1030
  store <2 x float> %1043, ptr %71, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %68, ptr noundef nonnull align 4 dereferenceable(8) %69, ptr noundef nonnull align 4 dereferenceable(8) %71)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #9
  %1045 = load i32, ptr %8, align 4, !tbaa !18
  %1046 = sitofp i32 %1045 to float
  %1047 = load i32, ptr %9, align 4, !tbaa !18
  %1048 = sitofp i32 %1047 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %75, float noundef %1046, float noundef %1048)
  %1049 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(8) %75)
          to label %1050 unwind label %1084

1050:                                             ; preds = %1044
  store <2 x float> %1049, ptr %74, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #9
  %1051 = load float, ptr %12, align 8, !tbaa !21
  %1052 = load i32, ptr %9, align 4, !tbaa !18
  %1053 = sext i32 %1052 to i64
  %1054 = add i64 %831, %1053
  %1055 = uitofp i64 %1054 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %77, float noundef %1051, float noundef %1055)
  %1056 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(8) %77)
          to label %1057 unwind label %1086

1057:                                             ; preds = %1050
  store <2 x float> %1056, ptr %76, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %73, ptr noundef nonnull align 4 dereferenceable(8) %74, ptr noundef nonnull align 4 dereferenceable(8) %76)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %78) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #9
  %1058 = load i32, ptr %9, align 4, !tbaa !18
  %1059 = sitofp i32 %1058 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %80, float noundef 0.000000e+00, float noundef %1059)
  %1060 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(8) %80)
          to label %1061 unwind label %1089

1061:                                             ; preds = %1057
  store <2 x float> %1060, ptr %79, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #9
  %1062 = load i32, ptr %8, align 4, !tbaa !18
  %1063 = sitofp i32 %1062 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %82, float noundef %1063, float noundef %882)
  %1064 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(8) %82)
          to label %1065 unwind label %1091

1065:                                             ; preds = %1061
  store <2 x float> %1064, ptr %81, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %78, ptr noundef nonnull align 4 dereferenceable(8) %79, ptr noundef nonnull align 4 dereferenceable(8) %81)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #9
  %1066 = load i32, ptr %9, align 4, !tbaa !18
  %1067 = sitofp i32 %1066 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %85, float noundef 0.000000e+00, float noundef %1067)
  %1068 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %85)
          to label %1069 unwind label %1094

1069:                                             ; preds = %1065
  store <2 x float> %1068, ptr %84, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #9
  %1070 = load i32, ptr %8, align 4, !tbaa !18
  %1071 = sitofp i32 %1070 to float
  %1072 = load i32, ptr %9, align 4, !tbaa !18
  %1073 = sext i32 %1072 to i64
  %1074 = add i64 %831, %1073
  %1075 = uitofp i64 %1074 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %87, float noundef %1071, float noundef %1075)
  %1076 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %87)
          to label %1077 unwind label %1096

1077:                                             ; preds = %1069
  store <2 x float> %1076, ptr %86, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %83, ptr noundef nonnull align 4 dereferenceable(8) %84, ptr noundef nonnull align 4 dereferenceable(8) %86)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #9
  call void @llvm.lifetime.start.p0(i64 68, ptr nonnull %88) #9
  store i32 %.0411597, ptr %88, align 4, !tbaa !41
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %808, ptr noundef nonnull align 4 dereferenceable(16) %68, i64 16, i1 false), !tbaa.struct !43
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %809, ptr noundef nonnull align 4 dereferenceable(16) %78, i64 16, i1 false), !tbaa.struct !43
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %810, ptr noundef nonnull align 4 dereferenceable(16) %73, i64 16, i1 false), !tbaa.struct !43
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %811, ptr noundef nonnull align 4 dereferenceable(16) %83, i64 16, i1 false), !tbaa.struct !43
  invoke void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 4 dereferenceable(68) %88)
          to label %1078 unwind label %1099

1078:                                             ; preds = %1077
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  br label %1174

1079:                                             ; preds = %1012, %997
  %1080 = landingpad { ptr, i32 }
          cleanup
  br label %1083

1081:                                             ; preds = %1030, %1023
  %1082 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #9
  br label %1083

1083:                                             ; preds = %1081, %1079
  %.pn494 = phi { ptr, i32 } [ %1082, %1081 ], [ %1080, %1079 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #9
  br label %1104

1084:                                             ; preds = %1044
  %1085 = landingpad { ptr, i32 }
          cleanup
  br label %1088

1086:                                             ; preds = %1050
  %1087 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #9
  br label %1088

1088:                                             ; preds = %1086, %1084
  %.pn496 = phi { ptr, i32 } [ %1087, %1086 ], [ %1085, %1084 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #9
  br label %1103

1089:                                             ; preds = %1057
  %1090 = landingpad { ptr, i32 }
          cleanup
  br label %1093

1091:                                             ; preds = %1061
  %1092 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #9
  br label %1093

1093:                                             ; preds = %1091, %1089
  %.pn498 = phi { ptr, i32 } [ %1092, %1091 ], [ %1090, %1089 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #9
  br label %1102

1094:                                             ; preds = %1065
  %1095 = landingpad { ptr, i32 }
          cleanup
  br label %1098

1096:                                             ; preds = %1069
  %1097 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #9
  br label %1098

1098:                                             ; preds = %1096, %1094
  %.pn500 = phi { ptr, i32 } [ %1097, %1096 ], [ %1095, %1094 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #9
  br label %1101

1099:                                             ; preds = %1077
  %1100 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %88) #9
  br label %1101

1101:                                             ; preds = %1099, %1098
  %.pn502 = phi { ptr, i32 } [ %1100, %1099 ], [ %.pn500, %1098 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #9
  br label %1102

1102:                                             ; preds = %1101, %1093
  %.pn502.pn = phi { ptr, i32 } [ %.pn502, %1101 ], [ %.pn498, %1093 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #9
  br label %1103

1103:                                             ; preds = %1102, %1088
  %.pn502.pn.pn = phi { ptr, i32 } [ %.pn502.pn, %1102 ], [ %.pn496, %1088 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #9
  br label %1104

1104:                                             ; preds = %1103, %1083
  %.pn502.pn.pn.pn = phi { ptr, i32 } [ %.pn502.pn.pn, %1103 ], [ %.pn494, %1083 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  br label %1177

1105:                                             ; preds = %.loopexit540
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #9
  %1106 = load float, ptr %11, align 8, !tbaa !21
  %1107 = load float, ptr %343, align 4, !tbaa !29
  %1108 = load i32, ptr %9, align 4, !tbaa !18
  %1109 = mul nsw i32 %1108, %.0411597
  %1110 = sitofp i32 %1109 to float
  %1111 = fadd float %1107, %1110
  %1112 = fadd float %1111, %848
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %89, float noundef %1106, float noundef %1112)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #9
  %1113 = load i32, ptr %8, align 4, !tbaa !18
  %1114 = load i32, ptr %13, align 4, !tbaa !18
  %1115 = load ptr, ptr %7, align 8, !tbaa !5
  %1116 = load ptr, ptr %1115, align 8, !tbaa !19
  %1117 = load ptr, ptr %1116, align 8
  %1118 = invoke noundef i32 %1117(ptr noundef nonnull align 8 dereferenceable(9) %1115)
          to label %1119 unwind label %1160

1119:                                             ; preds = %1105
  %1120 = sitofp i32 %1113 to float
  %1121 = sub nsw i32 %1114, %1118
  %1122 = sitofp i32 %1121 to float
  %1123 = fadd float %1122, -5.000000e-01
  %1124 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1125 = fneg float %1123
  %1126 = call float @llvm.fmuladd.f32(float %1125, float %1124, float %1120)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %92, float noundef %1126, float noundef 0.000000e+00)
  %1127 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %89, ptr noundef nonnull align 4 dereferenceable(8) %92)
          to label %1128 unwind label %1160

1128:                                             ; preds = %1119
  store <2 x float> %1127, ptr %91, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #9
  %1129 = load i32, ptr %8, align 4, !tbaa !18
  %1130 = load ptr, ptr %7, align 8, !tbaa !5
  %1131 = load ptr, ptr %1130, align 8, !tbaa !19
  %1132 = getelementptr inbounds i8, ptr %1131, i64 8
  %1133 = load ptr, ptr %1132, align 8
  %1134 = invoke noundef i32 %1133(ptr noundef nonnull align 8 dereferenceable(9) %1130)
          to label %1135 unwind label %1162

1135:                                             ; preds = %1128
  %1136 = sitofp i32 %1129 to float
  %1137 = load i32, ptr %13, align 4, !tbaa !18
  %1138 = sub nsw i32 %1134, %1137
  %1139 = sitofp i32 %1138 to float
  %1140 = fadd float %1139, -5.000000e-01
  %1141 = fadd float %1140, 2.000000e+00
  %1142 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1143 = call float @llvm.fmuladd.f32(float %1141, float %1142, float %1136)
  %1144 = load i32, ptr %9, align 4, !tbaa !18
  %1145 = sitofp i32 %1144 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %94, float noundef %1143, float noundef %1145)
  %1146 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %89, ptr noundef nonnull align 4 dereferenceable(8) %94)
          to label %1147 unwind label %1162

1147:                                             ; preds = %1135
  store <2 x float> %1146, ptr %93, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %90, ptr noundef nonnull align 4 dereferenceable(8) %91, ptr noundef nonnull align 4 dereferenceable(8) %93)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %95) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #9
  %1148 = load i32, ptr %8, align 4, !tbaa !18
  %1149 = sitofp i32 %1148 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %97, float noundef %1149, float noundef 0.000000e+00)
  %1150 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %89, ptr noundef nonnull align 4 dereferenceable(8) %97)
          to label %1151 unwind label %1165

1151:                                             ; preds = %1147
  store <2 x float> %1150, ptr %96, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #9
  %1152 = load float, ptr %12, align 8, !tbaa !21
  %1153 = load i32, ptr %9, align 4, !tbaa !18
  %1154 = sitofp i32 %1153 to float
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %99, float noundef %1152, float noundef %1154)
  %1155 = invoke <2 x float> @_ZN11ImSequencerplERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(8) %89, ptr noundef nonnull align 4 dereferenceable(8) %99)
          to label %1156 unwind label %1167

1156:                                             ; preds = %1151
  store <2 x float> %1155, ptr %98, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %95, ptr noundef nonnull align 4 dereferenceable(8) %96, ptr noundef nonnull align 4 dereferenceable(8) %98)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #9
  call void @llvm.lifetime.start.p0(i64 68, ptr nonnull %100) #9
  store i32 %.0411597, ptr %100, align 4, !tbaa !41
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %812, ptr noundef nonnull align 4 dereferenceable(16) %90, i64 16, i1 false), !tbaa.struct !43
  invoke void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %813)
          to label %1157 unwind label %1170

1157:                                             ; preds = %1156
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %814, ptr noundef nonnull align 4 dereferenceable(16) %95, i64 16, i1 false), !tbaa.struct !43
  invoke void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %815)
          to label %1158 unwind label %1170

1158:                                             ; preds = %1157
  invoke void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 4 dereferenceable(68) %100)
          to label %1159 unwind label %1170

1159:                                             ; preds = %1158
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #9
  br label %1174

1160:                                             ; preds = %1119, %1105
  %1161 = landingpad { ptr, i32 }
          cleanup
  br label %1164

1162:                                             ; preds = %1135, %1128
  %1163 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #9
  br label %1164

1164:                                             ; preds = %1162, %1160
  %.pn487 = phi { ptr, i32 } [ %1163, %1162 ], [ %1161, %1160 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #9
  br label %1173

1165:                                             ; preds = %1147
  %1166 = landingpad { ptr, i32 }
          cleanup
  br label %1169

1167:                                             ; preds = %1151
  %1168 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #9
  br label %1169

1169:                                             ; preds = %1167, %1165
  %.pn489 = phi { ptr, i32 } [ %1168, %1167 ], [ %1166, %1165 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #9
  br label %1172

1170:                                             ; preds = %1158, %1157, %1156
  %1171 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %100) #9
  br label %1172

1172:                                             ; preds = %1170, %1169
  %.pn491 = phi { ptr, i32 } [ %1171, %1170 ], [ %.pn489, %1169 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #9
  br label %1173

1173:                                             ; preds = %1172, %1164
  %.pn491.pn = phi { ptr, i32 } [ %.pn491, %1172 ], [ %.pn487, %1164 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #9
  br label %1177

1174:                                             ; preds = %1159, %1078
  %1175 = add i64 %831, %.3405598
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #9
  %1176 = add nuw nsw i32 %.0411597, 1
  %exitcond629.not = icmp eq i32 %1176, %134
  br i1 %exitcond629.not, label %._crit_edge600, label %821, !llvm.loop !44

1177:                                             ; preds = %.loopexit541, %.loopexit.split-lp, %953, %1173, %1104, %938
  %.pn507 = phi { ptr, i32 } [ %939, %938 ], [ %.pn502.pn.pn.pn, %1104 ], [ %.pn491.pn, %1173 ], [ %954, %953 ], [ %lpad.loopexit, %.loopexit541 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %62) #9
  br label %1178

1178:                                             ; preds = %1177, %907
  %.pn507.pn = phi { ptr, i32 } [ %.pn507, %1177 ], [ %908, %907 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #9
  br label %1179

1179:                                             ; preds = %905, %1178, %903
  %.pn507.pn.pn.pn = phi { ptr, i32 } [ %904, %903 ], [ %.pn507.pn, %1178 ], [ %906, %905 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #9
  br label %1661

1180:                                             ; preds = %._crit_edge600
  invoke void @_ZN5ImGui28SetNextFrameWantCaptureMouseEb(i1 noundef zeroext true)
          to label %1181 unwind label %1197

1181:                                             ; preds = %1180
  %1182 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !18
  %1183 = sub nsw i32 %127, %1182
  %1184 = sitofp i32 %1183 to float
  %1185 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1186 = fdiv float %1184, %1185
  %1187 = fptosi float %1186 to i32
  %.not450 = icmp eq i32 %1187, 0
  br i1 %.not450, label %1247, label %1188

1188:                                             ; preds = %1181
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #9
  %1189 = load ptr, ptr %7, align 8, !tbaa !5
  %1190 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  %1191 = load ptr, ptr %1189, align 8, !tbaa !19
  %1192 = getelementptr inbounds i8, ptr %1191, i64 72
  %1193 = load ptr, ptr %1192, align 8
  invoke void %1193(ptr noundef nonnull align 8 dereferenceable(9) %1189, i32 noundef %1190, ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef null, ptr noundef null)
          to label %1194 unwind label %1199

1194:                                             ; preds = %1188
  br i1 %759, label %1195, label %1201

1195:                                             ; preds = %1194
  %1196 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  store i32 %1196, ptr %3, align 4, !tbaa !18
  br label %1201

1197:                                             ; preds = %1404, %1403, %1402, %1310, %1308, %1268, %1180
  %1198 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1199:                                             ; preds = %1188
  %1200 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  br label %1661

1201:                                             ; preds = %1195, %1194
  %1202 = load ptr, ptr %101, align 8, !tbaa !5
  %1203 = load ptr, ptr %102, align 8, !tbaa !5
  %1204 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !18
  %1205 = and i32 %1204, 1
  %.not451 = icmp eq i32 %1205, 0
  br i1 %.not451, label %1209, label %1206

1206:                                             ; preds = %1201
  %1207 = load i32, ptr %1202, align 4, !tbaa !18
  %1208 = add nsw i32 %1207, %1187
  store i32 %1208, ptr %1202, align 4, !tbaa !18
  %.pre635 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !18
  br label %1209

1209:                                             ; preds = %1206, %1201
  %1210 = phi i32 [ %.pre635, %1206 ], [ %1204, %1201 ]
  %1211 = and i32 %1210, 2
  %.not452 = icmp eq i32 %1211, 0
  br i1 %.not452, label %1215, label %1212

1212:                                             ; preds = %1209
  %1213 = load i32, ptr %1203, align 4, !tbaa !18
  %1214 = add nsw i32 %1213, %1187
  store i32 %1214, ptr %1203, align 4, !tbaa !18
  %.pre637.pre = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !18
  br label %1215

1215:                                             ; preds = %1212, %1209
  %.pre637 = phi i32 [ %.pre637.pre, %1212 ], [ %1210, %1209 ]
  %1216 = load i32, ptr %1202, align 4, !tbaa !18
  %1217 = icmp slt i32 %1216, 0
  br i1 %1217, label %1218, label %1224

1218:                                             ; preds = %1215
  %1219 = and i32 %.pre637, 2
  %.not453 = icmp eq i32 %1219, 0
  br i1 %.not453, label %1223, label %1220

1220:                                             ; preds = %1218
  %1221 = load i32, ptr %1203, align 4, !tbaa !18
  %1222 = sub nsw i32 %1221, %1216
  store i32 %1222, ptr %1203, align 4, !tbaa !18
  br label %1223

1223:                                             ; preds = %1220, %1218
  store i32 0, ptr %1202, align 4, !tbaa !18
  %.pre636 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !18
  br label %1224

1224:                                             ; preds = %1223, %1215
  %1225 = phi i32 [ 0, %1223 ], [ %1216, %1215 ]
  %1226 = phi i32 [ %.pre636, %1223 ], [ %.pre637, %1215 ]
  %1227 = and i32 %1226, 1
  %.not454 = icmp eq i32 %1227, 0
  br i1 %.not454, label %1232, label %1228

1228:                                             ; preds = %1224
  %1229 = load i32, ptr %1203, align 4, !tbaa !18
  %1230 = icmp sgt i32 %1225, %1229
  br i1 %1230, label %1231, label %1232

1231:                                             ; preds = %1228
  store i32 %1229, ptr %1202, align 4, !tbaa !18
  %.pre638 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4, !tbaa !18
  br label %1232

1232:                                             ; preds = %1231, %1228, %1224
  %1233 = phi i32 [ %1229, %1231 ], [ %1225, %1228 ], [ %1225, %1224 ]
  %1234 = phi i32 [ %.pre638, %1231 ], [ %1226, %1228 ], [ %1226, %1224 ]
  %1235 = and i32 %1234, 2
  %.not455 = icmp eq i32 %1235, 0
  br i1 %.not455, label %1240, label %1236

1236:                                             ; preds = %1232
  %1237 = load i32, ptr %1203, align 4, !tbaa !18
  %1238 = icmp slt i32 %1237, %1233
  br i1 %1238, label %1239, label %1240

1239:                                             ; preds = %1236
  store i32 %1233, ptr %1203, align 4, !tbaa !18
  br label %1240

1240:                                             ; preds = %1239, %1236, %1232
  %1241 = sitofp i32 %1187 to float
  %1242 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1243 = fmul float %1242, %1241
  %1244 = fptosi float %1243 to i32
  %1245 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !18
  %1246 = add nsw i32 %1245, %1244
  store i32 %1246, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE9movingPos, align 4, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  br label %1247

1247:                                             ; preds = %1240, %1181
  %1248 = getelementptr inbounds i8, ptr %124, i64 3580
  %1249 = load i8, ptr %1248, align 4, !tbaa !28, !range !26, !noundef !27
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1263, label %1251

1251:                                             ; preds = %1247
  %1252 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10movingPart, align 4
  %1253 = icmp ne i32 %1252, 0
  %or.cond9 = select i1 %.not450, i1 %1253, i1 false
  %or.cond11 = and i1 %759, %or.cond9
  br i1 %or.cond11, label %1254, label %1256

1254:                                             ; preds = %1251
  %1255 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  store i32 %1255, ptr %3, align 4, !tbaa !18
  br label %1256

1256:                                             ; preds = %1254, %1251
  store i32 -1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4, !tbaa !18
  %1257 = load ptr, ptr %7, align 8, !tbaa !5
  %1258 = load ptr, ptr %1257, align 8, !tbaa !19
  %1259 = getelementptr inbounds i8, ptr %1258, i64 32
  %1260 = load ptr, ptr %1259, align 8
  invoke void %1260(ptr noundef nonnull align 8 dereferenceable(9) %1257)
          to label %1263 unwind label %1261

1261:                                             ; preds = %1256
  %1262 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1263:                                             ; preds = %1247, %1256, %._crit_edge600
  %.2 = phi i1 [ false, %._crit_edge600 ], [ false, %1247 ], [ %or.cond11, %1256 ]
  %1264 = icmp ne ptr %1, null
  %or.cond13 = and i1 %1264, %139
  br i1 %or.cond13, label %1265, label %1308

1265:                                             ; preds = %1263
  %1266 = load i32, ptr %1, align 4, !tbaa !18
  %1267 = load i32, ptr %4, align 4, !tbaa !18
  %.not458 = icmp slt i32 %1266, %1267
  br i1 %.not458, label %1308, label %1268

1268:                                             ; preds = %1265
  %1269 = load ptr, ptr %7, align 8, !tbaa !5
  %1270 = load ptr, ptr %1269, align 8, !tbaa !19
  %1271 = getelementptr inbounds i8, ptr %1270, i64 8
  %1272 = load ptr, ptr %1271, align 8
  %1273 = invoke noundef i32 %1272(ptr noundef nonnull align 8 dereferenceable(9) %1269)
          to label %1274 unwind label %1197

1274:                                             ; preds = %1268
  %.not459 = icmp sgt i32 %1266, %1273
  br i1 %.not459, label %1308, label %1275

1275:                                             ; preds = %1274
  %1276 = load float, ptr %28, align 8, !tbaa !21
  %1277 = load i32, ptr %8, align 4, !tbaa !18
  %1278 = sitofp i32 %1277 to float
  %1279 = fadd float %1276, %1278
  %1280 = load i32, ptr %1, align 4, !tbaa !18
  %1281 = load i32, ptr %13, align 4, !tbaa !18
  %1282 = sub nsw i32 %1280, %1281
  %1283 = sitofp i32 %1282 to float
  %1284 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1285 = call float @llvm.fmuladd.f32(float %1283, float %1284, float %1279)
  %1286 = fmul float %1284, 5.000000e-01
  %1287 = fadd float %1286, %1285
  %1288 = fadd float %1287, -4.000000e+00
  %1289 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #9
  %1290 = load float, ptr %354, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %103, float noundef %1288, float noundef %1290)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #9
  %1291 = load float, ptr %341, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %104, float noundef %1288, float noundef %1291)
  invoke void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1289, ptr noundef nonnull align 4 dereferenceable(8) %103, ptr noundef nonnull align 4 dereferenceable(8) %104, i32 noundef -1607849217, float noundef 8.000000e+00)
          to label %1292 unwind label %1301

1292:                                             ; preds = %1275
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #9
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %105) #9
  %1293 = load i32, ptr %1, align 4, !tbaa !18
  %1294 = invoke noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %105, i64 noundef 512, ptr noundef nonnull @.str.4, i32 noundef %1293)
          to label %1295 unwind label %1303

1295:                                             ; preds = %1292
  %1296 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #9
  %1297 = fadd float %1288, 1.000000e+01
  %1298 = load float, ptr %354, align 4, !tbaa !29
  %1299 = fadd float %1298, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %106, float noundef %1297, float noundef %1299)
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1296, ptr noundef nonnull align 4 dereferenceable(8) %106, i32 noundef -14013697, ptr noundef nonnull %105, ptr noundef null)
          to label %1300 unwind label %1305

1300:                                             ; preds = %1295
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %105) #9
  br label %1308

1301:                                             ; preds = %1275
  %1302 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #9
  br label %1661

1303:                                             ; preds = %1292
  %1304 = landingpad { ptr, i32 }
          cleanup
  br label %1307

1305:                                             ; preds = %1295
  %1306 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #9
  br label %1307

1307:                                             ; preds = %1305, %1303
  %.pn460 = phi { ptr, i32 } [ %1306, %1305 ], [ %1304, %1303 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %105) #9
  br label %1661

1308:                                             ; preds = %1300, %1274, %1265, %1263
  %1309 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList11PopClipRectEv(ptr noundef nonnull align 8 dereferenceable(196) %1309)
          to label %1310 unwind label %1197

1310:                                             ; preds = %1308
  %1311 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList11PopClipRectEv(ptr noundef nonnull align 8 dereferenceable(196) %1311)
          to label %1312 unwind label %1197

1312:                                             ; preds = %1310
  %1313 = call noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
  %1314 = call noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
  %.not463601 = icmp eq ptr %1313, %1314
  br i1 %.not463601, label %._crit_edge605, label %.lr.ph604

._crit_edge605:                                   ; preds = %1327, %1312
  %1315 = call noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
  %1316 = call noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %15)
  %.not464606 = icmp eq ptr %1315, %1316
  br i1 %.not464606, label %._crit_edge610, label %.lr.ph609

.lr.ph604:                                        ; preds = %1312, %1327
  %.0414602 = phi ptr [ %1328, %1327 ], [ %1313, %1312 ]
  %1317 = load ptr, ptr %7, align 8, !tbaa !5
  %1318 = load i32, ptr %.0414602, align 4, !tbaa !41
  %1319 = load ptr, ptr %10, align 8, !tbaa !5
  %1320 = getelementptr inbounds i8, ptr %.0414602, i64 4
  %1321 = getelementptr inbounds i8, ptr %.0414602, i64 20
  %1322 = getelementptr inbounds i8, ptr %.0414602, i64 36
  %1323 = getelementptr inbounds i8, ptr %.0414602, i64 52
  %1324 = load ptr, ptr %1317, align 8, !tbaa !19
  %1325 = getelementptr inbounds i8, ptr %1324, i64 136
  %1326 = load ptr, ptr %1325, align 8
  invoke void %1326(ptr noundef nonnull align 8 dereferenceable(9) %1317, i32 noundef %1318, ptr noundef %1319, ptr noundef nonnull align 4 dereferenceable(16) %1320, ptr noundef nonnull align 4 dereferenceable(16) %1321, ptr noundef nonnull align 4 dereferenceable(16) %1322, ptr noundef nonnull align 4 dereferenceable(16) %1323)
          to label %1327 unwind label %1329

1327:                                             ; preds = %.lr.ph604
  %1328 = getelementptr inbounds i8, ptr %.0414602, i64 68
  %.not463 = icmp eq ptr %1328, %1314
  br i1 %.not463, label %._crit_edge605, label %.lr.ph604

1329:                                             ; preds = %.lr.ph604
  %1330 = landingpad { ptr, i32 }
          cleanup
  br label %1661

._crit_edge610:                                   ; preds = %1340, %._crit_edge605
  %1331 = and i32 %5, 64
  %.not465 = icmp eq i32 %1331, 0
  br i1 %.not465, label %1402, label %1344

.lr.ph609:                                        ; preds = %._crit_edge605, %1340
  %.0415607 = phi ptr [ %1341, %1340 ], [ %1315, %._crit_edge605 ]
  %1332 = load ptr, ptr %7, align 8, !tbaa !5
  %1333 = load i32, ptr %.0415607, align 4, !tbaa !41
  %1334 = load ptr, ptr %10, align 8, !tbaa !5
  %1335 = getelementptr inbounds i8, ptr %.0415607, i64 4
  %1336 = getelementptr inbounds i8, ptr %.0415607, i64 36
  %1337 = load ptr, ptr %1332, align 8, !tbaa !19
  %1338 = getelementptr inbounds i8, ptr %1337, i64 144
  %1339 = load ptr, ptr %1338, align 8
  invoke void %1339(ptr noundef nonnull align 8 dereferenceable(9) %1332, i32 noundef %1333, ptr noundef %1334, ptr noundef nonnull align 4 dereferenceable(16) %1335, ptr noundef nonnull align 4 dereferenceable(16) %1336)
          to label %1340 unwind label %1342

1340:                                             ; preds = %.lr.ph609
  %1341 = getelementptr inbounds i8, ptr %.0415607, i64 68
  %.not464 = icmp eq ptr %1341, %1316
  br i1 %.not464, label %._crit_edge610, label %.lr.ph609

1342:                                             ; preds = %.lr.ph609
  %1343 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1344:                                             ; preds = %._crit_edge610
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %107) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #9
  %1345 = load float, ptr %28, align 8, !tbaa !21
  %1346 = fadd float %1345, 1.000000e+02
  %1347 = load float, ptr %354, align 4, !tbaa !29
  %1348 = fadd float %1347, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %108, float noundef %1346, float noundef %1348)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #9
  %1349 = load float, ptr %28, align 8, !tbaa !21
  %1350 = fadd float %1349, 1.000000e+02
  %1351 = fadd float %1350, 3.000000e+01
  %1352 = load float, ptr %354, align 4, !tbaa !29
  %1353 = load i32, ptr %9, align 4, !tbaa !18
  %1354 = sitofp i32 %1353 to float
  %1355 = fadd float %1352, %1354
  %1356 = fadd float %1355, -2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %109, float noundef %1351, float noundef %1356)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %107, ptr noundef nonnull align 4 dereferenceable(8) %108, ptr noundef nonnull align 4 dereferenceable(8) %109)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #9
  %1357 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %107, ptr noundef nonnull align 4 dereferenceable(8) %125)
  %1358 = select i1 %1357, i32 -15695617, i32 -16777216
  %1359 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1359, ptr noundef nonnull align 4 dereferenceable(8) %107, i32 noundef %1358, ptr noundef nonnull @.str.5, ptr noundef null)
          to label %1360 unwind label %1386

1360:                                             ; preds = %1344
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %110) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #9
  %1361 = load float, ptr %28, align 8, !tbaa !21
  %1362 = fadd float %1361, 1.400000e+02
  %1363 = load float, ptr %354, align 4, !tbaa !29
  %1364 = fadd float %1363, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %111, float noundef %1362, float noundef %1364)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #9
  %1365 = load float, ptr %28, align 8, !tbaa !21
  %1366 = fadd float %1365, 1.400000e+02
  %1367 = fadd float %1366, 3.000000e+01
  %1368 = load float, ptr %354, align 4, !tbaa !29
  %1369 = load i32, ptr %9, align 4, !tbaa !18
  %1370 = sitofp i32 %1369 to float
  %1371 = fadd float %1368, %1370
  %1372 = fadd float %1371, -2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %112, float noundef %1367, float noundef %1372)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %111, ptr noundef nonnull align 4 dereferenceable(8) %112)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #9
  %1373 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %125)
  %1374 = select i1 %1373, i32 -15695617, i32 -16777216
  %1375 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1375, ptr noundef nonnull align 4 dereferenceable(8) %110, i32 noundef %1374, ptr noundef nonnull @.str.6, ptr noundef null)
          to label %1376 unwind label %1388

1376:                                             ; preds = %1360
  br i1 %1357, label %1377, label %1390

1377:                                             ; preds = %1376
  %1378 = getelementptr inbounds i8, ptr %124, i64 14158
  %1379 = load i8, ptr %1378, align 2, !tbaa !28, !range !26, !noundef !27
  %1380 = trunc nuw i8 %1379 to i1
  br i1 %1380, label %1381, label %1390

1381:                                             ; preds = %1377
  %1382 = load ptr, ptr %7, align 8, !tbaa !5
  %1383 = load ptr, ptr %1382, align 8, !tbaa !19
  %1384 = getelementptr inbounds i8, ptr %1383, i64 104
  %1385 = load ptr, ptr %1384, align 8
  invoke void %1385(ptr noundef nonnull align 8 dereferenceable(9) %1382)
          to label %1390 unwind label %1388

1386:                                             ; preds = %1344
  %1387 = landingpad { ptr, i32 }
          cleanup
  br label %1401

1388:                                             ; preds = %1395, %1381, %1360
  %1389 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %110) #9
  br label %1401

1390:                                             ; preds = %1381, %1377, %1376
  br i1 %1373, label %1391, label %1400

1391:                                             ; preds = %1390
  %1392 = getelementptr inbounds i8, ptr %124, i64 14158
  %1393 = load i8, ptr %1392, align 2, !tbaa !28, !range !26, !noundef !27
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1400

1395:                                             ; preds = %1391
  %1396 = load ptr, ptr %7, align 8, !tbaa !5
  %1397 = load ptr, ptr %1396, align 8, !tbaa !19
  %1398 = getelementptr inbounds i8, ptr %1397, i64 112
  %1399 = load ptr, ptr %1398, align 8
  invoke void %1399(ptr noundef nonnull align 8 dereferenceable(9) %1396)
          to label %1400 unwind label %1388

1400:                                             ; preds = %1395, %1391, %1390
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #9
  br label %1402

1401:                                             ; preds = %1388, %1386
  %.pn466 = phi { ptr, i32 } [ %1389, %1388 ], [ %1387, %1386 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #9
  br label %1661

1402:                                             ; preds = %1400, %._crit_edge610
  invoke void @_ZN5ImGui13EndChildFrameEv()
          to label %1403 unwind label %1197

1403:                                             ; preds = %1402
  invoke void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
          to label %1404 unwind label %1197

1404:                                             ; preds = %1403
  %1405 = invoke noundef zeroext i1 @_ZN5ImGui15InvisibleButtonEPKcRK6ImVec2i(ptr noundef nonnull @.str.7, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 0)
          to label %1406 unwind label %1197

1406:                                             ; preds = %1404
  %1407 = invoke <2 x float> @_ZN5ImGui14GetItemRectMinEv()
          to label %1408 unwind label %1483

1408:                                             ; preds = %1406
  %1409 = invoke <2 x float> @_ZN5ImGui14GetItemRectMaxEv()
          to label %1410 unwind label %1485

1410:                                             ; preds = %1408
  %1411 = load i32, ptr %13, align 4, !tbaa !18
  %1412 = load ptr, ptr %7, align 8, !tbaa !5
  %1413 = load ptr, ptr %1412, align 8, !tbaa !19
  %1414 = load ptr, ptr %1413, align 8
  %1415 = invoke noundef i32 %1414(ptr noundef nonnull align 8 dereferenceable(9) %1412)
          to label %1416 unwind label %1487

1416:                                             ; preds = %1410
  %1417 = sub nsw i32 %1411, %1415
  %1418 = sitofp i32 %1417 to float
  %1419 = sitofp i32 %249 to float
  %1420 = fdiv float %1418, %1419
  %1421 = load float, ptr %12, align 8, !tbaa !21
  %1422 = load i32, ptr %8, align 4, !tbaa !18
  %1423 = sitofp i32 %1422 to float
  %1424 = fsub float %1421, %1423
  %1425 = fmul float %1420, %1424
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #9
  %.sroa.047.0.vec.extract = extractelement <2 x float> %1407, i64 0
  %1426 = fadd float %.sroa.047.0.vec.extract, %1423
  %.sroa.047.4.vec.extract = extractelement <2 x float> %1407, i64 1
  %1427 = fadd float %.sroa.047.4.vec.extract, -2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %113, float noundef %1426, float noundef %1427)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #9
  %1428 = load float, ptr %12, align 8, !tbaa !21
  %1429 = fadd float %.sroa.047.0.vec.extract, %1428
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1409, i64 1
  %1430 = fadd float %.sroa.0.4.vec.extract, -1.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %114, float noundef %1429, float noundef %1430)
  %1431 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1431, ptr noundef nonnull align 4 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(8) %114, i32 noundef -14540254, float noundef 0.000000e+00, i32 noundef 0)
          to label %1432 unwind label %1489

1432:                                             ; preds = %1416
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %115) #9
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %115, ptr noundef nonnull align 4 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(8) %114)
  %1433 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %115, ptr noundef nonnull align 4 dereferenceable(8) %125)
  %1434 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1434, ptr noundef nonnull align 4 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(8) %114, i32 noundef -15724528, float noundef 8.000000e+00, i32 noundef 0)
          to label %1435 unwind label %1491

1435:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %116) #9
  %1436 = load i32, ptr %8, align 4, !tbaa !18
  %1437 = sitofp i32 %1436 to float
  %1438 = fadd float %.sroa.047.0.vec.extract, %1437
  %1439 = fadd float %1425, %1438
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %116, float noundef %1439, float noundef %.sroa.047.4.vec.extract)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #9
  %1440 = load i32, ptr %8, align 4, !tbaa !18
  %1441 = sitofp i32 %1440 to float
  %1442 = fadd float %.sroa.047.0.vec.extract, %1441
  %1443 = fadd float %171, %1442
  %1444 = fadd float %1425, %1443
  %1445 = fadd float %.sroa.0.4.vec.extract, -2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %117, float noundef %1444, float noundef %1445)
  %1446 = load ptr, ptr %10, align 8, !tbaa !5
  %1447 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !range !26
  %1448 = trunc nuw i8 %1447 to i1
  %1449 = select i1 %1433, i1 true, i1 %1448
  %1450 = select i1 %1449, i32 -10461088, i32 -11513776
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1446, ptr noundef nonnull align 4 dereferenceable(8) %116, ptr noundef nonnull align 4 dereferenceable(8) %117, i32 noundef %1450, float noundef 6.000000e+00, i32 noundef 0)
          to label %1451 unwind label %1493

1451:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %118) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #9
  %1452 = load float, ptr %116, align 4, !tbaa !21
  %1453 = fadd float %1452, 1.400000e+01
  %1454 = getelementptr inbounds i8, ptr %117, i64 4
  %1455 = load float, ptr %1454, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %119, float noundef %1453, float noundef %1455)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %118, ptr noundef nonnull align 4 dereferenceable(8) %116, ptr noundef nonnull align 4 dereferenceable(8) %119)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %120) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #9
  %1456 = load float, ptr %117, align 4, !tbaa !21
  %1457 = fadd float %1456, -1.400000e+01
  %1458 = getelementptr inbounds i8, ptr %116, i64 4
  %1459 = load float, ptr %1458, align 4, !tbaa !29
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %121, float noundef %1457, float noundef %1459)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %120, ptr noundef nonnull align 4 dereferenceable(8) %121, ptr noundef nonnull align 4 dereferenceable(8) %117)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #9
  %1460 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %118, ptr noundef nonnull align 4 dereferenceable(8) %125)
  %1461 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %120, ptr noundef nonnull align 4 dereferenceable(8) %125)
  %1462 = load ptr, ptr %10, align 8, !tbaa !5
  %1463 = getelementptr inbounds i8, ptr %118, i64 8
  %1464 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !range !26
  %1465 = trunc nuw i8 %1464 to i1
  %1466 = select i1 %1460, i1 true, i1 %1465
  %1467 = select i1 %1466, i32 -5592406, i32 -10066330
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1462, ptr noundef nonnull align 4 dereferenceable(8) %118, ptr noundef nonnull align 4 dereferenceable(8) %1463, i32 noundef %1467, float noundef 6.000000e+00, i32 noundef 0)
          to label %1468 unwind label %1495

1468:                                             ; preds = %1451
  %1469 = load ptr, ptr %10, align 8, !tbaa !5
  %1470 = getelementptr inbounds i8, ptr %120, i64 8
  %1471 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !range !26
  %1472 = trunc nuw i8 %1471 to i1
  %1473 = select i1 %1461, i1 true, i1 %1472
  %1474 = select i1 %1473, i32 -5592406, i32 -10066330
  invoke void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1469, ptr noundef nonnull align 4 dereferenceable(8) %120, ptr noundef nonnull align 4 dereferenceable(8) %1470, i32 noundef %1474, float noundef 6.000000e+00, i32 noundef 0)
          to label %1475 unwind label %1495

1475:                                             ; preds = %1468
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %122) #9
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %122, ptr noundef nonnull align 4 dereferenceable(8) %116, ptr noundef nonnull align 4 dereferenceable(8) %117)
  %1476 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !28, !range !26, !noundef !27
  %1477 = trunc nuw i8 %1476 to i1
  br i1 %1477, label %1478, label %1539

1478:                                             ; preds = %1475
  %1479 = getelementptr inbounds i8, ptr %124, i64 3580
  %1480 = load i8, ptr %1479, align 4, !tbaa !28, !range !26, !noundef !27
  %1481 = trunc nuw i8 %1480 to i1
  br i1 %1481, label %1499, label %1482

1482:                                             ; preds = %1478
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !28
  br label %1655

1483:                                             ; preds = %1406
  %1484 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1485:                                             ; preds = %1408
  %1486 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1487:                                             ; preds = %1410
  %1488 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1489:                                             ; preds = %1416
  %1490 = landingpad { ptr, i32 }
          cleanup
  br label %1660

1491:                                             ; preds = %1432
  %1492 = landingpad { ptr, i32 }
          cleanup
  br label %1659

1493:                                             ; preds = %1435
  %1494 = landingpad { ptr, i32 }
          cleanup
  br label %1658

1495:                                             ; preds = %1468, %1451
  %1496 = landingpad { ptr, i32 }
          cleanup
  br label %1657

1497:                                             ; preds = %1651, %1644, %1629
  %1498 = landingpad { ptr, i32 }
          cleanup
  br label %1656

1499:                                             ; preds = %1478
  %1500 = getelementptr inbounds i8, ptr %124, i64 240
  %1501 = load float, ptr %1500, align 8, !tbaa !45
  %1502 = fadd float %171, %1501
  %1503 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1502, float noundef 4.400000e+01)
  %1504 = fdiv float %1503, %171
  %1505 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1506 = fdiv float %1505, %1504
  store float %1506, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  store float %1506, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  %1507 = load float, ptr %12, align 8, !tbaa !21
  %1508 = load i32, ptr %8, align 4, !tbaa !18
  %1509 = load i32, ptr %4, align 4, !tbaa !18
  %1510 = load ptr, ptr %7, align 8, !tbaa !5
  %1511 = load ptr, ptr %1510, align 8, !tbaa !19
  %1512 = getelementptr inbounds i8, ptr %1511, i64 8
  %1513 = load ptr, ptr %1512, align 8
  %1514 = invoke noundef i32 %1513(ptr noundef nonnull align 8 dereferenceable(9) %1510)
          to label %1515 unwind label %1537

1515:                                             ; preds = %1499
  %1516 = sitofp i32 %1508 to float
  %1517 = fsub float %1507, %1516
  %1518 = fdiv float %1517, %1506
  %1519 = fptosi float %1518 to i32
  %1520 = add nsw i32 %1509, %1519
  %1521 = icmp sgt i32 %1520, %1514
  br i1 %1521, label %1522, label %1655

1522:                                             ; preds = %1515
  %1523 = load float, ptr %12, align 8, !tbaa !21
  %1524 = load i32, ptr %8, align 4, !tbaa !18
  %1525 = load ptr, ptr %7, align 8, !tbaa !5
  %1526 = load ptr, ptr %1525, align 8, !tbaa !19
  %1527 = getelementptr inbounds i8, ptr %1526, i64 8
  %1528 = load ptr, ptr %1527, align 8
  %1529 = invoke noundef i32 %1528(ptr noundef nonnull align 8 dereferenceable(9) %1525)
          to label %1530 unwind label %1537

1530:                                             ; preds = %1522
  %1531 = sitofp i32 %1524 to float
  %1532 = fsub float %1523, %1531
  %1533 = load i32, ptr %4, align 4, !tbaa !18
  %1534 = sub nsw i32 %1529, %1533
  %1535 = sitofp i32 %1534 to float
  %1536 = fdiv float %1532, %1535
  store float %1536, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  store float %1536, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  br label %1655

1537:                                             ; preds = %1522, %1499
  %1538 = landingpad { ptr, i32 }
          cleanup
  br label %1656

1539:                                             ; preds = %1475
  %1540 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !28, !range !26, !noundef !27
  %1541 = trunc nuw i8 %1540 to i1
  br i1 %1541, label %1542, label %1589

1542:                                             ; preds = %1539
  %1543 = getelementptr inbounds i8, ptr %124, i64 3580
  %1544 = load i8, ptr %1543, align 4, !tbaa !28, !range !26, !noundef !27
  %1545 = trunc nuw i8 %1544 to i1
  br i1 %1545, label %1547, label %1546

1546:                                             ; preds = %1542
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !28
  br label %1655

1547:                                             ; preds = %1542
  %1548 = getelementptr inbounds i8, ptr %124, i64 240
  %1549 = load float, ptr %1548, align 8, !tbaa !45
  %1550 = call float @llvm.fabs.f32(float %1549)
  %1551 = fcmp ogt float %1550, 0x3E80000000000000
  br i1 %1551, label %1552, label %1655

1552:                                             ; preds = %1547
  %1553 = fsub float %171, %1549
  %1554 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1553, float noundef 4.400000e+01)
  %1555 = fdiv float %1554, %171
  %1556 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  %1557 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  %1558 = fdiv float %1557, %1555
  store float %1558, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  store float %1558, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  %1559 = fdiv float %163, %1555
  %1560 = fptosi float %1559 to i32
  %1561 = load i32, ptr %4, align 4, !tbaa !18
  %1562 = sub i32 %1560, %162
  %1563 = add i32 %1562, %1561
  %1564 = load ptr, ptr %7, align 8, !tbaa !5
  %1565 = load ptr, ptr %1564, align 8, !tbaa !19
  %1566 = load ptr, ptr %1565, align 8
  %1567 = invoke noundef i32 %1566(ptr noundef nonnull align 8 dereferenceable(9) %1564)
          to label %1568 unwind label %1586

1568:                                             ; preds = %1552
  %1569 = load ptr, ptr %7, align 8, !tbaa !5
  %1570 = load ptr, ptr %1569, align 8, !tbaa !19
  %1571 = getelementptr inbounds i8, ptr %1570, i64 8
  %1572 = load ptr, ptr %1571, align 8
  %1573 = invoke noundef i32 %1572(ptr noundef nonnull align 8 dereferenceable(9) %1569)
          to label %1574 unwind label %1586

1574:                                             ; preds = %1568
  %1575 = load ptr, ptr %7, align 8, !tbaa !5
  %1576 = load ptr, ptr %1575, align 8, !tbaa !19
  %1577 = load ptr, ptr %1576, align 8
  %1578 = invoke noundef i32 %1577(ptr noundef nonnull align 8 dereferenceable(9) %1575)
          to label %1579 unwind label %1586

1579:                                             ; preds = %1574
  %1580 = sub nsw i32 %1573, %162
  %1581 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1580, i32 noundef %1578)
  %1582 = call noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %1563, i32 noundef %1567, i32 noundef %1581)
  %1583 = load i32, ptr %4, align 4, !tbaa !18
  %1584 = icmp eq i32 %1582, %1583
  br i1 %1584, label %1585, label %1588

1585:                                             ; preds = %1579
  store float %1556, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE21framePixelWidthTarget, align 4, !tbaa !22
  store float %1556, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15framePixelWidth, align 4, !tbaa !22
  br label %1655

1586:                                             ; preds = %1574, %1568, %1552
  %1587 = landingpad { ptr, i32 }
          cleanup
  br label %1656

1588:                                             ; preds = %1579
  store i32 %1582, ptr %4, align 4, !tbaa !18
  br label %1655

1589:                                             ; preds = %1539
  %1590 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28, !range !26, !noundef !27
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1627

1592:                                             ; preds = %1589
  %1593 = getelementptr inbounds i8, ptr %124, i64 3580
  %1594 = load i8, ptr %1593, align 4, !tbaa !28, !range !26, !noundef !27
  %1595 = trunc nuw i8 %1594 to i1
  br i1 %1595, label %1597, label %1596

1596:                                             ; preds = %1592
  store i8 0, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28
  br label %1655

1597:                                             ; preds = %1592
  %1598 = fdiv float %171, %163
  %1599 = load float, ptr %125, align 4, !tbaa !9
  %1600 = load float, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, align 4, !tbaa !21
  %1601 = fsub float %1599, %1600
  %1602 = fdiv float %1601, %1598
  %1603 = fptosi float %1602 to i32
  %1604 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !18
  %1605 = sub nsw i32 %1603, %1604
  store i32 %1605, ptr %4, align 4, !tbaa !18
  %1606 = load ptr, ptr %7, align 8, !tbaa !5
  %1607 = load ptr, ptr %1606, align 8, !tbaa !19
  %1608 = load ptr, ptr %1607, align 8
  %1609 = invoke noundef i32 %1608(ptr noundef nonnull align 8 dereferenceable(9) %1606)
          to label %1610 unwind label %1625

1610:                                             ; preds = %1597
  %1611 = load ptr, ptr %7, align 8, !tbaa !5
  %1612 = load ptr, ptr %1611, align 8, !tbaa !19
  %1613 = getelementptr inbounds i8, ptr %1612, i64 8
  %1614 = load ptr, ptr %1613, align 8
  %1615 = invoke noundef i32 %1614(ptr noundef nonnull align 8 dereferenceable(9) %1611)
          to label %1616 unwind label %1625

1616:                                             ; preds = %1610
  %1617 = load ptr, ptr %7, align 8, !tbaa !5
  %1618 = load ptr, ptr %1617, align 8, !tbaa !19
  %1619 = load ptr, ptr %1618, align 8
  %1620 = invoke noundef i32 %1619(ptr noundef nonnull align 8 dereferenceable(9) %1617)
          to label %1621 unwind label %1625

1621:                                             ; preds = %1616
  %1622 = sub nsw i32 %1615, %162
  %1623 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1622, i32 noundef %1620)
  %1624 = call noundef i32 @_ZL7ImClampIiET_S0_S0_S0_(i32 noundef %1605, i32 noundef %1609, i32 noundef %1623)
  store i32 %1624, ptr %4, align 4, !tbaa !18
  br label %1655

1625:                                             ; preds = %1616, %1610, %1597
  %1626 = landingpad { ptr, i32 }
          cleanup
  br label %1656

1627:                                             ; preds = %1589
  %1628 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %122, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %1628, label %1629, label %1641

1629:                                             ; preds = %1627
  %1630 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %1631 unwind label %1497

1631:                                             ; preds = %1629
  %or.cond15 = and i1 %139, %1630
  br i1 %or.cond15, label %1632, label %1641

1632:                                             ; preds = %1631
  %1633 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE18MovingCurrentFrame, align 1, !tbaa !28, !range !26, !noundef !27
  %1634 = trunc nuw i8 %1633 to i1
  %1635 = load i32, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE11movingEntry, align 4
  %1636 = icmp ne i32 %1635, -1
  %or.cond18.not = select i1 %1634, i1 true, i1 %1636
  br i1 %or.cond18.not, label %1641, label %1637

1637:                                             ; preds = %1632
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE15MovingScrollBar, align 1, !tbaa !28
  %1638 = load i64, ptr %125, align 4
  store i64 %1638, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE17panningViewSource, align 4
  %1639 = load i32, ptr %4, align 4, !tbaa !18
  %1640 = sub nsw i32 0, %1639
  store i32 %1640, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE16panningViewFrame, align 4, !tbaa !18
  br label %1641

1641:                                             ; preds = %1637, %1632, %1631, %1627
  %1642 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !28, !range !26, !noundef !27
  %1643 = trunc nuw i8 %1642 to i1
  %.not535 = xor i1 %1461, true
  %brmerge = or i1 %.not535, %1643
  br i1 %brmerge, label %1648, label %1644

1644:                                             ; preds = %1641
  %1645 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %1646 unwind label %1497

1646:                                             ; preds = %1644
  br i1 %1645, label %1647, label %1648

1647:                                             ; preds = %1646
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingRBar, align 1, !tbaa !28
  br label %1648

1648:                                             ; preds = %1641, %1647, %1646
  %1649 = load i8, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !28, !range !26, !noundef !27
  %1650 = trunc nuw i8 %1649 to i1
  %.not536 = xor i1 %1460, true
  %brmerge537 = or i1 %.not536, %1650
  br i1 %brmerge537, label %1655, label %1651

1651:                                             ; preds = %1648
  %1652 = invoke noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef 0, i1 noundef zeroext false)
          to label %1653 unwind label %1497

1653:                                             ; preds = %1651
  br i1 %1652, label %1654, label %1655

1654:                                             ; preds = %1653
  store i8 1, ptr @_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10sizingLBar, align 1, !tbaa !28
  br label %1655

1655:                                             ; preds = %1648, %1585, %1588, %1515, %1530, %1547, %1546, %1653, %1654, %1596, %1621, %1482
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %122) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %120) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  br label %1669

1656:                                             ; preds = %1625, %1586, %1537, %1497
  %.pn469 = phi { ptr, i32 } [ %1538, %1537 ], [ %1587, %1586 ], [ %1626, %1625 ], [ %1498, %1497 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %122) #9
  br label %1657

1657:                                             ; preds = %1656, %1495
  %.pn469.pn = phi { ptr, i32 } [ %.pn469, %1656 ], [ %1496, %1495 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %120) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %118) #9
  br label %1658

1658:                                             ; preds = %1657, %1493
  %.pn469.pn.pn = phi { ptr, i32 } [ %.pn469.pn, %1657 ], [ %1494, %1493 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %116) #9
  br label %1659

1659:                                             ; preds = %1658, %1491
  %.pn469.pn.pn.pn = phi { ptr, i32 } [ %.pn469.pn.pn, %1658 ], [ %1492, %1491 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %115) #9
  br label %1660

1660:                                             ; preds = %1659, %1489
  %.pn469.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn469.pn.pn.pn, %1659 ], [ %1490, %1489 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #9
  br label %1661

1661:                                             ; preds = %.loopexit545, %.loopexit.split-lp546, %.loopexit552, %.loopexit.split-lp553, %651, %746, %783, %714, %712, %1483, %1487, %1660, %1485, %1301, %1307, %1199, %1261, %1401, %1342, %1329, %1197, %1179, %798, %795, %580, %578
  %.pn521 = phi { ptr, i32 } [ %581, %580 ], [ %579, %578 ], [ %.pn518, %651 ], [ %784, %783 ], [ %.pn447, %746 ], [ %715, %714 ], [ %713, %712 ], [ %796, %795 ], [ %.pn507.pn.pn.pn, %1179 ], [ %1330, %1329 ], [ %1343, %1342 ], [ %1198, %1197 ], [ %.pn466, %1401 ], [ %799, %798 ], [ %1262, %1261 ], [ %1200, %1199 ], [ %.pn460, %1307 ], [ %1302, %1301 ], [ %1484, %1483 ], [ %1486, %1485 ], [ %.pn469.pn.pn.pn.pn, %1660 ], [ %1488, %1487 ], [ %lpad.loopexit554, %.loopexit552 ], [ %lpad.loopexit.split-lp555, %.loopexit.split-lp553 ], [ %lpad.loopexit547, %.loopexit545 ], [ %lpad.loopexit.split-lp548, %.loopexit.split-lp546 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #9
  br label %1662

1662:                                             ; preds = %486, %510, %1661, %473, %400
  %.pn523.pn = phi { ptr, i32 } [ %.pn521, %1661 ], [ %401, %400 ], [ %474, %473 ], [ %487, %486 ], [ %511, %510 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #9
  br label %1663

1663:                                             ; preds = %1662, %398
  %.pn523.pn.pn = phi { ptr, i32 } [ %.pn523.pn, %1662 ], [ %399, %398 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  br label %1664

1664:                                             ; preds = %1663, %396
  %.pn523.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn, %1663 ], [ %397, %396 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  br label %1665

1665:                                             ; preds = %1664, %394
  %.pn523.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn, %1664 ], [ %395, %394 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  br label %1666

1666:                                             ; preds = %1665, %392, %390
  %.pn523.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn.pn, %1665 ], [ %393, %392 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %1667

1667:                                             ; preds = %1666, %388
  %.pn523.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn.pn.pn, %1666 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  br label %1668

1668:                                             ; preds = %1667, %386, %384
  %.pn523.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn.pn.pn.pn, %1667 ], [ %387, %386 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  br label %1719

1669:                                             ; preds = %1655, %292
  %.2345 = phi i32 [ %.0343.lcssa643, %1655 ], [ -1, %292 ]
  %.3340 = phi i32 [ %.0337.lcssa644, %1655 ], [ -1, %292 ]
  %.3 = phi i1 [ %.2, %1655 ], [ false, %292 ]
  invoke void @_ZN5ImGui8EndGroupEv()
          to label %1670 unwind label %201

1670:                                             ; preds = %1669
  %1671 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef nonnull align 4 dereferenceable(8) %125)
  br i1 %1671, label %1672, label %.loopexit

1672:                                             ; preds = %1670
  %1673 = call noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
  %1674 = call noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
  %.not478611 = icmp eq ptr %1673, %1674
  br i1 %.not478611, label %.loopexit, label %.lr.ph614

.lr.ph614:                                        ; preds = %1672, %.lr.ph614
  %.0336612 = phi ptr [ %1677, %.lr.ph614 ], [ %1673, %1672 ]
  %1675 = getelementptr inbounds i8, ptr %.0336612, i64 4
  %1676 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %1675, ptr noundef nonnull align 4 dereferenceable(8) %125)
  %1677 = getelementptr inbounds i8, ptr %.0336612, i64 68
  %.not478 = icmp eq ptr %1677, %1674
  br i1 %.not478, label %.loopexit, label %.lr.ph614

.loopexit:                                        ; preds = %.lr.ph614, %1672, %1670
  br i1 %.not441, label %1694, label %1678

1678:                                             ; preds = %.loopexit
  %1679 = load ptr, ptr %10, align 8, !tbaa !5
  %1680 = load float, ptr %11, align 8, !tbaa !21
  %1681 = fadd float %1680, 2.000000e+00
  %1682 = getelementptr inbounds i8, ptr %11, i64 4
  %1683 = load float, ptr %1682, align 4, !tbaa !29
  %1684 = fadd float %1683, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %123, float noundef %1681, float noundef %1684)
  %1685 = load i8, ptr %2, align 1, !tbaa !28, !range !26, !noundef !27
  %1686 = trunc nuw i8 %1685 to i1
  %1687 = xor i1 %1686, true
  %1688 = load <2 x float>, ptr %123, align 8
  %1689 = invoke noundef zeroext i1 @_ZN11ImSequencerL21SequencerAddDelButtonEP10ImDrawList6ImVec2b(ptr noundef %1679, <2 x float> %1688, i1 noundef zeroext %1687)
          to label %1690 unwind label %201

1690:                                             ; preds = %1678
  br i1 %1689, label %1691, label %1694

1691:                                             ; preds = %1690
  %1692 = load i8, ptr %2, align 1, !tbaa !28, !range !26, !noundef !27
  %1693 = xor i8 %1692, 1
  store i8 %1693, ptr %2, align 1, !tbaa !28
  br label %1694

1694:                                             ; preds = %1690, %1691, %.loopexit
  %.not479 = icmp eq i32 %.3340, -1
  br i1 %.not479, label %1712, label %1695

1695:                                             ; preds = %1694
  %1696 = load ptr, ptr %7, align 8, !tbaa !5
  %1697 = load ptr, ptr %1696, align 8, !tbaa !19
  %1698 = getelementptr inbounds i8, ptr %1697, i64 88
  %1699 = load ptr, ptr %1698, align 8
  invoke void %1699(ptr noundef nonnull align 8 dereferenceable(9) %1696, i32 noundef %.3340)
          to label %1700 unwind label %201

1700:                                             ; preds = %1695
  %.not480 = icmp eq ptr %3, null
  br i1 %.not480, label %1712, label %1701

1701:                                             ; preds = %1700
  %1702 = load i32, ptr %3, align 4, !tbaa !18
  %1703 = icmp eq i32 %1702, %.3340
  br i1 %1703, label %1711, label %1704

1704:                                             ; preds = %1701
  %1705 = load ptr, ptr %7, align 8, !tbaa !5
  %1706 = load ptr, ptr %1705, align 8, !tbaa !19
  %1707 = getelementptr inbounds i8, ptr %1706, i64 16
  %1708 = load ptr, ptr %1707, align 8
  %1709 = invoke noundef i32 %1708(ptr noundef nonnull align 8 dereferenceable(9) %1705)
          to label %1710 unwind label %201

1710:                                             ; preds = %1704
  %.not481 = icmp slt i32 %1702, %1709
  br i1 %.not481, label %1712, label %1711

1711:                                             ; preds = %1710, %1701
  store i32 -1, ptr %3, align 4, !tbaa !18
  br label %1712

1712:                                             ; preds = %1700, %1710, %1711, %1694
  %.not482 = icmp eq i32 %.2345, -1
  br i1 %.not482, label %1718, label %1713

1713:                                             ; preds = %1712
  %1714 = load ptr, ptr %7, align 8, !tbaa !5
  %1715 = load ptr, ptr %1714, align 8, !tbaa !19
  %1716 = getelementptr inbounds i8, ptr %1715, i64 96
  %1717 = load ptr, ptr %1716, align 8
  invoke void %1717(ptr noundef nonnull align 8 dereferenceable(9) %1714, i32 noundef %.2345)
          to label %1718 unwind label %201

1718:                                             ; preds = %1713, %1712
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  br label %1720

1719:                                             ; preds = %1668, %301, %295, %293, %201, %199
  %.pn523.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn.pn.pn.pn.pn, %1668 ], [ %202, %201 ], [ %.pn, %301 ], [ %296, %295 ], [ %294, %293 ], [ %200, %199 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #9
  call void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #9
  resume { ptr, i32 } %.pn523.pn.pn.pn.pn.pn.pn.pn.pn

1720:                                             ; preds = %6, %1718
  %.0 = phi i1 [ %.3, %1718 ], [ false, %6 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #9
  ret i1 %.0
}

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

declare noundef nonnull align 8 dereferenceable(14264) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #2

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #2

declare noundef ptr @_ZN5ImGui17GetWindowDrawListEv() local_unnamed_addr #2

declare <2 x float> @_ZN5ImGui18GetCursorScreenPosEv() local_unnamed_addr #2

declare <2 x float> @_ZN5ImGui21GetContentRegionAvailEv() local_unnamed_addr #2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawEC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui15IsWindowFocusedEi(i32 noundef) local_unnamed_addr #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) #6

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

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

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

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

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

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

declare noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #2

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

declare void @_ZN5ImGui14PushStyleColorEij(i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare <2 x float> @_ZN5ImGui14GetItemRectMinEv() local_unnamed_addr #2

declare <2 x float> @_ZN5ImGui14GetItemRectMaxEv() local_unnamed_addr #2

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

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

declare void @_ZN5ImGui9OpenPopupEPKci(ptr noundef, i32 noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare void @_ZN5ImGui8EndPopupEv() local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_0clEii"(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef, i32 noundef) local_unnamed_addr #7 align 2

declare void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iENK3$_1clEii"(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef) local_unnamed_addr #7 align 2

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

declare noundef zeroext i1 @_ZN5ImGui14IsMouseClickedEib(i32 noundef, i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(68)) local_unnamed_addr #7 align 2

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

declare void @_ZN5ImGui28SetNextFrameWantCaptureMouseEb(i1 noundef zeroext) local_unnamed_addr #2

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

declare void @_ZN10ImDrawList11PopClipRectEv(ptr noundef nonnull align 8 dereferenceable(196)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE5beginEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawE3endEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

declare void @_ZN5ImGui13EndChildFrameEv() local_unnamed_addr #2

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #2

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

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

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZN8ImVectorIZN11ImSequencer9SequencerEPNS0_17SequenceInterfaceEPiPbS3_S3_iE10CustomDrawED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 #8 = { 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 #9 = { nounwind }

!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, !13, i64 3572}
!10 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !13, i64 60, !13, i64 64, !6, i64 72, !6, i64 80, !13, i64 88, !14, i64 92, !6, i64 96, !12, i64 104, !14, i64 112, !14, i64 113, !14, i64 114, !14, i64 115, !14, i64 116, !14, i64 117, !14, i64 118, !14, i64 119, !13, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !14, i64 208, !14, i64 209, !14, i64 210, !14, i64 211, !14, i64 212, !14, i64 213, !14, i64 214, !13, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !12, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !12, i64 3572, !7, i64 3580, !13, i64 3588, !13, i64 3592, !14, i64 3596, !14, i64 3597, !14, i64 3598, !14, i64 3599, !11, i64 3600, !7, i64 3604, !14, i64 14036, !12, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !13, i64 14236, !14, i64 14240, !14, i64 14241, !7, i64 14242, !14, i64 14243, !15, i64 14244, !16, i64 14248}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImVec2", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!17 = !{!10, !13, i64 3576}
!18 = !{!11, !11, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"vtable pointer", !8, i64 0}
!21 = !{!12, !13, i64 0}
!22 = !{!13, !13, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = !{!10, !14, i64 3598}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!14, !14, i64 0}
!29 = !{!12, !13, i64 4}
!30 = !{!31, !14, i64 8}
!31 = !{!"_ZTSN11ImSequencer17SequenceInterfaceE", !14, i64 8}
!32 = !{!33, !13, i64 0}
!33 = !{!"_ZTS6ImRect", !12, i64 0, !12, i64 8}
!34 = distinct !{!34, !24}
!35 = distinct !{!35, !24}
!36 = distinct !{!36, !24}
!37 = distinct !{!37, !24}
!38 = distinct !{!38, !24}
!39 = distinct !{!39, !24}
!40 = distinct !{!40, !24}
!41 = !{!42, !11, i64 0}
!42 = !{!"_ZTSZN11ImSequencer9SequencerEPNS_17SequenceInterfaceEPiPbS2_S2_iE10CustomDraw", !11, i64 0, !33, i64 4, !33, i64 20, !33, i64 36, !33, i64 52}
!43 = !{i64 0, i64 4, !22, i64 4, i64 4, !22, i64 8, i64 4, !22, i64 12, i64 4, !22}
!44 = distinct !{!44, !24}
!45 = !{!10, !13, i64 240}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass