; LLVM IR from ClementineAccount/Albuquerque :: src/HelloSDL (main)

; 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.nk_rect = type { float, float, float, float }
%struct.nk_context = type { %struct.nk_input, %struct.nk_style, %struct.nk_buffer, %struct.nk_clipboard, i32, i32, %struct.nk_configuration_stacks, float, %struct.nk_draw_list, %struct.nk_text_edit, %struct.nk_command_buffer, i32, i32, %struct.nk_pool, ptr, ptr, ptr, ptr, ptr, i32, i32 }
%struct.nk_input = type { %struct.nk_keyboard, %struct.nk_mouse }
%struct.nk_keyboard = type { [30 x %struct.nk_key], [16 x i8], i32 }
%struct.nk_key = type { i32, i32 }
%struct.nk_mouse = type { [4 x %struct.nk_mouse_button], %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, i8, i8, i8 }
%struct.nk_mouse_button = type { i32, i32, %struct.nk_vec2 }
%struct.nk_vec2 = type { float, float }
%struct.nk_style = type { ptr, [7 x ptr], ptr, ptr, i32, %struct.nk_style_text, %struct.nk_style_button, %struct.nk_style_button, %struct.nk_style_button, %struct.nk_style_toggle, %struct.nk_style_toggle, %struct.nk_style_selectable, %struct.nk_style_slider, %struct.nk_style_progress, %struct.nk_style_property, %struct.nk_style_edit, %struct.nk_style_chart, %struct.nk_style_scrollbar, %struct.nk_style_scrollbar, %struct.nk_style_tab, %struct.nk_style_combo, %struct.nk_style_window }
%struct.nk_style_text = type { %struct.nk_color, %struct.nk_vec2 }
%struct.nk_color = type { i8, i8, i8, i8 }
%struct.nk_style_button = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, i32, float, float, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %union.nk_handle, ptr, ptr }
%struct.nk_style_item = type { i32, %union.nk_style_item_data }
%union.nk_style_item_data = type { %struct.nk_nine_slice }
%struct.nk_nine_slice = type { %struct.nk_image, i16, i16, i16, i16 }
%struct.nk_image = type { %union.nk_handle, i16, i16, [4 x i16] }
%union.nk_handle = type { ptr }
%struct.nk_style_toggle = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, i32, %struct.nk_vec2, %struct.nk_vec2, float, float, %union.nk_handle, ptr, ptr }
%struct.nk_style_selectable = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, i32, float, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %union.nk_handle, ptr, ptr }
%struct.nk_style_slider = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, float, float, float, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, i32, %struct.nk_style_button, %struct.nk_style_button, i32, i32, %union.nk_handle, ptr, ptr }
%struct.nk_style_progress = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, float, float, float, float, %struct.nk_vec2, %union.nk_handle, ptr, ptr }
%struct.nk_style_property = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, i32, i32, float, float, %struct.nk_vec2, %struct.nk_style_edit, %struct.nk_style_button, %struct.nk_style_button, %union.nk_handle, ptr, ptr }
%struct.nk_style_edit = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_style_scrollbar, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, float, float, float, %struct.nk_vec2, %struct.nk_vec2, float }
%struct.nk_style_chart = type { %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, float, float, %struct.nk_vec2 }
%struct.nk_style_scrollbar = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, float, float, float, float, %struct.nk_vec2, i32, %struct.nk_style_button, %struct.nk_style_button, i32, i32, %union.nk_handle, ptr, ptr }
%struct.nk_style_tab = type { %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_style_button, %struct.nk_style_button, %struct.nk_style_button, %struct.nk_style_button, i32, i32, float, float, float, %struct.nk_vec2, %struct.nk_vec2 }
%struct.nk_style_combo = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_style_button, i32, i32, i32, float, float, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2 }
%struct.nk_style_window = type { %struct.nk_style_window_header, %struct.nk_style_item, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_color, %struct.nk_style_item, float, float, float, float, float, float, float, float, float, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2 }
%struct.nk_style_window_header = type { %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_item, %struct.nk_style_button, %struct.nk_style_button, i32, i32, i32, %struct.nk_color, %struct.nk_color, %struct.nk_color, i32, %struct.nk_vec2, %struct.nk_vec2, %struct.nk_vec2 }
%struct.nk_buffer = type { [2 x %struct.nk_buffer_marker], %struct.nk_allocator, i32, %struct.nk_memory, float, i64, i64, i64, i64 }
%struct.nk_buffer_marker = type { i32, i64 }
%struct.nk_allocator = type { %union.nk_handle, ptr, ptr }
%struct.nk_memory = type { ptr, i64 }
%struct.nk_clipboard = type { %union.nk_handle, ptr, ptr }
%struct.nk_configuration_stacks = type { %struct.nk_config_stack_style_item, %struct.nk_config_stack_float, %struct.nk_config_stack_vec2, %struct.nk_config_stack_flags, %struct.nk_config_stack_color, %struct.nk_config_stack_user_font, %struct.nk_config_stack_button_behavior }
%struct.nk_config_stack_style_item = type { i32, [16 x %struct.nk_config_stack_style_item_element] }
%struct.nk_config_stack_style_item_element = type { ptr, %struct.nk_style_item }
%struct.nk_config_stack_float = type { i32, [32 x %struct.nk_config_stack_float_element] }
%struct.nk_config_stack_float_element = type { ptr, float }
%struct.nk_config_stack_vec2 = type { i32, [16 x %struct.nk_config_stack_vec2_element] }
%struct.nk_config_stack_vec2_element = type { ptr, %struct.nk_vec2 }
%struct.nk_config_stack_flags = type { i32, [32 x %struct.nk_config_stack_flags_element] }
%struct.nk_config_stack_flags_element = type { ptr, i32 }
%struct.nk_config_stack_color = type { i32, [32 x %struct.nk_config_stack_color_element] }
%struct.nk_config_stack_color_element = type { ptr, %struct.nk_color }
%struct.nk_config_stack_user_font = type { i32, [8 x %struct.nk_config_stack_user_font_element] }
%struct.nk_config_stack_user_font_element = type { ptr, ptr }
%struct.nk_config_stack_button_behavior = type { i32, [8 x %struct.nk_config_stack_button_behavior_element] }
%struct.nk_config_stack_button_behavior_element = type { ptr, i32 }
%struct.nk_draw_list = type { %struct.nk_rect, [12 x %struct.nk_vec2], %struct.nk_convert_config, ptr, ptr, ptr, i32, i32, i32, i64, i32, i32, i32, i32 }
%struct.nk_convert_config = type { float, i32, i32, i32, i32, i32, %struct.nk_draw_null_texture, ptr, i64, i64 }
%struct.nk_draw_null_texture = type { %union.nk_handle, %struct.nk_vec2 }
%struct.nk_text_edit = type { %struct.nk_clipboard, %struct.nk_str, ptr, %struct.nk_vec2, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, float, %struct.nk_text_undo_state }
%struct.nk_str = type { %struct.nk_buffer, i32 }
%struct.nk_text_undo_state = type { [99 x %struct.nk_text_undo_record], [999 x i32], i16, i16, i16, i16 }
%struct.nk_text_undo_record = type { i32, i16, i16, i16 }
%struct.nk_command_buffer = type { ptr, %struct.nk_rect, i32, %union.nk_handle, i64, i64, i64 }
%struct.nk_pool = type { %struct.nk_allocator, i32, i32, ptr, ptr, i32, i64, i64 }
%struct.nk_user_font = type { %union.nk_handle, float, ptr, ptr, %union.nk_handle }
%struct.nk_window = type { i32, i32, [64 x i8], i32, %struct.nk_rect, %struct.nk_scroll, %struct.nk_command_buffer, ptr, float, %struct.nk_property_state, %struct.nk_popup_state, %struct.nk_edit_state, i32, ptr, i32, ptr, ptr, ptr }
%struct.nk_scroll = type { i32, i32 }
%struct.nk_property_state = type { i32, i32, [64 x i8], i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.nk_popup_state = type { ptr, i32, %struct.nk_popup_buffer, i32, i32, i32, i32, i32, i32, %struct.nk_rect }
%struct.nk_popup_buffer = type { i64, i64, i64, i64, i32 }
%struct.nk_edit_state = type { i32, i32, i32, i32, i32, i32, i32, i32, %struct.nk_scroll, i8, i8 }
%struct.nk_panel = type { i32, i32, %struct.nk_rect, ptr, ptr, float, float, float, float, float, float, i32, %struct.nk_rect, %struct.nk_menu_state, %struct.nk_row_layout, %struct.nk_chart, ptr, ptr }
%struct.nk_menu_state = type { float, float, float, float, %struct.nk_scroll }
%struct.nk_row_layout = type { i32, i32, float, float, i32, ptr, float, float, float, float, %struct.nk_rect, i32, [16 x float] }
%struct.nk_chart = type { i32, float, float, float, float, [4 x %struct.nk_chart_slot] }
%struct.nk_chart_slot = type { i32, %struct.nk_color, %struct.nk_color, float, float, float, i32, %struct.nk_vec2, i32 }

@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@__PRETTY_FUNCTION__.nk_begin_titled = external hidden unnamed_addr constant [99 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [21 x i8], align 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) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, <2 x float> } @nk_rect(float noundef, float noundef, float noundef, float noundef) #1

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL10nk_memcopyPvPKvm(ptr noundef, ptr noundef, i64 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i32 @nk_input_has_mouse_click_down_in_rect(ptr noundef, i32 noundef, <2 x float>, <2 x float>, i32 noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i32 @nk_input_is_mouse_hovering_rect(ptr noundef, <2 x float>, <2 x float>) #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL16nk_remove_windowP10nk_contextP9nk_window(ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local i32 @nk_begin_titled(ptr noundef %0, ptr noundef %1, ptr noundef %2, <2 x float> %3, <2 x float> %4, i32 noundef %5) #6 {
  %7 = alloca i32, align 4
  %8 = alloca %struct.nk_rect, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca float, align 4
  %24 = alloca %struct.nk_rect, align 4
  %25 = alloca %struct.nk_rect, align 4
  %26 = alloca %struct.nk_rect, align 4
  %27 = alloca %struct.nk_rect, align 4
  %28 = alloca %struct.nk_rect, align 4
  %29 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %8, i32 0, i32 0
  store <2 x float> %3, ptr %29, align 4
  %30 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %8, i32 0, i32 1
  store <2 x float> %4, ptr %30, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store i32 %5, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !9
  %31 = load ptr, ptr %9, align 8, !tbaa !5
  %32 = icmp ne ptr %31, null
  br i1 %32, label %33, label %34

33:                                               ; preds = %6
  br label %36

34:                                               ; preds = %6
  call void @__assert_fail(ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 20212, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

35:                                               ; No predecessors!
  br label %36

36:                                               ; preds = %35, %33
  %37 = load ptr, ptr %10, align 8, !tbaa !5
  %38 = icmp ne ptr %37, null
  br i1 %38, label %39, label %40

39:                                               ; preds = %36
  br label %42

40:                                               ; preds = %36
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 20213, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

41:                                               ; No predecessors!
  br label %42

42:                                               ; preds = %41, %39
  %43 = load ptr, ptr %11, align 8, !tbaa !5
  %44 = icmp ne ptr %43, null
  br i1 %44, label %45, label %46

45:                                               ; preds = %42
  br label %48

46:                                               ; preds = %42
  call void @__assert_fail(ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 20214, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

47:                                               ; No predecessors!
  br label %48

48:                                               ; preds = %47, %45
  %49 = load ptr, ptr %9, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.nk_context, ptr %49, i32 0, i32 1
  %51 = getelementptr inbounds %struct.nk_style, ptr %50, i32 0, i32 0
  %52 = load ptr, ptr %51, align 8, !tbaa !11
  %53 = icmp ne ptr %52, null
  br i1 %53, label %54, label %63

54:                                               ; preds = %48
  %55 = load ptr, ptr %9, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.nk_context, ptr %55, i32 0, i32 1
  %57 = getelementptr inbounds %struct.nk_style, ptr %56, i32 0, i32 0
  %58 = load ptr, ptr %57, align 8, !tbaa !11
  %59 = getelementptr inbounds %struct.nk_user_font, ptr %58, i32 0, i32 2
  %60 = load ptr, ptr %59, align 8, !tbaa !64
  %61 = icmp ne ptr %60, null
  br i1 %61, label %62, label %63

62:                                               ; preds = %54
  br label %63

63:                                               ; preds = %62, %54, %48
  %64 = phi i1 [ false, %54 ], [ false, %48 ], [ true, %62 ]
  br i1 %64, label %65, label %66

65:                                               ; preds = %63
  br label %68

66:                                               ; preds = %63
  call void @__assert_fail(ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 20215, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

67:                                               ; No predecessors!
  br label %68

68:                                               ; preds = %67, %65
  %69 = load ptr, ptr %9, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.nk_context, ptr %69, i32 0, i32 17
  %71 = load ptr, ptr %70, align 8, !tbaa !66
  %72 = icmp ne ptr %71, null
  br i1 %72, label %74, label %73

73:                                               ; preds = %68
  br label %74

74:                                               ; preds = %73, %68
  %75 = phi i1 [ false, %68 ], [ true, %73 ]
  br i1 %75, label %76, label %77

76:                                               ; preds = %74
  br label %79

77:                                               ; preds = %74
  call void @__assert_fail(ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 20216, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

78:                                               ; No predecessors!
  br label %79

79:                                               ; preds = %78, %76
  %80 = load ptr, ptr %9, align 8, !tbaa !5
  %81 = icmp ne ptr %80, null
  br i1 %81, label %82, label %93

82:                                               ; preds = %79
  %83 = load ptr, ptr %9, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.nk_context, ptr %83, i32 0, i32 17
  %85 = load ptr, ptr %84, align 8, !tbaa !66
  %86 = icmp ne ptr %85, null
  br i1 %86, label %93, label %87

87:                                               ; preds = %82
  %88 = load ptr, ptr %11, align 8, !tbaa !5
  %89 = icmp ne ptr %88, null
  br i1 %89, label %90, label %93

90:                                               ; preds = %87
  %91 = load ptr, ptr %10, align 8, !tbaa !5
  %92 = icmp ne ptr %91, null
  br i1 %92, label %94, label %93

93:                                               ; preds = %90, %87, %82, %79
  store i32 0, ptr %7, align 4
  store i32 1, ptr %18, align 4
  br label %831

94:                                               ; preds = %90
  %95 = load ptr, ptr %9, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.nk_context, ptr %95, i32 0, i32 1
  store ptr %96, ptr %14, align 8, !tbaa !5
  %97 = load ptr, ptr %10, align 8, !tbaa !5
  %98 = call i32 @nk_strlen(ptr noundef %97)
  store i32 %98, ptr %16, align 4, !tbaa !9
  %99 = load ptr, ptr %10, align 8, !tbaa !5
  %100 = load i32, ptr %16, align 4, !tbaa !9
  %101 = call i32 @nk_murmur_hash(ptr noundef %99, i32 noundef %100, i32 noundef 64)
  store i32 %101, ptr %15, align 4, !tbaa !9
  %102 = load ptr, ptr %9, align 8, !tbaa !5
  %103 = load i32, ptr %15, align 4, !tbaa !9
  %104 = load ptr, ptr %10, align 8, !tbaa !5
  %105 = call noundef ptr @_ZL14nk_find_windowP10nk_contextjPKc(ptr noundef %102, i32 noundef %103, ptr noundef %104)
  store ptr %105, ptr %13, align 8, !tbaa !5
  %106 = load ptr, ptr %13, align 8, !tbaa !5
  %107 = icmp ne ptr %106, null
  br i1 %107, label %177, label %108

108:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %109 = load i32, ptr %16, align 4, !tbaa !9
  %110 = sext i32 %109 to i64
  store i64 %110, ptr %19, align 8, !tbaa !67
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  %112 = call noundef ptr @_ZL16nk_create_windowP10nk_context(ptr noundef %111)
  store ptr %112, ptr %13, align 8, !tbaa !5
  %113 = load ptr, ptr %13, align 8, !tbaa !5
  %114 = icmp ne ptr %113, null
  br i1 %114, label %115, label %116

115:                                              ; preds = %108
  br label %118

116:                                              ; preds = %108
  call void @__assert_fail(ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 20229, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

117:                                              ; No predecessors!
  br label %118

118:                                              ; preds = %117, %115
  %119 = load ptr, ptr %13, align 8, !tbaa !5
  %120 = icmp ne ptr %119, null
  br i1 %120, label %122, label %121

121:                                              ; preds = %118
  store i32 0, ptr %7, align 4
  store i32 1, ptr %18, align 4
  br label %174

122:                                              ; preds = %118
  %123 = load i32, ptr %12, align 4, !tbaa !9
  %124 = and i32 %123, 256
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %126, label %129

126:                                              ; preds = %122
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef %127, ptr noundef %128, i32 noundef 1)
  br label %132

129:                                              ; preds = %122
  %130 = load ptr, ptr %9, align 8, !tbaa !5
  %131 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef %130, ptr noundef %131, i32 noundef 0)
  br label %132

132:                                              ; preds = %129, %126
  %133 = load ptr, ptr %13, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.nk_window, ptr %133, i32 0, i32 6
  %135 = load ptr, ptr %9, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.nk_context, ptr %135, i32 0, i32 2
  call void @_ZL22nk_command_buffer_initP17nk_command_bufferP9nk_buffer19nk_command_clipping(ptr noundef %134, ptr noundef %136, i32 noundef 1)
  %137 = load i32, ptr %12, align 4, !tbaa !9
  %138 = load ptr, ptr %13, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.nk_window, ptr %138, i32 0, i32 3
  store i32 %137, ptr %139, align 8, !tbaa !68
  %140 = load ptr, ptr %13, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.nk_window, ptr %140, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %141, ptr align 4 %8, i64 16, i1 false), !tbaa.struct !76
  %142 = load i32, ptr %15, align 4, !tbaa !9
  %143 = load ptr, ptr %13, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.nk_window, ptr %143, i32 0, i32 1
  store i32 %142, ptr %144, align 4, !tbaa !78
  %145 = load i64, ptr %19, align 8, !tbaa !67
  %146 = icmp ult i64 %145, 63
  br i1 %146, label %147, label %149

147:                                              ; preds = %132
  %148 = load i64, ptr %19, align 8, !tbaa !67
  br label %150

149:                                              ; preds = %132
  br label %150

150:                                              ; preds = %149, %147
  %151 = phi i64 [ %148, %147 ], [ 63, %149 ]
  store i64 %151, ptr %19, align 8, !tbaa !67
  %152 = load ptr, ptr %13, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.nk_window, ptr %152, i32 0, i32 2
  %154 = getelementptr inbounds [64 x i8], ptr %153, i64 0, i64 0
  %155 = load ptr, ptr %10, align 8, !tbaa !5
  %156 = load i64, ptr %19, align 8, !tbaa !67
  %157 = call noundef ptr @_ZL10nk_memcopyPvPKvm(ptr noundef %154, ptr noundef %155, i64 noundef %156)
  %158 = load ptr, ptr %13, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.nk_window, ptr %158, i32 0, i32 2
  %160 = load i64, ptr %19, align 8, !tbaa !67
  %161 = getelementptr inbounds [64 x i8], ptr %159, i64 0, i64 %160
  store i8 0, ptr %161, align 1, !tbaa !79
  %162 = load ptr, ptr %13, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.nk_window, ptr %162, i32 0, i32 10
  %164 = getelementptr inbounds %struct.nk_popup_state, ptr %163, i32 0, i32 0
  store ptr null, ptr %164, align 8, !tbaa !80
  %165 = load ptr, ptr %9, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.nk_context, ptr %165, i32 0, i32 16
  %167 = load ptr, ptr %166, align 8, !tbaa !81
  %168 = icmp ne ptr %167, null
  br i1 %168, label %173, label %169

169:                                              ; preds = %150
  %170 = load ptr, ptr %13, align 8, !tbaa !5
  %171 = load ptr, ptr %9, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.nk_context, ptr %171, i32 0, i32 16
  store ptr %170, ptr %172, align 8, !tbaa !81
  br label %173

173:                                              ; preds = %169, %150
  store i32 0, ptr %18, align 4
  br label %174

174:                                              ; preds = %173, %121
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  %175 = load i32, ptr %18, align 4
  switch i32 %175, label %831 [
    i32 0, label %176
  ]

176:                                              ; preds = %174
  br label %230

177:                                              ; preds = %94
  %178 = load ptr, ptr %13, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.nk_window, ptr %178, i32 0, i32 3
  %180 = load i32, ptr %179, align 8, !tbaa !68
  %181 = and i32 %180, -2048
  store i32 %181, ptr %179, align 8, !tbaa !68
  %182 = load i32, ptr %12, align 4, !tbaa !9
  %183 = load ptr, ptr %13, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.nk_window, ptr %183, i32 0, i32 3
  %185 = load i32, ptr %184, align 8, !tbaa !68
  %186 = or i32 %185, %182
  store i32 %186, ptr %184, align 8, !tbaa !68
  %187 = load ptr, ptr %13, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.nk_window, ptr %187, i32 0, i32 3
  %189 = load i32, ptr %188, align 8, !tbaa !68
  %190 = and i32 %189, 6
  %191 = icmp ne i32 %190, 0
  br i1 %191, label %195, label %192

192:                                              ; preds = %177
  %193 = load ptr, ptr %13, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.nk_window, ptr %193, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %194, ptr align 4 %8, i64 16, i1 false), !tbaa.struct !76
  br label %195

195:                                              ; preds = %192, %177
  %196 = load ptr, ptr %13, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.nk_window, ptr %196, i32 0, i32 0
  %198 = load i32, ptr %197, align 8, !tbaa !82
  %199 = load ptr, ptr %9, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.nk_context, ptr %199, i32 0, i32 20
  %201 = load i32, ptr %200, align 4, !tbaa !83
  %202 = icmp ne i32 %198, %201
  br i1 %202, label %203, label %204

203:                                              ; preds = %195
  br label %206

204:                                              ; preds = %195
  call void @__assert_fail(ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 20259, ptr noundef @__PRETTY_FUNCTION__.nk_begin_titled) #9
  unreachable

205:                                              ; No predecessors!
  br label %206

206:                                              ; preds = %205, %203
  %207 = load ptr, ptr %9, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.nk_context, ptr %207, i32 0, i32 20
  %209 = load i32, ptr %208, align 4, !tbaa !83
  %210 = load ptr, ptr %13, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.nk_window, ptr %210, i32 0, i32 0
  store i32 %209, ptr %211, align 8, !tbaa !82
  %212 = load ptr, ptr %9, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.nk_context, ptr %212, i32 0, i32 16
  %214 = load ptr, ptr %213, align 8, !tbaa !81
  %215 = icmp ne ptr %214, null
  br i1 %215, label %229, label %216

216:                                              ; preds = %206
  %217 = load ptr, ptr %13, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.nk_window, ptr %217, i32 0, i32 3
  %219 = load i32, ptr %218, align 8, !tbaa !68
  %220 = and i32 %219, 8192
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %229, label %222

222:                                              ; preds = %216
  %223 = load ptr, ptr %13, align 8, !tbaa !5
  %224 = load ptr, ptr %9, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.nk_context, ptr %224, i32 0, i32 16
  store ptr %223, ptr %225, align 8, !tbaa !81
  %226 = load ptr, ptr %13, align 8, !tbaa !5
  %227 = load ptr, ptr %9, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.nk_context, ptr %227, i32 0, i32 15
  store ptr %226, ptr %228, align 8, !tbaa !84
  br label %229

229:                                              ; preds = %222, %216, %206
  br label %230

230:                                              ; preds = %229, %176
  %231 = load ptr, ptr %13, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.nk_window, ptr %231, i32 0, i32 3
  %233 = load i32, ptr %232, align 8, !tbaa !68
  %234 = and i32 %233, 8192
  %235 = icmp ne i32 %234, 0
  br i1 %235, label %236, label %242

236:                                              ; preds = %230
  %237 = load ptr, ptr %13, align 8, !tbaa !5
  %238 = load ptr, ptr %9, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.nk_context, ptr %238, i32 0, i32 17
  store ptr %237, ptr %239, align 8, !tbaa !66
  %240 = load ptr, ptr %13, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.nk_window, ptr %240, i32 0, i32 7
  store ptr null, ptr %241, align 8, !tbaa !85
  store i32 0, ptr %7, align 4
  store i32 1, ptr %18, align 4
  br label %831

242:                                              ; preds = %230
  %243 = load ptr, ptr %9, align 8, !tbaa !5
  %244 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZL8nk_startP10nk_contextP9nk_window(ptr noundef %243, ptr noundef %244)
  br label %245

245:                                              ; preds = %242
  %246 = load ptr, ptr %13, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.nk_window, ptr %246, i32 0, i32 3
  %248 = load i32, ptr %247, align 8, !tbaa !68
  %249 = and i32 %248, 8192
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %805, label %251

251:                                              ; preds = %245
  %252 = load ptr, ptr %13, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.nk_window, ptr %252, i32 0, i32 3
  %254 = load i32, ptr %253, align 8, !tbaa !68
  %255 = and i32 %254, 1024
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %805, label %257

257:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %258 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %258, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %259 = load ptr, ptr %9, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.nk_context, ptr %259, i32 0, i32 1
  %261 = getelementptr inbounds %struct.nk_style, ptr %260, i32 0, i32 0
  %262 = load ptr, ptr %261, align 8, !tbaa !11
  %263 = getelementptr inbounds %struct.nk_user_font, ptr %262, i32 0, i32 1
  %264 = load float, ptr %263, align 8, !tbaa !86
  %265 = load ptr, ptr %14, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.nk_style, ptr %265, i32 0, i32 21
  %267 = getelementptr inbounds %struct.nk_style_window, ptr %266, i32 0, i32 0
  %268 = getelementptr inbounds %struct.nk_style_window_header, ptr %267, i32 0, i32 12
  %269 = getelementptr inbounds %struct.nk_vec2, ptr %268, i32 0, i32 1
  %270 = load float, ptr %269, align 4, !tbaa !87
  %271 = call float @llvm.fmuladd.f32(float 2.000000e+00, float %270, float %264)
  %272 = load ptr, ptr %14, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.nk_style, ptr %272, i32 0, i32 21
  %274 = getelementptr inbounds %struct.nk_style_window, ptr %273, i32 0, i32 0
  %275 = getelementptr inbounds %struct.nk_style_window_header, ptr %274, i32 0, i32 13
  %276 = getelementptr inbounds %struct.nk_vec2, ptr %275, i32 0, i32 1
  %277 = load float, ptr %276, align 4, !tbaa !88
  %278 = call float @llvm.fmuladd.f32(float 2.000000e+00, float %277, float %271)
  store float %278, ptr %23, align 4, !tbaa !77
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #8
  %279 = load ptr, ptr %13, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.nk_window, ptr %279, i32 0, i32 3
  %281 = load i32, ptr %280, align 8, !tbaa !68
  %282 = and i32 %281, 32768
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %287, label %284

284:                                              ; preds = %257
  %285 = load ptr, ptr %13, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.nk_window, ptr %285, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 4 %286, i64 16, i1 false), !tbaa.struct !76
  br label %306

287:                                              ; preds = %257
  %288 = load ptr, ptr %13, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.nk_window, ptr %288, i32 0, i32 4
  %290 = getelementptr inbounds %struct.nk_rect, ptr %289, i32 0, i32 0
  %291 = load float, ptr %290, align 4, !tbaa !89
  %292 = load ptr, ptr %13, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.nk_window, ptr %292, i32 0, i32 4
  %294 = getelementptr inbounds %struct.nk_rect, ptr %293, i32 0, i32 1
  %295 = load float, ptr %294, align 4, !tbaa !90
  %296 = load ptr, ptr %13, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.nk_window, ptr %296, i32 0, i32 4
  %298 = getelementptr inbounds %struct.nk_rect, ptr %297, i32 0, i32 2
  %299 = load float, ptr %298, align 4, !tbaa !91
  %300 = load float, ptr %23, align 4, !tbaa !77
  %301 = call { <2 x float>, <2 x float> } @nk_rect(float noundef %291, float noundef %295, float noundef %299, float noundef %300)
  %302 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %24, i32 0, i32 0
  %303 = extractvalue { <2 x float>, <2 x float> } %301, 0
  store <2 x float> %303, ptr %302, align 4
  %304 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %24, i32 0, i32 1
  %305 = extractvalue { <2 x float>, <2 x float> } %301, 1
  store <2 x float> %305, ptr %304, align 4
  br label %306

306:                                              ; preds = %287, %284
  %307 = load ptr, ptr %9, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.nk_context, ptr %307, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %25, ptr align 4 %24, i64 16, i1 false), !tbaa.struct !76
  %309 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %25, i32 0, i32 0
  %310 = load <2 x float>, ptr %309, align 4
  %311 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %25, i32 0, i32 1
  %312 = load <2 x float>, ptr %311, align 4
  %313 = call i32 @nk_input_has_mouse_click_down_in_rect(ptr noundef %308, i32 noundef 0, <2 x float> %310, <2 x float> %312, i32 noundef 1)
  store i32 %313, ptr %20, align 4, !tbaa !9
  %314 = load i32, ptr %20, align 4, !tbaa !9
  %315 = icmp ne i32 %314, 0
  br i1 %315, label %316, label %325

316:                                              ; preds = %306
  %317 = load ptr, ptr %9, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.nk_context, ptr %317, i32 0, i32 0
  %319 = getelementptr inbounds %struct.nk_input, ptr %318, i32 0, i32 1
  %320 = getelementptr inbounds %struct.nk_mouse, ptr %319, i32 0, i32 0
  %321 = getelementptr inbounds [4 x %struct.nk_mouse_button], ptr %320, i64 0, i64 0
  %322 = getelementptr inbounds %struct.nk_mouse_button, ptr %321, i32 0, i32 1
  %323 = load i32, ptr %322, align 4, !tbaa !92
  %324 = icmp ne i32 %323, 0
  br label %325

325:                                              ; preds = %316, %306
  %326 = phi i1 [ false, %306 ], [ %324, %316 ]
  %327 = zext i1 %326 to i32
  store i32 %327, ptr %20, align 4, !tbaa !9
  %328 = load ptr, ptr %9, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.nk_context, ptr %328, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %26, ptr align 4 %24, i64 16, i1 false), !tbaa.struct !76
  %330 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %26, i32 0, i32 0
  %331 = load <2 x float>, ptr %330, align 4
  %332 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %26, i32 0, i32 1
  %333 = load <2 x float>, ptr %332, align 4
  %334 = call i32 @nk_input_is_mouse_hovering_rect(ptr noundef %329, <2 x float> %331, <2 x float> %333)
  store i32 %334, ptr %21, align 4, !tbaa !9
  %335 = load ptr, ptr %13, align 8, !tbaa !5
  %336 = load ptr, ptr %9, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.nk_context, ptr %336, i32 0, i32 16
  %338 = load ptr, ptr %337, align 8, !tbaa !81
  %339 = icmp ne ptr %335, %338
  br i1 %339, label %340, label %527

