; LLVM IR from DarrenSweeney/3D-Physics-Engine :: Physics Engine/Imgui/imgui.ll (ZN5ImGui14ShowTestWindowEPb)

; 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 }
%class.ImVector.10 = type { i64, i64, ptr }
%struct.ImGuiTextFilter = type <{ [256 x i8], %class.ImVector.7, i32, [4 x i8] }>
%class.ImVector.7 = type { i64, i64, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImColor = type { %struct.ImVec4 }
%struct.ImGuiIO = type <{ %struct.ImVec2, float, float, ptr, ptr, float, float, [17 x i32], [4 x i8], ptr, ptr, float, i8, [3 x i8], %struct.ImVec2, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], [3 x i8], float, i8, i8, i8, [512 x i8], i8, [17 x i16], i8, i8, float, %struct.ImVec2, %struct.ImVec2, [5 x i8], [3 x i8], [5 x %struct.ImVec2], [5 x float], [5 x i8], [5 x i8], [2 x i8], [5 x float], [512 x float], [4 x i8] }>
%struct.ImFontAtlas = type { ptr, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %class.ImVector, %class.ImVector.0 }
%class.ImVector = type { i64, i64, ptr }
%class.ImVector.0 = type { i64, i64, ptr }
%struct.ImFont = type { float, float, %struct.ImVec2, i16, ptr, %class.ImVector.16, ptr, float, %class.ImVector.10, %class.ImVector.17 }
%class.ImVector.16 = type { i64, i64, ptr }
%class.ImVector.17 = type { i64, i64, ptr }

@__dso_handle = external hidden global i8
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE11no_titlebar = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE9no_border = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE9no_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE7no_move = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE12no_scrollbar = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE11no_collapse = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE8bg_alpha = external hidden global float, align 4
@.str.202 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE12window_scale = external hidden global float, align 4
@.str.222 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE1a = external hidden global i8, align 1
@.str.226 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [182 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE10wrap_width = external hidden global float, align 4
@.str.244 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [28 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3buf = external hidden global [32 x i8], align 16
@.str.253 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4size = external hidden global %struct.ImVec2, align 4
@_ZGVZN5ImGui14ShowTestWindowEPbE4size = external hidden global i64, align 8
@.str.255 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [163 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [233 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [32 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE13pressed_count = external hidden global i32, align 4
@.str.264 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE8selected = external hidden global [3 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE8selected_0 = external hidden global [3 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE8selected_1 = external hidden global [16 x i8], align 16
@.str.278 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf1 = external hidden global [64 x i8], align 16
@.str.280 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf2 = external hidden global [64 x i8], align 16
@.str.281 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf3 = external hidden global [64 x i8], align 16
@.str.282 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf4 = external hidden global [64 x i8], align 16
@.str.283 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf5 = external hidden global [64 x i8], align 16
@.str.284 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf6 = external hidden global [64 x i8], align 16
@.str.285 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5check = external hidden global i8, align 1
@.str.286 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE1e = external hidden global i32, align 4
@.str.287 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3arr = external hidden global [7 x float], align 16
@.str.295 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4item = external hidden global i32, align 4
@.str.296 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [27 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.items = external hidden unnamed_addr constant [11 x ptr], align 16
@_ZZN5ImGui14ShowTestWindowEPbE5item2 = external hidden global i32, align 4
@.str.309 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4str0 = external hidden global [128 x i8], align 16
@_ZZN5ImGui14ShowTestWindowEPbE2i0 = external hidden global i32, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f0 = external hidden global float, align 4
@.str.310 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5vec4a = external hidden global [4 x float], align 16
@.str.313 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2i1 = external hidden global i32, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2i2 = external hidden global i32, align 4
@.str.314 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2f1 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f2 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f3 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f4 = external hidden global float, align 4
@.str.316 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5angle = external hidden global float, align 4
@.str.321 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5vec4b = external hidden global [4 x float], align 16
@.str.322 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4col1 = external hidden global [3 x float], align 4
@_ZZN5ImGui14ShowTestWindowEPbE4col2 = external hidden global [4 x float], align 16
@.str.323 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [7 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.listbox_items = external hidden unnamed_addr constant [9 x ptr], align 16
@_ZZN5ImGui14ShowTestWindowEPbE20listbox_item_current = external hidden global i32, align 4
@.str.334 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3arr_0 = external hidden global [7 x float], align 16
@.str.336 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5pause = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE6values = external hidden global %class.ImVector.10, align 8
@_ZGVZN5ImGui14ShowTestWindowEPbE6values = external hidden global i64, align 8
@_ZZN5ImGui14ShowTestWindowEPbE13values_offset = external hidden global i64, align 8
@_ZZN5ImGui14ShowTestWindowEPbE12refresh_time = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE5phase = external hidden global float, align 4
@.str.337 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c1 = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c2 = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c3 = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c4 = external hidden global i8, align 1
@.str.348 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2f0_0 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f1_0 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f2_0 = external hidden global float, align 4
@__const._ZN5ImGui14ShowTestWindowEPb.items.352 = external hidden unnamed_addr constant [4 x ptr], align 16
@_ZZN5ImGui14ShowTestWindowEPbE4item_0 = external hidden global i32, align 4
@.str.353 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE9selection = external hidden global [4 x i32], align 16
@.str.358 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4line = external hidden global i32, align 4
@.str.360 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [6 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.names = external hidden unnamed_addr constant [3 x ptr], align 16
@__const._ZN5ImGui14ShowTestWindowEPb.paths = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.380 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE1e_0 = external hidden global i32, align 4
@.str.384 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3foo = external hidden global float, align 4
@.str.385 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3bar = external hidden global float, align 4
@.str.388 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE6filter = external hidden global %struct.ImGuiTextFilter, align 8
@_ZGVZN5ImGui14ShowTestWindowEPbE6filter = external hidden global i64, align 8
@.str.407 = external hidden unnamed_addr constant [183 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [18 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.lines = external hidden unnamed_addr constant [8 x ptr], align 16
@.str.417 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [58 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3buf_0 = external hidden global [32 x i8], align 16
@.str.420 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3buf_1 = external hidden global [128 x i8], align 16
@.str.429 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE16show_app_console = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering = external hidden global i8, align 1
@.str.433 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [17 x i8], align 1

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

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

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

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

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

; Function Attrs: nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i64 @_ZL14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(284), ptr noundef, float noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13PushItemWidthEf(float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12PopItemWidthEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284), ptr noundef) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv() #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK8ImVectorIP6ImFontE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #8 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbRK6ImVec2fi(ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui3EndEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12BeginTooltipEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10EndTooltipEv() #6

; Function Attrs: nounwind
declare i32 @__cxa_guard_acquire(ptr) #3

; Function Attrs: nounwind
declare void @__cxa_guard_abort(ptr) #3

; Function Attrs: nounwind
declare void @__cxa_guard_release(ptr) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local <2 x float> @_ZN5ImGui11GetMousePosEv() #10

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui13GetItemBoxMinEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui13GetItemBoxMaxEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10SetTooltipEPKcz(ptr noundef, ...) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui7GetTimeEv() #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui12GetCursorPosEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8EndChildEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef, ptr noundef nonnull align 4 dereferenceable(16)) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIfE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #11 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef, ptr noundef, i1 noundef zeroext) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7PopFontEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui22PushAllowKeyboardFocusEb(i1 noundef zeroext) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui21PopAllowKeyboardFocusEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15PushTextWrapPosEf(float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14PopTextWrapPosEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui14GetWindowWidthEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui17GetTextLineHeightEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui17GetWindowDrawListEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui18SetWindowFontScaleEf(float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui18GetCursorScreenPosEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui16SetScrollPosHereEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11TextWrappedEPKcz(ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8SameLineEii(i32 noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11ImageButtonEPvRK6ImVec2S3_S3_iRK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui5PopIDEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10LogButtonsEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9SliderIntEPKcPiiiS1_(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef, ptr noundef, i1 noundef zeroext, i1 noundef zeroext) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6BulletEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10BulletTextEPKcz(ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8TreePushEPKv(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef, ptr noundef, ...) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6PushIDEi(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11SliderAngleEPKcPfff(ptr noundef, ptr noundef, float noundef, float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui12SliderFloat3EPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, float noundef, float noundef, <2 x float>, i64 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13PlotHistogramEPKcPKfiiS1_ff6ImVec2m(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, float noundef, float noundef, <2 x float>, i64 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef, ptr noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef, ptr noundef, float noundef, float noundef, i32 noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8InputIntEPKcPiiii(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11InputFloat3EPKcPfi(ptr noundef, ptr noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7SpacingEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPf(ptr noundef, ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfb(ptr noundef, ptr noundef, i1 noundef zeroext) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui9SeparatorEv() #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10NextColumnEv() #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7TreePopEv() #6

; Function Attrs: nounwind
declare float @cosf(float noundef) #12

declare i32 @printf(ptr noundef, ...) #13

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK8ImVectorIN6ImFont5GlyphEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ShowUserGuideEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef) #6

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui14ShowTestWindowEPb(ptr noundef %0) #7 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca i32, align 4
  %6 = alloca i64, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca i64, align 8
  %11 = alloca %struct.ImVec4, align 4
  %12 = alloca %struct.ImVec4, align 4
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca ptr, align 8
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca %struct.ImVec2, align 4
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca %struct.ImVec4, align 4
  %41 = alloca %struct.ImColor, align 4
  %42 = alloca %struct.ImVec4, align 4
  %43 = alloca %struct.ImColor, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca float, 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.ImVec4, align 4
  %53 = alloca %struct.ImColor, align 4
  %54 = alloca %struct.ImVec4, align 4
  %55 = alloca %struct.ImColor, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 4
  %61 = alloca %struct.ImVec4, align 4
  %62 = alloca %struct.ImVec4, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca %struct.ImVec2, align 4
  %65 = alloca %struct.ImVec2, align 4
  %66 = alloca %struct.ImVec2, align 4
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImVec2, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.ImVec2, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.ImVec4, align 4
  %75 = alloca %struct.ImColor, align 4
  %76 = alloca %struct.ImVec4, align 4
  %77 = alloca %struct.ImColor, align 4
  %78 = alloca %struct.ImVec4, align 4
  %79 = alloca %struct.ImColor, align 4
  %80 = alloca %struct.ImVec2, align 4
  %81 = alloca %struct.ImVec2, align 4
  %82 = alloca [11 x ptr], align 16
  %83 = alloca [9 x ptr], align 16
  %84 = alloca %struct.ImVec2, align 4
  %85 = alloca %struct.ImVec2, align 4
  %86 = alloca %struct.ImVec2, align 4
  %87 = alloca %struct.ImVec2, align 4
  %88 = alloca %struct.ImVec2, align 4
  %89 = alloca %struct.ImVec2, align 4
  %90 = alloca [4 x ptr], align 16
  %91 = alloca i32, align 4
  %92 = alloca i8, align 1
  %93 = alloca %struct.ImVec2, align 4
  %94 = alloca %struct.ImVec2, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.ImVec2, align 4
  %97 = alloca i32, align 4
  %98 = alloca [32 x i8], align 16
  %99 = alloca %struct.ImVec2, align 4
  %100 = alloca [3 x ptr], align 16
  %101 = alloca [3 x ptr], align 16
  %102 = alloca i32, align 4
  %103 = alloca %struct.ImVec2, align 4
  %104 = alloca %struct.ImVec2, align 4
  %105 = alloca %struct.ImVec2, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca [8 x ptr], align 16
  %109 = alloca i64, align 8
  %110 = alloca i8, align 1
  %111 = alloca %struct.ImVec2, align 4
  %112 = alloca i8, align 1
  %113 = alloca %struct.ImVec2, align 4
  %114 = alloca i8, align 1
  %115 = alloca %struct.ImVec2, align 4
  %116 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #3
  store i32 0, ptr %3, align 4, !tbaa !9
  %117 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE11no_titlebar, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %122

119:                                              ; preds = %1
  %120 = load i32, ptr %3, align 4, !tbaa !9
  %121 = or i32 %120, 1
  store i32 %121, ptr %3, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %119, %1
  %123 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9no_border, align 1, !tbaa !11, !range !13, !noundef !14
  %124 = trunc i8 %123 to i1
  br i1 %124, label %128, label %125

125:                                              ; preds = %122
  %126 = load i32, ptr %3, align 4, !tbaa !9
  %127 = or i32 %126, 128
  store i32 %127, ptr %3, align 4, !tbaa !9
  br label %128

128:                                              ; preds = %125, %122
  %129 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9no_resize, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %134

131:                                              ; preds = %128
  %132 = load i32, ptr %3, align 4, !tbaa !9
  %133 = or i32 %132, 2
  store i32 %133, ptr %3, align 4, !tbaa !9
  br label %134

134:                                              ; preds = %131, %128
  %135 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE7no_move, align 1, !tbaa !11, !range !13, !noundef !14
  %136 = trunc i8 %135 to i1
  br i1 %136, label %137, label %140

137:                                              ; preds = %134
  %138 = load i32, ptr %3, align 4, !tbaa !9
  %139 = or i32 %138, 4
  store i32 %139, ptr %3, align 4, !tbaa !9
  br label %140

140:                                              ; preds = %137, %134
  %141 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE12no_scrollbar, align 1, !tbaa !11, !range !13, !noundef !14
  %142 = trunc i8 %141 to i1
  br i1 %142, label %143, label %146

143:                                              ; preds = %140
  %144 = load i32, ptr %3, align 4, !tbaa !9
  %145 = or i32 %144, 8
  store i32 %145, ptr %3, align 4, !tbaa !9
  br label %146

146:                                              ; preds = %143, %140
  %147 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE11no_collapse, align 1, !tbaa !11, !range !13, !noundef !14
  %148 = trunc i8 %147 to i1
  br i1 %148, label %149, label %152

149:                                              ; preds = %146
  %150 = load i32, ptr %3, align 4, !tbaa !9
  %151 = or i32 %150, 32
  store i32 %151, ptr %3, align 4, !tbaa !9
  br label %152

152:                                              ; preds = %149, %146
  %153 = load ptr, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 5.500000e+02, float noundef 6.800000e+02)
  %154 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE8bg_alpha, align 4, !tbaa !15
  %155 = load i32, ptr %3, align 4, !tbaa !9
  %156 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbRK6ImVec2fi(ptr noundef @.str.202, ptr noundef %153, ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef %154, i32 noundef %155)
  %157 = xor i1 %156, true
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #3
  br i1 %157, label %158, label %159

158:                                              ; preds = %152
  call void @_ZN5ImGui3EndEv()
  store i32 1, ptr %5, align 4
  br label %1033

159:                                              ; preds = %152
  %160 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %161 = fmul float %160, 0x3FE4CCCCC0000000
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %161)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.203)
  call void @_ZN5ImGui7SpacingEv()
  %162 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.204, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %162, label %163, label %164

163:                                              ; preds = %159
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.205)
  call void @_ZN5ImGui13ShowUserGuideEv()
  br label %164

164:                                              ; preds = %163, %159
  %165 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.206, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %165, label %166, label %249

166:                                              ; preds = %164
  %167 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.207, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE11no_titlebar)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 150, i32 noundef -1)
  %168 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.208, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE9no_border)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  %169 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.209, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE9no_resize)
  %170 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.210, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE7no_move)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 150, i32 noundef -1)
  %171 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.211, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE12no_scrollbar)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  %172 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.212, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE11no_collapse)
  %173 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.213, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE8bg_alpha, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.90, float noundef 1.000000e+00)
  %174 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.214)
  br i1 %174, label %175, label %176

175:                                              ; preds = %166
  call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %176

176:                                              ; preds = %175, %166
  %177 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.215)
  br i1 %177, label %178, label %245

178:                                              ; preds = %176
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.216)
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #3
  store i64 0, ptr %6, align 8, !tbaa !17
  br label %179

179:                                              ; preds = %236, %178
  %180 = load i64, ptr %6, align 8, !tbaa !17
  %181 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %182 = getelementptr inbounds %struct.ImGuiIO, ptr %181, i32 0, i32 10
  %183 = load ptr, ptr %182, align 8, !tbaa !19
  %184 = getelementptr inbounds %struct.ImFontAtlas, ptr %183, i32 0, i32 7
  %185 = call noundef i64 @_ZNK8ImVectorIP6ImFontE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %184)
  %186 = icmp ult i64 %180, %185
  br i1 %186, label %188, label %187

187:                                              ; preds = %179
  store i32 2, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #3
  br label %239

188:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #3
  %189 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %190 = getelementptr inbounds %struct.ImGuiIO, ptr %189, i32 0, i32 10
  %191 = load ptr, ptr %190, align 8, !tbaa !19
  %192 = getelementptr inbounds %struct.ImFontAtlas, ptr %191, i32 0, i32 7
  %193 = load i64, ptr %6, align 8, !tbaa !17
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %192, i64 noundef %193)
  %195 = load ptr, ptr %194, align 8, !tbaa !5
  store ptr %195, ptr %7, align 8, !tbaa !5
  %196 = load i64, ptr %6, align 8, !tbaa !17
  %197 = load ptr, ptr %7, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.ImFont, ptr %197, i32 0, i32 0
  %199 = load float, ptr %198, align 8, !tbaa !22
  %200 = fpext float %199 to double
  %201 = load ptr, ptr %7, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.ImFont, ptr %201, i32 0, i32 5
  %203 = call noundef i64 @_ZNK8ImVectorIN6ImFont5GlyphEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %202)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.217, i64 noundef %196, double noundef %200, i64 noundef %203)
  %204 = load i64, ptr %6, align 8, !tbaa !17
  %205 = inttoptr i64 %204 to ptr
  call void @_ZN5ImGui8TreePushEPKv(ptr noundef %205)
  %206 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %206)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.218)
  call void @_ZN5ImGui7PopFontEv()
  %207 = load i64, ptr %6, align 8, !tbaa !17
  %208 = icmp ugt i64 %207, 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #3
  br i1 %208, label %209, label %211

209:                                              ; preds = %188
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %210 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.219, ptr noundef nonnull align 4 dereferenceable(8) %8, i1 noundef zeroext false)
  br label %211

211:                                              ; preds = %209, %188
  %212 = phi i1 [ false, %188 ], [ %210, %209 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  br i1 %212, label %213, label %232

213:                                              ; preds = %211
  %214 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %215 = getelementptr inbounds %struct.ImGuiIO, ptr %214, i32 0, i32 10
  %216 = load ptr, ptr %215, align 8, !tbaa !19
  %217 = getelementptr inbounds %struct.ImFontAtlas, ptr %216, i32 0, i32 7
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef 0)
  %219 = load ptr, ptr %218, align 8, !tbaa !5
  %220 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %221 = getelementptr inbounds %struct.ImGuiIO, ptr %220, i32 0, i32 10
  %222 = load ptr, ptr %221, align 8, !tbaa !19
  %223 = getelementptr inbounds %struct.ImFontAtlas, ptr %222, i32 0, i32 7
  %224 = load i64, ptr %6, align 8, !tbaa !17
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %223, i64 noundef %224)
  store ptr %219, ptr %225, align 8, !tbaa !5
  %226 = load ptr, ptr %7, align 8, !tbaa !5
  %227 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %228 = getelementptr inbounds %struct.ImGuiIO, ptr %227, i32 0, i32 10
  %229 = load ptr, ptr %228, align 8, !tbaa !19
  %230 = getelementptr inbounds %struct.ImFontAtlas, ptr %229, i32 0, i32 7
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %230, i64 noundef 0)
  store ptr %226, ptr %231, align 8, !tbaa !5
  br label %232

232:                                              ; preds = %213, %211
  %233 = load ptr, ptr %7, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.ImFont, ptr %233, i32 0, i32 1
  %235 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.220, ptr noundef %234, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef @.str.221, float noundef 1.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #3
  br label %236

236:                                              ; preds = %232
  %237 = load i64, ptr %6, align 8, !tbaa !17
  %238 = add i64 %237, 1
  store i64 %238, ptr %6, align 8, !tbaa !17
  br label %179, !llvm.loop !28

239:                                              ; preds = %187
  %240 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.222, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE12window_scale, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef @.str.221, float noundef 1.000000e+00)
  %241 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %242 = getelementptr inbounds %struct.ImGuiIO, ptr %241, i32 0, i32 11
  %243 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.223, ptr noundef %242, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef @.str.221, float noundef 1.000000e+00)
  %244 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE12window_scale, align 4, !tbaa !15
  call void @_ZN5ImGui18SetWindowFontScaleEf(float noundef %244)
  call void @_ZN5ImGui7TreePopEv()
  br label %245

245:                                              ; preds = %239, %176
  %246 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.224)
  br i1 %246, label %247, label %248

247:                                              ; preds = %245
  call void @_ZN5ImGui10LogButtonsEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %248

248:                                              ; preds = %247, %245
  br label %249

249:                                              ; preds = %248, %164
  %250 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.225, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %250, label %251, label %684

251:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %252 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.56, ptr noundef nonnull align 4 dereferenceable(8) %9, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  br i1 %252, label %253, label %261

253:                                              ; preds = %251
  %254 = call i32 (ptr, ...) @printf(ptr noundef @.str.226)
  %255 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE1a, align 1, !tbaa !11, !range !13, !noundef !14
  %256 = trunc i8 %255 to i1
  %257 = zext i1 %256 to i32
  %258 = xor i32 %257, 1
  %259 = icmp ne i32 %258, 0
  %260 = zext i1 %259 to i8
  store i8 %260, ptr @_ZZN5ImGui14ShowTestWindowEPbE1a, align 1, !tbaa !11
  br label %261

261:                                              ; preds = %253, %251
  %262 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE1a, align 1, !tbaa !11, !range !13, !noundef !14
  %263 = trunc i8 %262 to i1
  br i1 %263, label %264, label %265

264:                                              ; preds = %261
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.227)
  br label %265

265:                                              ; preds = %264, %261
  %266 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.228)
  br i1 %266, label %267, label %289

267:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  store i64 0, ptr %10, align 8, !tbaa !17
  br label %268

268:                                              ; preds = %285, %267
  %269 = load i64, ptr %10, align 8, !tbaa !17
  %270 = icmp ult i64 %269, 5
  br i1 %270, label %272, label %271

271:                                              ; preds = %268
  store i32 5, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  br label %288

272:                                              ; preds = %268
  %273 = load i64, ptr %10, align 8, !tbaa !17
  %274 = inttoptr i64 %273 to ptr
  %275 = load i64, ptr %10, align 8, !tbaa !17
  %276 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef %274, ptr noundef @.str.229, i64 noundef %275)
  br i1 %276, label %277, label %284

277:                                              ; preds = %272
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.230)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %278 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.231)
  br i1 %278, label %279, label %283

279:                                              ; preds = %277
  %280 = load i64, ptr %10, align 8, !tbaa !17
  %281 = trunc i64 %280 to i32
  %282 = call i32 (ptr, ...) @printf(ptr noundef @.str.232, i32 noundef %281)
  br label %283

283:                                              ; preds = %279, %277
  call void @_ZN5ImGui7TreePopEv()
  br label %284

284:                                              ; preds = %283, %272
  br label %285

285:                                              ; preds = %284
  %286 = load i64, ptr %10, align 8, !tbaa !17
  %287 = add i64 %286, 1
  store i64 %287, ptr %10, align 8, !tbaa !17
  br label %268, !llvm.loop !30

288:                                              ; preds = %271
  call void @_ZN5ImGui7TreePopEv()
  br label %289

289:                                              ; preds = %288, %265
  %290 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.233)
  br i1 %290, label %291, label %294

291:                                              ; preds = %289
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.234)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.235)
  call void @_ZN5ImGui6BulletEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.236)
  call void @_ZN5ImGui6BulletEv()
  %292 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.237)
  call void @_ZN5ImGui6BulletEv()
  %293 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.238)
  call void @_ZN5ImGui7TreePopEv()
  br label %294

294:                                              ; preds = %291, %289
  %295 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.239)
  br i1 %295, label %296, label %297

296:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #3
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %11, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void (ptr, ptr, ...) @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16) %11, ptr noundef @.str.240)
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #3
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %12, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void (ptr, ptr, ...) @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16) %12, ptr noundef @.str.241)
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #3
  call void @_ZN5ImGui7TreePopEv()
  br label %297

297:                                              ; preds = %296, %294
  %298 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.242)
  br i1 %298, label %299, label %337

299:                                              ; preds = %297
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.243)
  call void @_ZN5ImGui7SpacingEv()
  %300 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.244, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, float noundef -2.000000e+01, float noundef 6.000000e+02, ptr noundef @.str.94, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.245)
  %301 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  %302 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %302, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #3
  %303 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %303, float noundef 0.000000e+00)
  %304 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %304, ptr %13, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #3
  %305 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %305, ptr %17, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #3
  %306 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  %307 = fadd float %306, 1.000000e+01
  %308 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %307, float noundef %308)
  %309 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %17, ptr noundef nonnull align 4 dereferenceable(8) %18)
  store <2 x float> %309, ptr %16, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %301, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %16, i32 noundef -65281, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #3
  %310 = call <2 x float> @_ZN5ImGui12GetCursorPosEv()
  store <2 x float> %310, ptr %19, align 4
  %311 = getelementptr inbounds %struct.ImVec2, ptr %19, i32 0, i32 0
  %312 = load float, ptr %311, align 4, !tbaa !31
  %313 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  %314 = fadd float %312, %313
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef %314)
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #3
  %315 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  %316 = fpext float %315 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.246, double noundef %316)
  %317 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #3
  %318 = call <2 x float> @_ZN5ImGui13GetItemBoxMinEv()
  store <2 x float> %318, ptr %20, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #3
  %319 = call <2 x float> @_ZN5ImGui13GetItemBoxMaxEv()
  store <2 x float> %319, ptr %21, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %317, ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef nonnull align 4 dereferenceable(8) %21, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  call void @_ZN5ImGui14PopTextWrapPosEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.247)
  %320 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  %321 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %321, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #3
  %322 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef %322, float noundef 0.000000e+00)
  %323 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %323, ptr %22, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #3
  %324 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %324, ptr %26, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #3
  %325 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  %326 = fadd float %325, 1.000000e+01
  %327 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %326, float noundef %327)
  %328 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %27)
  store <2 x float> %328, ptr %25, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %320, ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef -65281, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #3
  %329 = call <2 x float> @_ZN5ImGui12GetCursorPosEv()
  store <2 x float> %329, ptr %28, align 4
  %330 = getelementptr inbounds %struct.ImVec2, ptr %28, i32 0, i32 0
  %331 = load float, ptr %330, align 4, !tbaa !31
  %332 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !15
  %333 = fadd float %331, %332
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef %333)
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.248)
  %334 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  %335 = call <2 x float> @_ZN5ImGui13GetItemBoxMinEv()
  store <2 x float> %335, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  %336 = call <2 x float> @_ZN5ImGui13GetItemBoxMaxEv()
  store <2 x float> %336, ptr %30, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %334, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %30, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @_ZN5ImGui14PopTextWrapPosEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %337

337:                                              ; preds = %299, %297
  %338 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.249)
  br i1 %338, label %339, label %341

339:                                              ; preds = %337
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.250)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.251)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.252)
  %340 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.253, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %341

341:                                              ; preds = %339, %337
  %342 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.254)
  br i1 %342, label %343, label %358

343:                                              ; preds = %341
  %344 = load atomic i8, ptr @_ZGVZN5ImGui14ShowTestWindowEPbE4size acquire, align 8
  %345 = icmp eq i8 %344, 0
  br i1 %345, label %346, label %351, !prof !32

346:                                              ; preds = %343
  %347 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE4size) #3
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %351

349:                                              ; preds = %346
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) @_ZZN5ImGui14ShowTestWindowEPbE4size, float noundef 8.000000e+01, float noundef 2.000000e+01)
          to label %350 unwind label %354

350:                                              ; preds = %349
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE4size) #3
  br label %351

351:                                              ; preds = %350, %346, %343
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.255)
  %352 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef @.str.256, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4size, float noundef 5.000000e+00, float noundef 2.000000e+02, ptr noundef @.str.90, float noundef 1.000000e+00)
  %353 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.257, ptr noundef nonnull align 4 dereferenceable(8) @_ZZN5ImGui14ShowTestWindowEPbE4size, i1 noundef zeroext false)
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.258)
  call void @_ZN5ImGui7TreePopEv()
  br label %358

354:                                              ; preds = %349
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %31, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %32, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE4size) #3
  br label %1036

358:                                              ; preds = %351, %341
  %359 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.259)
  br i1 %359, label %360, label %488

360:                                              ; preds = %358
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.260)
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  %361 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %361, ptr %33, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  %362 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %363 = getelementptr inbounds %struct.ImGuiIO, ptr %362, i32 0, i32 10
  %364 = load ptr, ptr %363, align 8, !tbaa !19
  %365 = getelementptr inbounds %struct.ImFontAtlas, ptr %364, i32 0, i32 3
  %366 = load i32, ptr %365, align 8, !tbaa !33
  %367 = sitofp i32 %366 to float
  store float %367, ptr %34, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  %368 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %369 = getelementptr inbounds %struct.ImGuiIO, ptr %368, i32 0, i32 10
  %370 = load ptr, ptr %369, align 8, !tbaa !19
  %371 = getelementptr inbounds %struct.ImFontAtlas, ptr %370, i32 0, i32 4
  %372 = load i32, ptr %371, align 4, !tbaa !37
  %373 = sitofp i32 %372 to float
  store float %373, ptr %35, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  %374 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %375 = getelementptr inbounds %struct.ImGuiIO, ptr %374, i32 0, i32 10
  %376 = load ptr, ptr %375, align 8, !tbaa !19
  %377 = getelementptr inbounds %struct.ImFontAtlas, ptr %376, i32 0, i32 0
  %378 = load ptr, ptr %377, align 8, !tbaa !38
  store ptr %378, ptr %36, align 8, !tbaa !5
  %379 = load ptr, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  %380 = load float, ptr %34, align 4, !tbaa !15
  %381 = load float, ptr %35, align 4, !tbaa !15
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef %380, float noundef %381)
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %38, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #3
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %41, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 255)
  %382 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %41)
  %383 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %40, i32 0, i32 0
  %384 = extractvalue { <2 x float>, <2 x float> } %382, 0
  store <2 x float> %384, ptr %383, align 4
  %385 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %40, i32 0, i32 1
  %386 = extractvalue { <2 x float>, <2 x float> } %382, 1
  store <2 x float> %386, ptr %385, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #3
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %43, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 128)
  %387 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %43)
  %388 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %42, i32 0, i32 0
  %389 = extractvalue { <2 x float>, <2 x float> } %387, 0
  store <2 x float> %389, ptr %388, align 4
  %390 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %42, i32 0, i32 1
  %391 = extractvalue { <2 x float>, <2 x float> } %387, 1
  store <2 x float> %391, ptr %390, align 4
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %379, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(16) %42)
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  %392 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv()
  br i1 %392, label %393, label %459

393:                                              ; preds = %360
  call void @_ZN5ImGui12BeginTooltipEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #3
  store float 3.200000e+01, ptr %44, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  %394 = call <2 x float> @_ZN5ImGui11GetMousePosEv()
  store <2 x float> %394, ptr %46, align 4
  %395 = getelementptr inbounds %struct.ImVec2, ptr %46, i32 0, i32 0
  %396 = load float, ptr %395, align 4, !tbaa !31
  %397 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 0
  %398 = load float, ptr %397, align 4, !tbaa !31
  %399 = fsub float %396, %398
  %400 = load float, ptr %44, align 4, !tbaa !15
  %401 = fneg float %400
  %402 = call float @llvm.fmuladd.f32(float %401, float 5.000000e-01, float %399)
  %403 = load float, ptr %34, align 4, !tbaa !15
  %404 = load float, ptr %44, align 4, !tbaa !15
  %405 = fsub float %403, %404
  %406 = call noundef float @_ZL7ImClampfff(float noundef %402, float noundef 0.000000e+00, float noundef %405)
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  store float %406, ptr %45, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #3
  %407 = call <2 x float> @_ZN5ImGui11GetMousePosEv()
  store <2 x float> %407, ptr %48, align 4
  %408 = getelementptr inbounds %struct.ImVec2, ptr %48, i32 0, i32 1
  %409 = load float, ptr %408, align 4, !tbaa !39
  %410 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 1
  %411 = load float, ptr %410, align 4, !tbaa !39
  %412 = fsub float %409, %411
  %413 = load float, ptr %44, align 4, !tbaa !15
  %414 = fneg float %413
  %415 = call float @llvm.fmuladd.f32(float %414, float 5.000000e-01, float %412)
  %416 = load float, ptr %35, align 4, !tbaa !15
  %417 = load float, ptr %44, align 4, !tbaa !15
  %418 = fsub float %416, %417
  %419 = call noundef float @_ZL7ImClampfff(float noundef %415, float noundef 0.000000e+00, float noundef %418)
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  store float %419, ptr %47, align 4, !tbaa !15
  %420 = load float, ptr %45, align 4, !tbaa !15
  %421 = fpext float %420 to double
  %422 = load float, ptr %47, align 4, !tbaa !15
  %423 = fpext float %422 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.261, double noundef %421, double noundef %423)
  %424 = load float, ptr %45, align 4, !tbaa !15
  %425 = load float, ptr %44, align 4, !tbaa !15
  %426 = fadd float %424, %425
  %427 = fpext float %426 to double
  %428 = load float, ptr %47, align 4, !tbaa !15
  %429 = load float, ptr %44, align 4, !tbaa !15
  %430 = fadd float %428, %429
  %431 = fpext float %430 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.262, double noundef %427, double noundef %431)
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #3
  %432 = load float, ptr %45, align 4, !tbaa !15
  %433 = load float, ptr %34, align 4, !tbaa !15
  %434 = fdiv float %432, %433
  %435 = load float, ptr %47, align 4, !tbaa !15
  %436 = load float, ptr %35, align 4, !tbaa !15
  %437 = fdiv float %435, %436
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %49, float noundef %434, float noundef %437)
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #3
  %438 = load float, ptr %45, align 4, !tbaa !15
  %439 = load float, ptr %44, align 4, !tbaa !15
  %440 = fadd float %438, %439
  %441 = load float, ptr %34, align 4, !tbaa !15
  %442 = fdiv float %440, %441
  %443 = load float, ptr %47, align 4, !tbaa !15
  %444 = load float, ptr %44, align 4, !tbaa !15
  %445 = fadd float %443, %444
  %446 = load float, ptr %35, align 4, !tbaa !15
  %447 = fdiv float %445, %446
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %442, float noundef %447)
  %448 = load ptr, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef 1.280000e+02, float noundef 1.280000e+02)
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #3
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %53, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 255)
  %449 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %53)
  %450 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %52, i32 0, i32 0
  %451 = extractvalue { <2 x float>, <2 x float> } %449, 0
  store <2 x float> %451, ptr %450, align 4
  %452 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %52, i32 0, i32 1
  %453 = extractvalue { <2 x float>, <2 x float> } %449, 1
  store <2 x float> %453, ptr %452, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #3
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %55, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 128)
  %454 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %55)
  %455 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %54, i32 0, i32 0
  %456 = extractvalue { <2 x float>, <2 x float> } %454, 0
  store <2 x float> %456, ptr %455, align 4
  %457 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %54, i32 0, i32 1
  %458 = extractvalue { <2 x float>, <2 x float> } %454, 1
  store <2 x float> %458, ptr %457, align 4
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %448, ptr noundef nonnull align 4 dereferenceable(8) %51, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(16) %52, ptr noundef nonnull align 4 dereferenceable(16) %54)
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  call void @_ZN5ImGui10EndTooltipEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  br label %459

459:                                              ; preds = %393, %360
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.263)
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #3
  store i32 0, ptr %56, align 4, !tbaa !9
  br label %460

460:                                              ; preds = %483, %459
  %461 = load i32, ptr %56, align 4, !tbaa !9
  %462 = icmp slt i32 %461, 8
  br i1 %462, label %464, label %463

463:                                              ; preds = %460
  store i32 8, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  br label %486

464:                                              ; preds = %460
  %465 = load i32, ptr %56, align 4, !tbaa !9
  %466 = icmp sgt i32 %465, 0
  br i1 %466, label %467, label %468

467:                                              ; preds = %464
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  br label %468

468:                                              ; preds = %467, %464
  %469 = load i32, ptr %56, align 4, !tbaa !9
  call void @_ZN5ImGui6PushIDEi(i32 noundef %469)
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #3
  %470 = load i32, ptr %56, align 4, !tbaa !9
  %471 = add nsw i32 -1, %470
  store i32 %471, ptr %57, align 4, !tbaa !9
  %472 = load ptr, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %58, float noundef 3.200000e+01, float noundef 3.200000e+01)
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #3
  %473 = load float, ptr %34, align 4, !tbaa !15
  %474 = fdiv float 3.200000e+01, %473
  %475 = load float, ptr %35, align 4, !tbaa !15
  %476 = fdiv float 3.200000e+01, %475
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef %474, float noundef %476)
  %477 = load i32, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #3
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %61, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #3
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %62, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %478 = call noundef zeroext i1 @_ZN5ImGui11ImageButtonEPvRK6ImVec2S3_S3_iRK6ImVec4S6_(ptr noundef %472, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(8) %60, i32 noundef %477, ptr noundef nonnull align 4 dereferenceable(16) %61, ptr noundef nonnull align 4 dereferenceable(16) %62)
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  br i1 %478, label %479, label %482

479:                                              ; preds = %468
  %480 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !9
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !9
  br label %482

482:                                              ; preds = %479, %468
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  br label %483

483:                                              ; preds = %482
  %484 = load i32, ptr %56, align 4, !tbaa !9
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr %56, align 4, !tbaa !9
  br label %460, !llvm.loop !40

486:                                              ; preds = %463
  %487 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.264, i32 noundef %487)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  br label %488

488:                                              ; preds = %486, %358
  %489 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.265)
  br i1 %489, label %490, label %587

490:                                              ; preds = %488
  %491 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.266)
  br i1 %491, label %492, label %496

492:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %493 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.267, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE8selected, ptr noundef nonnull align 4 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %494 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.268, ptr noundef getelementptr inbounds ([3 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected, i64 0, i64 1), ptr noundef nonnull align 4 dereferenceable(8) %64)
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.269)
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %495 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.270, ptr noundef getelementptr inbounds ([3 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected, i64 0, i64 2), ptr noundef nonnull align 4 dereferenceable(8) %65)
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @_ZN5ImGui7TreePopEv()
  br label %496

496:                                              ; preds = %492, %490
  %497 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.271)
  br i1 %497, label %498, label %502

498:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %499 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.272, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE8selected_0, ptr noundef nonnull align 4 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.273)
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %500 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.274, ptr noundef getelementptr inbounds ([3 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_0, i64 0, i64 1), ptr noundef nonnull align 4 dereferenceable(8) %67)
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.275)
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %68, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %501 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.276, ptr noundef getelementptr inbounds ([3 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_0, i64 0, i64 2), ptr noundef nonnull align 4 dereferenceable(8) %68)
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.273)
  call void @_ZN5ImGui7TreePopEv()
  br label %502

502:                                              ; preds = %498, %496
  %503 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.277)
  br i1 %503, label %504, label %586

504:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  store i32 0, ptr %69, align 4, !tbaa !9
  br label %505

505:                                              ; preds = %582, %504
  %506 = load i32, ptr %69, align 4, !tbaa !9
  %507 = icmp slt i32 %506, 16
  br i1 %507, label %509, label %508

508:                                              ; preds = %505
  store i32 11, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  br label %585

509:                                              ; preds = %505
  %510 = load i32, ptr %69, align 4, !tbaa !9
  call void @_ZN5ImGui6PushIDEi(i32 noundef %510)
  %511 = load i32, ptr %69, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %512
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %70, float noundef 5.000000e+01, float noundef 5.000000e+01)
  %514 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef @.str.278, ptr noundef %513, ptr noundef nonnull align 4 dereferenceable(8) %70)
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  br i1 %514, label %515, label %576

515:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  %516 = load i32, ptr %69, align 4, !tbaa !9
  %517 = srem i32 %516, 4
  store i32 %517, ptr %71, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  %518 = load i32, ptr %69, align 4, !tbaa !9
  %519 = sdiv i32 %518, 4
  store i32 %519, ptr %72, align 4, !tbaa !9
  %520 = load i32, ptr %71, align 4, !tbaa !9
  %521 = icmp sgt i32 %520, 0
  br i1 %521, label %522, label %533

522:                                              ; preds = %515
  %523 = load i32, ptr %69, align 4, !tbaa !9
  %524 = sub nsw i32 %523, 1
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %525
  %527 = load i8, ptr %526, align 1, !tbaa !11, !range !13, !noundef !14
  %528 = trunc i8 %527 to i1
  %529 = zext i1 %528 to i32
  %530 = xor i32 %529, 1
  %531 = icmp ne i32 %530, 0
  %532 = zext i1 %531 to i8
  store i8 %532, ptr %526, align 1, !tbaa !11
  br label %533