340:                                              ; preds = %325
  %341 = load i32, ptr %21, align 4, !tbaa !9
  %342 = icmp ne i32 %341, 0
  br i1 %342, label %343, label %527

343:                                              ; preds = %340
  %344 = load ptr, ptr %9, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.nk_context, ptr %344, i32 0, i32 0
  %346 = getelementptr inbounds %struct.nk_input, ptr %345, i32 0, i32 1
  %347 = getelementptr inbounds %struct.nk_mouse, ptr %346, i32 0, i32 0
  %348 = getelementptr inbounds [4 x %struct.nk_mouse_button], ptr %347, i64 0, i64 0
  %349 = getelementptr inbounds %struct.nk_mouse_button, ptr %348, i32 0, i32 0
  %350 = load i32, ptr %349, align 4, !tbaa !94
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %527, label %352

352:                                              ; preds = %343
  %353 = load ptr, ptr %13, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.nk_window, ptr %353, i32 0, i32 15
  %355 = load ptr, ptr %354, align 8, !tbaa !95
  store ptr %355, ptr %22, align 8, !tbaa !5
  br label %356

356:                                              ; preds = %525, %352
  %357 = load ptr, ptr %22, align 8, !tbaa !5
  %358 = icmp ne ptr %357, null
  br i1 %358, label %359, label %526

359:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #8
  %360 = load ptr, ptr %22, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.nk_window, ptr %360, i32 0, i32 3
  %362 = load i32, ptr %361, align 8, !tbaa !68
  %363 = and i32 %362, 32768
  %364 = icmp ne i32 %363, 0
  br i1 %364, label %368, label %365

365:                                              ; preds = %359
  %366 = load ptr, ptr %22, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.nk_window, ptr %366, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %27, ptr align 4 %367, i64 16, i1 false), !tbaa.struct !76
  br label %387

368:                                              ; preds = %359
  %369 = load ptr, ptr %22, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.nk_window, ptr %369, i32 0, i32 4
  %371 = getelementptr inbounds %struct.nk_rect, ptr %370, i32 0, i32 0
  %372 = load float, ptr %371, align 4, !tbaa !89
  %373 = load ptr, ptr %22, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.nk_window, ptr %373, i32 0, i32 4
  %375 = getelementptr inbounds %struct.nk_rect, ptr %374, i32 0, i32 1
  %376 = load float, ptr %375, align 4, !tbaa !90
  %377 = load ptr, ptr %22, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.nk_window, ptr %377, i32 0, i32 4
  %379 = getelementptr inbounds %struct.nk_rect, ptr %378, i32 0, i32 2
  %380 = load float, ptr %379, align 4, !tbaa !91
  %381 = load float, ptr %23, align 4, !tbaa !77
  %382 = call { <2 x float>, <2 x float> } @nk_rect(float noundef %372, float noundef %376, float noundef %380, float noundef %381)
  %383 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, 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 %27, i32 0, i32 1
  %386 = extractvalue { <2 x float>, <2 x float> } %382, 1
  store <2 x float> %386, ptr %385, align 4
  br label %387

387:                                              ; preds = %368, %365
  %388 = getelementptr inbounds %struct.nk_rect, ptr %27, i32 0, i32 0
  %389 = load float, ptr %388, align 4, !tbaa !96
  %390 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 0
  %391 = load float, ptr %390, align 4, !tbaa !96
  %392 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 2
  %393 = load float, ptr %392, align 4, !tbaa !97
  %394 = fadd float %391, %393
  %395 = fcmp olt float %389, %394
  br i1 %395, label %396, label %430

396:                                              ; preds = %387
  %397 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 0
  %398 = load float, ptr %397, align 4, !tbaa !96
  %399 = getelementptr inbounds %struct.nk_rect, ptr %27, i32 0, i32 0
  %400 = load float, ptr %399, align 4, !tbaa !96
  %401 = getelementptr inbounds %struct.nk_rect, ptr %27, i32 0, i32 2
  %402 = load float, ptr %401, align 4, !tbaa !97
  %403 = fadd float %400, %402
  %404 = fcmp olt float %398, %403
  br i1 %404, label %405, label %430

405:                                              ; preds = %396
  %406 = getelementptr inbounds %struct.nk_rect, ptr %27, i32 0, i32 1
  %407 = load float, ptr %406, align 4, !tbaa !98
  %408 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 1
  %409 = load float, ptr %408, align 4, !tbaa !98
  %410 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 3
  %411 = load float, ptr %410, align 4, !tbaa !99
  %412 = fadd float %409, %411
  %413 = fcmp olt float %407, %412
  br i1 %413, label %414, label %430

414:                                              ; preds = %405
  %415 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 1
  %416 = load float, ptr %415, align 4, !tbaa !98
  %417 = getelementptr inbounds %struct.nk_rect, ptr %27, i32 0, i32 1
  %418 = load float, ptr %417, align 4, !tbaa !98
  %419 = getelementptr inbounds %struct.nk_rect, ptr %27, i32 0, i32 3
  %420 = load float, ptr %419, align 4, !tbaa !99
  %421 = fadd float %418, %420
  %422 = fcmp olt float %416, %421
  br i1 %422, label %423, label %430

423:                                              ; preds = %414
  %424 = load ptr, ptr %22, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.nk_window, ptr %424, i32 0, i32 3
  %426 = load i32, ptr %425, align 8, !tbaa !68
  %427 = and i32 %426, 8192
  %428 = icmp ne i32 %427, 0
  br i1 %428, label %430, label %429

429:                                              ; preds = %423
  store i32 3, ptr %18, align 4
  br label %523

430:                                              ; preds = %423, %414, %405, %396, %387
  %431 = load ptr, ptr %22, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.nk_window, ptr %431, i32 0, i32 10
  %433 = getelementptr inbounds %struct.nk_popup_state, ptr %432, i32 0, i32 0
  %434 = load ptr, ptr %433, align 8, !tbaa !80
  %435 = icmp ne ptr %434, null
  br i1 %435, label %436, label %519

436:                                              ; preds = %430
  %437 = load ptr, ptr %22, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.nk_window, ptr %437, i32 0, i32 10
  %439 = getelementptr inbounds %struct.nk_popup_state, ptr %438, i32 0, i32 4
  %440 = load i32, ptr %439, align 4, !tbaa !100
  %441 = icmp ne i32 %440, 0
  br i1 %441, label %442, label %519

442:                                              ; preds = %436
  %443 = load ptr, ptr %22, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.nk_window, ptr %443, i32 0, i32 3
  %445 = load i32, ptr %444, align 8, !tbaa !68
  %446 = and i32 %445, 8192
  %447 = icmp ne i32 %446, 0
  br i1 %447, label %519, label %448

448:                                              ; preds = %442
  %449 = load ptr, ptr %22, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.nk_window, ptr %449, i32 0, i32 10
  %451 = getelementptr inbounds %struct.nk_popup_state, ptr %450, i32 0, i32 0
  %452 = load ptr, ptr %451, align 8, !tbaa !80
  %453 = getelementptr inbounds %struct.nk_window, ptr %452, i32 0, i32 4
  %454 = getelementptr inbounds %struct.nk_rect, ptr %453, i32 0, i32 0
  %455 = load float, ptr %454, align 4, !tbaa !89
  %456 = load ptr, ptr %13, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.nk_window, ptr %456, i32 0, i32 4
  %458 = getelementptr inbounds %struct.nk_rect, ptr %457, i32 0, i32 0
  %459 = load float, ptr %458, align 4, !tbaa !89
  %460 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 2
  %461 = load float, ptr %460, align 4, !tbaa !97
  %462 = fadd float %459, %461
  %463 = fcmp olt float %455, %462
  br i1 %463, label %464, label %519

464:                                              ; preds = %448
  %465 = load ptr, ptr %13, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.nk_window, ptr %465, i32 0, i32 4
  %467 = getelementptr inbounds %struct.nk_rect, ptr %466, i32 0, i32 0
  %468 = load float, ptr %467, align 4, !tbaa !89
  %469 = load ptr, ptr %22, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.nk_window, ptr %469, i32 0, i32 10
  %471 = getelementptr inbounds %struct.nk_popup_state, ptr %470, i32 0, i32 0
  %472 = load ptr, ptr %471, align 8, !tbaa !80
  %473 = getelementptr inbounds %struct.nk_window, ptr %472, i32 0, i32 4
  %474 = getelementptr inbounds %struct.nk_rect, ptr %473, i32 0, i32 0
  %475 = load float, ptr %474, align 4, !tbaa !89
  %476 = load ptr, ptr %22, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.nk_window, ptr %476, i32 0, i32 10
  %478 = getelementptr inbounds %struct.nk_popup_state, ptr %477, i32 0, i32 0
  %479 = load ptr, ptr %478, align 8, !tbaa !80
  %480 = getelementptr inbounds %struct.nk_window, ptr %479, i32 0, i32 4
  %481 = getelementptr inbounds %struct.nk_rect, ptr %480, i32 0, i32 2
  %482 = load float, ptr %481, align 4, !tbaa !91
  %483 = fadd float %475, %482
  %484 = fcmp olt float %468, %483
  br i1 %484, label %485, label %519

485:                                              ; preds = %464
  %486 = load ptr, ptr %22, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.nk_window, ptr %486, i32 0, i32 10
  %488 = getelementptr inbounds %struct.nk_popup_state, ptr %487, i32 0, i32 0
  %489 = load ptr, ptr %488, align 8, !tbaa !80
  %490 = getelementptr inbounds %struct.nk_window, ptr %489, i32 0, i32 4
  %491 = getelementptr inbounds %struct.nk_rect, ptr %490, i32 0, i32 1
  %492 = load float, ptr %491, align 4, !tbaa !90
  %493 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 1
  %494 = load float, ptr %493, align 4, !tbaa !98
  %495 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 3
  %496 = load float, ptr %495, align 4, !tbaa !99
  %497 = fadd float %494, %496
  %498 = fcmp olt float %492, %497
  br i1 %498, label %499, label %519

499:                                              ; preds = %485
  %500 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 1
  %501 = load float, ptr %500, align 4, !tbaa !98
  %502 = load ptr, ptr %22, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.nk_window, ptr %502, i32 0, i32 10
  %504 = getelementptr inbounds %struct.nk_popup_state, ptr %503, i32 0, i32 0
  %505 = load ptr, ptr %504, align 8, !tbaa !80
  %506 = getelementptr inbounds %struct.nk_window, ptr %505, i32 0, i32 4
  %507 = getelementptr inbounds %struct.nk_rect, ptr %506, i32 0, i32 1
  %508 = load float, ptr %507, align 4, !tbaa !90
  %509 = load ptr, ptr %22, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.nk_window, ptr %509, i32 0, i32 10
  %511 = getelementptr inbounds %struct.nk_popup_state, ptr %510, i32 0, i32 0
  %512 = load ptr, ptr %511, align 8, !tbaa !80
  %513 = getelementptr inbounds %struct.nk_window, ptr %512, i32 0, i32 4
  %514 = getelementptr inbounds %struct.nk_rect, ptr %513, i32 0, i32 3
  %515 = load float, ptr %514, align 4, !tbaa !101
  %516 = fadd float %508, %515
  %517 = fcmp olt float %501, %516
  br i1 %517, label %518, label %519

518:                                              ; preds = %499
  store i32 3, ptr %18, align 4
  br label %523

519:                                              ; preds = %499, %485, %464, %448, %442, %436, %430
  %520 = load ptr, ptr %22, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.nk_window, ptr %520, i32 0, i32 15
  %522 = load ptr, ptr %521, align 8, !tbaa !95
  store ptr %522, ptr %22, align 8, !tbaa !5
  store i32 0, ptr %18, align 4
  br label %523

523:                                              ; preds = %519, %518, %429
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  %524 = load i32, ptr %18, align 4
  switch i32 %524, label %833 [
    i32 0, label %525
    i32 3, label %526
  ]

525:                                              ; preds = %523
  br label %356, !llvm.loop !102

526:                                              ; preds = %523, %356
  br label %527

527:                                              ; preds = %526, %343, %340, %325
  %528 = load ptr, ptr %22, align 8, !tbaa !5
  %529 = icmp ne ptr %528, null
  br i1 %529, label %530, label %720

530:                                              ; preds = %527
  %531 = load i32, ptr %20, align 4, !tbaa !9
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %720

533:                                              ; preds = %530
  %534 = load ptr, ptr %13, align 8, !tbaa !5
  %535 = load ptr, ptr %9, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.nk_context, ptr %535, i32 0, i32 15
  %537 = load ptr, ptr %536, align 8, !tbaa !84
  %538 = icmp ne ptr %534, %537
  br i1 %538, label %539, label %720

539:                                              ; preds = %533
  %540 = load ptr, ptr %13, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.nk_window, ptr %540, i32 0, i32 15
  %542 = load ptr, ptr %541, align 8, !tbaa !95
  store ptr %542, ptr %22, align 8, !tbaa !5
  br label %543

543:                                              ; preds = %718, %539
  %544 = load ptr, ptr %22, align 8, !tbaa !5
  %545 = icmp ne ptr %544, null
  br i1 %545, label %546, label %719

546:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #8
  %547 = load ptr, ptr %22, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.nk_window, ptr %547, i32 0, i32 3
  %549 = load i32, ptr %548, align 8, !tbaa !68
  %550 = and i32 %549, 32768
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %555, label %552

552:                                              ; preds = %546
  %553 = load ptr, ptr %22, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.nk_window, ptr %553, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %28, ptr align 4 %554, i64 16, i1 false), !tbaa.struct !76
  br label %574

555:                                              ; preds = %546
  %556 = load ptr, ptr %22, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.nk_window, ptr %556, i32 0, i32 4
  %558 = getelementptr inbounds %struct.nk_rect, ptr %557, i32 0, i32 0
  %559 = load float, ptr %558, align 4, !tbaa !89
  %560 = load ptr, ptr %22, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.nk_window, ptr %560, i32 0, i32 4
  %562 = getelementptr inbounds %struct.nk_rect, ptr %561, i32 0, i32 1
  %563 = load float, ptr %562, align 4, !tbaa !90
  %564 = load ptr, ptr %22, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.nk_window, ptr %564, i32 0, i32 4
  %566 = getelementptr inbounds %struct.nk_rect, ptr %565, i32 0, i32 2
  %567 = load float, ptr %566, align 4, !tbaa !91
  %568 = load float, ptr %23, align 4, !tbaa !77
  %569 = call { <2 x float>, <2 x float> } @nk_rect(float noundef %559, float noundef %563, float noundef %567, float noundef %568)
  %570 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %28, i32 0, i32 0
  %571 = extractvalue { <2 x float>, <2 x float> } %569, 0
  store <2 x float> %571, ptr %570, align 4
  %572 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %28, i32 0, i32 1
  %573 = extractvalue { <2 x float>, <2 x float> } %569, 1
  store <2 x float> %573, ptr %572, align 4
  br label %574

574:                                              ; preds = %555, %552
  %575 = getelementptr inbounds %struct.nk_rect, ptr %28, i32 0, i32 0
  %576 = load float, ptr %575, align 4, !tbaa !96
  %577 = load ptr, ptr %9, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.nk_context, ptr %577, i32 0, i32 0
  %579 = getelementptr inbounds %struct.nk_input, ptr %578, i32 0, i32 1
  %580 = getelementptr inbounds %struct.nk_mouse, ptr %579, i32 0, i32 1
  %581 = getelementptr inbounds %struct.nk_vec2, ptr %580, i32 0, i32 0
  %582 = load float, ptr %581, align 4, !tbaa !104
  %583 = fcmp ole float %576, %582
  br i1 %583, label %584, label %627

584:                                              ; preds = %574
  %585 = load ptr, ptr %9, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.nk_context, ptr %585, i32 0, i32 0
  %587 = getelementptr inbounds %struct.nk_input, ptr %586, i32 0, i32 1
  %588 = getelementptr inbounds %struct.nk_mouse, ptr %587, i32 0, i32 1
  %589 = getelementptr inbounds %struct.nk_vec2, ptr %588, i32 0, i32 0
  %590 = load float, ptr %589, align 4, !tbaa !104
  %591 = getelementptr inbounds %struct.nk_rect, ptr %28, i32 0, i32 0
  %592 = load float, ptr %591, align 4, !tbaa !96
  %593 = getelementptr inbounds %struct.nk_rect, ptr %28, i32 0, i32 2
  %594 = load float, ptr %593, align 4, !tbaa !97
  %595 = fadd float %592, %594
  %596 = fcmp olt float %590, %595
  br i1 %596, label %597, label %627

597:                                              ; preds = %584
  %598 = getelementptr inbounds %struct.nk_rect, ptr %28, i32 0, i32 1
  %599 = load float, ptr %598, align 4, !tbaa !98
  %600 = load ptr, ptr %9, align 8, !tbaa !5
  %601 = getelementptr inbounds %struct.nk_context, ptr %600, i32 0, i32 0
  %602 = getelementptr inbounds %struct.nk_input, ptr %601, i32 0, i32 1
  %603 = getelementptr inbounds %struct.nk_mouse, ptr %602, i32 0, i32 1
  %604 = getelementptr inbounds %struct.nk_vec2, ptr %603, i32 0, i32 1
  %605 = load float, ptr %604, align 4, !tbaa !105
  %606 = fcmp ole float %599, %605
  br i1 %606, label %607, label %627

607:                                              ; preds = %597
  %608 = load ptr, ptr %9, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.nk_context, ptr %608, i32 0, i32 0
  %610 = getelementptr inbounds %struct.nk_input, ptr %609, i32 0, i32 1
  %611 = getelementptr inbounds %struct.nk_mouse, ptr %610, i32 0, i32 1
  %612 = getelementptr inbounds %struct.nk_vec2, ptr %611, i32 0, i32 1
  %613 = load float, ptr %612, align 4, !tbaa !105
  %614 = getelementptr inbounds %struct.nk_rect, ptr %28, i32 0, i32 1
  %615 = load float, ptr %614, align 4, !tbaa !98
  %616 = getelementptr inbounds %struct.nk_rect, ptr %28, i32 0, i32 3
  %617 = load float, ptr %616, align 4, !tbaa !99
  %618 = fadd float %615, %617
  %619 = fcmp olt float %613, %618
  br i1 %619, label %620, label %627

620:                                              ; preds = %607
  %621 = load ptr, ptr %22, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.nk_window, ptr %621, i32 0, i32 3
  %623 = load i32, ptr %622, align 8, !tbaa !68
  %624 = and i32 %623, 8192
  %625 = icmp ne i32 %624, 0
  br i1 %625, label %627, label %626

626:                                              ; preds = %620
  store i32 5, ptr %18, align 4
  br label %716

627:                                              ; preds = %620, %607, %597, %584, %574
  %628 = load ptr, ptr %22, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.nk_window, ptr %628, i32 0, i32 10
  %630 = getelementptr inbounds %struct.nk_popup_state, ptr %629, i32 0, i32 0
  %631 = load ptr, ptr %630, align 8, !tbaa !80
  %632 = icmp ne ptr %631, null
  br i1 %632, label %633, label %712

633:                                              ; preds = %627
  %634 = load ptr, ptr %22, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.nk_window, ptr %634, i32 0, i32 10
  %636 = getelementptr inbounds %struct.nk_popup_state, ptr %635, i32 0, i32 4
  %637 = load i32, ptr %636, align 4, !tbaa !100
  %638 = icmp ne i32 %637, 0
  br i1 %638, label %639, label %712

639:                                              ; preds = %633
  %640 = load ptr, ptr %22, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.nk_window, ptr %640, i32 0, i32 3
  %642 = load i32, ptr %641, align 8, !tbaa !68
  %643 = and i32 %642, 8192
  %644 = icmp ne i32 %643, 0
  br i1 %644, label %712, label %645

645:                                              ; preds = %639
  %646 = load ptr, ptr %22, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.nk_window, ptr %646, i32 0, i32 10
  %648 = getelementptr inbounds %struct.nk_popup_state, ptr %647, i32 0, i32 0
  %649 = load ptr, ptr %648, align 8, !tbaa !80
  %650 = getelementptr inbounds %struct.nk_window, ptr %649, i32 0, i32 4
  %651 = getelementptr inbounds %struct.nk_rect, ptr %650, i32 0, i32 0
  %652 = load float, ptr %651, align 4, !tbaa !89
  %653 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 0
  %654 = load float, ptr %653, align 4, !tbaa !96
  %655 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 2
  %656 = load float, ptr %655, align 4, !tbaa !97
  %657 = fadd float %654, %656
  %658 = fcmp olt float %652, %657
  br i1 %658, label %659, label %712

659:                                              ; preds = %645
  %660 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 0
  %661 = load float, ptr %660, align 4, !tbaa !96
  %662 = load ptr, ptr %22, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.nk_window, ptr %662, i32 0, i32 10
  %664 = getelementptr inbounds %struct.nk_popup_state, ptr %663, i32 0, i32 0
  %665 = load ptr, ptr %664, align 8, !tbaa !80
  %666 = getelementptr inbounds %struct.nk_window, ptr %665, i32 0, i32 4
  %667 = getelementptr inbounds %struct.nk_rect, ptr %666, i32 0, i32 0
  %668 = load float, ptr %667, align 4, !tbaa !89
  %669 = load ptr, ptr %22, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.nk_window, ptr %669, i32 0, i32 10
  %671 = getelementptr inbounds %struct.nk_popup_state, ptr %670, i32 0, i32 0
  %672 = load ptr, ptr %671, align 8, !tbaa !80
  %673 = getelementptr inbounds %struct.nk_window, ptr %672, i32 0, i32 4
  %674 = getelementptr inbounds %struct.nk_rect, ptr %673, i32 0, i32 2
  %675 = load float, ptr %674, align 4, !tbaa !91
  %676 = fadd float %668, %675
  %677 = fcmp olt float %661, %676
  br i1 %677, label %678, label %712

678:                                              ; preds = %659
  %679 = load ptr, ptr %22, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.nk_window, ptr %679, i32 0, i32 10
  %681 = getelementptr inbounds %struct.nk_popup_state, ptr %680, i32 0, i32 0
  %682 = load ptr, ptr %681, align 8, !tbaa !80
  %683 = getelementptr inbounds %struct.nk_window, ptr %682, i32 0, i32 4
  %684 = getelementptr inbounds %struct.nk_rect, ptr %683, i32 0, i32 1
  %685 = load float, ptr %684, align 4, !tbaa !90
  %686 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 1
  %687 = load float, ptr %686, align 4, !tbaa !98
  %688 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 3
  %689 = load float, ptr %688, align 4, !tbaa !99
  %690 = fadd float %687, %689
  %691 = fcmp olt float %685, %690
  br i1 %691, label %692, label %712

692:                                              ; preds = %678
  %693 = getelementptr inbounds %struct.nk_rect, ptr %24, i32 0, i32 1
  %694 = load float, ptr %693, align 4, !tbaa !98
  %695 = load ptr, ptr %22, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.nk_window, ptr %695, i32 0, i32 10
  %697 = getelementptr inbounds %struct.nk_popup_state, ptr %696, i32 0, i32 0
  %698 = load ptr, ptr %697, align 8, !tbaa !80
  %699 = getelementptr inbounds %struct.nk_window, ptr %698, i32 0, i32 4
  %700 = getelementptr inbounds %struct.nk_rect, ptr %699, i32 0, i32 1
  %701 = load float, ptr %700, align 4, !tbaa !90
  %702 = load ptr, ptr %22, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.nk_window, ptr %702, i32 0, i32 10
  %704 = getelementptr inbounds %struct.nk_popup_state, ptr %703, i32 0, i32 0
  %705 = load ptr, ptr %704, align 8, !tbaa !80
  %706 = getelementptr inbounds %struct.nk_window, ptr %705, i32 0, i32 4
  %707 = getelementptr inbounds %struct.nk_rect, ptr %706, i32 0, i32 3
  %708 = load float, ptr %707, align 4, !tbaa !101
  %709 = fadd float %701, %708
  %710 = fcmp olt float %694, %709
  br i1 %710, label %711, label %712

711:                                              ; preds = %692
  store i32 5, ptr %18, align 4
  br label %716

712:                                              ; preds = %692, %678, %659, %645, %639, %633, %627
  %713 = load ptr, ptr %22, align 8, !tbaa !5
  %714 = getelementptr inbounds %struct.nk_window, ptr %713, i32 0, i32 15
  %715 = load ptr, ptr %714, align 8, !tbaa !95
  store ptr %715, ptr %22, align 8, !tbaa !5
  store i32 0, ptr %18, align 4
  br label %716

716:                                              ; preds = %712, %711, %626
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #8
  %717 = load i32, ptr %18, align 4
  switch i32 %717, label %833 [
    i32 0, label %718
    i32 5, label %719
  ]

718:                                              ; preds = %716
  br label %543, !llvm.loop !106

719:                                              ; preds = %716, %543
  br label %720

720:                                              ; preds = %719, %533, %530, %527
  %721 = load ptr, ptr %22, align 8, !tbaa !5
  %722 = icmp ne ptr %721, null
  br i1 %722, label %723, label %758

723:                                              ; preds = %720
  %724 = load ptr, ptr %13, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.nk_window, ptr %724, i32 0, i32 3
  %726 = load i32, ptr %725, align 8, !tbaa !68
  %727 = and i32 %726, 4096
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %758, label %729

729:                                              ; preds = %723
  %730 = load ptr, ptr %13, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.nk_window, ptr %730, i32 0, i32 3
  %732 = load i32, ptr %731, align 8, !tbaa !68
  %733 = and i32 %732, 256
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %735, label %758

735:                                              ; preds = %729
  %736 = load ptr, ptr %13, align 8, !tbaa !5
  %737 = getelementptr inbounds %struct.nk_window, ptr %736, i32 0, i32 3
  %738 = load i32, ptr %737, align 8, !tbaa !68
  %739 = or i32 %738, 4096
  store i32 %739, ptr %737, align 8, !tbaa !68
  %740 = load ptr, ptr %22, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.nk_window, ptr %740, i32 0, i32 3
  %742 = load i32, ptr %741, align 8, !tbaa !68
  %743 = and i32 %742, -4097
  store i32 %743, ptr %741, align 8, !tbaa !68
  %744 = load ptr, ptr %22, align 8, !tbaa !5
  %745 = load ptr, ptr %9, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.nk_context, ptr %745, i32 0, i32 16
  store ptr %744, ptr %746, align 8, !tbaa !81
  %747 = load ptr, ptr %22, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.nk_window, ptr %747, i32 0, i32 3
  %749 = load i32, ptr %748, align 8, !tbaa !68
  %750 = and i32 %749, 256
  %751 = icmp ne i32 %750, 0
  br i1 %751, label %757, label %752

752:                                              ; preds = %735
  %753 = load ptr, ptr %9, align 8, !tbaa !5
  %754 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_ZL16nk_remove_windowP10nk_contextP9nk_window(ptr noundef %753, ptr noundef %754)
  %755 = load ptr, ptr %9, align 8, !tbaa !5
  %756 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef %755, ptr noundef %756, i32 noundef 0)
  br label %757

757:                                              ; preds = %752, %735
  br label %804

758:                                              ; preds = %729, %723, %720
  %759 = load ptr, ptr %22, align 8, !tbaa !5
  %760 = icmp ne ptr %759, null
  br i1 %760, label %786, label %761

761:                                              ; preds = %758
  %762 = load ptr, ptr %9, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.nk_context, ptr %762, i32 0, i32 15
  %764 = load ptr, ptr %763, align 8, !tbaa !84
  %765 = load ptr, ptr %13, align 8, !tbaa !5
  %766 = icmp ne ptr %764, %765
  br i1 %766, label %767, label %786

767:                                              ; preds = %761
  %768 = load ptr, ptr %13, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.nk_window, ptr %768, i32 0, i32 3
  %770 = load i32, ptr %769, align 8, !tbaa !68
  %771 = and i32 %770, 256
  %772 = icmp ne i32 %771, 0
  br i1 %772, label %778, label %773

773:                                              ; preds = %767
  %774 = load ptr, ptr %9, align 8, !tbaa !5
  %775 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZL16nk_remove_windowP10nk_contextP9nk_window(ptr noundef %774, ptr noundef %775)
  %776 = load ptr, ptr %9, align 8, !tbaa !5
  %777 = load ptr, ptr %13, align 8, !tbaa !5
  call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef %776, ptr noundef %777, i32 noundef 0)
  br label %778

778:                                              ; preds = %773, %767
  %779 = load ptr, ptr %13, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.nk_window, ptr %779, i32 0, i32 3
  %781 = load i32, ptr %780, align 8, !tbaa !68
  %782 = and i32 %781, -4097
  store i32 %782, ptr %780, align 8, !tbaa !68
  %783 = load ptr, ptr %13, align 8, !tbaa !5
  %784 = load ptr, ptr %9, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.nk_context, ptr %784, i32 0, i32 16
  store ptr %783, ptr %785, align 8, !tbaa !81
  br label %786

786:                                              ; preds = %778, %761, %758
  %787 = load ptr, ptr %9, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.nk_context, ptr %787, i32 0, i32 15
  %789 = load ptr, ptr %788, align 8, !tbaa !84
  %790 = load ptr, ptr %13, align 8, !tbaa !5
  %791 = icmp ne ptr %789, %790
  br i1 %791, label %792, label %803

792:                                              ; preds = %786
  %793 = load ptr, ptr %13, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.nk_window, ptr %793, i32 0, i32 3
  %795 = load i32, ptr %794, align 8, !tbaa !68
  %796 = and i32 %795, 256
  %797 = icmp ne i32 %796, 0
  br i1 %797, label %803, label %798