533:                                              ; preds = %522, %515
  %534 = load i32, ptr %71, align 4, !tbaa !9
  %535 = icmp slt i32 %534, 3
  br i1 %535, label %536, label %547

536:                                              ; preds = %533
  %537 = load i32, ptr %69, align 4, !tbaa !9
  %538 = add nsw i32 %537, 1
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %539
  %541 = load i8, ptr %540, align 1, !tbaa !11, !range !13, !noundef !14
  %542 = trunc i8 %541 to i1
  %543 = zext i1 %542 to i32
  %544 = xor i32 %543, 1
  %545 = icmp ne i32 %544, 0
  %546 = zext i1 %545 to i8
  store i8 %546, ptr %540, align 1, !tbaa !11
  br label %547

547:                                              ; preds = %536, %533
  %548 = load i32, ptr %72, align 4, !tbaa !9
  %549 = icmp sgt i32 %548, 0
  br i1 %549, label %550, label %561

550:                                              ; preds = %547
  %551 = load i32, ptr %69, align 4, !tbaa !9
  %552 = sub nsw i32 %551, 4
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %553
  %555 = load i8, ptr %554, align 1, !tbaa !11, !range !13, !noundef !14
  %556 = trunc i8 %555 to i1
  %557 = zext i1 %556 to i32
  %558 = xor i32 %557, 1
  %559 = icmp ne i32 %558, 0
  %560 = zext i1 %559 to i8
  store i8 %560, ptr %554, align 1, !tbaa !11
  br label %561

561:                                              ; preds = %550, %547
  %562 = load i32, ptr %72, align 4, !tbaa !9
  %563 = icmp slt i32 %562, 3
  br i1 %563, label %564, label %575

564:                                              ; preds = %561
  %565 = load i32, ptr %69, align 4, !tbaa !9
  %566 = add nsw i32 %565, 4
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %567
  %569 = load i8, ptr %568, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc i8 %569 to i1
  %571 = zext i1 %570 to i32
  %572 = xor i32 %571, 1
  %573 = icmp ne i32 %572, 0
  %574 = zext i1 %573 to i8
  store i8 %574, ptr %568, align 1, !tbaa !11
  br label %575

575:                                              ; preds = %564, %561
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  br label %576

576:                                              ; preds = %575, %509
  %577 = load i32, ptr %69, align 4, !tbaa !9
  %578 = srem i32 %577, 4
  %579 = icmp slt i32 %578, 3
  br i1 %579, label %580, label %581

580:                                              ; preds = %576
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  br label %581

581:                                              ; preds = %580, %576
  call void @_ZN5ImGui5PopIDEv()
  br label %582

582:                                              ; preds = %581
  %583 = load i32, ptr %69, align 4, !tbaa !9
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr %69, align 4, !tbaa !9
  br label %505, !llvm.loop !41

585:                                              ; preds = %508
  call void @_ZN5ImGui7TreePopEv()
  br label %586

586:                                              ; preds = %585, %502
  call void @_ZN5ImGui7TreePopEv()
  br label %587

587:                                              ; preds = %586, %488
  %588 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.279)
  br i1 %588, label %589, label %596

589:                                              ; preds = %587
  %590 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.280, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4buf1, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %591 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.281, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4buf2, i64 noundef 64, i32 noundef 1, ptr noundef null, ptr noundef null)
  %592 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.282, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4buf3, i64 noundef 64, i32 noundef 6, ptr noundef null, ptr noundef null)
  %593 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.283, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4buf4, i64 noundef 64, i32 noundef 4, ptr noundef null, ptr noundef null)
  %594 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.284, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4buf5, i64 noundef 64, i32 noundef 8, ptr noundef null, ptr noundef null)
  %595 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.285, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4buf6, i64 noundef 64, i32 noundef 512, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbEN11TextFilters18FilterImGuiLettersEP25ImGuiTextEditCallbackData, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %596

596:                                              ; preds = %589, %587
  %597 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.286, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE5check)
  %598 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.287, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE1e, i32 noundef 0)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %599 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.288, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE1e, i32 noundef 1)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %600 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.289, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE1e, i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #3
  store i32 0, ptr %73, align 4, !tbaa !9
  br label %601

601:                                              ; preds = %654, %596
  %602 = load i32, ptr %73, align 4, !tbaa !9
  %603 = icmp slt i32 %602, 7
  br i1 %603, label %605, label %604

604:                                              ; preds = %601
  store i32 14, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  br label %657

605:                                              ; preds = %601
  %606 = load i32, ptr %73, align 4, !tbaa !9
  %607 = icmp sgt i32 %606, 0
  br i1 %607, label %608, label %609

608:                                              ; preds = %605
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  br label %609

609:                                              ; preds = %608, %605
  %610 = load i32, ptr %73, align 4, !tbaa !9
  call void @_ZN5ImGui6PushIDEi(i32 noundef %610)
  call void @llvm.lifetime.start.p0(i64 16, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #3
  %611 = load i32, ptr %73, align 4, !tbaa !9
  %612 = sitofp i32 %611 to float
  %613 = fdiv float %612, 7.000000e+00
  %614 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef %613, float noundef 0x3FE3333340000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00)
  %615 = getelementptr inbounds %struct.ImColor, ptr %75, i32 0, i32 0
  %616 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %615, i32 0, i32 0
  %617 = extractvalue { <2 x float>, <2 x float> } %614, 0
  store <2 x float> %617, ptr %616, align 4
  %618 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %615, i32 0, i32 1
  %619 = extractvalue { <2 x float>, <2 x float> } %614, 1
  store <2 x float> %619, ptr %618, align 4
  %620 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %75)
  %621 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %74, i32 0, i32 0
  %622 = extractvalue { <2 x float>, <2 x float> } %620, 0
  store <2 x float> %622, ptr %621, align 4
  %623 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %74, i32 0, i32 1
  %624 = extractvalue { <2 x float>, <2 x float> } %620, 1
  store <2 x float> %624, ptr %623, align 4
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 18, ptr noundef nonnull align 4 dereferenceable(16) %74)
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #3
  %625 = load i32, ptr %73, align 4, !tbaa !9
  %626 = sitofp i32 %625 to float
  %627 = fdiv float %626, 7.000000e+00
  %628 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef %627, float noundef 0x3FE6666660000000, float noundef 0x3FE6666660000000, float noundef 1.000000e+00)
  %629 = getelementptr inbounds %struct.ImColor, ptr %77, i32 0, i32 0
  %630 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %629, i32 0, i32 0
  %631 = extractvalue { <2 x float>, <2 x float> } %628, 0
  store <2 x float> %631, ptr %630, align 4
  %632 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %629, i32 0, i32 1
  %633 = extractvalue { <2 x float>, <2 x float> } %628, 1
  store <2 x float> %633, ptr %632, align 4
  %634 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %77)
  %635 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %76, i32 0, i32 0
  %636 = extractvalue { <2 x float>, <2 x float> } %634, 0
  store <2 x float> %636, ptr %635, align 4
  %637 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %76, i32 0, i32 1
  %638 = extractvalue { <2 x float>, <2 x float> } %634, 1
  store <2 x float> %638, ptr %637, align 4
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 19, ptr noundef nonnull align 4 dereferenceable(16) %76)
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #3
  %639 = load i32, ptr %73, align 4, !tbaa !9
  %640 = sitofp i32 %639 to float
  %641 = fdiv float %640, 7.000000e+00
  %642 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef %641, float noundef 0x3FE99999A0000000, float noundef 0x3FE99999A0000000, float noundef 1.000000e+00)
  %643 = getelementptr inbounds %struct.ImColor, ptr %79, i32 0, i32 0
  %644 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %643, i32 0, i32 0
  %645 = extractvalue { <2 x float>, <2 x float> } %642, 0
  store <2 x float> %645, ptr %644, align 4
  %646 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %643, i32 0, i32 1
  %647 = extractvalue { <2 x float>, <2 x float> } %642, 1
  store <2 x float> %647, ptr %646, align 4
  %648 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %79)
  %649 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %78, i32 0, i32 0
  %650 = extractvalue { <2 x float>, <2 x float> } %648, 0
  store <2 x float> %650, ptr %649, align 4
  %651 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %78, i32 0, i32 1
  %652 = extractvalue { <2 x float>, <2 x float> } %648, 1
  store <2 x float> %652, ptr %651, align 4
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 20, ptr noundef nonnull align 4 dereferenceable(16) %78)
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 16, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %80, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %653 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.290, ptr noundef nonnull align 4 dereferenceable(8) %80, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 3)
  call void @_ZN5ImGui5PopIDEv()
  br label %654

654:                                              ; preds = %609
  %655 = load i32, ptr %73, align 4, !tbaa !9
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr %73, align 4, !tbaa !9
  br label %601, !llvm.loop !42

657:                                              ; preds = %604
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.291)
  %658 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv()
  br i1 %658, label %659, label %660

659:                                              ; preds = %657
  call void (ptr, ...) @_ZN5ImGui10SetTooltipEPKcz(ptr noundef @.str.292)
  br label %660

660:                                              ; preds = %659, %657
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.293)
  %661 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv()
  br i1 %661, label %662, label %664

662:                                              ; preds = %660
  call void @_ZN5ImGui12BeginTooltipEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.294)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %81, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %663 = load <2 x float>, ptr %81, align 4
  call void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef @.str.295, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3arr, i32 noundef 7, i32 noundef 0, ptr noundef null, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, <2 x float> %663, i64 noundef 4)
  call void @_ZN5ImGui10EndTooltipEv()
  br label %664

664:                                              ; preds = %662, %660
  call void @_ZN5ImGui9SeparatorEv()
  %665 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef @.str.296, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4item, ptr noundef @.str.297, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 88, ptr %82) #3
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %82, ptr align 16 @__const._ZN5ImGui14ShowTestWindowEPb.items, i64 88, i1 false)
  %666 = getelementptr inbounds [11 x ptr], ptr %82, i64 0, i64 0
  %667 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPS1_ii(ptr noundef @.str.309, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE5item2, ptr noundef %666, i32 noundef 11, i32 noundef -1)
  %668 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.310, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4str0, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %669 = call noundef zeroext i1 @_ZN5ImGui8InputIntEPKcPiiii(ptr noundef @.str.311, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2i0, i32 noundef 1, i32 noundef 100, i32 noundef 0)
  %670 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef @.str.312, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f0, float noundef 0x3F847AE140000000, float noundef 1.000000e+00, i32 noundef -1, i32 noundef 0)
  %671 = call noundef zeroext i1 @_ZN5ImGui11InputFloat3EPKcPfi(ptr noundef @.str.313, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE5vec4a, i32 noundef -1)
  %672 = call noundef zeroext i1 @_ZN5ImGui9SliderIntEPKcPiiiS1_(ptr noundef @.str.314, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2i1, i32 noundef 0, i32 noundef 3, ptr noundef @.str.94)
  %673 = call noundef zeroext i1 @_ZN5ImGui9SliderIntEPKcPiiiS1_(ptr noundef @.str.315, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2i2, i32 noundef -100, i32 noundef 100, ptr noundef @.str.94)
  %674 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.316, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f1, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef @.str.90, float noundef 1.000000e+00)
  %675 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.317, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f2, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef @.str.318, float noundef 2.000000e+00)
  %676 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.319, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f3, float noundef -1.000000e+01, float noundef 1.000000e+01, ptr noundef @.str.318, float noundef 3.000000e+00)
  %677 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.320, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f4, float noundef 0xC7EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, ptr noundef @.str.318, float noundef 1.000000e+00)
  %678 = call noundef zeroext i1 @_ZN5ImGui11SliderAngleEPKcPfff(ptr noundef @.str.321, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE5angle, float noundef -3.600000e+02, float noundef 3.600000e+02)
  %679 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat3EPKcPfffS1_f(ptr noundef @.str.322, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE5vec4b, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef @.str.90, float noundef 1.000000e+00)
  %680 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPf(ptr noundef @.str.323, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4col1)
  %681 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfb(ptr noundef @.str.324, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4col2, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 72, ptr %83) #3
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %83, ptr align 16 @__const._ZN5ImGui14ShowTestWindowEPb.listbox_items, i64 72, i1 false)
  %682 = getelementptr inbounds [9 x ptr], ptr %83, i64 0, i64 0
  %683 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef @.str.334, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE20listbox_item_current, ptr noundef %682, i32 noundef 9, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 72, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 88, ptr %82) #3
  br label %684

684:                                              ; preds = %664, %249
  %685 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.335, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %685, label %686, label %738

686:                                              ; preds = %684
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %84, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %687 = load <2 x float>, ptr %84, align 4
  call void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef @.str.336, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3arr_0, i32 noundef 7, i32 noundef 0, ptr noundef null, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, <2 x float> %687, i64 noundef 4)
  %688 = load atomic i8, ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6values acquire, align 8
  %689 = icmp eq i8 %688, 0
  br i1 %689, label %690, label %696, !prof !32

690:                                              ; preds = %686
  %691 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6values) #3
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %693, label %696

693:                                              ; preds = %690
  invoke void @_ZN8ImVectorIfEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
          to label %694 unwind label %702

694:                                              ; preds = %693
  %695 = call i32 @__cxa_atexit(ptr @_ZN8ImVectorIfED2Ev, ptr @_ZZN5ImGui14ShowTestWindowEPbE6values, ptr @__dso_handle) #3
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6values) #3
  br label %696

696:                                              ; preds = %694, %690, %686
  %697 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  br i1 %697, label %698, label %706

698:                                              ; preds = %696
  call void @_ZN8ImVectorIfE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values, i64 noundef 100)
  %699 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %700 = call noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %701 = mul i64 %700, 4
  call void @llvm.memset.p0.i64(ptr align 4 %699, i8 0, i64 %701, i1 false)
  br label %706

702:                                              ; preds = %693
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %31, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %32, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6values) #3
  br label %1036

706:                                              ; preds = %698, %696
  %707 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE5pause, align 1, !tbaa !11, !range !13, !noundef !14
  %708 = trunc i8 %707 to i1
  br i1 %708, label %729, label %709

709:                                              ; preds = %706
  %710 = call noundef float @_ZN5ImGui7GetTimeEv()
  %711 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE12refresh_time, align 4, !tbaa !15
  %712 = fadd float %711, 0x3F91111120000000
  %713 = fcmp ogt float %710, %712
  br i1 %713, label %714, label %728

714:                                              ; preds = %709
  %715 = call noundef float @_ZN5ImGui7GetTimeEv()
  store float %715, ptr @_ZZN5ImGui14ShowTestWindowEPbE12refresh_time, align 4, !tbaa !15
  %716 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE5phase, align 4, !tbaa !15
  %717 = call float @cosf(float noundef %716) #3
  %718 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !17
  %719 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values, i64 noundef %718)
  store float %717, ptr %719, align 4, !tbaa !15
  %720 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !17
  %721 = add i64 %720, 1
  %722 = call noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %723 = urem i64 %721, %722
  store i64 %723, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !17
  %724 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !17
  %725 = uitofp i64 %724 to float
  %726 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE5phase, align 4, !tbaa !15
  %727 = call float @llvm.fmuladd.f32(float 0x3FB99999A0000000, float %725, float %726)
  store float %727, ptr @_ZZN5ImGui14ShowTestWindowEPbE5phase, align 4, !tbaa !15
  br label %728

728:                                              ; preds = %714, %709
  br label %729

729:                                              ; preds = %728, %706
  %730 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %731 = call noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %732 = trunc i64 %731 to i32
  %733 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !17
  %734 = trunc i64 %733 to i32
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %85, float noundef 0.000000e+00, float noundef 7.000000e+01)
  %735 = load <2 x float>, ptr %85, align 4
  call void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef @.str.336, ptr noundef %730, i32 noundef %732, i32 noundef %734, ptr noundef @.str.337, float noundef -1.000000e+00, float noundef 1.000000e+00, <2 x float> %735, i64 noundef 4)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %736 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.338, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE5pause)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %86, float noundef 0.000000e+00, float noundef 7.000000e+01)
  %737 = load <2 x float>, ptr %86, align 4
  call void @_ZN5ImGui13PlotHistogramEPKcPKfiiS1_ff6ImVec2m(ptr noundef @.str.339, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3arr_0, i32 noundef 7, i32 noundef 0, ptr noundef null, float noundef 0.000000e+00, float noundef 1.000000e+00, <2 x float> %737, i64 noundef 4)
  br label %738

738:                                              ; preds = %729, %684
  %739 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.340, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %739, label %740, label %776

740:                                              ; preds = %738
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.341)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.342)
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %87, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %741 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.326, ptr noundef nonnull align 4 dereferenceable(8) %87, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  br i1 %741, label %742, label %744

742:                                              ; preds = %740
  %743 = call i32 (ptr, ...) @printf(ptr noundef @.str.343)
  br label %744

744:                                              ; preds = %742, %740
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %88, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %745 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.325, ptr noundef nonnull align 4 dereferenceable(8) %88, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %89, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %746 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.344, ptr noundef nonnull align 4 dereferenceable(8) %89, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.345)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %747 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.346)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.347)
  %748 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.348, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2c1)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %749 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.349, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2c2)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %750 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.350, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2c3)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %751 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.351, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2c4)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 8.000000e+01)
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #3
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %90, ptr align 16 @__const._ZN5ImGui14ShowTestWindowEPb.items.352, i64 32, i1 false)
  %752 = getelementptr inbounds [4 x ptr], ptr %90, i64 0, i64 0
  %753 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPS1_ii(ptr noundef @.str.353, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4item_0, ptr noundef %752, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %754 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.354, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f0_0, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.90, float noundef 1.000000e+00)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %755 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.355, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f1_0, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.90, float noundef 1.000000e+00)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %756 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef @.str.356, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE2f2_0, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef @.str.90, float noundef 1.000000e+00)
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 8.000000e+01)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.357)
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #3
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %757

757:                                              ; preds = %772, %744
  %758 = load i32, ptr %91, align 4, !tbaa !9
  %759 = icmp slt i32 %758, 4
  br i1 %759, label %761, label %760

760:                                              ; preds = %757
  store i32 17, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  br label %775

761:                                              ; preds = %757
  %762 = load i32, ptr %91, align 4, !tbaa !9
  %763 = icmp sgt i32 %762, 0
  br i1 %763, label %764, label %765

764:                                              ; preds = %761
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  br label %765

765:                                              ; preds = %764, %761
  %766 = load i32, ptr %91, align 4, !tbaa !9
  call void @_ZN5ImGui6PushIDEi(i32 noundef %766)
  %767 = load i32, ptr %91, align 4, !tbaa !9
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds [4 x i32], ptr @_ZZN5ImGui14ShowTestWindowEPbE9selection, i64 0, i64 %768
  %770 = getelementptr inbounds [4 x ptr], ptr %90, i64 0, i64 0
  %771 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef @.str.8, ptr noundef %769, ptr noundef %770, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  br label %772

772:                                              ; preds = %765
  %773 = load i32, ptr %91, align 4, !tbaa !9
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr %91, align 4, !tbaa !9
  br label %757, !llvm.loop !43

775:                                              ; preds = %760
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #3
  br label %776

776:                                              ; preds = %775, %738
  %777 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.358, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %777, label %778, label %837

778:                                              ; preds = %776
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.359)
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %93, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %779 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.360, ptr noundef nonnull align 4 dereferenceable(8) %93, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  %780 = zext i1 %779 to i8
  store i8 %780, ptr %92, align 1, !tbaa !11
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.000000e+02)
  %781 = call noundef zeroext i1 @_ZN5ImGui8InputIntEPKcPiiii(ptr noundef @.str.361, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE4line, i32 noundef 0, i32 noundef 0, i32 noundef 32)
  %782 = zext i1 %781 to i32
  %783 = load i8, ptr %92, align 1, !tbaa !11, !range !13, !noundef !14
  %784 = trunc i8 %783 to i1
  %785 = zext i1 %784 to i32
  %786 = or i32 %785, %782
  %787 = icmp ne i32 %786, 0
  %788 = zext i1 %787 to i8
  store i8 %788, ptr %92, align 1, !tbaa !11
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  %789 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %790 = fmul float %789, 5.000000e-01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %94, float noundef %790, float noundef 3.000000e+02)
  %791 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef @.str.362, ptr noundef nonnull align 4 dereferenceable(8) %94, i1 noundef zeroext false, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #3
  store i32 0, ptr %95, align 4, !tbaa !9
  br label %792

792:                                              ; preds = %806, %778
  %793 = load i32, ptr %95, align 4, !tbaa !9
  %794 = icmp slt i32 %793, 100
  br i1 %794, label %796, label %795

795:                                              ; preds = %792
  store i32 20, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  br label %809

796:                                              ; preds = %792
  %797 = load i32, ptr %95, align 4, !tbaa !9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.363, i32 noundef %797)
  %798 = load i8, ptr %92, align 1, !tbaa !11, !range !13, !noundef !14
  %799 = trunc i8 %798 to i1
  br i1 %799, label %800, label %805

800:                                              ; preds = %796
  %801 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE4line, align 4, !tbaa !9
  %802 = load i32, ptr %95, align 4, !tbaa !9
  %803 = icmp eq i32 %801, %802
  br i1 %803, label %804, label %805

804:                                              ; preds = %800
  call void @_ZN5ImGui16SetScrollPosHereEv()
  br label %805

805:                                              ; preds = %804, %800, %796
  br label %806

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

809:                                              ; preds = %795
  %810 = load i8, ptr %92, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc i8 %810 to i1
  br i1 %811, label %812, label %816

812:                                              ; preds = %809
  %813 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE4line, align 4, !tbaa !9
  %814 = icmp sge i32 %813, 100
  br i1 %814, label %815, label %816

815:                                              ; preds = %812
  call void @_ZN5ImGui16SetScrollPosHereEv()
  br label %816

816:                                              ; preds = %815, %812, %809
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 3, float noundef 5.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %96, float noundef 0.000000e+00, float noundef 3.000000e+02)
  %817 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef @.str.364, ptr noundef nonnull align 4 dereferenceable(8) %96, i1 noundef zeroext true, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.365)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 2, ptr noundef null, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #3
  store i32 0, ptr %97, align 4, !tbaa !9
  br label %818

818:                                              ; preds = %833, %816
  %819 = load i32, ptr %97, align 4, !tbaa !9
  %820 = icmp slt i32 %819, 100
  br i1 %820, label %822, label %821

821:                                              ; preds = %818
  store i32 23, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  br label %836

822:                                              ; preds = %818
  %823 = load i32, ptr %97, align 4, !tbaa !9
  %824 = icmp eq i32 %823, 50
  br i1 %824, label %825, label %826

825:                                              ; preds = %822
  call void @_ZN5ImGui10NextColumnEv()
  br label %826

826:                                              ; preds = %825, %822
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #3
  %827 = getelementptr inbounds [32 x i8], ptr %98, i64 0, i64 0
  %828 = load i32, ptr %97, align 4, !tbaa !9
  %829 = mul nsw i32 %828, 5731
  %830 = call noundef i64 (ptr, i64, ptr, ...) @_ZL14ImFormatStringPcmPKcz(ptr noundef %827, i64 noundef 32, ptr noundef @.str.366, i32 noundef %829)
  %831 = getelementptr inbounds [32 x i8], ptr %98, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %99, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %832 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef %831, ptr noundef nonnull align 4 dereferenceable(8) %99, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #3
  br label %833

833:                                              ; preds = %826
  %834 = load i32, ptr %97, align 4, !tbaa !9
  %835 = add nsw i32 %834, 1
  store i32 %835, ptr %97, align 4, !tbaa !9
  br label %818, !llvm.loop !45

836:                                              ; preds = %821
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #3
  br label %837

837:                                              ; preds = %836, %776
  %838 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.367, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %838, label %839, label %920

839:                                              ; preds = %837
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.368)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 4, ptr noundef @.str.369, i1 noundef zeroext true)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.370)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.371)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.372)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.373)
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 24, ptr %100) #3
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %100, ptr align 16 @__const._ZN5ImGui14ShowTestWindowEPb.names, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %101) #3
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %101, ptr align 16 @__const._ZN5ImGui14ShowTestWindowEPb.paths, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #3
  store i32 0, ptr %102, align 4, !tbaa !9
  br label %840

840:                                              ; preds = %854, %839
  %841 = load i32, ptr %102, align 4, !tbaa !9
  %842 = icmp slt i32 %841, 3
  br i1 %842, label %844, label %843

843:                                              ; preds = %840
  store i32 26, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #3
  br label %857

844:                                              ; preds = %840
  %845 = load i32, ptr %102, align 4, !tbaa !9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.380, i32 noundef %845)
  call void @_ZN5ImGui10NextColumnEv()
  %846 = load i32, ptr %102, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds [3 x ptr], ptr %100, i64 0, i64 %847
  %849 = load ptr, ptr %848, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %849)
  call void @_ZN5ImGui10NextColumnEv()
  %850 = load i32, ptr %102, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds [3 x ptr], ptr %101, i64 0, i64 %851
  %853 = load ptr, ptr %852, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %853)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.381)
  call void @_ZN5ImGui10NextColumnEv()
  br label %854

854:                                              ; preds = %844
  %855 = load i32, ptr %102, align 4, !tbaa !9
  %856 = add nsw i32 %855, 1
  store i32 %856, ptr %102, align 4, !tbaa !9
  br label %840, !llvm.loop !46

857:                                              ; preds = %843
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.382)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 3, ptr noundef @.str.383, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.341)
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %103, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %858 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.326, ptr noundef nonnull align 4 dereferenceable(8) %103, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #3
  %859 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.287, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE1e_0, i32 noundef 0)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.384)
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %104, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %860 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.325, ptr noundef nonnull align 4 dereferenceable(8) %104, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #3
  %861 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.288, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE1e_0, i32 noundef 1)
  %862 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef @.str.385, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3foo, float noundef 0x3FA99999A0000000, float noundef 0.000000e+00, i32 noundef 3, i32 noundef 0)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.386)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.387)
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %105, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %863 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.344, ptr noundef nonnull align 4 dereferenceable(8) %105, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #3
  %864 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef @.str.289, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE1e_0, i32 noundef 2)
  %865 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef @.str.388, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3bar, float noundef 0x3FA99999A0000000, float noundef 0.000000e+00, i32 noundef 3, i32 noundef 0)
  call void @_ZN5ImGui10NextColumnEv()
  %866 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.389, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %866, label %867, label %868

867:                                              ; preds = %857
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.390)
  br label %868

868:                                              ; preds = %867, %857
  call void @_ZN5ImGui10NextColumnEv()
  %869 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.391, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %869, label %870, label %871

870:                                              ; preds = %868
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.390)
  br label %871

871:                                              ; preds = %870, %868
  call void @_ZN5ImGui10NextColumnEv()
  %872 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.392, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %872, label %873, label %874

873:                                              ; preds = %871
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.390)
  br label %874

874:                                              ; preds = %873, %871
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.393)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 2, ptr noundef @.str.394, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  %875 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.341)
  br i1 %875, label %876, label %877

876:                                              ; preds = %874
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.342)
  call void @_ZN5ImGui7TreePopEv()
  br label %877

877:                                              ; preds = %876, %874
  call void @_ZN5ImGui10NextColumnEv()
  %878 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.395)
  br i1 %878, label %879, label %880

879:                                              ; preds = %877
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.396)
  call void @_ZN5ImGui7TreePopEv()
  br label %880

880:                                              ; preds = %879, %877
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.397)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 2, ptr noundef @.str.398, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.399)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.400)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.399)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.401)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  %881 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.402)
  br i1 %881, label %882, label %919

882:                                              ; preds = %880
  %883 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.403)
  br i1 %883, label %884, label %900

884:                                              ; preds = %882
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 4, ptr noundef null, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #3
  store i32 0, ptr %106, align 4, !tbaa !9
  br label %885

885:                                              ; preds = %896, %884
  %886 = load i32, ptr %106, align 4, !tbaa !9
  %887 = icmp slt i32 %886, 8
  br i1 %887, label %889, label %888

888:                                              ; preds = %885
  store i32 29, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #3
  br label %899

889:                                              ; preds = %885
  %890 = load i32, ptr %106, align 4, !tbaa !9
  %891 = add nsw i32 97, %890
  %892 = load i32, ptr %106, align 4, !tbaa !9
  %893 = add nsw i32 97, %892
  %894 = load i32, ptr %106, align 4, !tbaa !9
  %895 = add nsw i32 97, %894
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.404, i32 noundef %891, i32 noundef %893, i32 noundef %895)
  call void @_ZN5ImGui10NextColumnEv()
  br label %896

896:                                              ; preds = %889
  %897 = load i32, ptr %106, align 4, !tbaa !9
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr %106, align 4, !tbaa !9
  br label %885, !llvm.loop !47

899:                                              ; preds = %888
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui7TreePopEv()
  br label %900

900:                                              ; preds = %899, %882
  %901 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.405)
  br i1 %901, label %902, label %918

902:                                              ; preds = %900
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 4, ptr noundef null, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #3
  store i32 0, ptr %107, align 4, !tbaa !9
  br label %903

903:                                              ; preds = %914, %902
  %904 = load i32, ptr %107, align 4, !tbaa !9
  %905 = icmp slt i32 %904, 8
  br i1 %905, label %907, label %906

906:                                              ; preds = %903
  store i32 32, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #3
  br label %917

907:                                              ; preds = %903
  %908 = load i32, ptr %107, align 4, !tbaa !9
  %909 = add nsw i32 97, %908
  %910 = load i32, ptr %107, align 4, !tbaa !9
  %911 = add nsw i32 97, %910
  %912 = load i32, ptr %107, align 4, !tbaa !9
  %913 = add nsw i32 97, %912
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.404, i32 noundef %909, i32 noundef %911, i32 noundef %913)
  call void @_ZN5ImGui10NextColumnEv()
  br label %914

914:                                              ; preds = %907
  %915 = load i32, ptr %107, align 4, !tbaa !9
  %916 = add nsw i32 %915, 1
  store i32 %916, ptr %107, align 4, !tbaa !9
  br label %903, !llvm.loop !48

917:                                              ; preds = %906
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui7TreePopEv()
  br label %918

918:                                              ; preds = %917, %900
  call void @_ZN5ImGui7TreePopEv()
  br label %919

919:                                              ; preds = %918, %880
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %100) #3
  br label %920

920:                                              ; preds = %919, %837
  %921 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.406, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %921, label %922, label %954

922:                                              ; preds = %920
  %923 = load atomic i8, ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6filter acquire, align 8
  %924 = icmp eq i8 %923, 0
  br i1 %924, label %925, label %931, !prof !32

925:                                              ; preds = %922
  %926 = call i32 @__cxa_guard_acquire(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6filter) #3
  %927 = icmp ne i32 %926, 0
  br i1 %927, label %928, label %931

928:                                              ; preds = %925
  invoke void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef @.str.8)
          to label %929 unwind label %936

929:                                              ; preds = %928
  %930 = call i32 @__cxa_atexit(ptr @_ZN15ImGuiTextFilterD2Ev, ptr @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr @__dso_handle) #3
  call void @__cxa_guard_release(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6filter) #3
  br label %931

931:                                              ; preds = %929, %925, %922
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.407)
  call void @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef @.str.408, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr %108) #3
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %108, ptr align 16 @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #3
  store i64 0, ptr %109, align 8, !tbaa !17
  br label %932

932:                                              ; preds = %950, %931
  %933 = load i64, ptr %109, align 8, !tbaa !17
  %934 = icmp ult i64 %933, 8
  br i1 %934, label %940, label %935

935:                                              ; preds = %932
  store i32 35, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #3
  br label %953

936:                                              ; preds = %928
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %31, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %32, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6filter) #3
  br label %1036

940:                                              ; preds = %932
  %941 = load i64, ptr %109, align 8, !tbaa !17
  %942 = getelementptr inbounds [8 x ptr], ptr %108, i64 0, i64 %941
  %943 = load ptr, ptr %942, align 8, !tbaa !5
  %944 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %943)
  br i1 %944, label %945, label %949

945:                                              ; preds = %940
  %946 = load i64, ptr %109, align 8, !tbaa !17
  %947 = getelementptr inbounds [8 x ptr], ptr %108, i64 0, i64 %946
  %948 = load ptr, ptr %947, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.7, ptr noundef %948)
  br label %949

949:                                              ; preds = %945, %940
  br label %950

950:                                              ; preds = %949
  %951 = load i64, ptr %109, align 8, !tbaa !17
  %952 = add i64 %951, 1
  store i64 %952, ptr %109, align 8, !tbaa !17
  br label %932, !llvm.loop !49

953:                                              ; preds = %935
  call void @llvm.lifetime.end.p0(i64 64, ptr %108) #3
  br label %954

954:                                              ; preds = %953, %920
  %955 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.417, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %955, label %956, label %1004

956:                                              ; preds = %954
  %957 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.418)
  br i1 %957, label %958, label %964

958:                                              ; preds = %956
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.419)
  %959 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.420, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  %960 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.421, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  %961 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.422, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui22PushAllowKeyboardFocusEb(i1 noundef zeroext false)
  %962 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.423, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui21PopAllowKeyboardFocusEv()
  %963 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.424, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %964

964:                                              ; preds = %958, %956
  %965 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.425)
  br i1 %965, label %966, label %1003

966:                                              ; preds = %964
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %111, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %967 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.426, ptr noundef nonnull align 4 dereferenceable(8) %111, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #3
  %968 = zext i1 %967 to i8
  store i8 %968, ptr %110, align 1, !tbaa !11
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %113, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %969 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.427, ptr noundef nonnull align 4 dereferenceable(8) %113, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #3
  %970 = zext i1 %969 to i8
  store i8 %970, ptr %112, align 1, !tbaa !11
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #3
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %115, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %971 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef @.str.428, ptr noundef nonnull align 4 dereferenceable(8) %115, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #3
  %972 = zext i1 %971 to i8
  store i8 %972, ptr %114, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #3
  store i32 0, ptr %116, align 4, !tbaa !9
  %973 = load i8, ptr %110, align 1, !tbaa !11, !range !13, !noundef !14
  %974 = trunc i8 %973 to i1
  br i1 %974, label %975, label %976

975:                                              ; preds = %966
  call void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef 0)
  br label %976

976:                                              ; preds = %975, %966
  %977 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.420, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_1, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %978 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %978, label %979, label %980

979:                                              ; preds = %976
  store i32 1, ptr %116, align 4, !tbaa !9
  br label %980

980:                                              ; preds = %979, %976
  %981 = load i8, ptr %112, align 1, !tbaa !11, !range !13, !noundef !14
  %982 = trunc i8 %981 to i1
  br i1 %982, label %983, label %984

983:                                              ; preds = %980
  call void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef 0)
  br label %984

984:                                              ; preds = %983, %980
  %985 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.421, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_1, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %986 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %986, label %987, label %988

987:                                              ; preds = %984
  store i32 2, ptr %116, align 4, !tbaa !9
  br label %988

988:                                              ; preds = %987, %984
  call void @_ZN5ImGui22PushAllowKeyboardFocusEb(i1 noundef zeroext false)
  %989 = load i8, ptr %114, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc i8 %989 to i1
  br i1 %990, label %991, label %992

991:                                              ; preds = %988
  call void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef 0)
  br label %992

992:                                              ; preds = %991, %988
  %993 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef @.str.429, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE3buf_1, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %994 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  br i1 %994, label %995, label %996

995:                                              ; preds = %992
  store i32 3, ptr %116, align 4, !tbaa !9
  br label %996

996:                                              ; preds = %995, %992
  call void @_ZN5ImGui21PopAllowKeyboardFocusEv()
  %997 = load i32, ptr %116, align 4, !tbaa !9
  %998 = icmp ne i32 %997, 0
  br i1 %998, label %999, label %1001

999:                                              ; preds = %996
  %1000 = load i32, ptr %116, align 4, !tbaa !9
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.430, i32 noundef %1000)
  br label %1002

1001:                                             ; preds = %996
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.431)
  br label %1002

1002:                                             ; preds = %1001, %999
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef @.str.432)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #3
  br label %1003

1003:                                             ; preds = %1002, %964
  br label %1004

1004:                                             ; preds = %1003, %954
  %1005 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef @.str.433, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %1005, label %1006, label %1012

1006:                                             ; preds = %1004
  %1007 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.434, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE16show_app_console)
  %1008 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.435, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text)
  %1009 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.436, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize)
  %1010 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.437, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay)
  %1011 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.438, ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering)
  br label %1012

1012:                                             ; preds = %1006, %1004
  %1013 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE16show_app_console, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc i8 %1013 to i1
  br i1 %1014, label %1015, label %1016

1015:                                             ; preds = %1012
  call void @_ZL21ShowExampleAppConsolePb(ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE16show_app_console)
  br label %1016

1016:                                             ; preds = %1015, %1012
  %1017 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text, align 1, !tbaa !11, !range !13, !noundef !14
  %1018 = trunc i8 %1017 to i1
  br i1 %1018, label %1019, label %1020

1019:                                             ; preds = %1016
  call void @_ZL22ShowExampleAppLongTextPb(ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text)
  br label %1020

1020:                                             ; preds = %1019, %1016
  %1021 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize, align 1, !tbaa !11, !range !13, !noundef !14
  %1022 = trunc i8 %1021 to i1
  br i1 %1022, label %1023, label %1024

1023:                                             ; preds = %1020
  call void @_ZL24ShowExampleAppAutoResizePb(ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize)
  br label %1024

1024:                                             ; preds = %1023, %1020
  %1025 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay, align 1, !tbaa !11, !range !13, !noundef !14
  %1026 = trunc i8 %1025 to i1
  br i1 %1026, label %1027, label %1028

1027:                                             ; preds = %1024
  call void @_ZL26ShowExampleAppFixedOverlayPb(ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay)
  br label %1028

1028:                                             ; preds = %1027, %1024
  %1029 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering, align 1, !tbaa !11, !range !13, !noundef !14
  %1030 = trunc i8 %1029 to i1
  br i1 %1030, label %1031, label %1032

1031:                                             ; preds = %1028
  call void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef @_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering)
  br label %1032

1032:                                             ; preds = %1031, %1028
  call void @_ZN5ImGui3EndEv()
  store i32 0, ptr %5, align 4
  br label %1033

1033:                                             ; preds = %1032, %158
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #3
  %1034 = load i32, ptr %5, align 4
  switch i32 %1034, label %1042 [
    i32 0, label %1035
    i32 1, label %1035
  ]

1035:                                             ; preds = %1033, %1033
  ret void

1036:                                             ; preds = %936, %702, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #3
  br label %1037

1037:                                             ; preds = %1036
  %1038 = load ptr, ptr %31, align 8
  %1039 = load i32, ptr %32, align 4
  %1040 = insertvalue { ptr, i32 } poison, ptr %1038, 0
  %1041 = insertvalue { ptr, i32 } %1040, i32 %1039, 1
  resume { ptr, i32 } %1041

1042:                                             ; preds = %1033
  unreachable
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZZN5ImGui14ShowTestWindowEPbEN11TextFilters18FilterImGuiLettersEP25ImGuiTextEditCallbackData(ptr noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef, float noundef, float noundef, float noundef) #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfE5frontEv(ptr noundef nonnull align 8 dereferenceable(24)) #8 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowExampleAppConsolePb(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL22ShowExampleAppLongTextPb(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL24ShowExampleAppAutoResizePb(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL26ShowExampleAppFixedOverlayPb(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef) #7

declare void @_ZN15ImGuiTextFilterC1EPKc(ptr, ptr)

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

!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 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!20, !6, i64 120}
!20 = !{!"_ZTS7ImGuiIO", !21, i64 0, !16, i64 8, !16, i64 12, !6, i64 16, !6, i64 24, !16, i64 32, !16, i64 36, !7, i64 40, !6, i64 112, !6, i64 120, !16, i64 128, !12, i64 132, !21, i64 136, !21, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !21, i64 208, !7, i64 216, !16, i64 224, !12, i64 228, !12, i64 229, !12, i64 230, !7, i64 231, !7, i64 744, !12, i64 778, !12, i64 779, !16, i64 780, !21, i64 784, !21, i64 792, !7, i64 800, !7, i64 808, !7, i64 848, !7, i64 868, !7, i64 873, !7, i64 880, !7, i64 900}
!21 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!22 = !{!23, !16, i64 0}
!23 = !{!"_ZTS6ImFont", !16, i64 0, !16, i64 4, !21, i64 8, !24, i64 16, !6, i64 24, !25, i64 32, !6, i64 56, !16, i64 64, !26, i64 72, !27, i64 96}
!24 = !{!"short", !7, i64 0}
!25 = !{!"_ZTS8ImVectorIN6ImFont5GlyphEE", !18, i64 0, !18, i64 8, !6, i64 16}
!26 = !{!"_ZTS8ImVectorIfE", !18, i64 0, !18, i64 8, !6, i64 16}
!27 = !{!"_ZTS8ImVectorIiE", !18, i64 0, !18, i64 8, !6, i64 16}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = !{!21, !16, i64 0}
!32 = !{!"branch_weights", i32 1, i32 1048575}
!33 = !{!34, !10, i64 24}
!34 = !{!"_ZTS11ImFontAtlas", !6, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !10, i64 28, !21, i64 32, !21, i64 40, !35, i64 48, !36, i64 72}
!35 = !{!"_ZTS8ImVectorIP6ImFontE", !18, i64 0, !18, i64 8, !6, i64 16}
!36 = !{!"_ZTS8ImVectorIPN11ImFontAtlas15ImFontAtlasDataEE", !18, i64 0, !18, i64 8, !6, i64 16}
!37 = !{!34, !10, i64 28}
!38 = !{!34, !6, i64 0}
!39 = !{!21, !16, i64 4}
!40 = distinct !{!40, !29}
!41 = distinct !{!41, !29}
!42 = distinct !{!42, !29}
!43 = distinct !{!43, !29}
!44 = distinct !{!44, !29}
!45 = distinct !{!45, !29}
!46 = distinct !{!46, !29}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = distinct !{!49, !29}


; 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 }
%class.ImVector.10 = type { i64, i64, ptr }
%struct.ImGuiTextFilter = type <{ [256 x i8], %class.ImVector.7, i32, [4 x i8] }>
%class.ImVector.7 = type { i64, i64, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImColor = type { %struct.ImVec4 }

@__dso_handle = external hidden global i8
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE11no_titlebar = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE9no_border = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE9no_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE7no_move = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE12no_scrollbar = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE11no_collapse = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE8bg_alpha = external hidden global float, align 4
@.str.202 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE12window_scale = external hidden global float, align 4
@.str.222 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE1a = external hidden local_unnamed_addr global i8, align 1
@.str.226 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [182 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE10wrap_width = external hidden global float, align 4
@.str.244 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [28 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3buf = external hidden global [32 x i8], align 16
@.str.253 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4size = external hidden global %struct.ImVec2, align 4
@_ZGVZN5ImGui14ShowTestWindowEPbE4size = external hidden global i64, align 8
@.str.255 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [163 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [233 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [32 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE13pressed_count = external hidden local_unnamed_addr global i32, align 4
@.str.264 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE8selected = external hidden global [3 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE8selected_0 = external hidden global [3 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE8selected_1 = external hidden global [16 x i8], align 16
@.str.278 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf1 = external hidden global [64 x i8], align 16
@.str.280 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf2 = external hidden global [64 x i8], align 16
@.str.281 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf3 = external hidden global [64 x i8], align 16
@.str.282 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf4 = external hidden global [64 x i8], align 16
@.str.283 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf5 = external hidden global [64 x i8], align 16
@.str.284 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4buf6 = external hidden global [64 x i8], align 16
@.str.285 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5check = external hidden global i8, align 1
@.str.286 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE1e = external hidden global i32, align 4
@.str.287 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3arr = external hidden global [7 x float], align 16
@.str.295 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4item = external hidden global i32, align 4
@.str.296 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [27 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.items = external hidden unnamed_addr constant [11 x ptr], align 16
@_ZZN5ImGui14ShowTestWindowEPbE5item2 = external hidden global i32, align 4
@.str.309 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4str0 = external hidden global [128 x i8], align 16
@_ZZN5ImGui14ShowTestWindowEPbE2i0 = external hidden global i32, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f0 = external hidden global float, align 4
@.str.310 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5vec4a = external hidden global [4 x float], align 16
@.str.313 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2i1 = external hidden global i32, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2i2 = external hidden global i32, align 4
@.str.314 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2f1 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f2 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f3 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f4 = external hidden global float, align 4
@.str.316 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5angle = external hidden global float, align 4
@.str.321 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5vec4b = external hidden global [4 x float], align 16
@.str.322 = external hidden unnamed_addr constant [14 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4col1 = external hidden global [3 x float], align 4
@_ZZN5ImGui14ShowTestWindowEPbE4col2 = external hidden global [4 x float], align 16
@.str.323 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [7 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.listbox_items = external hidden unnamed_addr constant [9 x ptr], align 16
@_ZZN5ImGui14ShowTestWindowEPbE20listbox_item_current = external hidden global i32, align 4
@.str.334 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3arr_0 = external hidden global [7 x float], align 16
@.str.336 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE5pause = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE6values = external hidden global %class.ImVector.10, align 8
@_ZGVZN5ImGui14ShowTestWindowEPbE6values = external hidden global i64, align 8
@_ZZN5ImGui14ShowTestWindowEPbE13values_offset = external hidden local_unnamed_addr global i64, align 8
@_ZZN5ImGui14ShowTestWindowEPbE12refresh_time = external hidden local_unnamed_addr global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE5phase = external hidden local_unnamed_addr global float, align 4
@.str.337 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c1 = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c2 = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c3 = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE2c4 = external hidden global i8, align 1
@.str.348 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE2f0_0 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f1_0 = external hidden global float, align 4
@_ZZN5ImGui14ShowTestWindowEPbE2f2_0 = external hidden global float, align 4
@__const._ZN5ImGui14ShowTestWindowEPb.items.352 = external hidden unnamed_addr constant [4 x ptr], align 16
@_ZZN5ImGui14ShowTestWindowEPbE4item_0 = external hidden global i32, align 4
@.str.353 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE9selection = external hidden global [4 x i32], align 16
@.str.358 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE4line = external hidden global i32, align 4
@.str.360 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [6 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.names = external hidden unnamed_addr constant [3 x ptr], align 16
@__const._ZN5ImGui14ShowTestWindowEPb.paths = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.380 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE1e_0 = external hidden global i32, align 4
@.str.384 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3foo = external hidden global float, align 4
@.str.385 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3bar = external hidden global float, align 4
@.str.388 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE6filter = external hidden global %struct.ImGuiTextFilter, align 8
@_ZGVZN5ImGui14ShowTestWindowEPbE6filter = external hidden global i64, align 8
@.str.407 = external hidden unnamed_addr constant [183 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [18 x i8], align 1
@__const._ZN5ImGui14ShowTestWindowEPb.lines = external hidden unnamed_addr constant [8 x ptr], align 16
@.str.417 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [58 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3buf_0 = external hidden global [32 x i8], align 16
@.str.420 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE3buf_1 = external hidden global [128 x i8], align 16
@.str.429 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZZN5ImGui14ShowTestWindowEPbE16show_app_console = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay = external hidden global i8, align 1
@_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering = external hidden global i8, align 1
@.str.433 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [17 x i8], align 1

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

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

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

; Function Attrs: nofree nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i64 @_ZL14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(284), ptr noundef, float noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13PushItemWidthEf(float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12PopItemWidthEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284), ptr noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK8ImVectorIP6ImFontE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #8 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbRK6ImVec2fi(ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui3EndEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12BeginTooltipEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10EndTooltipEv() local_unnamed_addr #6

; Function Attrs: nofree nounwind
declare i32 @__cxa_guard_acquire(ptr) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare void @__cxa_guard_abort(ptr) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare void @__cxa_guard_release(ptr) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local <2 x float> @_ZN5ImGui11GetMousePosEv() local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui13GetItemBoxMinEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui13GetItemBoxMaxEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10SetTooltipEPKcz(ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui7GetTimeEv() local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui12GetCursorPosEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8EndChildEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIfE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #11 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7PopFontEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui22PushAllowKeyboardFocusEb(i1 noundef zeroext) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui21PopAllowKeyboardFocusEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15PushTextWrapPosEf(float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui14PopTextWrapPosEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui14GetWindowWidthEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui17GetTextLineHeightEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui17GetWindowDrawListEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui18SetWindowFontScaleEf(float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui18GetCursorScreenPosEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui16SetScrollPosHereEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11TextWrappedEPKcz(ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8SameLineEii(i32 noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11ImageButtonEPvRK6ImVec2S3_S3_iRK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui5PopIDEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10LogButtonsEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9SliderIntEPKcPiiiS1_(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef, ptr noundef, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6BulletEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10BulletTextEPKcz(ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8TreePushEPKv(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef, ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6PushIDEi(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11SliderAngleEPKcPfff(ptr noundef, ptr noundef, float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui12SliderFloat3EPKcPfffS1_f(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, float noundef, float noundef, <2 x float>, i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13PlotHistogramEPKcPKfiiS1_ff6ImVec2m(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, float noundef, float noundef, <2 x float>, i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef, ptr noundef, float noundef, float noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui8InputIntEPKcPiiii(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui11InputFloat3EPKcPfi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7SpacingEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPf(ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfb(ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui10NextColumnEv() local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui7TreePopEv() local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @cosf(float noundef) local_unnamed_addr #12

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #13

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK8ImVectorIN6ImFont5GlyphEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13ShowUserGuideEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui14ShowTestWindowEPb(ptr noundef %0) local_unnamed_addr #7 personality ptr @__gxx_personality_v0 {
  %2 = alloca %struct.ImVec2, align 4
  %3 = alloca %struct.ImVec2, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %struct.ImVec4, align 4
  %6 = alloca %struct.ImVec4, align 4
  %7 = alloca %struct.ImVec2, align 8
  %8 = alloca %struct.ImVec2, align 8
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImVec2, align 8
  %11 = alloca %struct.ImVec2, align 8
  %12 = alloca %struct.ImVec2, align 4
  %13 = alloca %struct.ImVec2, align 8
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImVec2, align 8
  %16 = alloca %struct.ImVec2, align 8
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 8
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca %struct.ImVec2, align 8
  %22 = alloca %struct.ImVec2, align 8
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec4, align 8
  %27 = alloca %struct.ImColor, align 4
  %28 = alloca %struct.ImVec4, align 8
  %29 = alloca %struct.ImColor, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec4, align 8
  %34 = alloca %struct.ImColor, align 4
  %35 = alloca %struct.ImVec4, align 8
  %36 = alloca %struct.ImColor, align 4
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca %struct.ImVec2, align 4
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca %struct.ImVec4, align 4
  %41 = alloca %struct.ImVec4, align 4
  %42 = alloca %struct.ImVec2, align 4
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec4, align 8
  %50 = alloca %struct.ImColor, align 8
  %51 = alloca %struct.ImVec4, align 8
  %52 = alloca %struct.ImColor, align 8
  %53 = alloca %struct.ImVec4, align 8
  %54 = alloca %struct.ImColor, align 8
  %55 = alloca %struct.ImVec2, align 4
  %56 = alloca %struct.ImVec2, align 8
  %57 = alloca [11 x ptr], align 16
  %58 = alloca [9 x ptr], align 16
  %59 = alloca %struct.ImVec2, align 8
  %60 = alloca %struct.ImVec2, align 8
  %61 = alloca %struct.ImVec2, align 8
  %62 = alloca %struct.ImVec2, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca %struct.ImVec2, align 4
  %65 = alloca [4 x ptr], align 16
  %66 = alloca %struct.ImVec2, align 4
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImVec2, align 4
  %69 = alloca [32 x i8], align 16
  %70 = alloca %struct.ImVec2, align 4
  %71 = alloca %struct.ImVec2, align 4
  %72 = alloca %struct.ImVec2, align 4
  %73 = alloca %struct.ImVec2, align 4
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca %struct.ImVec2, align 4
  %77 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE11no_titlebar, align 1, !tbaa !5, !range !9, !noundef !10
  %spec.select = zext nneg i8 %77 to i32
  %78 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9no_border, align 1, !tbaa !5, !range !9, !noundef !10
  %79 = trunc nuw i8 %78 to i1
  %80 = or disjoint i32 %spec.select, 128
  %.1129 = select i1 %79, i32 %spec.select, i32 %80
  %81 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9no_resize, align 1, !tbaa !5, !range !9, !noundef !10
  %82 = trunc nuw i8 %81 to i1
  %83 = or disjoint i32 %.1129, 2
  %.2130 = select i1 %82, i32 %83, i32 %.1129
  %84 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE7no_move, align 1, !tbaa !5, !range !9, !noundef !10
  %85 = trunc nuw i8 %84 to i1
  %86 = or i32 %.2130, 4
  %.3 = select i1 %85, i32 %86, i32 %.2130
  %87 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE12no_scrollbar, align 1, !tbaa !5, !range !9, !noundef !10
  %88 = trunc nuw i8 %87 to i1
  %89 = or i32 %.3, 8
  %.4 = select i1 %88, i32 %89, i32 %.3
  %90 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE11no_collapse, align 1, !tbaa !5, !range !9, !noundef !10
  %91 = trunc nuw i8 %90 to i1
  %92 = or i32 %.4, 32
  %.5 = select i1 %91, i32 %92, i32 %.4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef 5.500000e+02, float noundef 6.800000e+02)
  %93 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE8bg_alpha, align 4, !tbaa !11
  %94 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbRK6ImVec2fi(ptr noundef nonnull @.str.202, ptr noundef %0, ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %93, i32 noundef %.5)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #14
  br i1 %94, label %95, label %759

95:                                               ; preds = %1
  %96 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %97 = fmul float %96, 0x3FE4CCCCC0000000
  call void @_ZN5ImGui13PushItemWidthEf(float noundef %97)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.203)
  call void @_ZN5ImGui7SpacingEv()
  %98 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.204, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %98, label %99, label %100

99:                                               ; preds = %95
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.205)
  call void @_ZN5ImGui13ShowUserGuideEv()
  br label %100

100:                                              ; preds = %99, %95
  %101 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.206, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %101, label %102, label %186

102:                                              ; preds = %100
  %103 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.207, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE11no_titlebar)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 150, i32 noundef -1)
  %104 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.208, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE9no_border)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  %105 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.209, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE9no_resize)
  %106 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.210, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE7no_move)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 150, i32 noundef -1)
  %107 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.211, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE12no_scrollbar)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  %108 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.212, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE11no_collapse)
  %109 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.213, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE8bg_alpha, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  %110 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.214)
  br i1 %110, label %111, label %112

111:                                              ; preds = %102
  call void @_ZN5ImGui15ShowStyleEditorEP10ImGuiStyle(ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %112

112:                                              ; preds = %111, %102
  %113 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.215)
  br i1 %113, label %114, label %183

114:                                              ; preds = %112
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.216)
  %115 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %116 = getelementptr inbounds i8, ptr %115, i64 120
  %117 = load ptr, ptr %116, align 8, !tbaa !13
  %118 = getelementptr inbounds i8, ptr %117, i64 48
  %119 = call noundef i64 @_ZNK8ImVectorIP6ImFontE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %118)
  %.not173 = icmp eq i64 %119, 0
  br i1 %.not173, label %._crit_edge, label %120

120:                                              ; preds = %114
  %121 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %122 = getelementptr inbounds i8, ptr %121, i64 120
  %123 = load ptr, ptr %122, align 8, !tbaa !13
  %124 = getelementptr inbounds i8, ptr %123, i64 48
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %124, i64 noundef 0)
  %126 = load ptr, ptr %125, align 8, !tbaa !17
  %127 = load float, ptr %126, align 8, !tbaa !18
  %128 = fpext float %127 to double
  %129 = getelementptr inbounds i8, ptr %126, i64 32
  %130 = call noundef i64 @_ZNK8ImVectorIN6ImFont5GlyphEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %129)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.217, i64 noundef 0, double noundef %128, i64 noundef %130)
  call void @_ZN5ImGui8TreePushEPKv(ptr noundef null)
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %126)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.218)
  call void @_ZN5ImGui7PopFontEv()
  %131 = getelementptr inbounds i8, ptr %126, i64 4
  %132 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.220, ptr noundef nonnull %131, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.221, float noundef 1.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  %133 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %134 = getelementptr inbounds i8, ptr %133, i64 120
  %135 = load ptr, ptr %134, align 8, !tbaa !13
  %136 = getelementptr inbounds i8, ptr %135, i64 48
  %137 = call noundef i64 @_ZNK8ImVectorIP6ImFontE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %136)
  %138 = icmp ugt i64 %137, 1
  br i1 %138, label %.lr.ph.peel.next, label %._crit_edge

._crit_edge:                                      ; preds = %173, %120, %114
  %139 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.222, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE12window_scale, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.221, float noundef 1.000000e+00)
  %140 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %141 = getelementptr inbounds i8, ptr %140, i64 128
  %142 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.223, ptr noundef nonnull %141, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.221, float noundef 1.000000e+00)
  %143 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE12window_scale, align 4, !tbaa !11
  call void @_ZN5ImGui18SetWindowFontScaleEf(float noundef %143)
  call void @_ZN5ImGui7TreePopEv()
  br label %183

.lr.ph.peel.next:                                 ; preds = %120, %173
  %.0131160 = phi i64 [ %176, %173 ], [ 1, %120 ]
  %144 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %145 = getelementptr inbounds i8, ptr %144, i64 120
  %146 = load ptr, ptr %145, align 8, !tbaa !13
  %147 = getelementptr inbounds i8, ptr %146, i64 48
  %148 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef %.0131160)
  %149 = load ptr, ptr %148, align 8, !tbaa !17
  %150 = load float, ptr %149, align 8, !tbaa !18
  %151 = fpext float %150 to double
  %152 = getelementptr inbounds i8, ptr %149, i64 32
  %153 = call noundef i64 @_ZNK8ImVectorIN6ImFont5GlyphEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %152)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.217, i64 noundef %.0131160, double noundef %151, i64 noundef %153)
  %154 = inttoptr i64 %.0131160 to ptr
  call void @_ZN5ImGui8TreePushEPKv(ptr noundef nonnull %154)
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %149)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.218)
  call void @_ZN5ImGui7PopFontEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %3, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %155 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.219, ptr noundef nonnull align 4 dereferenceable(8) %3, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #14
  br i1 %155, label %156, label %173

156:                                              ; preds = %.lr.ph.peel.next
  %157 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %158 = getelementptr inbounds i8, ptr %157, i64 120
  %159 = load ptr, ptr %158, align 8, !tbaa !13
  %160 = getelementptr inbounds i8, ptr %159, i64 48
  %161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %160, i64 noundef 0)
  %162 = load ptr, ptr %161, align 8, !tbaa !17
  %163 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %164 = getelementptr inbounds i8, ptr %163, i64 120
  %165 = load ptr, ptr %164, align 8, !tbaa !13
  %166 = getelementptr inbounds i8, ptr %165, i64 48
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %166, i64 noundef %.0131160)
  store ptr %162, ptr %167, align 8, !tbaa !17
  %168 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %169 = getelementptr inbounds i8, ptr %168, i64 120
  %170 = load ptr, ptr %169, align 8, !tbaa !13
  %171 = getelementptr inbounds i8, ptr %170, i64 48
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP6ImFontEixEm(ptr noundef nonnull align 8 dereferenceable(24) %171, i64 noundef 0)
  store ptr %149, ptr %172, align 8, !tbaa !17
  br label %173

173:                                              ; preds = %156, %.lr.ph.peel.next
  %174 = getelementptr inbounds i8, ptr %149, i64 4
  %175 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.220, ptr noundef nonnull %174, float noundef 0x3FD3333340000000, float noundef 2.000000e+00, ptr noundef nonnull @.str.221, float noundef 1.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  %176 = add nuw i64 %.0131160, 1
  %177 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %178 = getelementptr inbounds i8, ptr %177, i64 120
  %179 = load ptr, ptr %178, align 8, !tbaa !13
  %180 = getelementptr inbounds i8, ptr %179, i64 48
  %181 = call noundef i64 @_ZNK8ImVectorIP6ImFontE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %180)
  %182 = icmp ult i64 %176, %181
  br i1 %182, label %.lr.ph.peel.next, label %._crit_edge, !llvm.loop !25

183:                                              ; preds = %._crit_edge, %112
  %184 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.224)
  br i1 %184, label %185, label %186

185:                                              ; preds = %183
  call void @_ZN5ImGui10LogButtonsEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %186

186:                                              ; preds = %183, %185, %100
  %187 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.225, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %187, label %188, label %519

188:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %189 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.56, ptr noundef nonnull align 4 dereferenceable(8) %4, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #14
  br i1 %189, label %190, label %._crit_edge228

._crit_edge228:                                   ; preds = %188
  %.pre = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE1a, align 1, !tbaa !5, !range !9
  br label %194

190:                                              ; preds = %188
  %191 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.226)
  %192 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE1a, align 1, !tbaa !5, !range !9, !noundef !10
  %193 = xor i8 %192, 1
  store i8 %193, ptr @_ZZN5ImGui14ShowTestWindowEPbE1a, align 1, !tbaa !5
  br label %194

194:                                              ; preds = %._crit_edge228, %190
  %195 = phi i8 [ %.pre, %._crit_edge228 ], [ %193, %190 ]
  %196 = trunc nuw i8 %195 to i1
  br i1 %196, label %197, label %198

197:                                              ; preds = %194
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.227)
  br label %198

198:                                              ; preds = %197, %194
  %199 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.228)
  br i1 %199, label %.preheader159.preheader, label %231

.preheader159.preheader:                          ; preds = %198
  %200 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef null, ptr noundef nonnull @.str.229, i64 noundef 0)
  br i1 %200, label %201, label %.preheader159.1

201:                                              ; preds = %.preheader159.preheader
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.230)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %202 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.231)
  br i1 %202, label %203, label %205

203:                                              ; preds = %201
  %204 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.232, i32 noundef 0)
  br label %205

205:                                              ; preds = %203, %201
  call void @_ZN5ImGui7TreePopEv()
  br label %.preheader159.1

.preheader159.1:                                  ; preds = %.preheader159.preheader, %205
  %206 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef nonnull inttoptr (i64 1 to ptr), ptr noundef nonnull @.str.229, i64 noundef 1)
  br i1 %206, label %207, label %.preheader159.2

207:                                              ; preds = %.preheader159.1
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.230)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %208 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.231)
  br i1 %208, label %209, label %211

209:                                              ; preds = %207
  %210 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.232, i32 noundef 1)
  br label %211

211:                                              ; preds = %209, %207
  call void @_ZN5ImGui7TreePopEv()
  br label %.preheader159.2

.preheader159.2:                                  ; preds = %211, %.preheader159.1
  %212 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef nonnull inttoptr (i64 2 to ptr), ptr noundef nonnull @.str.229, i64 noundef 2)
  br i1 %212, label %213, label %.preheader159.3

213:                                              ; preds = %.preheader159.2
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.230)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %214 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.231)
  br i1 %214, label %215, label %217

215:                                              ; preds = %213
  %216 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.232, i32 noundef 2)
  br label %217

217:                                              ; preds = %215, %213
  call void @_ZN5ImGui7TreePopEv()
  br label %.preheader159.3

.preheader159.3:                                  ; preds = %217, %.preheader159.2
  %218 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef nonnull inttoptr (i64 3 to ptr), ptr noundef nonnull @.str.229, i64 noundef 3)
  br i1 %218, label %219, label %.preheader159.4

219:                                              ; preds = %.preheader159.3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.230)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %220 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.231)
  br i1 %220, label %221, label %223

221:                                              ; preds = %219
  %222 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.232, i32 noundef 3)
  br label %223

223:                                              ; preds = %221, %219
  call void @_ZN5ImGui7TreePopEv()
  br label %.preheader159.4

.preheader159.4:                                  ; preds = %223, %.preheader159.3
  %224 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKvPKcz(ptr noundef nonnull inttoptr (i64 4 to ptr), ptr noundef nonnull @.str.229, i64 noundef 4)
  br i1 %224, label %225, label %230

225:                                              ; preds = %.preheader159.4
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.230)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %226 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.231)
  br i1 %226, label %227, label %229

227:                                              ; preds = %225
  %228 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.232, i32 noundef 4)
  br label %229

229:                                              ; preds = %227, %225
  call void @_ZN5ImGui7TreePopEv()
  br label %230

230:                                              ; preds = %229, %.preheader159.4
  call void @_ZN5ImGui7TreePopEv()
  br label %231

231:                                              ; preds = %230, %198
  %232 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.233)
  br i1 %232, label %233, label %236

233:                                              ; preds = %231
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.234)
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.235)
  call void @_ZN5ImGui6BulletEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.236)
  call void @_ZN5ImGui6BulletEv()
  %234 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.237)
  call void @_ZN5ImGui6BulletEv()
  %235 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.238)
  call void @_ZN5ImGui7TreePopEv()
  br label %236

236:                                              ; preds = %233, %231
  %237 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.239)
  br i1 %237, label %238, label %239

238:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %5, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void (ptr, ptr, ...) @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16) %5, ptr noundef nonnull @.str.240)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %6, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void (ptr, ptr, ...) @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16) %6, ptr noundef nonnull @.str.241)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #14
  call void @_ZN5ImGui7TreePopEv()
  br label %239

239:                                              ; preds = %238, %236
  %240 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.242)
  br i1 %240, label %241, label %275

241:                                              ; preds = %239
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.243)
  call void @_ZN5ImGui7SpacingEv()
  %242 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.244, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, float noundef -2.000000e+01, float noundef 6.000000e+02, ptr noundef nonnull @.str.94, float noundef 1.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.245)
  %243 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  %244 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %244, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %245 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %245, float noundef 0.000000e+00)
  %246 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %246, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #14
  %247 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %247, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %248 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  %249 = fadd float %248, 1.000000e+01
  %250 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef %249, float noundef %250)
  %251 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %12)
  store <2 x float> %251, ptr %10, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %243, ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %10, i32 noundef -65281, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #14
  %252 = call <2 x float> @_ZN5ImGui12GetCursorPosEv()
  %.sroa.0102.0.vec.extract = extractelement <2 x float> %252, i64 0
  %253 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  %254 = fadd float %.sroa.0102.0.vec.extract, %253
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef %254)
  %255 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  %256 = fpext float %255 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.246, double noundef %256)
  %257 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #14
  %258 = call <2 x float> @_ZN5ImGui13GetItemBoxMinEv()
  store <2 x float> %258, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #14
  %259 = call <2 x float> @_ZN5ImGui13GetItemBoxMaxEv()
  store <2 x float> %259, ptr %14, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %257, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %14, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #14
  call void @_ZN5ImGui14PopTextWrapPosEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247)
  %260 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #14
  %261 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %261, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %262 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %262, float noundef 0.000000e+00)
  %263 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %263, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %264 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  store <2 x float> %264, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  %265 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  %266 = fadd float %265, 1.000000e+01
  %267 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %266, float noundef %267)
  %268 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %20)
  store <2 x float> %268, ptr %18, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %260, ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %18, i32 noundef -65281, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #14
  %269 = call <2 x float> @_ZN5ImGui12GetCursorPosEv()
  %.sroa.0101.0.vec.extract = extractelement <2 x float> %269, i64 0
  %270 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE10wrap_width, align 4, !tbaa !11
  %271 = fadd float %.sroa.0101.0.vec.extract, %270
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef %271)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.248)
  %272 = call noundef ptr @_ZN5ImGui17GetWindowDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %273 = call <2 x float> @_ZN5ImGui13GetItemBoxMinEv()
  store <2 x float> %273, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #14
  %274 = call <2 x float> @_ZN5ImGui13GetItemBoxMaxEv()
  store <2 x float> %274, ptr %22, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %272, ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(8) %22, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #14
  call void @_ZN5ImGui14PopTextWrapPosEv()
  call void @_ZN5ImGui7TreePopEv()
  br label %275

275:                                              ; preds = %241, %239
  %276 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.249)
  br i1 %276, label %277, label %279

277:                                              ; preds = %275
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.250)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.251)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.252)
  %278 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.253, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %279

279:                                              ; preds = %277, %275
  %280 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.254)
  br i1 %280, label %281, label %290

281:                                              ; preds = %279
  %282 = load atomic i8, ptr @_ZGVZN5ImGui14ShowTestWindowEPbE4size acquire, align 8
  %283 = icmp eq i8 %282, 0
  br i1 %283, label %284, label %287, !prof !28

284:                                              ; preds = %281
  %285 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE4size) #14
  %.not = icmp eq i32 %285, 0
  br i1 %.not, label %287, label %286

286:                                              ; preds = %284
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) @_ZZN5ImGui14ShowTestWindowEPbE4size, float noundef 8.000000e+01, float noundef 2.000000e+01)
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE4size) #14
  br label %287

287:                                              ; preds = %286, %284, %281
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.255)
  %288 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat2EPKcPfffS1_f(ptr noundef nonnull @.str.256, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4size, float noundef 5.000000e+00, float noundef 2.000000e+02, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  %289 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.257, ptr noundef nonnull align 4 dereferenceable(8) @_ZZN5ImGui14ShowTestWindowEPbE4size, i1 noundef zeroext false)
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.258)
  call void @_ZN5ImGui7TreePopEv()
  br label %290

290:                                              ; preds = %287, %279
  %291 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.259)
  br i1 %291, label %292, label %366

292:                                              ; preds = %290
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.260)
  %293 = call <2 x float> @_ZN5ImGui18GetCursorScreenPosEv()
  %294 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %295 = getelementptr inbounds i8, ptr %294, i64 120
  %296 = load ptr, ptr %295, align 8, !tbaa !13
  %297 = getelementptr inbounds i8, ptr %296, i64 24
  %298 = load i32, ptr %297, align 8, !tbaa !29
  %299 = sitofp i32 %298 to float
  %300 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %301 = getelementptr inbounds i8, ptr %300, i64 120
  %302 = load ptr, ptr %301, align 8, !tbaa !13
  %303 = getelementptr inbounds i8, ptr %302, i64 28
  %304 = load i32, ptr %303, align 4, !tbaa !34
  %305 = sitofp i32 %304 to float
  %306 = call noundef nonnull align 8 dereferenceable(2948) ptr @_ZN5ImGui5GetIOEv()
  %307 = getelementptr inbounds i8, ptr %306, i64 120
  %308 = load ptr, ptr %307, align 8, !tbaa !13
  %309 = load ptr, ptr %308, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %299, float noundef %305)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #14
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %27, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 255)
  %310 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %311 = extractvalue { <2 x float>, <2 x float> } %310, 0
  store <2 x float> %311, ptr %26, align 8
  %312 = getelementptr inbounds i8, ptr %26, i64 8
  %313 = extractvalue { <2 x float>, <2 x float> } %310, 1
  store <2 x float> %313, ptr %312, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #14
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %29, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 128)
  %314 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %29)
  %315 = extractvalue { <2 x float>, <2 x float> } %314, 0
  store <2 x float> %315, ptr %28, align 8
  %316 = getelementptr inbounds i8, ptr %28, i64 8
  %317 = extractvalue { <2 x float>, <2 x float> } %314, 1
  store <2 x float> %317, ptr %316, align 8
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %309, ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(16) %26, ptr noundef nonnull align 4 dereferenceable(16) %28)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #14
  %318 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv()
  br i1 %318, label %319, label %350

319:                                              ; preds = %292
  call void @_ZN5ImGui12BeginTooltipEv()
  %320 = call <2 x float> @_ZN5ImGui11GetMousePosEv()
  %321 = fsub <2 x float> %320, %293
  %322 = extractelement <2 x float> %321, i64 0
  %323 = fadd float %322, -1.600000e+01
  %324 = fadd float %299, -3.200000e+01
  %325 = call noundef float @_ZL7ImClampfff(float noundef %323, float noundef 0.000000e+00, float noundef %324)
  %326 = call <2 x float> @_ZN5ImGui11GetMousePosEv()
  %327 = fsub <2 x float> %326, %293
  %328 = extractelement <2 x float> %327, i64 1
  %329 = fadd float %328, -1.600000e+01
  %330 = fadd float %305, -3.200000e+01
  %331 = call noundef float @_ZL7ImClampfff(float noundef %329, float noundef 0.000000e+00, float noundef %330)
  %332 = fpext float %325 to double
  %333 = fpext float %331 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.261, double noundef %332, double noundef %333)
  %334 = fadd float %325, 3.200000e+01
  %335 = fpext float %334 to double
  %336 = fadd float %331, 3.200000e+01
  %337 = fpext float %336 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.262, double noundef %335, double noundef %337)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  %338 = fdiv float %325, %299
  %339 = fdiv float %331, %305
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef %338, float noundef %339)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  %340 = fdiv float %334, %299
  %341 = fdiv float %336, %305
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef %340, float noundef %341)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 1.280000e+02, float noundef 1.280000e+02)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #14
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 255)
  %342 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %34)
  %343 = extractvalue { <2 x float>, <2 x float> } %342, 0
  store <2 x float> %343, ptr %33, align 8
  %344 = getelementptr inbounds i8, ptr %33, i64 8
  %345 = extractvalue { <2 x float>, <2 x float> } %342, 1
  store <2 x float> %345, ptr %344, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #14
  call void @_ZN7ImColorC2Eiiii(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef 255, i32 noundef 255, i32 noundef 255, i32 noundef 128)
  %346 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %36)
  %347 = extractvalue { <2 x float>, <2 x float> } %346, 0
  store <2 x float> %347, ptr %35, align 8
  %348 = getelementptr inbounds i8, ptr %35, i64 8
  %349 = extractvalue { <2 x float>, <2 x float> } %346, 1
  store <2 x float> %349, ptr %348, align 8
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %309, ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef nonnull align 4 dereferenceable(16) %33, ptr noundef nonnull align 4 dereferenceable(16) %35)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  call void @_ZN5ImGui10EndTooltipEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  br label %350

350:                                              ; preds = %292, %319
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.263)
  %351 = fdiv float 3.200000e+01, %299
  %352 = fdiv float 3.200000e+01, %305
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef 3.200000e+01, float noundef 3.200000e+01)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %38, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %351, float noundef %352)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %41, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %353 = call noundef zeroext i1 @_ZN5ImGui11ImageButtonEPvRK6ImVec2S3_S3_iRK6ImVec4S6_(ptr noundef %309, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %39, i32 noundef -1, ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(16) %41)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #14
  br i1 %353, label %354, label %.peel.next

354:                                              ; preds = %350
  %355 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !36
  %356 = add nsw i32 %355, 1
  store i32 %356, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !36
  br label %.peel.next

.peel.next:                                       ; preds = %350, %354
  call void @_ZN5ImGui5PopIDEv()
  br label %358

.loopexit176:                                     ; preds = %364
  %357 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !36
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.264, i32 noundef %357)
  call void @_ZN5ImGui7TreePopEv()
  br label %366

358:                                              ; preds = %.peel.next, %364
  %.0141163 = phi i32 [ 1, %.peel.next ], [ %365, %364 ]
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui6PushIDEi(i32 noundef %.0141163)
  %359 = add nsw i32 %.0141163, -1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef 3.200000e+01, float noundef 3.200000e+01)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %38, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %351, float noundef %352)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %41, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %360 = call noundef zeroext i1 @_ZN5ImGui11ImageButtonEPvRK6ImVec2S3_S3_iRK6ImVec4S6_(ptr noundef %309, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %39, i32 noundef %359, ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(16) %41)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #14
  br i1 %360, label %361, label %364

361:                                              ; preds = %358
  %362 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !36
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr @_ZZN5ImGui14ShowTestWindowEPbE13pressed_count, align 4, !tbaa !36
  br label %364

364:                                              ; preds = %361, %358
  call void @_ZN5ImGui5PopIDEv()
  %365 = add nuw nsw i32 %.0141163, 1
  %exitcond.not = icmp eq i32 %365, 8
  br i1 %exitcond.not, label %.loopexit176, label %358, !llvm.loop !37

366:                                              ; preds = %.loopexit176, %290
  %367 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.265)
  br i1 %367, label %368, label %434

368:                                              ; preds = %366
  %369 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.266)
  br i1 %369, label %370, label %374

370:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %42, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %371 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.267, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE8selected, ptr noundef nonnull align 4 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %372 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.268, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected, i64 1), ptr noundef nonnull align 4 dereferenceable(8) %43)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.269)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %373 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.270, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected, i64 2), ptr noundef nonnull align 4 dereferenceable(8) %44)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @_ZN5ImGui7TreePopEv()
  br label %374

374:                                              ; preds = %370, %368
  %375 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.271)
  br i1 %375, label %376, label %380

376:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %377 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.272, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE8selected_0, ptr noundef nonnull align 4 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.273)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %378 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.274, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_0, i64 1), ptr noundef nonnull align 4 dereferenceable(8) %46)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.275)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %47, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %379 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.276, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_0, i64 2), ptr noundef nonnull align 4 dereferenceable(8) %47)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 300, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.273)
  call void @_ZN5ImGui7TreePopEv()
  br label %380

380:                                              ; preds = %376, %374
  %381 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.277)
  br i1 %381, label %.preheader.preheader, label %433

.preheader.preheader:                             ; preds = %380
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 5.000000e+01, float noundef 5.000000e+01)
  %382 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.278, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, ptr noundef nonnull align 4 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  br i1 %382, label %.thread.peel, label %.preheader.peel.next

.thread.peel:                                     ; preds = %.preheader.preheader
  %383 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 1), align 1, !tbaa !5, !range !9, !noundef !10
  %384 = xor i8 %383, 1
  store i8 %384, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 1), align 1, !tbaa !5
  %385 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 4), align 4, !tbaa !5, !range !9, !noundef !10
  %386 = xor i8 %385, 1
  store i8 %386, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 4), align 4, !tbaa !5
  br label %.preheader.peel.next

.preheader.peel.next:                             ; preds = %.preheader.preheader, %.thread.peel
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 5.000000e+01, float noundef 5.000000e+01)
  %387 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.278, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 1), ptr noundef nonnull align 4 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  br i1 %387, label %.thread.peel184, label %.preheader.peel.next179

.thread.peel184:                                  ; preds = %.preheader.peel.next
  %388 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, align 16, !tbaa !5, !range !9, !noundef !10
  %389 = xor i8 %388, 1
  store i8 %389, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, align 16, !tbaa !5
  %390 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 2), align 2, !tbaa !5, !range !9, !noundef !10
  %391 = xor i8 %390, 1
  store i8 %391, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 2), align 2, !tbaa !5
  %392 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 5), align 1, !tbaa !5, !range !9, !noundef !10
  %393 = xor i8 %392, 1
  store i8 %393, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 5), align 1, !tbaa !5
  br label %.preheader.peel.next179

.preheader.peel.next179:                          ; preds = %.preheader.peel.next, %.thread.peel184
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 5.000000e+01, float noundef 5.000000e+01)
  %394 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.278, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 2), ptr noundef nonnull align 4 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  br i1 %394, label %.thread.peel193, label %.preheader.peel.next188

.thread.peel193:                                  ; preds = %.preheader.peel.next179
  %395 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 1), align 1, !tbaa !5, !range !9, !noundef !10
  %396 = xor i8 %395, 1
  store i8 %396, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 1), align 1, !tbaa !5
  %397 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 3), align 1, !tbaa !5, !range !9, !noundef !10
  %398 = xor i8 %397, 1
  store i8 %398, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 3), align 1, !tbaa !5
  %399 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 6), align 2, !tbaa !5, !range !9, !noundef !10
  %400 = xor i8 %399, 1
  store i8 %400, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 6), align 2, !tbaa !5
  br label %.preheader.peel.next188

.preheader.peel.next188:                          ; preds = %.preheader.peel.next179, %.thread.peel193
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 3)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 5.000000e+01, float noundef 5.000000e+01)
  %401 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.278, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 3), ptr noundef nonnull align 4 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  br i1 %401, label %.thread.peel202, label %.preheader.peel.next197

.thread.peel202:                                  ; preds = %.preheader.peel.next188
  %402 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 2), align 2, !tbaa !5, !range !9, !noundef !10
  %403 = xor i8 %402, 1
  store i8 %403, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 2), align 2, !tbaa !5
  %404 = load i8, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 7), align 1, !tbaa !5, !range !9, !noundef !10
  %405 = xor i8 %404, 1
  store i8 %405, ptr getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 7), align 1, !tbaa !5
  br label %.preheader.peel.next197

.preheader.peel.next197:                          ; preds = %.thread.peel202, %.preheader.peel.next188
  call void @_ZN5ImGui5PopIDEv()
  br label %.preheader

.loopexit207:                                     ; preds = %432
  call void @_ZN5ImGui7TreePopEv()
  br label %433

.preheader:                                       ; preds = %.preheader.peel.next197, %432
  %indvars.iv = phi i64 [ 4, %.preheader.peel.next197 ], [ %indvars.iv.next, %432 ]
  %406 = trunc nuw nsw i64 %indvars.iv to i32
  call void @_ZN5ImGui6PushIDEi(i32 noundef %406)
  %407 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %indvars.iv
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef 5.000000e+01, float noundef 5.000000e+01)
  %408 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcPbRK6ImVec2(ptr noundef nonnull @.str.278, ptr noundef nonnull %407, ptr noundef nonnull align 4 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  %409 = and i32 %406, 3
  br i1 %408, label %410, label %.preheader._crit_edge

410:                                              ; preds = %.preheader
  %cond = icmp eq i32 %409, 0
  br i1 %cond, label %416, label %411

411:                                              ; preds = %410
  %412 = add nsw i64 %indvars.iv, -1
  %413 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %412
  %414 = load i8, ptr %413, align 1, !tbaa !5, !range !9, !noundef !10
  %415 = xor i8 %414, 1
  store i8 %415, ptr %413, align 1, !tbaa !5
  %.not149 = icmp eq i32 %409, 3
  br i1 %.not149, label %421, label %416

416:                                              ; preds = %410, %411
  %417 = add nuw nsw i64 %indvars.iv, 1
  %418 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %417
  %419 = load i8, ptr %418, align 1, !tbaa !5, !range !9, !noundef !10
  %420 = xor i8 %419, 1
  store i8 %420, ptr %418, align 1, !tbaa !5
  br label %421

421:                                              ; preds = %411, %416
  %422 = add nsw i64 %indvars.iv, -4
  %423 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %422
  %424 = load i8, ptr %423, align 1, !tbaa !5, !range !9, !noundef !10
  %425 = xor i8 %424, 1
  store i8 %425, ptr %423, align 1, !tbaa !5
  %426 = icmp ult i64 %indvars.iv, 12
  br i1 %426, label %.thread, label %.preheader._crit_edge

.thread:                                          ; preds = %421
  %427 = add nuw nsw i64 %indvars.iv, 4
  %428 = getelementptr inbounds [16 x i8], ptr @_ZZN5ImGui14ShowTestWindowEPbE8selected_1, i64 0, i64 %427
  %429 = load i8, ptr %428, align 1, !tbaa !5, !range !9, !noundef !10
  %430 = xor i8 %429, 1
  store i8 %430, ptr %428, align 1, !tbaa !5
  br label %.preheader._crit_edge

.preheader._crit_edge:                            ; preds = %.preheader, %421, %.thread
  %.not151 = icmp eq i32 %409, 3
  br i1 %.not151, label %432, label %431

431:                                              ; preds = %.preheader._crit_edge
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  br label %432

432:                                              ; preds = %431, %.preheader._crit_edge
  call void @_ZN5ImGui5PopIDEv()
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond178.not = icmp eq i64 %indvars.iv.next, 16
  br i1 %exitcond178.not, label %.loopexit207, label %.preheader, !llvm.loop !38

433:                                              ; preds = %.loopexit207, %380
  call void @_ZN5ImGui7TreePopEv()
  br label %434

434:                                              ; preds = %433, %366
  %435 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.279)
  br i1 %435, label %436, label %.peel.next210

436:                                              ; preds = %434
  %437 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.280, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4buf1, i64 noundef 64, i32 noundef 0, ptr noundef null, ptr noundef null)
  %438 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.281, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4buf2, i64 noundef 64, i32 noundef 1, ptr noundef null, ptr noundef null)
  %439 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.282, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4buf3, i64 noundef 64, i32 noundef 6, ptr noundef null, ptr noundef null)
  %440 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.283, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4buf4, i64 noundef 64, i32 noundef 4, ptr noundef null, ptr noundef null)
  %441 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.284, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4buf5, i64 noundef 64, i32 noundef 8, ptr noundef null, ptr noundef null)
  %442 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.285, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4buf6, i64 noundef 64, i32 noundef 512, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbEN11TextFilters18FilterImGuiLettersEP25ImGuiTextEditCallbackData, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %.peel.next210

.peel.next210:                                    ; preds = %436, %434
  %443 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.286, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE5check)
  %444 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.287, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE1e, i32 noundef 0)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %445 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.288, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE1e, i32 noundef 1)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %446 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.289, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE1e, i32 noundef 2)
  %447 = getelementptr inbounds i8, ptr %50, i64 8
  %448 = getelementptr inbounds i8, ptr %49, i64 8
  %449 = getelementptr inbounds i8, ptr %52, i64 8
  %450 = getelementptr inbounds i8, ptr %51, i64 8
  %451 = getelementptr inbounds i8, ptr %54, i64 8
  %452 = getelementptr inbounds i8, ptr %53, i64 8
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  %453 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef 0.000000e+00, float noundef 0x3FE3333340000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00)
  %454 = extractvalue { <2 x float>, <2 x float> } %453, 0
  store <2 x float> %454, ptr %50, align 8
  %455 = extractvalue { <2 x float>, <2 x float> } %453, 1
  store <2 x float> %455, ptr %447, align 8
  %456 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %50)
  %457 = extractvalue { <2 x float>, <2 x float> } %456, 0
  store <2 x float> %457, ptr %49, align 8
  %458 = extractvalue { <2 x float>, <2 x float> } %456, 1
  store <2 x float> %458, ptr %448, align 8
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 18, ptr noundef nonnull align 4 dereferenceable(16) %49)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #14
  %459 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef 0.000000e+00, float noundef 0x3FE6666660000000, float noundef 0x3FE6666660000000, float noundef 1.000000e+00)
  %460 = extractvalue { <2 x float>, <2 x float> } %459, 0
  store <2 x float> %460, ptr %52, align 8
  %461 = extractvalue { <2 x float>, <2 x float> } %459, 1
  store <2 x float> %461, ptr %449, align 8
  %462 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %52)
  %463 = extractvalue { <2 x float>, <2 x float> } %462, 0
  store <2 x float> %463, ptr %51, align 8
  %464 = extractvalue { <2 x float>, <2 x float> } %462, 1
  store <2 x float> %464, ptr %450, align 8
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 19, ptr noundef nonnull align 4 dereferenceable(16) %51)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #14
  %465 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef 0.000000e+00, float noundef 0x3FE99999A0000000, float noundef 0x3FE99999A0000000, float noundef 1.000000e+00)
  %466 = extractvalue { <2 x float>, <2 x float> } %465, 0
  store <2 x float> %466, ptr %54, align 8
  %467 = extractvalue { <2 x float>, <2 x float> } %465, 1
  store <2 x float> %467, ptr %451, align 8
  %468 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %54)
  %469 = extractvalue { <2 x float>, <2 x float> } %468, 0
  store <2 x float> %469, ptr %53, align 8
  %470 = extractvalue { <2 x float>, <2 x float> } %468, 1
  store <2 x float> %470, ptr %452, align 8
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 20, ptr noundef nonnull align 4 dereferenceable(16) %53)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %471 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.290, ptr noundef nonnull align 4 dereferenceable(8) %55, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 3)
  call void @_ZN5ImGui5PopIDEv()
  br label %473

.loopexit213:                                     ; preds = %473
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.291)
  %472 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv()
  br i1 %472, label %496, label %497

473:                                              ; preds = %.peel.next210, %473
  %.0139165 = phi i32 [ 1, %.peel.next210 ], [ %495, %473 ]
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui6PushIDEi(i32 noundef %.0139165)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  %474 = uitofp nneg i32 %.0139165 to float
  %475 = fdiv float %474, 7.000000e+00
  %476 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef %475, float noundef 0x3FE3333340000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00)
  %477 = extractvalue { <2 x float>, <2 x float> } %476, 0
  store <2 x float> %477, ptr %50, align 8
  %478 = extractvalue { <2 x float>, <2 x float> } %476, 1
  store <2 x float> %478, ptr %447, align 8
  %479 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %50)
  %480 = extractvalue { <2 x float>, <2 x float> } %479, 0
  store <2 x float> %480, ptr %49, align 8
  %481 = extractvalue { <2 x float>, <2 x float> } %479, 1
  store <2 x float> %481, ptr %448, align 8
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 18, ptr noundef nonnull align 4 dereferenceable(16) %49)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #14
  %482 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef %475, float noundef 0x3FE6666660000000, float noundef 0x3FE6666660000000, float noundef 1.000000e+00)
  %483 = extractvalue { <2 x float>, <2 x float> } %482, 0
  store <2 x float> %483, ptr %52, align 8
  %484 = extractvalue { <2 x float>, <2 x float> } %482, 1
  store <2 x float> %484, ptr %449, align 8
  %485 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %52)
  %486 = extractvalue { <2 x float>, <2 x float> } %485, 0
  store <2 x float> %486, ptr %51, align 8
  %487 = extractvalue { <2 x float>, <2 x float> } %485, 1
  store <2 x float> %487, ptr %450, align 8
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 19, ptr noundef nonnull align 4 dereferenceable(16) %51)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #14
  %488 = call { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef %475, float noundef 0x3FE99999A0000000, float noundef 0x3FE99999A0000000, float noundef 1.000000e+00)
  %489 = extractvalue { <2 x float>, <2 x float> } %488, 0
  store <2 x float> %489, ptr %54, align 8
  %490 = extractvalue { <2 x float>, <2 x float> } %488, 1
  store <2 x float> %490, ptr %451, align 8
  %491 = call { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16) %54)
  %492 = extractvalue { <2 x float>, <2 x float> } %491, 0
  store <2 x float> %492, ptr %53, align 8
  %493 = extractvalue { <2 x float>, <2 x float> } %491, 1
  store <2 x float> %493, ptr %452, align 8
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 20, ptr noundef nonnull align 4 dereferenceable(16) %53)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %494 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.290, ptr noundef nonnull align 4 dereferenceable(8) %55, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 3)
  call void @_ZN5ImGui5PopIDEv()
  %495 = add nuw nsw i32 %.0139165, 1
  %exitcond208.not = icmp eq i32 %495, 7
  br i1 %exitcond208.not, label %.loopexit213, label %473, !llvm.loop !40

496:                                              ; preds = %.loopexit213
  call void (ptr, ...) @_ZN5ImGui10SetTooltipEPKcz(ptr noundef nonnull @.str.292)
  br label %497

497:                                              ; preds = %496, %.loopexit213
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.293)
  %498 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEv()
  br i1 %498, label %499, label %501

499:                                              ; preds = %497
  call void @_ZN5ImGui12BeginTooltipEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.294)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %500 = load <2 x float>, ptr %56, align 8
  call void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef nonnull @.str.295, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3arr, i32 noundef 7, i32 noundef 0, ptr noundef null, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, <2 x float> %500, i64 noundef 4)
  call void @_ZN5ImGui10EndTooltipEv()
  br label %501

501:                                              ; preds = %499, %497
  call void @_ZN5ImGui9SeparatorEv()
  %502 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiS1_i(ptr noundef nonnull @.str.296, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4item, ptr noundef nonnull @.str.297, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %57) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(88) %57, ptr noundef nonnull align 16 dereferenceable(88) @__const._ZN5ImGui14ShowTestWindowEPb.items, i64 88, i1 false)
  %503 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPS1_ii(ptr noundef nonnull @.str.309, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE5item2, ptr noundef nonnull %57, i32 noundef 11, i32 noundef -1)
  %504 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.310, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4str0, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %505 = call noundef zeroext i1 @_ZN5ImGui8InputIntEPKcPiiii(ptr noundef nonnull @.str.311, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2i0, i32 noundef 1, i32 noundef 100, i32 noundef 0)
  %506 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef nonnull @.str.312, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f0, float noundef 0x3F847AE140000000, float noundef 1.000000e+00, i32 noundef -1, i32 noundef 0)
  %507 = call noundef zeroext i1 @_ZN5ImGui11InputFloat3EPKcPfi(ptr noundef nonnull @.str.313, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE5vec4a, i32 noundef -1)
  %508 = call noundef zeroext i1 @_ZN5ImGui9SliderIntEPKcPiiiS1_(ptr noundef nonnull @.str.314, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2i1, i32 noundef 0, i32 noundef 3, ptr noundef nonnull @.str.94)
  %509 = call noundef zeroext i1 @_ZN5ImGui9SliderIntEPKcPiiiS1_(ptr noundef nonnull @.str.315, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2i2, i32 noundef -100, i32 noundef 100, ptr noundef nonnull @.str.94)
  %510 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.316, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f1, float noundef 0.000000e+00, float noundef 2.000000e+00, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  %511 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.317, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f2, float noundef 0.000000e+00, float noundef 1.000000e+01, ptr noundef nonnull @.str.318, float noundef 2.000000e+00)
  %512 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.319, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f3, float noundef -1.000000e+01, float noundef 1.000000e+01, ptr noundef nonnull @.str.318, float noundef 3.000000e+00)
  %513 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.320, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f4, float noundef 0xC7EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, ptr noundef nonnull @.str.318, float noundef 1.000000e+00)
  %514 = call noundef zeroext i1 @_ZN5ImGui11SliderAngleEPKcPfff(ptr noundef nonnull @.str.321, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE5angle, float noundef -3.600000e+02, float noundef 3.600000e+02)
  %515 = call noundef zeroext i1 @_ZN5ImGui12SliderFloat3EPKcPfffS1_f(ptr noundef nonnull @.str.322, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE5vec4b, float noundef 0.000000e+00, float noundef 1.000000e+00, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  %516 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPf(ptr noundef nonnull @.str.323, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4col1)
  %517 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit4EPKcPfb(ptr noundef nonnull @.str.324, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4col2, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %58) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(72) %58, ptr noundef nonnull align 16 dereferenceable(72) @__const._ZN5ImGui14ShowTestWindowEPb.listbox_items, i64 72, i1 false)
  %518 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef nonnull @.str.334, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE20listbox_item_current, ptr noundef nonnull %58, i32 noundef 9, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %58) #14
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %57) #14
  br label %519

519:                                              ; preds = %501, %186
  %520 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.335, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %520, label %521, label %565

521:                                              ; preds = %519
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %522 = load <2 x float>, ptr %59, align 8
  call void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef nonnull @.str.336, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3arr_0, i32 noundef 7, i32 noundef 0, ptr noundef null, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, <2 x float> %522, i64 noundef 4)
  %523 = load atomic i8, ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6values acquire, align 8
  %524 = icmp eq i8 %523, 0
  br i1 %524, label %525, label %529, !prof !28

525:                                              ; preds = %521
  %526 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE6values) #14
  %.not143 = icmp eq i32 %526, 0
  br i1 %.not143, label %529, label %527

527:                                              ; preds = %525
  call void @_ZN8ImVectorIfEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %528 = call i32 @__cxa_atexit(ptr nonnull @_ZN8ImVectorIfED2Ev, ptr nonnull @_ZZN5ImGui14ShowTestWindowEPbE6values, ptr nonnull @__dso_handle) #14
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE6values) #14
  br label %529

529:                                              ; preds = %527, %525, %521
  %530 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  br i1 %530, label %531, label %535

531:                                              ; preds = %529
  call void @_ZN8ImVectorIfE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values, i64 noundef 100)
  %532 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %533 = call noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %534 = shl i64 %533, 2
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %532, i8 0, i64 %534, i1 false)
  br label %535

535:                                              ; preds = %531, %529
  %536 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE5pause, align 1, !tbaa !5, !range !9, !noundef !10
  %537 = trunc nuw i8 %536 to i1
  br i1 %537, label %556, label %538

538:                                              ; preds = %535
  %539 = call noundef float @_ZN5ImGui7GetTimeEv()
  %540 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE12refresh_time, align 4, !tbaa !11
  %541 = fadd float %540, 0x3F91111120000000
  %542 = fcmp ogt float %539, %541
  br i1 %542, label %543, label %556

543:                                              ; preds = %538
  %544 = call noundef float @_ZN5ImGui7GetTimeEv()
  store float %544, ptr @_ZZN5ImGui14ShowTestWindowEPbE12refresh_time, align 4, !tbaa !11
  %545 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE5phase, align 4, !tbaa !11
  %546 = call float @cosf(float noundef %545) #14
  %547 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !41
  %548 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values, i64 noundef %547)
  store float %546, ptr %548, align 4, !tbaa !11
  %549 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !41
  %550 = add i64 %549, 1
  %551 = call noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %552 = urem i64 %550, %551
  store i64 %552, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !41
  %553 = uitofp i64 %552 to float
  %554 = load float, ptr @_ZZN5ImGui14ShowTestWindowEPbE5phase, align 4, !tbaa !11
  %555 = call float @llvm.fmuladd.f32(float %553, float 0x3FB99999A0000000, float %554)
  store float %555, ptr @_ZZN5ImGui14ShowTestWindowEPbE5phase, align 4, !tbaa !11
  br label %556

556:                                              ; preds = %538, %543, %535
  %557 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %558 = call noundef i64 @_ZNK8ImVectorIfE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN5ImGui14ShowTestWindowEPbE6values)
  %559 = trunc i64 %558 to i32
  %560 = load i64, ptr @_ZZN5ImGui14ShowTestWindowEPbE13values_offset, align 8, !tbaa !41
  %561 = trunc i64 %560 to i32
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %60, float noundef 0.000000e+00, float noundef 7.000000e+01)
  %562 = load <2 x float>, ptr %60, align 8
  call void @_ZN5ImGui9PlotLinesEPKcPKfiiS1_ff6ImVec2m(ptr noundef nonnull @.str.336, ptr noundef nonnull %557, i32 noundef %559, i32 noundef %561, ptr noundef nonnull @.str.337, float noundef -1.000000e+00, float noundef 1.000000e+00, <2 x float> %562, i64 noundef 4)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %563 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.338, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE5pause)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef 0.000000e+00, float noundef 7.000000e+01)
  %564 = load <2 x float>, ptr %61, align 8
  call void @_ZN5ImGui13PlotHistogramEPKcPKfiiS1_ff6ImVec2m(ptr noundef nonnull @.str.339, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3arr_0, i32 noundef 7, i32 noundef 0, ptr noundef null, float noundef 0.000000e+00, float noundef 1.000000e+00, <2 x float> %564, i64 noundef 4)
  br label %565

565:                                              ; preds = %556, %519
  %566 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.340, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %566, label %567, label %587

567:                                              ; preds = %565
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.341)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.342)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %62, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %568 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.326, ptr noundef nonnull align 4 dereferenceable(8) %62, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #14
  br i1 %568, label %569, label %571

569:                                              ; preds = %567
  %570 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.343)
  br label %571

571:                                              ; preds = %567, %569
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %572 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.325, ptr noundef nonnull align 4 dereferenceable(8) %63, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %573 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.344, ptr noundef nonnull align 4 dereferenceable(8) %64, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.345)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %574 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.346)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.347)
  %575 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.348, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2c1)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %576 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.349, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2c2)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %577 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.350, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2c3)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %578 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.351, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2c4)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 8.000000e+01)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %65, ptr noundef nonnull align 16 dereferenceable(32) @__const._ZN5ImGui14ShowTestWindowEPb.items.352, i64 32, i1 false)
  %579 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPS1_ii(ptr noundef nonnull @.str.353, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4item_0, ptr noundef nonnull %65, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %580 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.354, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f0_0, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %581 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.355, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f1_0, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  %582 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef nonnull @.str.356, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE2f2_0, float noundef 0.000000e+00, float noundef 5.000000e+00, ptr noundef nonnull @.str.90, float noundef 1.000000e+00)
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 8.000000e+01)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.357)
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  %583 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef nonnull @.str.8, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE9selection, ptr noundef nonnull %65, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui6PushIDEi(i32 noundef 1)
  %584 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef nonnull @.str.8, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9selection, i64 4), ptr noundef nonnull %65, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui6PushIDEi(i32 noundef 2)
  %585 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef nonnull @.str.8, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9selection, i64 8), ptr noundef nonnull %65, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui6PushIDEi(i32 noundef 3)
  %586 = call noundef zeroext i1 @_ZN5ImGui7ListBoxEPKcPiPS1_ii(ptr noundef nonnull @.str.8, ptr noundef nonnull getelementptr inbounds (i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE9selection, i64 12), ptr noundef nonnull %65, i32 noundef 4, i32 noundef -1)
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #14
  br label %587

587:                                              ; preds = %571, %565
  %588 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.358, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %588, label %589, label %617

589:                                              ; preds = %587
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.359)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %590 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.360, ptr noundef nonnull align 4 dereferenceable(8) %66, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui13PushItemWidthEf(float noundef 1.000000e+02)
  %591 = call noundef zeroext i1 @_ZN5ImGui8InputIntEPKcPiiii(ptr noundef nonnull @.str.361, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE4line, i32 noundef 0, i32 noundef 0, i32 noundef 32)
  %592 = or i1 %590, %591
  call void @_ZN5ImGui12PopItemWidthEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #14
  %593 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %594 = fmul float %593, 5.000000e-01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %594, float noundef 3.000000e+02)
  %595 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef nonnull @.str.362, ptr noundef nonnull align 4 dereferenceable(8) %67, i1 noundef zeroext false, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #14
  br label %599

596:                                              ; preds = %603
  %597 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE4line, align 4
  %598 = icmp sgt i32 %597, 99
  %or.cond = select i1 %592, i1 %598, i1 false
  br i1 %or.cond, label %605, label %606

599:                                              ; preds = %589, %603
  %.0137167 = phi i32 [ 0, %589 ], [ %604, %603 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.363, i32 noundef %.0137167)
  %600 = load i32, ptr @_ZZN5ImGui14ShowTestWindowEPbE4line, align 4
  %601 = icmp eq i32 %600, %.0137167
  %or.cond155 = select i1 %592, i1 %601, i1 false
  br i1 %or.cond155, label %602, label %603

602:                                              ; preds = %599
  call void @_ZN5ImGui16SetScrollPosHereEv()
  br label %603

603:                                              ; preds = %599, %602
  %604 = add nuw nsw i32 %.0137167, 1
  %exitcond218.not = icmp eq i32 %604, 100
  br i1 %exitcond218.not, label %596, label %599, !llvm.loop !42

605:                                              ; preds = %596
  call void @_ZN5ImGui16SetScrollPosHereEv()
  br label %606

606:                                              ; preds = %605, %596
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 3, float noundef 5.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %68, float noundef 0.000000e+00, float noundef 3.000000e+02)
  %607 = call noundef zeroext i1 @_ZN5ImGui10BeginChildEPKcRK6ImVec2bi(ptr noundef nonnull @.str.364, ptr noundef nonnull align 4 dereferenceable(8) %68, i1 noundef zeroext true, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #14
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.365)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 2, ptr noundef null, i1 noundef zeroext true)
  br label %609

608:                                              ; preds = %612
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  br label %617

609:                                              ; preds = %606, %612
  %.0136168 = phi i32 [ 0, %606 ], [ %616, %612 ]
  %610 = icmp eq i32 %.0136168, 50
  br i1 %610, label %611, label %612

611:                                              ; preds = %609
  call void @_ZN5ImGui10NextColumnEv()
  br label %612

612:                                              ; preds = %611, %609
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #14
  %613 = mul nuw nsw i32 %.0136168, 5731
  %614 = call noundef i64 (ptr, i64, ptr, ...) @_ZL14ImFormatStringPcmPKcz(ptr noundef nonnull %69, i64 noundef 32, ptr noundef nonnull @.str.366, i32 noundef %613)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %70, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %615 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull %69, ptr noundef nonnull align 4 dereferenceable(8) %70, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #14
  %616 = add nuw nsw i32 %.0136168, 1
  %exitcond219.not = icmp eq i32 %616, 100
  br i1 %exitcond219.not, label %608, label %609, !llvm.loop !43

617:                                              ; preds = %608, %587
  %618 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.367, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %618, label %619, label %657

619:                                              ; preds = %617
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.368)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 4, ptr noundef nonnull @.str.369, i1 noundef zeroext true)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.370)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.371)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.372)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.373)
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.380, i32 noundef 0)
  call void @_ZN5ImGui10NextColumnEv()
  %620 = load ptr, ptr @__const._ZN5ImGui14ShowTestWindowEPb.names, align 16, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %620)
  call void @_ZN5ImGui10NextColumnEv()
  %621 = load ptr, ptr @__const._ZN5ImGui14ShowTestWindowEPb.paths, align 16, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %621)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.381)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.380, i32 noundef 1)
  call void @_ZN5ImGui10NextColumnEv()
  %622 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.names, i64 8), align 8, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %622)
  call void @_ZN5ImGui10NextColumnEv()
  %623 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.paths, i64 8), align 8, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %623)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.381)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.380, i32 noundef 2)
  call void @_ZN5ImGui10NextColumnEv()
  %624 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.names, i64 16), align 16, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %624)
  call void @_ZN5ImGui10NextColumnEv()
  %625 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.paths, i64 16), align 16, !tbaa !17
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %625)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.381)
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.382)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 3, ptr noundef nonnull @.str.383, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.341)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %71, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %626 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.326, ptr noundef nonnull align 4 dereferenceable(8) %71, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #14
  %627 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.287, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE1e_0, i32 noundef 0)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.384)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %72, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %628 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.325, ptr noundef nonnull align 4 dereferenceable(8) %72, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #14
  %629 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.288, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE1e_0, i32 noundef 1)
  %630 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef nonnull @.str.385, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3foo, float noundef 0x3FA99999A0000000, float noundef 0.000000e+00, i32 noundef 3, i32 noundef 0)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.386)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.387)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %73, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %631 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.344, ptr noundef nonnull align 4 dereferenceable(8) %73, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #14
  %632 = call noundef zeroext i1 @_ZN5ImGui11RadioButtonEPKcPii(ptr noundef nonnull @.str.289, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE1e_0, i32 noundef 2)
  %633 = call noundef zeroext i1 @_ZN5ImGui10InputFloatEPKcPfffii(ptr noundef nonnull @.str.388, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3bar, float noundef 0x3FA99999A0000000, float noundef 0.000000e+00, i32 noundef 3, i32 noundef 0)
  call void @_ZN5ImGui10NextColumnEv()
  %634 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.389, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %634, label %635, label %636

635:                                              ; preds = %619
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.390)
  br label %636

636:                                              ; preds = %635, %619
  call void @_ZN5ImGui10NextColumnEv()
  %637 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.391, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %637, label %638, label %639

638:                                              ; preds = %636
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.390)
  br label %639

639:                                              ; preds = %638, %636
  call void @_ZN5ImGui10NextColumnEv()
  %640 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.392, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %640, label %641, label %642

641:                                              ; preds = %639
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.390)
  br label %642

642:                                              ; preds = %641, %639
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.393)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 2, ptr noundef nonnull @.str.394, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  %643 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.341)
  br i1 %643, label %644, label %645

644:                                              ; preds = %642
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.342)
  call void @_ZN5ImGui7TreePopEv()
  br label %645

645:                                              ; preds = %644, %642
  call void @_ZN5ImGui10NextColumnEv()
  %646 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.395)
  br i1 %646, label %647, label %648

647:                                              ; preds = %645
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.396)
  call void @_ZN5ImGui7TreePopEv()
  br label %648

648:                                              ; preds = %647, %645
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.397)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 2, ptr noundef nonnull @.str.398, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.399)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.400)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.399)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.401)
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui9SeparatorEv()
  call void @_ZN5ImGui7SpacingEv()
  %649 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.402)
  br i1 %649, label %650, label %657

650:                                              ; preds = %648
  %651 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.403)
  br i1 %651, label %652, label %653

652:                                              ; preds = %650
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 4, ptr noundef null, i1 noundef zeroext true)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 97, i32 noundef 97, i32 noundef 97)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 98, i32 noundef 98, i32 noundef 98)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 99, i32 noundef 99, i32 noundef 99)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 100, i32 noundef 100, i32 noundef 100)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 101, i32 noundef 101, i32 noundef 101)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 102, i32 noundef 102, i32 noundef 102)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 103, i32 noundef 103, i32 noundef 103)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 104, i32 noundef 104, i32 noundef 104)
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui7TreePopEv()
  br label %653

653:                                              ; preds = %652, %650
  %654 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.405)
  br i1 %654, label %655, label %656

655:                                              ; preds = %653
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 4, ptr noundef null, i1 noundef zeroext false)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 97, i32 noundef 97, i32 noundef 97)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 98, i32 noundef 98, i32 noundef 98)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 99, i32 noundef 99, i32 noundef 99)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 100, i32 noundef 100, i32 noundef 100)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 101, i32 noundef 101, i32 noundef 101)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 102, i32 noundef 102, i32 noundef 102)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 103, i32 noundef 103, i32 noundef 103)
  call void @_ZN5ImGui10NextColumnEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.404, i32 noundef 104, i32 noundef 104, i32 noundef 104)
  call void @_ZN5ImGui10NextColumnEv()
  call void @_ZN5ImGui7ColumnsEiPKcb(i32 noundef 1, ptr noundef null, i1 noundef zeroext true)
  call void @_ZN5ImGui7TreePopEv()
  br label %656

656:                                              ; preds = %655, %653
  call void @_ZN5ImGui7TreePopEv()
  br label %657

657:                                              ; preds = %648, %656, %617
  %658 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.406, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %658, label %659, label %.loopexit

659:                                              ; preds = %657
  %660 = load atomic i8, ptr @_ZGVZN5ImGui14ShowTestWindowEPbE6filter acquire, align 8
  %661 = icmp eq i8 %660, 0
  br i1 %661, label %662, label %667, !prof !28

662:                                              ; preds = %659
  %663 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE6filter) #14
  %.not144 = icmp eq i32 %663, 0
  br i1 %.not144, label %667, label %664

664:                                              ; preds = %662
  invoke void @_ZN15ImGuiTextFilterC1EPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef nonnull @.str.8)
          to label %665 unwind label %670

665:                                              ; preds = %664
  %666 = call i32 @__cxa_atexit(ptr nonnull @_ZN15ImGuiTextFilterD2Ev, ptr nonnull @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr nonnull @__dso_handle) #14
  call void @__cxa_guard_release(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE6filter) #14
  br label %667

667:                                              ; preds = %665, %662, %659
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.407)
  call void @_ZN15ImGuiTextFilter4DrawEPKcf(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef nonnull @.str.408, float noundef -1.000000e+00)
  %668 = load ptr, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, align 16, !tbaa !17
  %669 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %668)
  br i1 %669, label %672, label %673

670:                                              ; preds = %664
  %671 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_guard_abort(ptr nonnull @_ZGVZN5ImGui14ShowTestWindowEPbE6filter) #14
  resume { ptr, i32 } %671

672:                                              ; preds = %667
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %668)
  br label %673

673:                                              ; preds = %667, %672
  %674 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 8), align 8, !tbaa !17
  %675 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %674)
  br i1 %675, label %676, label %677

676:                                              ; preds = %673
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %674)
  br label %677

677:                                              ; preds = %676, %673
  %678 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 16), align 16, !tbaa !17
  %679 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %678)
  br i1 %679, label %680, label %681

680:                                              ; preds = %677
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %678)
  br label %681

681:                                              ; preds = %680, %677
  %682 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 24), align 8, !tbaa !17
  %683 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %682)
  br i1 %683, label %684, label %685

684:                                              ; preds = %681
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %682)
  br label %685

685:                                              ; preds = %684, %681
  %686 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 32), align 16, !tbaa !17
  %687 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %686)
  br i1 %687, label %688, label %689

688:                                              ; preds = %685
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %686)
  br label %689

689:                                              ; preds = %688, %685
  %690 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 40), align 8, !tbaa !17
  %691 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %690)
  br i1 %691, label %692, label %693

692:                                              ; preds = %689
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %690)
  br label %693

693:                                              ; preds = %692, %689
  %694 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 48), align 16, !tbaa !17
  %695 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %694)
  br i1 %695, label %696, label %697

696:                                              ; preds = %693
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %694)
  br label %697

697:                                              ; preds = %696, %693
  %698 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui14ShowTestWindowEPb.lines, i64 56), align 8, !tbaa !17
  %699 = call noundef zeroext i1 @_ZNK15ImGuiTextFilter10PassFilterEPKc(ptr noundef nonnull align 8 dereferenceable(284) @_ZZN5ImGui14ShowTestWindowEPbE6filter, ptr noundef %698)
  br i1 %699, label %700, label %.loopexit

700:                                              ; preds = %697
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.7, ptr noundef %698)
  br label %.loopexit

.loopexit:                                        ; preds = %697, %700, %657
  %701 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.417, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %701, label %702, label %731

702:                                              ; preds = %.loopexit
  %703 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.418)
  br i1 %703, label %704, label %710

704:                                              ; preds = %702
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.419)
  %705 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.420, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  %706 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.421, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  %707 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.422, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui22PushAllowKeyboardFocusEb(i1 noundef zeroext false)
  %708 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.423, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui21PopAllowKeyboardFocusEv()
  %709 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.424, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_0, i64 noundef 32, i32 noundef 0, ptr noundef null, ptr noundef null)
  call void @_ZN5ImGui7TreePopEv()
  br label %710

710:                                              ; preds = %704, %702
  %711 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.425)
  br i1 %711, label %712, label %731

712:                                              ; preds = %710
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %74, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %713 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.426, ptr noundef nonnull align 4 dereferenceable(8) %74, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %75, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %714 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.427, ptr noundef nonnull align 4 dereferenceable(8) %75, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #14
  call void @_ZN5ImGui8SameLineEii(i32 noundef 0, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %76, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %715 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2b(ptr noundef nonnull @.str.428, ptr noundef nonnull align 4 dereferenceable(8) %76, i1 noundef zeroext false)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #14
  br i1 %713, label %716, label %717

716:                                              ; preds = %712
  call void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef 0)
  br label %717

717:                                              ; preds = %716, %712
  %718 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.420, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_1, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %719 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  %spec.select156 = zext i1 %719 to i32
  br i1 %714, label %720, label %721

720:                                              ; preds = %717
  call void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef 0)
  br label %721

721:                                              ; preds = %720, %717
  %722 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.421, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_1, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %723 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  %spec.select157 = select i1 %723, i32 2, i32 %spec.select156
  call void @_ZN5ImGui22PushAllowKeyboardFocusEb(i1 noundef zeroext false)
  br i1 %715, label %724, label %725

724:                                              ; preds = %721
  call void @_ZN5ImGui20SetKeyboardFocusHereEi(i32 noundef 0)
  br label %725

725:                                              ; preds = %724, %721
  %726 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef nonnull @.str.429, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE3buf_1, i64 noundef 128, i32 noundef 0, ptr noundef null, ptr noundef null)
  %727 = call noundef zeroext i1 @_ZN5ImGui12IsItemActiveEv()
  %spec.select158 = select i1 %727, i32 3, i32 %spec.select157
  call void @_ZN5ImGui21PopAllowKeyboardFocusEv()
  %.not145 = icmp eq i32 %spec.select158, 0
  br i1 %.not145, label %729, label %728

728:                                              ; preds = %725
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.430, i32 noundef %spec.select158)
  br label %730

729:                                              ; preds = %725
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.431)
  br label %730

730:                                              ; preds = %729, %728
  call void (ptr, ...) @_ZN5ImGui11TextWrappedEPKcz(ptr noundef nonnull @.str.432)
  call void @_ZN5ImGui7TreePopEv()
  br label %731

731:                                              ; preds = %710, %730, %.loopexit
  %732 = call noundef zeroext i1 @_ZN5ImGui16CollapsingHeaderEPKcS1_bb(ptr noundef nonnull @.str.433, ptr noundef null, i1 noundef zeroext true, i1 noundef zeroext false)
  br i1 %732, label %733, label %739

733:                                              ; preds = %731
  %734 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.434, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE16show_app_console)
  %735 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.435, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text)
  %736 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.436, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize)
  %737 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.437, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay)
  %738 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.438, ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering)
  br label %739

739:                                              ; preds = %733, %731
  %740 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE16show_app_console, align 1, !tbaa !5, !range !9, !noundef !10
  %741 = trunc nuw i8 %740 to i1
  br i1 %741, label %742, label %743

742:                                              ; preds = %739
  call void @_ZL21ShowExampleAppConsolePb(ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE16show_app_console)
  br label %743

743:                                              ; preds = %742, %739
  %744 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text, align 1, !tbaa !5, !range !9, !noundef !10
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %747

746:                                              ; preds = %743
  call void @_ZL22ShowExampleAppLongTextPb(ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE18show_app_long_text)
  br label %747

747:                                              ; preds = %746, %743
  %748 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize, align 1, !tbaa !5, !range !9, !noundef !10
  %749 = trunc nuw i8 %748 to i1
  br i1 %749, label %750, label %751

750:                                              ; preds = %747
  call void @_ZL24ShowExampleAppAutoResizePb(ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE20show_app_auto_resize)
  br label %751

751:                                              ; preds = %750, %747
  %752 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay, align 1, !tbaa !5, !range !9, !noundef !10
  %753 = trunc nuw i8 %752 to i1
  br i1 %753, label %754, label %755

754:                                              ; preds = %751
  call void @_ZL26ShowExampleAppFixedOverlayPb(ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE22show_app_fixed_overlay)
  br label %755

755:                                              ; preds = %754, %751
  %756 = load i8, ptr @_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering, align 1, !tbaa !5, !range !9, !noundef !10
  %757 = trunc nuw i8 %756 to i1
  br i1 %757, label %758, label %759

758:                                              ; preds = %755
  call void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef nonnull @_ZZN5ImGui14ShowTestWindowEPbE25show_app_custom_rendering)
  br label %759

759:                                              ; preds = %755, %758, %1
  call void @_ZN5ImGui3EndEv()
  ret void
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK7ImColorcv6ImVec4Ev(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZZN5ImGui14ShowTestWindowEPbEN11TextFilters18FilterImGuiLettersEP25ImGuiTextEditCallbackData(ptr noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZN7ImColor3HSVEffff(float noundef, float noundef, float noundef, float noundef) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8ImVectorIfE5frontEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21ShowExampleAppConsolePb(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL22ShowExampleAppLongTextPb(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL24ShowExampleAppAutoResizePb(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL26ShowExampleAppFixedOverlayPb(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL29ShowExampleAppCustomRenderingPb(ptr noundef) local_unnamed_addr #7

declare void @_ZN15ImGuiTextFilterC1EPKc(ptr, ptr) local_unnamed_addr

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

!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 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{i8 0, i8 2}
!10 = !{}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !16, i64 120}
!14 = !{!"_ZTS7ImGuiIO", !15, i64 0, !12, i64 8, !12, i64 12, !16, i64 16, !16, i64 24, !12, i64 32, !12, i64 36, !7, i64 40, !16, i64 112, !16, i64 120, !12, i64 128, !6, i64 132, !15, i64 136, !15, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !16, i64 200, !15, i64 208, !7, i64 216, !12, i64 224, !6, i64 228, !6, i64 229, !6, i64 230, !7, i64 231, !7, i64 744, !6, i64 778, !6, i64 779, !12, i64 780, !15, i64 784, !15, i64 792, !7, i64 800, !7, i64 808, !7, i64 848, !7, i64 868, !7, i64 873, !7, i64 880, !7, i64 900}
!15 = !{!"_ZTS6ImVec2", !12, i64 0, !12, i64 4}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!16, !16, i64 0}
!18 = !{!19, !12, i64 0}
!19 = !{!"_ZTS6ImFont", !12, i64 0, !12, i64 4, !15, i64 8, !20, i64 16, !16, i64 24, !21, i64 32, !16, i64 56, !12, i64 64, !23, i64 72, !24, i64 96}
!20 = !{!"short", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIN6ImFont5GlyphEE", !22, i64 0, !22, i64 8, !16, i64 16}
!22 = !{!"long", !7, i64 0}
!23 = !{!"_ZTS8ImVectorIfE", !22, i64 0, !22, i64 8, !16, i64 16}
!24 = !{!"_ZTS8ImVectorIiE", !22, i64 0, !22, i64 8, !16, i64 16}
!25 = distinct !{!25, !26, !27}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!"llvm.loop.peeled.count", i32 1}
!28 = !{!"branch_weights", i32 1, i32 1048575}
!29 = !{!30, !31, i64 24}
!30 = !{!"_ZTS11ImFontAtlas", !16, i64 0, !16, i64 8, !16, i64 16, !31, i64 24, !31, i64 28, !15, i64 32, !15, i64 40, !32, i64 48, !33, i64 72}
!31 = !{!"int", !7, i64 0}
!32 = !{!"_ZTS8ImVectorIP6ImFontE", !22, i64 0, !22, i64 8, !16, i64 16}
!33 = !{!"_ZTS8ImVectorIPN11ImFontAtlas15ImFontAtlasDataEE", !22, i64 0, !22, i64 8, !16, i64 16}
!34 = !{!30, !31, i64 28}
!35 = !{!30, !16, i64 0}
!36 = !{!31, !31, i64 0}
!37 = distinct !{!37, !26, !27}
!38 = distinct !{!38, !26, !39}
!39 = !{!"llvm.loop.peeled.count", i32 4}
!40 = distinct !{!40, !26, !27}
!41 = !{!22, !22, i64 0}
!42 = distinct !{!42, !26}
!43 = distinct !{!43, !26}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SCCPPass,SROAPass,SimplifyCFGPass,VectorCombinePass