798:                                              ; preds = %792
  %799 = load ptr, ptr %13, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.nk_window, ptr %799, i32 0, i32 3
  %801 = load i32, ptr %800, align 8, !tbaa !68
  %802 = or i32 %801, 4096
  store i32 %802, ptr %800, align 8, !tbaa !68
  br label %803

803:                                              ; preds = %798, %792, %786
  br label %804

804:                                              ; preds = %803, %757
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %805

805:                                              ; preds = %804, %251, %245
  %806 = load ptr, ptr %9, align 8, !tbaa !5
  %807 = call noundef ptr @_ZL15nk_create_panelP10nk_context(ptr noundef %806)
  %808 = load ptr, ptr %13, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.nk_window, ptr %808, i32 0, i32 7
  store ptr %807, ptr %809, align 8, !tbaa !85
  %810 = load ptr, ptr %13, align 8, !tbaa !5
  %811 = load ptr, ptr %9, align 8, !tbaa !5
  %812 = getelementptr inbounds %struct.nk_context, ptr %811, i32 0, i32 17
  store ptr %810, ptr %812, align 8, !tbaa !66
  %813 = load ptr, ptr %9, align 8, !tbaa !5
  %814 = load ptr, ptr %11, align 8, !tbaa !5
  %815 = call noundef i32 @_ZL14nk_panel_beginP10nk_contextPKc13nk_panel_type(ptr noundef %813, ptr noundef %814, i32 noundef 1)
  store i32 %815, ptr %17, align 4, !tbaa !9
  %816 = load ptr, ptr %13, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.nk_window, ptr %816, i32 0, i32 5
  %818 = getelementptr inbounds %struct.nk_scroll, ptr %817, i32 0, i32 0
  %819 = load ptr, ptr %13, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.nk_window, ptr %819, i32 0, i32 7
  %821 = load ptr, ptr %820, align 8, !tbaa !85
  %822 = getelementptr inbounds %struct.nk_panel, ptr %821, i32 0, i32 3
  store ptr %818, ptr %822, align 8, !tbaa !107
  %823 = load ptr, ptr %13, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.nk_window, ptr %823, i32 0, i32 5
  %825 = getelementptr inbounds %struct.nk_scroll, ptr %824, i32 0, i32 1
  %826 = load ptr, ptr %13, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.nk_window, ptr %826, i32 0, i32 7
  %828 = load ptr, ptr %827, align 8, !tbaa !85
  %829 = getelementptr inbounds %struct.nk_panel, ptr %828, i32 0, i32 4
  store ptr %825, ptr %829, align 8, !tbaa !113
  %830 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %830, ptr %7, align 4
  store i32 1, ptr %18, align 4
  br label %831

831:                                              ; preds = %805, %236, %174, %93
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  %832 = load i32, ptr %7, align 4
  ret i32 %832

833:                                              ; preds = %716, %523
  unreachable
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL22nk_command_buffer_initP17nk_command_bufferP9nk_buffer19nk_command_clipping(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL8nk_startP10nk_contextP9nk_window(ptr noundef, ptr noundef) #1

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 360}
!12 = !{!"_ZTS10nk_context", !13, i64 0, !18, i64 360, !38, i64 9000, !43, i64 9120, !10, i64 9144, !44, i64 9148, !45, i64 9152, !17, i64 12024, !53, i64 12032, !58, i64 12272, !62, i64 17656, !10, i64 17720, !10, i64 17724, !63, i64 17728, !6, i64 17800, !6, i64 17808, !6, i64 17816, !6, i64 17824, !6, i64 17832, !10, i64 17840, !10, i64 17844}
!13 = !{!"_ZTS8nk_input", !14, i64 0, !15, i64 260}
!14 = !{!"_ZTS11nk_keyboard", !7, i64 0, !7, i64 240, !10, i64 256}
!15 = !{!"_ZTS8nk_mouse", !7, i64 0, !16, i64 64, !16, i64 72, !16, i64 80, !16, i64 88, !7, i64 96, !7, i64 97, !7, i64 98}
!16 = !{!"_ZTS7nk_vec2", !17, i64 0, !17, i64 4}
!17 = !{!"float", !7, i64 0}
!18 = !{!"_ZTS8nk_style", !6, i64 0, !7, i64 8, !6, i64 64, !6, i64 72, !10, i64 80, !19, i64 84, !21, i64 96, !21, i64 296, !21, i64 496, !24, i64 696, !24, i64 976, !25, i64 1256, !26, i64 1584, !28, i64 2320, !29, i64 2624, !30, i64 4128, !32, i64 5048, !31, i64 5120, !31, i64 5832, !33, i64 6544, !34, i64 7432, !35, i64 7832}
!19 = !{!"_ZTS13nk_style_text", !20, i64 0, !16, i64 4}
!20 = !{!"_ZTS8nk_color", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3}
!21 = !{!"_ZTS15nk_style_button", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !10, i64 140, !17, i64 144, !17, i64 148, !16, i64 152, !16, i64 160, !16, i64 168, !7, i64 176, !6, i64 184, !6, i64 192}
!22 = !{!"_ZTS13nk_style_item", !23, i64 0, !7, i64 8}
!23 = !{!"_ZTS18nk_style_item_type", !7, i64 0}
!24 = !{!"_ZTS15nk_style_toggle", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !22, i64 128, !22, i64 168, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !10, i64 224, !16, i64 228, !16, i64 236, !17, i64 244, !17, i64 248, !7, i64 256, !6, i64 264, !6, i64 272}
!25 = !{!"_ZTS19nk_style_selectable", !22, i64 0, !22, i64 40, !22, i64 80, !22, i64 120, !22, i64 160, !22, i64 200, !20, i64 240, !20, i64 244, !20, i64 248, !20, i64 252, !20, i64 256, !20, i64 260, !20, i64 264, !10, i64 268, !17, i64 272, !16, i64 276, !16, i64 284, !16, i64 292, !7, i64 304, !6, i64 312, !6, i64 320}
!26 = !{!"_ZTS15nk_style_slider", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !22, i64 144, !22, i64 184, !22, i64 224, !17, i64 264, !17, i64 268, !17, i64 272, !16, i64 276, !16, i64 284, !16, i64 292, !10, i64 300, !21, i64 304, !21, i64 504, !27, i64 704, !27, i64 708, !7, i64 712, !6, i64 720, !6, i64 728}
!27 = !{!"_ZTS14nk_symbol_type", !7, i64 0}
!28 = !{!"_ZTS17nk_style_progress", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !22, i64 128, !22, i64 168, !22, i64 208, !20, i64 248, !17, i64 252, !17, i64 256, !17, i64 260, !17, i64 264, !16, i64 268, !7, i64 280, !6, i64 288, !6, i64 296}
!29 = !{!"_ZTS17nk_style_property", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !27, i64 136, !27, i64 140, !17, i64 144, !17, i64 148, !16, i64 152, !30, i64 160, !21, i64 1080, !21, i64 1280, !7, i64 1480, !6, i64 1488, !6, i64 1496}
!30 = !{!"_ZTS13nk_style_edit", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !31, i64 128, !20, i64 840, !20, i64 844, !20, i64 848, !20, i64 852, !20, i64 856, !20, i64 860, !20, i64 864, !20, i64 868, !20, i64 872, !20, i64 876, !20, i64 880, !17, i64 884, !17, i64 888, !17, i64 892, !16, i64 896, !16, i64 904, !17, i64 912}
!31 = !{!"_ZTS18nk_style_scrollbar", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !22, i64 128, !22, i64 168, !22, i64 208, !20, i64 248, !17, i64 252, !17, i64 256, !17, i64 260, !17, i64 264, !16, i64 268, !10, i64 276, !21, i64 280, !21, i64 480, !27, i64 680, !27, i64 684, !7, i64 688, !6, i64 696, !6, i64 704}
!32 = !{!"_ZTS14nk_style_chart", !22, i64 0, !20, i64 40, !20, i64 44, !20, i64 48, !17, i64 52, !17, i64 56, !16, i64 60}
!33 = !{!"_ZTS12nk_style_tab", !22, i64 0, !20, i64 40, !20, i64 44, !21, i64 48, !21, i64 248, !21, i64 448, !21, i64 648, !27, i64 848, !27, i64 852, !17, i64 856, !17, i64 860, !17, i64 864, !16, i64 868, !16, i64 876}
!34 = !{!"_ZTS14nk_style_combo", !22, i64 0, !22, i64 40, !22, i64 80, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !21, i64 152, !27, i64 352, !27, i64 356, !27, i64 360, !17, i64 364, !17, i64 368, !16, i64 372, !16, i64 380, !16, i64 388}
!35 = !{!"_ZTS15nk_style_window", !36, i64 0, !22, i64 576, !20, i64 616, !20, i64 620, !20, i64 624, !20, i64 628, !20, i64 632, !20, i64 636, !20, i64 640, !20, i64 644, !22, i64 648, !17, i64 688, !17, i64 692, !17, i64 696, !17, i64 700, !17, i64 704, !17, i64 708, !17, i64 712, !17, i64 716, !17, i64 720, !16, i64 724, !16, i64 732, !16, i64 740, !16, i64 748, !16, i64 756, !16, i64 764, !16, i64 772, !16, i64 780, !16, i64 788, !16, i64 796}
!36 = !{!"_ZTS22nk_style_window_header", !22, i64 0, !22, i64 40, !22, i64 80, !21, i64 120, !21, i64 320, !27, i64 520, !27, i64 524, !27, i64 528, !20, i64 532, !20, i64 536, !20, i64 540, !37, i64 544, !16, i64 548, !16, i64 556, !16, i64 564}
!37 = !{!"_ZTS21nk_style_header_align", !7, i64 0}
!38 = !{!"_ZTS9nk_buffer", !7, i64 0, !39, i64 32, !40, i64 56, !41, i64 64, !17, i64 80, !42, i64 88, !42, i64 96, !42, i64 104, !42, i64 112}
!39 = !{!"_ZTS12nk_allocator", !7, i64 0, !6, i64 8, !6, i64 16}
!40 = !{!"_ZTS18nk_allocation_type", !7, i64 0}
!41 = !{!"_ZTS9nk_memory", !6, i64 0, !42, i64 8}
!42 = !{!"long", !7, i64 0}
!43 = !{!"_ZTS12nk_clipboard", !7, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!"_ZTS18nk_button_behavior", !7, i64 0}
!45 = !{!"_ZTS23nk_configuration_stacks", !46, i64 0, !47, i64 776, !48, i64 1296, !49, i64 1560, !50, i64 2080, !51, i64 2600, !52, i64 2736}
!46 = !{!"_ZTS26nk_config_stack_style_item", !10, i64 0, !7, i64 8}
!47 = !{!"_ZTS21nk_config_stack_float", !10, i64 0, !7, i64 8}
!48 = !{!"_ZTS20nk_config_stack_vec2", !10, i64 0, !7, i64 8}
!49 = !{!"_ZTS21nk_config_stack_flags", !10, i64 0, !7, i64 8}
!50 = !{!"_ZTS21nk_config_stack_color", !10, i64 0, !7, i64 8}
!51 = !{!"_ZTS25nk_config_stack_user_font", !10, i64 0, !7, i64 8}
!52 = !{!"_ZTS31nk_config_stack_button_behavior", !10, i64 0, !7, i64 8}
!53 = !{!"_ZTS12nk_draw_list", !54, i64 0, !7, i64 16, !55, i64 112, !6, i64 176, !6, i64 184, !6, i64 192, !10, i64 200, !10, i64 204, !10, i64 208, !42, i64 216, !10, i64 224, !10, i64 228, !56, i64 232, !56, i64 236}
!54 = !{!"_ZTS7nk_rect", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12}
!55 = !{!"_ZTS17nk_convert_config", !17, i64 0, !56, i64 4, !56, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !57, i64 24, !6, i64 40, !42, i64 48, !42, i64 56}
!56 = !{!"_ZTS16nk_anti_aliasing", !7, i64 0}
!57 = !{!"_ZTS20nk_draw_null_texture", !7, i64 0, !16, i64 8}
!58 = !{!"_ZTS12nk_text_edit", !43, i64 0, !59, i64 24, !6, i64 152, !16, i64 160, !10, i64 168, !10, i64 172, !10, i64 176, !7, i64 180, !7, i64 181, !7, i64 182, !7, i64 183, !7, i64 184, !7, i64 185, !7, i64 186, !17, i64 188, !60, i64 192}
!59 = !{!"_ZTS6nk_str", !38, i64 0, !10, i64 120}
!60 = !{!"_ZTS18nk_text_undo_state", !7, i64 0, !7, i64 1188, !61, i64 5184, !61, i64 5186, !61, i64 5188, !61, i64 5190}
!61 = !{!"short", !7, i64 0}
!62 = !{!"_ZTS17nk_command_buffer", !6, i64 0, !54, i64 8, !10, i64 24, !7, i64 32, !42, i64 40, !42, i64 48, !42, i64 56}
!63 = !{!"_ZTS7nk_pool", !39, i64 0, !40, i64 24, !10, i64 28, !6, i64 32, !6, i64 40, !10, i64 48, !42, i64 56, !42, i64 64}
!64 = !{!65, !6, i64 16}
!65 = !{!"_ZTS12nk_user_font", !7, i64 0, !17, i64 8, !6, i64 16, !6, i64 24, !7, i64 32}
!66 = !{!12, !6, i64 17824}
!67 = !{!42, !42, i64 0}
!68 = !{!69, !10, i64 72}
!69 = !{!"_ZTS9nk_window", !10, i64 0, !10, i64 4, !7, i64 8, !10, i64 72, !54, i64 76, !70, i64 92, !62, i64 104, !6, i64 168, !17, i64 176, !71, i64 180, !72, i64 288, !75, i64 384, !10, i64 428, !6, i64 432, !10, i64 440, !6, i64 448, !6, i64 456, !6, i64 464}
!70 = !{!"_ZTS9nk_scroll", !10, i64 0, !10, i64 4}
!71 = !{!"_ZTS17nk_property_state", !10, i64 0, !10, i64 4, !7, i64 8, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100}
!72 = !{!"_ZTS14nk_popup_state", !6, i64 0, !73, i64 8, !74, i64 16, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !54, i64 80}
!73 = !{!"_ZTS13nk_panel_type", !7, i64 0}
!74 = !{!"_ZTS15nk_popup_buffer", !42, i64 0, !42, i64 8, !42, i64 16, !42, i64 24, !10, i64 32}
!75 = !{!"_ZTS13nk_edit_state", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !70, i64 32, !7, i64 40, !7, i64 41}
!76 = !{i64 0, i64 4, !77, i64 4, i64 4, !77, i64 8, i64 4, !77, i64 12, i64 4, !77}
!77 = !{!17, !17, i64 0}
!78 = !{!69, !10, i64 4}
!79 = !{!7, !7, i64 0}
!80 = !{!69, !6, i64 288}
!81 = !{!12, !6, i64 17816}
!82 = !{!69, !10, i64 0}
!83 = !{!12, !10, i64 17844}
!84 = !{!12, !6, i64 17808}
!85 = !{!69, !6, i64 168}
!86 = !{!65, !17, i64 8}
!87 = !{!18, !17, i64 8384}
!88 = !{!18, !17, i64 8392}
!89 = !{!69, !17, i64 76}
!90 = !{!69, !17, i64 80}
!91 = !{!69, !17, i64 84}
!92 = !{!93, !10, i64 4}
!93 = !{!"_ZTS15nk_mouse_button", !10, i64 0, !10, i64 4, !16, i64 8}
!94 = !{!93, !10, i64 0}
!95 = !{!69, !6, i64 448}
!96 = !{!54, !17, i64 0}
!97 = !{!54, !17, i64 8}
!98 = !{!54, !17, i64 4}
!99 = !{!54, !17, i64 12}
!100 = !{!69, !10, i64 348}
!101 = !{!69, !17, i64 88}
!102 = distinct !{!102, !103}
!103 = !{!"llvm.loop.mustprogress"}
!104 = !{!12, !17, i64 324}
!105 = !{!12, !17, i64 328}
!106 = distinct !{!106, !103}
!107 = !{!108, !6, i64 24}
!108 = !{!"_ZTS8nk_panel", !73, i64 0, !10, i64 4, !54, i64 8, !6, i64 24, !6, i64 32, !17, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !10, i64 64, !54, i64 68, !109, i64 84, !110, i64 112, !112, i64 248, !6, i64 432, !6, i64 440}
!109 = !{!"_ZTS13nk_menu_state", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !70, i64 16}
!110 = !{!"_ZTS13nk_row_layout", !111, i64 0, !10, i64 4, !17, i64 8, !17, i64 12, !10, i64 16, !6, i64 24, !17, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !54, i64 48, !10, i64 64, !7, i64 68}
!111 = !{!"_ZTS24nk_panel_row_layout_type", !7, i64 0}
!112 = !{!"_ZTS8nk_chart", !10, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !7, i64 20}
!113 = !{!108, !6, i64 32}


; 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"

@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@__PRETTY_FUNCTION__.nk_begin_titled = external hidden unnamed_addr constant [99 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [21 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { <2 x float>, <2 x float> } @nk_rect(float noundef, float noundef, float noundef, float noundef) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i32 @nk_strlen(ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i32 @nk_murmur_hash(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i32 @nk_input_has_mouse_click_down_in_rect(ptr noundef, i32 noundef, <2 x float>, <2 x float>, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i32 @nk_input_is_mouse_hovering_rect(ptr noundef, <2 x float>, <2 x float>) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL16nk_remove_windowP10nk_contextP9nk_window(ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @nk_begin_titled(ptr noundef %0, ptr noundef %1, ptr noundef %2, <2 x float> %3, <2 x float> %4, i32 noundef %5) local_unnamed_addr #4 {
  %.not = icmp eq ptr %0, null
  br i1 %.not, label %7, label %8

7:                                                ; preds = %6
  tail call void @__assert_fail(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 20212, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

8:                                                ; preds = %6
  %.not249 = icmp eq ptr %1, null
  br i1 %.not249, label %9, label %10

9:                                                ; preds = %8
  tail call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 20213, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

10:                                               ; preds = %8
  %.not250 = icmp eq ptr %2, null
  br i1 %.not250, label %11, label %12

11:                                               ; preds = %10
  tail call void @__assert_fail(ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 20214, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

12:                                               ; preds = %10
  %13 = getelementptr inbounds i8, ptr %0, i64 360
  %14 = load ptr, ptr %13, align 8, !tbaa !5
  %.not251 = icmp eq ptr %14, null
  br i1 %.not251, label %.critedge, label %15

15:                                               ; preds = %12
  %16 = getelementptr inbounds i8, ptr %14, i64 16
  %17 = load ptr, ptr %16, align 8, !tbaa !62
  %.not252 = icmp eq ptr %17, null
  br i1 %.not252, label %.critedge, label %18

.critedge:                                        ; preds = %12, %15
  tail call void @__assert_fail(ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 20215, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

18:                                               ; preds = %15
  %19 = getelementptr inbounds i8, ptr %0, i64 17824
  %20 = load ptr, ptr %19, align 8, !tbaa !64
  %.not253 = icmp eq ptr %20, null
  br i1 %.not253, label %22, label %21

21:                                               ; preds = %18
  tail call void @__assert_fail(ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 20216, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

22:                                               ; preds = %18
  %23 = tail call i32 @nk_strlen(ptr noundef nonnull %1)
  %24 = tail call i32 @nk_murmur_hash(ptr noundef nonnull %1, i32 noundef %23, i32 noundef 64)
  %25 = tail call noundef ptr @_ZL14nk_find_windowP10nk_contextjPKc(ptr noundef nonnull %0, i32 noundef %24, ptr noundef nonnull %1)
  %.not254 = icmp eq ptr %25, null
  br i1 %.not254, label %26, label %45

26:                                               ; preds = %22
  %27 = tail call noundef ptr @_ZL16nk_create_windowP10nk_context(ptr noundef nonnull %0)
  %.not255 = icmp eq ptr %27, null
  br i1 %.not255, label %28, label %29

28:                                               ; preds = %26
  tail call void @__assert_fail(ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 20229, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

29:                                               ; preds = %26
  %30 = lshr i32 %5, 8
  %.lobit = and i32 %30, 1
  tail call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef nonnull %0, ptr noundef nonnull %27, i32 noundef %.lobit)
  %31 = getelementptr inbounds i8, ptr %27, i64 104
  %32 = getelementptr inbounds i8, ptr %0, i64 9000
  tail call void @_ZL22nk_command_buffer_initP17nk_command_bufferP9nk_buffer19nk_command_clipping(ptr noundef nonnull %31, ptr noundef nonnull %32, i32 noundef 1)
  %33 = getelementptr inbounds i8, ptr %27, i64 72
  store i32 %5, ptr %33, align 8, !tbaa !65
  %34 = getelementptr inbounds i8, ptr %27, i64 76
  store <2 x float> %3, ptr %34, align 4
  %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %27, i64 84
  store <2 x float> %4, ptr %.sroa.3.0..sroa_idx, align 4
  %35 = getelementptr inbounds i8, ptr %27, i64 4
  store i32 %24, ptr %35, align 4, !tbaa !73
  %36 = tail call i32 @llvm.umin.i32(i32 %23, i32 63)
  %37 = zext nneg i32 %36 to i64
  %38 = getelementptr inbounds i8, ptr %27, i64 8
  %39 = tail call noundef ptr @_ZL10nk_memcopyPvPKvm(ptr noundef nonnull %38, ptr noundef nonnull %1, i64 noundef %37)
  %40 = getelementptr inbounds [64 x i8], ptr %38, i64 0, i64 %37
  store i8 0, ptr %40, align 1, !tbaa !74
  %41 = getelementptr inbounds i8, ptr %27, i64 288
  store ptr null, ptr %41, align 8, !tbaa !75
  %42 = getelementptr inbounds i8, ptr %0, i64 17816
  %43 = load ptr, ptr %42, align 8, !tbaa !76
  %.not257 = icmp eq ptr %43, null
  br i1 %.not257, label %44, label %64

44:                                               ; preds = %29
  store ptr %27, ptr %42, align 8, !tbaa !76
  br label %64

45:                                               ; preds = %22
  %46 = getelementptr inbounds i8, ptr %25, i64 72
  %47 = load i32, ptr %46, align 8, !tbaa !65
  %48 = and i32 %47, -2048
  %49 = or i32 %48, %5
  store i32 %49, ptr %46, align 8, !tbaa !65
  %50 = and i32 %5, 6
  %.not258 = icmp eq i32 %50, 0
  br i1 %.not258, label %51, label %53

51:                                               ; preds = %45
  %52 = getelementptr inbounds i8, ptr %25, i64 76
  store <2 x float> %3, ptr %52, align 4
  %.sroa.3.0..sroa_idx226 = getelementptr inbounds i8, ptr %25, i64 84
  store <2 x float> %4, ptr %.sroa.3.0..sroa_idx226, align 4
  br label %53

53:                                               ; preds = %51, %45
  %54 = load i32, ptr %25, align 8, !tbaa !77
  %55 = getelementptr inbounds i8, ptr %0, i64 17844
  %56 = load i32, ptr %55, align 4, !tbaa !78
  %.not259 = icmp eq i32 %54, %56
  br i1 %.not259, label %57, label %58

57:                                               ; preds = %53
  tail call void @__assert_fail(ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 20259, ptr noundef nonnull @__PRETTY_FUNCTION__.nk_begin_titled) #7
  unreachable

58:                                               ; preds = %53
  store i32 %56, ptr %25, align 8, !tbaa !77
  %59 = getelementptr inbounds i8, ptr %0, i64 17816
  %60 = load ptr, ptr %59, align 8, !tbaa !76
  %.not260 = icmp eq ptr %60, null
  %61 = and i32 %49, 8192
  %.not261 = icmp eq i32 %61, 0
  %or.cond338 = select i1 %.not260, i1 %.not261, i1 false
  br i1 %or.cond338, label %62, label %64

62:                                               ; preds = %58
  store ptr %25, ptr %59, align 8, !tbaa !76
  %63 = getelementptr inbounds i8, ptr %0, i64 17808
  store ptr %25, ptr %63, align 8, !tbaa !79
  br label %64

64:                                               ; preds = %44, %29, %58, %62
  %.0229 = phi ptr [ %25, %58 ], [ %25, %62 ], [ %27, %29 ], [ %27, %44 ]
  %65 = getelementptr inbounds i8, ptr %.0229, i64 72
  %66 = load i32, ptr %65, align 8, !tbaa !65
  %67 = and i32 %66, 8192
  %.not262 = icmp eq i32 %67, 0
  br i1 %.not262, label %70, label %68

68:                                               ; preds = %64
  store ptr %.0229, ptr %19, align 8, !tbaa !64
  %69 = getelementptr inbounds i8, ptr %.0229, i64 168
  store ptr null, ptr %69, align 8, !tbaa !80
  br label %276

70:                                               ; preds = %64
  tail call void @_ZL8nk_startP10nk_contextP9nk_window(ptr noundef nonnull %0, ptr noundef nonnull %.0229)
  %71 = load i32, ptr %65, align 8, !tbaa !65
  %72 = and i32 %71, 9216
  %or.cond = icmp eq i32 %72, 0
  br i1 %or.cond, label %73, label %267

73:                                               ; preds = %70
  %74 = load ptr, ptr %13, align 8, !tbaa !5
  %75 = getelementptr inbounds i8, ptr %74, i64 8
  %76 = load float, ptr %75, align 8, !tbaa !81
  %77 = getelementptr inbounds i8, ptr %0, i64 8744
  %78 = load float, ptr %77, align 4, !tbaa !82
  %79 = tail call float @llvm.fmuladd.f32(float %78, float 2.000000e+00, float %76)
  %80 = getelementptr inbounds i8, ptr %0, i64 8752
  %81 = load float, ptr %80, align 4, !tbaa !83
  %82 = tail call float @llvm.fmuladd.f32(float %81, float 2.000000e+00, float %79)
  %83 = and i32 %71, 32768
  %.not265 = icmp eq i32 %83, 0
  %84 = getelementptr inbounds i8, ptr %.0229, i64 76
  br i1 %.not265, label %85, label %86

85:                                               ; preds = %73
  %.sroa.022.0.copyload = load <2 x float>, ptr %84, align 4
  %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %.0229, i64 84
  %.sroa.16.0.copyload = load <2 x float>, ptr %.sroa.16.0..sroa_idx, align 4
  br label %95

86:                                               ; preds = %73
  %87 = load float, ptr %84, align 4, !tbaa !84
  %88 = getelementptr inbounds i8, ptr %.0229, i64 80
  %89 = load float, ptr %88, align 4, !tbaa !85
  %90 = getelementptr inbounds i8, ptr %.0229, i64 84
  %91 = load float, ptr %90, align 4, !tbaa !86
  %92 = tail call { <2 x float>, <2 x float> } @nk_rect(float noundef %87, float noundef %89, float noundef %91, float noundef %82)
  %93 = extractvalue { <2 x float>, <2 x float> } %92, 0
  %94 = extractvalue { <2 x float>, <2 x float> } %92, 1
  br label %95

95:                                               ; preds = %86, %85
  %.sroa.16.0 = phi <2 x float> [ %94, %86 ], [ %.sroa.16.0.copyload, %85 ]
  %.sroa.022.0 = phi <2 x float> [ %93, %86 ], [ %.sroa.022.0.copyload, %85 ]
  %96 = tail call i32 @nk_input_has_mouse_click_down_in_rect(ptr noundef nonnull %0, i32 noundef 0, <2 x float> %.sroa.022.0, <2 x float> %.sroa.16.0, i32 noundef 1)
  %.not266 = icmp eq i32 %96, 0
  br i1 %.not266, label %101, label %97

97:                                               ; preds = %95
  %98 = getelementptr inbounds i8, ptr %0, i64 264
  %99 = load i32, ptr %98, align 4, !tbaa !87
  %100 = icmp ne i32 %99, 0
  br label %101

101:                                              ; preds = %97, %95
  %102 = phi i1 [ false, %95 ], [ %100, %97 ]
  %103 = tail call i32 @nk_input_is_mouse_hovering_rect(ptr noundef nonnull %0, <2 x float> %.sroa.022.0, <2 x float> %.sroa.16.0)
  %104 = getelementptr inbounds i8, ptr %0, i64 17816
  %105 = load ptr, ptr %104, align 8, !tbaa !76
  %106 = icmp ne ptr %.0229, %105
  %107 = icmp ne i32 %103, 0
  %or.cond6 = select i1 %106, i1 %107, i1 false
  br i1 %or.cond6, label %108, label %.thread

108:                                              ; preds = %101
  %109 = getelementptr inbounds i8, ptr %0, i64 260
  %110 = load i32, ptr %109, align 4, !tbaa !89
  %.not267 = icmp eq i32 %110, 0
  br i1 %.not267, label %.preheader319, label %.thread

.preheader319:                                    ; preds = %108
  %.0232.in323 = getelementptr inbounds i8, ptr %.0229, i64 448
  %.0232324 = load ptr, ptr %.0232.in323, align 8, !tbaa !90
  %.not268325 = icmp eq ptr %.0232324, null
  br i1 %.not268325, label %.critedge301, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader319
  %.sroa.022.0.vec.extract = extractelement <2 x float> %.sroa.022.0, i64 0
  %.sroa.16.8.vec.extract = extractelement <2 x float> %.sroa.16.0, i64 0
  %111 = fadd <2 x float> %.sroa.16.0, %.sroa.022.0
  %112 = extractelement <2 x float> %111, i64 0
  %.sroa.022.4.vec.extract = extractelement <2 x float> %.sroa.022.0, i64 1
  %113 = fadd <2 x float> %.sroa.16.0, %.sroa.022.0
  %114 = extractelement <2 x float> %113, i64 1
  %115 = getelementptr inbounds i8, ptr %.0229, i64 76
  br label %116

116:                                              ; preds = %.lr.ph, %173
  %.0232326 = phi ptr [ %.0232324, %.lr.ph ], [ %.0232, %173 ]
  %117 = getelementptr inbounds i8, ptr %.0232326, i64 72
  %118 = load i32, ptr %117, align 8, !tbaa !65
  %119 = and i32 %118, 32768
  %.not269 = icmp eq i32 %119, 0
  %120 = getelementptr inbounds i8, ptr %.0232326, i64 76
  br i1 %.not269, label %121, label %122

121:                                              ; preds = %116
  %.sroa.013.0.copyload = load <2 x float>, ptr %120, align 4
  %.sroa.818.0..sroa_idx = getelementptr inbounds i8, ptr %.0232326, i64 84
  %.sroa.818.0.copyload = load <2 x float>, ptr %.sroa.818.0..sroa_idx, align 4
  br label %131

122:                                              ; preds = %116
  %123 = load float, ptr %120, align 4, !tbaa !84
  %124 = getelementptr inbounds i8, ptr %.0232326, i64 80
  %125 = load float, ptr %124, align 4, !tbaa !85
  %126 = getelementptr inbounds i8, ptr %.0232326, i64 84
  %127 = load float, ptr %126, align 4, !tbaa !86
  %128 = tail call { <2 x float>, <2 x float> } @nk_rect(float noundef %123, float noundef %125, float noundef %127, float noundef %82)
  %129 = extractvalue { <2 x float>, <2 x float> } %128, 0
  %130 = extractvalue { <2 x float>, <2 x float> } %128, 1
  br label %131

131:                                              ; preds = %122, %121
  %.sroa.818.0 = phi <2 x float> [ %130, %122 ], [ %.sroa.818.0.copyload, %121 ]
  %.sroa.013.0 = phi <2 x float> [ %129, %122 ], [ %.sroa.013.0.copyload, %121 ]
  %.sroa.013.0.vec.extract = extractelement <2 x float> %.sroa.013.0, i64 0
  %132 = fcmp olt float %.sroa.013.0.vec.extract, %112
  %133 = fadd <2 x float> %.sroa.818.0, %.sroa.013.0
  %134 = extractelement <2 x float> %133, i64 0
  %135 = fcmp olt float %.sroa.022.0.vec.extract, %134
  %or.cond290 = select i1 %132, i1 %135, i1 false
  br i1 %or.cond290, label %136, label %144

136:                                              ; preds = %131
  %.sroa.013.4.vec.extract = extractelement <2 x float> %.sroa.013.0, i64 1
  %137 = fcmp olt float %.sroa.013.4.vec.extract, %114
  %138 = fadd <2 x float> %.sroa.818.0, %.sroa.013.0
  %139 = extractelement <2 x float> %138, i64 1
  %140 = fcmp olt float %.sroa.022.4.vec.extract, %139
  %or.cond292 = select i1 %137, i1 %140, i1 false
  br i1 %or.cond292, label %141, label %144

141:                                              ; preds = %136
  %142 = load i32, ptr %117, align 8, !tbaa !65
  %143 = and i32 %142, 8192
  %.not270 = icmp eq i32 %143, 0
  br i1 %.not270, label %.thread, label %144

144:                                              ; preds = %141, %136, %131
  %145 = getelementptr inbounds i8, ptr %.0232326, i64 288
  %146 = load ptr, ptr %145, align 8, !tbaa !75
  %.not271 = icmp eq ptr %146, null
  br i1 %.not271, label %173, label %147

147:                                              ; preds = %144
  %148 = getelementptr inbounds i8, ptr %.0232326, i64 348
  %149 = load i32, ptr %148, align 4, !tbaa !91
  %.not272 = icmp eq i32 %149, 0
  br i1 %.not272, label %173, label %150

150:                                              ; preds = %147
  %151 = load i32, ptr %117, align 8, !tbaa !65
  %152 = and i32 %151, 8192
  %.not273 = icmp eq i32 %152, 0
  br i1 %.not273, label %153, label %173

153:                                              ; preds = %150
  %154 = getelementptr inbounds i8, ptr %146, i64 76
  %155 = load float, ptr %154, align 4, !tbaa !84
  %156 = load float, ptr %115, align 4, !tbaa !84
  %157 = fadd float %.sroa.16.8.vec.extract, %156
  %158 = fcmp olt float %155, %157
  br i1 %158, label %159, label %173

159:                                              ; preds = %153
  %160 = getelementptr inbounds i8, ptr %146, i64 84
  %161 = load float, ptr %160, align 4, !tbaa !86
  %162 = fadd float %155, %161
  %163 = fcmp olt float %156, %162
  br i1 %163, label %164, label %173

164:                                              ; preds = %159
  %165 = getelementptr inbounds i8, ptr %146, i64 80
  %166 = load float, ptr %165, align 4, !tbaa !85
  %167 = fcmp olt float %166, %114
  br i1 %167, label %168, label %173

168:                                              ; preds = %164
  %169 = getelementptr inbounds i8, ptr %146, i64 88
  %170 = load float, ptr %169, align 4, !tbaa !92
  %171 = fadd float %166, %170
  %172 = fcmp olt float %.sroa.022.4.vec.extract, %171
  br i1 %172, label %.thread, label %173

173:                                              ; preds = %144, %147, %150, %153, %159, %164, %168
  %.0232.in = getelementptr inbounds i8, ptr %.0232326, i64 448
  %.0232 = load ptr, ptr %.0232.in, align 8, !tbaa !90
  %.not268 = icmp eq ptr %.0232, null
  br i1 %.not268, label %.critedge301, label %116

.thread:                                          ; preds = %168, %141, %108, %101
  %.2234 = phi ptr [ %.0229, %108 ], [ %.0229, %101 ], [ %.0232326, %141 ], [ %.0232326, %168 ]
  br i1 %102, label %174, label %.thread309

174:                                              ; preds = %.thread
  %175 = getelementptr inbounds i8, ptr %0, i64 17808
  %176 = load ptr, ptr %175, align 8, !tbaa !79
  %.not274 = icmp eq ptr %.0229, %176
  br i1 %.not274, label %.thread309, label %.preheader

.preheader:                                       ; preds = %174
  %.3.in327 = getelementptr inbounds i8, ptr %.0229, i64 448
  %.3328 = load ptr, ptr %.3.in327, align 8, !tbaa !90
  %.not275329 = icmp eq ptr %.3328, null
  br i1 %.not275329, label %.critedge301, label %.lr.ph331

.lr.ph331:                                        ; preds = %.preheader
  %177 = getelementptr inbounds i8, ptr %0, i64 324
  %178 = getelementptr inbounds i8, ptr %0, i64 328
  %.sroa.022.0.vec.extract28 = extractelement <2 x float> %.sroa.022.0, i64 0
  %179 = fadd <2 x float> %.sroa.16.0, %.sroa.022.0
  %180 = extractelement <2 x float> %179, i64 0
  %.sroa.022.4.vec.extract38 = extractelement <2 x float> %.sroa.022.0, i64 1
  %181 = fadd <2 x float> %.sroa.16.0, %.sroa.022.0
  %182 = extractelement <2 x float> %181, i64 1
  br label %183

183:                                              ; preds = %.lr.ph331, %240
  %.3330 = phi ptr [ %.3328, %.lr.ph331 ], [ %.3, %240 ]
  %184 = getelementptr inbounds i8, ptr %.3330, i64 72
  %185 = load i32, ptr %184, align 8, !tbaa !65
  %186 = and i32 %185, 32768
  %.not276 = icmp eq i32 %186, 0
  %187 = getelementptr inbounds i8, ptr %.3330, i64 76
  br i1 %.not276, label %188, label %189

188:                                              ; preds = %183
  %.sroa.0.0.copyload = load <2 x float>, ptr %187, align 4
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %.3330, i64 84
  %.sroa.8.0.copyload = load <2 x float>, ptr %.sroa.8.0..sroa_idx, align 4
  br label %198

189:                                              ; preds = %183
  %190 = load float, ptr %187, align 4, !tbaa !84
  %191 = getelementptr inbounds i8, ptr %.3330, i64 80
  %192 = load float, ptr %191, align 4, !tbaa !85
  %193 = getelementptr inbounds i8, ptr %.3330, i64 84
  %194 = load float, ptr %193, align 4, !tbaa !86
  %195 = tail call { <2 x float>, <2 x float> } @nk_rect(float noundef %190, float noundef %192, float noundef %194, float noundef %82)
  %196 = extractvalue { <2 x float>, <2 x float> } %195, 0
  %197 = extractvalue { <2 x float>, <2 x float> } %195, 1
  br label %198

198:                                              ; preds = %189, %188
  %.sroa.8.0 = phi <2 x float> [ %197, %189 ], [ %.sroa.8.0.copyload, %188 ]
  %.sroa.0.0 = phi <2 x float> [ %196, %189 ], [ %.sroa.0.0.copyload, %188 ]
  %.sroa.0.0.vec.extract = extractelement <2 x float> %.sroa.0.0, i64 0
  %199 = load float, ptr %177, align 4, !tbaa !93
  %200 = fcmp ole float %.sroa.0.0.vec.extract, %199
  %201 = fadd <2 x float> %.sroa.8.0, %.sroa.0.0
  %202 = extractelement <2 x float> %201, i64 0
  %203 = fcmp olt float %199, %202
  %or.cond294 = select i1 %200, i1 %203, i1 false
  br i1 %or.cond294, label %204, label %213

204:                                              ; preds = %198
  %.sroa.0.4.vec.extract = extractelement <2 x float> %.sroa.0.0, i64 1
  %205 = load float, ptr %178, align 4, !tbaa !94
  %206 = fcmp ole float %.sroa.0.4.vec.extract, %205
  %207 = fadd <2 x float> %.sroa.8.0, %.sroa.0.0
  %208 = extractelement <2 x float> %207, i64 1
  %209 = fcmp olt float %205, %208
  %or.cond296 = select i1 %206, i1 %209, i1 false
  br i1 %or.cond296, label %210, label %213

210:                                              ; preds = %204
  %211 = load i32, ptr %184, align 8, !tbaa !65
  %212 = and i32 %211, 8192
  %.not277 = icmp eq i32 %212, 0
  br i1 %.not277, label %.thread309, label %213

213:                                              ; preds = %210, %204, %198
  %214 = getelementptr inbounds i8, ptr %.3330, i64 288
  %215 = load ptr, ptr %214, align 8, !tbaa !75
  %.not278 = icmp eq ptr %215, null
  br i1 %.not278, label %240, label %216

216:                                              ; preds = %213
  %217 = getelementptr inbounds i8, ptr %.3330, i64 348
  %218 = load i32, ptr %217, align 4, !tbaa !91
  %.not279 = icmp eq i32 %218, 0
  br i1 %.not279, label %240, label %219

219:                                              ; preds = %216
  %220 = load i32, ptr %184, align 8, !tbaa !65
  %221 = and i32 %220, 8192
  %.not280 = icmp eq i32 %221, 0
  br i1 %.not280, label %222, label %240

222:                                              ; preds = %219
  %223 = getelementptr inbounds i8, ptr %215, i64 76
  %224 = load float, ptr %223, align 4, !tbaa !84
  %225 = fcmp olt float %224, %180
  br i1 %225, label %226, label %240

226:                                              ; preds = %222
  %227 = getelementptr inbounds i8, ptr %215, i64 84
  %228 = load float, ptr %227, align 4, !tbaa !86
  %229 = fadd float %224, %228
  %230 = fcmp olt float %.sroa.022.0.vec.extract28, %229
  br i1 %230, label %231, label %240

231:                                              ; preds = %226
  %232 = getelementptr inbounds i8, ptr %215, i64 80
  %233 = load float, ptr %232, align 4, !tbaa !85
  %234 = fcmp olt float %233, %182
  br i1 %234, label %235, label %240

235:                                              ; preds = %231
  %236 = getelementptr inbounds i8, ptr %215, i64 88
  %237 = load float, ptr %236, align 4, !tbaa !92
  %238 = fadd float %233, %237
  %239 = fcmp olt float %.sroa.022.4.vec.extract38, %238
  br i1 %239, label %.thread309, label %240

240:                                              ; preds = %213, %216, %219, %222, %226, %231, %235
  %.3.in = getelementptr inbounds i8, ptr %.3330, i64 448
  %.3 = load ptr, ptr %.3.in, align 8, !tbaa !90
  %.not275 = icmp eq ptr %.3, null
  br i1 %.not275, label %.critedge301, label %183

.thread309:                                       ; preds = %235, %210, %174, %.thread
  %.5.ph = phi ptr [ %.2234, %.thread ], [ %.2234, %174 ], [ %.3330, %210 ], [ %.3330, %235 ]
  %241 = load i32, ptr %65, align 8, !tbaa !65
  %242 = and i32 %241, 4352
  %or.cond299.not = icmp eq i32 %242, 256
  br i1 %or.cond299.not, label %243, label %259

243:                                              ; preds = %.thread309
  %244 = or disjoint i32 %241, 4096
  store i32 %244, ptr %65, align 8, !tbaa !65
  %245 = getelementptr inbounds i8, ptr %.5.ph, i64 72
  %246 = load i32, ptr %245, align 8, !tbaa !65
  %247 = and i32 %246, -4097
  store i32 %247, ptr %245, align 8, !tbaa !65
  store ptr %.5.ph, ptr %104, align 8, !tbaa !76
  %248 = and i32 %246, 256
  %.not284 = icmp eq i32 %248, 0
  br i1 %.not284, label %249, label %267

249:                                              ; preds = %243
  tail call void @_ZL16nk_remove_windowP10nk_contextP9nk_window(ptr noundef nonnull %0, ptr noundef nonnull %.5.ph)
  tail call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef nonnull %0, ptr noundef nonnull %.5.ph, i32 noundef 0)
  br label %267

.critedge301:                                     ; preds = %173, %240, %.preheader319, %.preheader
  %250 = getelementptr inbounds i8, ptr %0, i64 17808
  %251 = load ptr, ptr %250, align 8, !tbaa !79
  %.not285 = icmp eq ptr %251, %.0229
  br i1 %.not285, label %259, label %252

252:                                              ; preds = %.critedge301
  %253 = load i32, ptr %65, align 8, !tbaa !65
  %254 = and i32 %253, 256
  %.not286 = icmp eq i32 %254, 0
  br i1 %.not286, label %255, label %256

255:                                              ; preds = %252
  tail call void @_ZL16nk_remove_windowP10nk_contextP9nk_window(ptr noundef nonnull %0, ptr noundef nonnull %.0229)
  tail call void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef nonnull %0, ptr noundef nonnull %.0229, i32 noundef 0)
  %.pre = load i32, ptr %65, align 8, !tbaa !65
  br label %256

256:                                              ; preds = %255, %252
  %257 = phi i32 [ %.pre, %255 ], [ %253, %252 ]
  %258 = and i32 %257, -4097
  store i32 %258, ptr %65, align 8, !tbaa !65
  store ptr %.0229, ptr %104, align 8, !tbaa !76
  br label %259

259:                                              ; preds = %.thread309, %256, %.critedge301
  %260 = getelementptr inbounds i8, ptr %0, i64 17808
  %261 = load ptr, ptr %260, align 8, !tbaa !79
  %.not287 = icmp eq ptr %261, %.0229
  br i1 %.not287, label %267, label %262

262:                                              ; preds = %259
  %263 = load i32, ptr %65, align 8, !tbaa !65
  %264 = and i32 %263, 256
  %.not288 = icmp eq i32 %264, 0
  br i1 %.not288, label %265, label %267

265:                                              ; preds = %262
  %266 = or i32 %263, 4096
  store i32 %266, ptr %65, align 8, !tbaa !65
  br label %267

267:                                              ; preds = %249, %243, %265, %262, %259, %70
  %268 = tail call noundef ptr @_ZL15nk_create_panelP10nk_context(ptr noundef nonnull %0)
  %269 = getelementptr inbounds i8, ptr %.0229, i64 168
  store ptr %268, ptr %269, align 8, !tbaa !80
  store ptr %.0229, ptr %19, align 8, !tbaa !64
  %270 = tail call noundef i32 @_ZL14nk_panel_beginP10nk_contextPKc13nk_panel_type(ptr noundef nonnull %0, ptr noundef nonnull %2, i32 noundef 1)
  %271 = getelementptr inbounds i8, ptr %.0229, i64 92
  %272 = load ptr, ptr %269, align 8, !tbaa !80
  %273 = getelementptr inbounds i8, ptr %272, i64 24
  store ptr %271, ptr %273, align 8, !tbaa !95
  %274 = getelementptr inbounds i8, ptr %.0229, i64 96
  %275 = getelementptr inbounds i8, ptr %272, i64 32
  store ptr %274, ptr %275, align 8, !tbaa !101
  br label %276

276:                                              ; preds = %267, %68
  %.1 = phi i32 [ 0, %68 ], [ %270, %267 ]
  ret i32 %.1
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL14nk_find_windowP10nk_contextjPKc(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL16nk_create_windowP10nk_context(ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL16nk_insert_windowP10nk_contextP9nk_window25nk_window_insert_location(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL22nk_command_buffer_initP17nk_command_bufferP9nk_buffer19nk_command_clipping(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL8nk_startP10nk_contextP9nk_window(ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL15nk_create_panelP10nk_context(ptr noundef) local_unnamed_addr #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #6

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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 #4 = { 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 #5 = { 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn 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, !16, i64 360}
!6 = !{!"_ZTS10nk_context", !7, i64 0, !15, i64 360, !36, i64 9000, !41, i64 9120, !11, i64 9144, !42, i64 9148, !43, i64 9152, !14, i64 12024, !51, i64 12032, !56, i64 12272, !60, i64 17656, !11, i64 17720, !11, i64 17724, !61, i64 17728, !16, i64 17800, !16, i64 17808, !16, i64 17816, !16, i64 17824, !16, i64 17832, !11, i64 17840, !11, i64 17844}
!7 = !{!"_ZTS8nk_input", !8, i64 0, !12, i64 260}
!8 = !{!"_ZTS11nk_keyboard", !9, i64 0, !9, i64 240, !11, i64 256}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"int", !9, i64 0}
!12 = !{!"_ZTS8nk_mouse", !9, i64 0, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !9, i64 96, !9, i64 97, !9, i64 98}
!13 = !{!"_ZTS7nk_vec2", !14, i64 0, !14, i64 4}
!14 = !{!"float", !9, i64 0}
!15 = !{!"_ZTS8nk_style", !16, i64 0, !9, i64 8, !16, i64 64, !16, i64 72, !11, i64 80, !17, i64 84, !19, i64 96, !19, i64 296, !19, i64 496, !22, i64 696, !22, i64 976, !23, i64 1256, !24, i64 1584, !26, i64 2320, !27, i64 2624, !28, i64 4128, !30, i64 5048, !29, i64 5120, !29, i64 5832, !31, i64 6544, !32, i64 7432, !33, i64 7832}
!16 = !{!"any pointer", !9, i64 0}
!17 = !{!"_ZTS13nk_style_text", !18, i64 0, !13, i64 4}
!18 = !{!"_ZTS8nk_color", !9, i64 0, !9, i64 1, !9, i64 2, !9, i64 3}
!19 = !{!"_ZTS15nk_style_button", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !11, i64 140, !14, i64 144, !14, i64 148, !13, i64 152, !13, i64 160, !13, i64 168, !9, i64 176, !16, i64 184, !16, i64 192}
!20 = !{!"_ZTS13nk_style_item", !21, i64 0, !9, i64 8}
!21 = !{!"_ZTS18nk_style_item_type", !9, i64 0}
!22 = !{!"_ZTS15nk_style_toggle", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !20, i64 128, !20, i64 168, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !11, i64 224, !13, i64 228, !13, i64 236, !14, i64 244, !14, i64 248, !9, i64 256, !16, i64 264, !16, i64 272}
!23 = !{!"_ZTS19nk_style_selectable", !20, i64 0, !20, i64 40, !20, i64 80, !20, i64 120, !20, i64 160, !20, i64 200, !18, i64 240, !18, i64 244, !18, i64 248, !18, i64 252, !18, i64 256, !18, i64 260, !18, i64 264, !11, i64 268, !14, i64 272, !13, i64 276, !13, i64 284, !13, i64 292, !9, i64 304, !16, i64 312, !16, i64 320}
!24 = !{!"_ZTS15nk_style_slider", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !20, i64 144, !20, i64 184, !20, i64 224, !14, i64 264, !14, i64 268, !14, i64 272, !13, i64 276, !13, i64 284, !13, i64 292, !11, i64 300, !19, i64 304, !19, i64 504, !25, i64 704, !25, i64 708, !9, i64 712, !16, i64 720, !16, i64 728}
!25 = !{!"_ZTS14nk_symbol_type", !9, i64 0}
!26 = !{!"_ZTS17nk_style_progress", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !20, i64 128, !20, i64 168, !20, i64 208, !18, i64 248, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !13, i64 268, !9, i64 280, !16, i64 288, !16, i64 296}
!27 = !{!"_ZTS17nk_style_property", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !25, i64 136, !25, i64 140, !14, i64 144, !14, i64 148, !13, i64 152, !28, i64 160, !19, i64 1080, !19, i64 1280, !9, i64 1480, !16, i64 1488, !16, i64 1496}
!28 = !{!"_ZTS13nk_style_edit", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !29, i64 128, !18, i64 840, !18, i64 844, !18, i64 848, !18, i64 852, !18, i64 856, !18, i64 860, !18, i64 864, !18, i64 868, !18, i64 872, !18, i64 876, !18, i64 880, !14, i64 884, !14, i64 888, !14, i64 892, !13, i64 896, !13, i64 904, !14, i64 912}
!29 = !{!"_ZTS18nk_style_scrollbar", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !20, i64 128, !20, i64 168, !20, i64 208, !18, i64 248, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !13, i64 268, !11, i64 276, !19, i64 280, !19, i64 480, !25, i64 680, !25, i64 684, !9, i64 688, !16, i64 696, !16, i64 704}
!30 = !{!"_ZTS14nk_style_chart", !20, i64 0, !18, i64 40, !18, i64 44, !18, i64 48, !14, i64 52, !14, i64 56, !13, i64 60}
!31 = !{!"_ZTS12nk_style_tab", !20, i64 0, !18, i64 40, !18, i64 44, !19, i64 48, !19, i64 248, !19, i64 448, !19, i64 648, !25, i64 848, !25, i64 852, !14, i64 856, !14, i64 860, !14, i64 864, !13, i64 868, !13, i64 876}
!32 = !{!"_ZTS14nk_style_combo", !20, i64 0, !20, i64 40, !20, i64 80, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !19, i64 152, !25, i64 352, !25, i64 356, !25, i64 360, !14, i64 364, !14, i64 368, !13, i64 372, !13, i64 380, !13, i64 388}
!33 = !{!"_ZTS15nk_style_window", !34, i64 0, !20, i64 576, !18, i64 616, !18, i64 620, !18, i64 624, !18, i64 628, !18, i64 632, !18, i64 636, !18, i64 640, !18, i64 644, !20, i64 648, !14, i64 688, !14, i64 692, !14, i64 696, !14, i64 700, !14, i64 704, !14, i64 708, !14, i64 712, !14, i64 716, !14, i64 720, !13, i64 724, !13, i64 732, !13, i64 740, !13, i64 748, !13, i64 756, !13, i64 764, !13, i64 772, !13, i64 780, !13, i64 788, !13, i64 796}
!34 = !{!"_ZTS22nk_style_window_header", !20, i64 0, !20, i64 40, !20, i64 80, !19, i64 120, !19, i64 320, !25, i64 520, !25, i64 524, !25, i64 528, !18, i64 532, !18, i64 536, !18, i64 540, !35, i64 544, !13, i64 548, !13, i64 556, !13, i64 564}
!35 = !{!"_ZTS21nk_style_header_align", !9, i64 0}
!36 = !{!"_ZTS9nk_buffer", !9, i64 0, !37, i64 32, !38, i64 56, !39, i64 64, !14, i64 80, !40, i64 88, !40, i64 96, !40, i64 104, !40, i64 112}
!37 = !{!"_ZTS12nk_allocator", !9, i64 0, !16, i64 8, !16, i64 16}
!38 = !{!"_ZTS18nk_allocation_type", !9, i64 0}
!39 = !{!"_ZTS9nk_memory", !16, i64 0, !40, i64 8}
!40 = !{!"long", !9, i64 0}
!41 = !{!"_ZTS12nk_clipboard", !9, i64 0, !16, i64 8, !16, i64 16}
!42 = !{!"_ZTS18nk_button_behavior", !9, i64 0}
!43 = !{!"_ZTS23nk_configuration_stacks", !44, i64 0, !45, i64 776, !46, i64 1296, !47, i64 1560, !48, i64 2080, !49, i64 2600, !50, i64 2736}
!44 = !{!"_ZTS26nk_config_stack_style_item", !11, i64 0, !9, i64 8}
!45 = !{!"_ZTS21nk_config_stack_float", !11, i64 0, !9, i64 8}
!46 = !{!"_ZTS20nk_config_stack_vec2", !11, i64 0, !9, i64 8}
!47 = !{!"_ZTS21nk_config_stack_flags", !11, i64 0, !9, i64 8}
!48 = !{!"_ZTS21nk_config_stack_color", !11, i64 0, !9, i64 8}
!49 = !{!"_ZTS25nk_config_stack_user_font", !11, i64 0, !9, i64 8}
!50 = !{!"_ZTS31nk_config_stack_button_behavior", !11, i64 0, !9, i64 8}
!51 = !{!"_ZTS12nk_draw_list", !52, i64 0, !9, i64 16, !53, i64 112, !16, i64 176, !16, i64 184, !16, i64 192, !11, i64 200, !11, i64 204, !11, i64 208, !40, i64 216, !11, i64 224, !11, i64 228, !54, i64 232, !54, i64 236}
!52 = !{!"_ZTS7nk_rect", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!53 = !{!"_ZTS17nk_convert_config", !14, i64 0, !54, i64 4, !54, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !55, i64 24, !16, i64 40, !40, i64 48, !40, i64 56}
!54 = !{!"_ZTS16nk_anti_aliasing", !9, i64 0}
!55 = !{!"_ZTS20nk_draw_null_texture", !9, i64 0, !13, i64 8}
!56 = !{!"_ZTS12nk_text_edit", !41, i64 0, !57, i64 24, !16, i64 152, !13, i64 160, !11, i64 168, !11, i64 172, !11, i64 176, !9, i64 180, !9, i64 181, !9, i64 182, !9, i64 183, !9, i64 184, !9, i64 185, !9, i64 186, !14, i64 188, !58, i64 192}
!57 = !{!"_ZTS6nk_str", !36, i64 0, !11, i64 120}
!58 = !{!"_ZTS18nk_text_undo_state", !9, i64 0, !9, i64 1188, !59, i64 5184, !59, i64 5186, !59, i64 5188, !59, i64 5190}
!59 = !{!"short", !9, i64 0}
!60 = !{!"_ZTS17nk_command_buffer", !16, i64 0, !52, i64 8, !11, i64 24, !9, i64 32, !40, i64 40, !40, i64 48, !40, i64 56}
!61 = !{!"_ZTS7nk_pool", !37, i64 0, !38, i64 24, !11, i64 28, !16, i64 32, !16, i64 40, !11, i64 48, !40, i64 56, !40, i64 64}
!62 = !{!63, !16, i64 16}
!63 = !{!"_ZTS12nk_user_font", !9, i64 0, !14, i64 8, !16, i64 16, !16, i64 24, !9, i64 32}
!64 = !{!6, !16, i64 17824}
!65 = !{!66, !11, i64 72}
!66 = !{!"_ZTS9nk_window", !11, i64 0, !11, i64 4, !9, i64 8, !11, i64 72, !52, i64 76, !67, i64 92, !60, i64 104, !16, i64 168, !14, i64 176, !68, i64 180, !69, i64 288, !72, i64 384, !11, i64 428, !16, i64 432, !11, i64 440, !16, i64 448, !16, i64 456, !16, i64 464}
!67 = !{!"_ZTS9nk_scroll", !11, i64 0, !11, i64 4}
!68 = !{!"_ZTS17nk_property_state", !11, i64 0, !11, i64 4, !9, i64 8, !11, i64 72, !11, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !11, i64 100}
!69 = !{!"_ZTS14nk_popup_state", !16, i64 0, !70, i64 8, !71, i64 16, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !52, i64 80}
!70 = !{!"_ZTS13nk_panel_type", !9, i64 0}
!71 = !{!"_ZTS15nk_popup_buffer", !40, i64 0, !40, i64 8, !40, i64 16, !40, i64 24, !11, i64 32}
!72 = !{!"_ZTS13nk_edit_state", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !67, i64 32, !9, i64 40, !9, i64 41}
!73 = !{!66, !11, i64 4}
!74 = !{!9, !9, i64 0}
!75 = !{!66, !16, i64 288}
!76 = !{!6, !16, i64 17816}
!77 = !{!66, !11, i64 0}
!78 = !{!6, !11, i64 17844}
!79 = !{!6, !16, i64 17808}
!80 = !{!66, !16, i64 168}
!81 = !{!63, !14, i64 8}
!82 = !{!15, !14, i64 8384}
!83 = !{!15, !14, i64 8392}
!84 = !{!66, !14, i64 76}
!85 = !{!66, !14, i64 80}
!86 = !{!66, !14, i64 84}
!87 = !{!88, !11, i64 4}
!88 = !{!"_ZTS15nk_mouse_button", !11, i64 0, !11, i64 4, !13, i64 8}
!89 = !{!88, !11, i64 0}
!90 = !{!66, !16, i64 448}
!91 = !{!66, !11, i64 348}
!92 = !{!66, !14, i64 88}
!93 = !{!6, !14, i64 324}
!94 = !{!6, !14, i64 328}
!95 = !{!96, !16, i64 24}
!96 = !{!"_ZTS8nk_panel", !70, i64 0, !11, i64 4, !52, i64 8, !16, i64 24, !16, i64 32, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !14, i64 60, !11, i64 64, !52, i64 68, !97, i64 84, !98, i64 112, !100, i64 248, !16, i64 432, !16, i64 440}
!97 = !{!"_ZTS13nk_menu_state", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !67, i64 16}
!98 = !{!"_ZTS13nk_row_layout", !99, i64 0, !11, i64 4, !14, i64 8, !14, i64 12, !11, i64 16, !16, i64 24, !14, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !52, i64 48, !11, i64 64, !9, i64 68}
!99 = !{!"_ZTS24nk_panel_row_layout_type", !9, i64 0}
!100 = !{!"_ZTS8nk_chart", !11, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !9, i64 20}
!101 = !{!96, !16, i64 32}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass