; LLVM IR from ronan-kerviche/glip-lib :: GLIP-Lib/src/Core/HdlDynamicData.ll (ZN4Glip6CoreGL14HdlDynamicData4copyERKS1_)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [94 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.5 = external hidden unnamed_addr constant [54 x i8], align 1

declare ptr @__cxa_allocate_exception(i64)

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #1

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #2

declare void @__cxa_throw(ptr, ptr, ptr)

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare void @__cxa_free_exception(ptr)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28)) #3 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIcEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIhEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIsEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialItEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN4Glip6CoreGL14HdlDynamicData4copyERKS1_(ptr noundef nonnull align 8 dereferenceable(28) %0) #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca i32, align 4
  %39 = alloca i1, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  store ptr null, ptr %3, align 8, !tbaa !5
  %40 = load ptr, ptr %2, align 8, !tbaa !5
  %41 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %40)
  %42 = load i32, ptr %41, align 4, !tbaa !9
  %43 = icmp eq i32 %42, 5120
  br i1 %43, label %44, label %64

44:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %45 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %46 = load ptr, ptr %2, align 8, !tbaa !5
  %47 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %46)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIcEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %45, ptr noundef nonnull align 4 dereferenceable(4) %47, i32 noundef 1, i32 noundef 1)
          to label %48 unwind label %60

48:                                               ; preds = %44
  store ptr %45, ptr %4, align 8, !tbaa !5
  %49 = load ptr, ptr %4, align 8, !tbaa !5
  %50 = load ptr, ptr %49, align 8, !tbaa !11
  %51 = getelementptr inbounds ptr, ptr %50, i64 7
  %52 = load ptr, ptr %51, align 8
  %53 = call noundef ptr %52(ptr noundef nonnull align 8 dereferenceable(40) %49)
  %54 = load ptr, ptr %2, align 8, !tbaa !5
  %55 = load ptr, ptr %54, align 8, !tbaa !11
  %56 = getelementptr inbounds ptr, ptr %55, i64 6
  %57 = load ptr, ptr %56, align 8
  %58 = call noundef ptr %57(ptr noundef nonnull align 8 dereferenceable(28) %54)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %53, ptr align 1 %58, i64 1, i1 false)
  %59 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %59, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  br label %770

60:                                               ; preds = %44
  %61 = landingpad { ptr, i32 }
          cleanup
  %62 = extractvalue { ptr, i32 } %61, 0
  store ptr %62, ptr %5, align 8
  %63 = extractvalue { ptr, i32 } %61, 1
  store i32 %63, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %45, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  br label %772

64:                                               ; preds = %1
  %65 = load ptr, ptr %2, align 8, !tbaa !5
  %66 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %65)
  %67 = load i32, ptr %66, align 4, !tbaa !9
  %68 = icmp eq i32 %67, 5121
  br i1 %68, label %69, label %89

69:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %70 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %71 = load ptr, ptr %2, align 8, !tbaa !5
  %72 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %71)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIhEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %70, ptr noundef nonnull align 4 dereferenceable(4) %72, i32 noundef 1, i32 noundef 1)
          to label %73 unwind label %85

73:                                               ; preds = %69
  store ptr %70, ptr %7, align 8, !tbaa !5
  %74 = load ptr, ptr %7, align 8, !tbaa !5
  %75 = load ptr, ptr %74, align 8, !tbaa !11
  %76 = getelementptr inbounds ptr, ptr %75, i64 7
  %77 = load ptr, ptr %76, align 8
  %78 = call noundef ptr %77(ptr noundef nonnull align 8 dereferenceable(40) %74)
  %79 = load ptr, ptr %2, align 8, !tbaa !5
  %80 = load ptr, ptr %79, align 8, !tbaa !11
  %81 = getelementptr inbounds ptr, ptr %80, i64 6
  %82 = load ptr, ptr %81, align 8
  %83 = call noundef ptr %82(ptr noundef nonnull align 8 dereferenceable(28) %79)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %78, ptr align 1 %83, i64 1, i1 false)
  %84 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %84, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %769

85:                                               ; preds = %69
  %86 = landingpad { ptr, i32 }
          cleanup
  %87 = extractvalue { ptr, i32 } %86, 0
  store ptr %87, ptr %5, align 8
  %88 = extractvalue { ptr, i32 } %86, 1
  store i32 %88, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %70, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %772

89:                                               ; preds = %64
  %90 = load ptr, ptr %2, align 8, !tbaa !5
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %90)
  %92 = load i32, ptr %91, align 4, !tbaa !9
  %93 = icmp eq i32 %92, 5122
  br i1 %93, label %94, label %114

94:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %95 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %96 = load ptr, ptr %2, align 8, !tbaa !5
  %97 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %96)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIsEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %95, ptr noundef nonnull align 4 dereferenceable(4) %97, i32 noundef 1, i32 noundef 1)
          to label %98 unwind label %110

98:                                               ; preds = %94
  store ptr %95, ptr %8, align 8, !tbaa !5
  %99 = load ptr, ptr %8, align 8, !tbaa !5
  %100 = load ptr, ptr %99, align 8, !tbaa !11
  %101 = getelementptr inbounds ptr, ptr %100, i64 7
  %102 = load ptr, ptr %101, align 8
  %103 = call noundef ptr %102(ptr noundef nonnull align 8 dereferenceable(40) %99)
  %104 = load ptr, ptr %2, align 8, !tbaa !5
  %105 = load ptr, ptr %104, align 8, !tbaa !11
  %106 = getelementptr inbounds ptr, ptr %105, i64 6
  %107 = load ptr, ptr %106, align 8
  %108 = call noundef ptr %107(ptr noundef nonnull align 8 dereferenceable(28) %104)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %103, ptr align 1 %108, i64 2, i1 false)
  %109 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %109, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br label %768

110:                                              ; preds = %94
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %5, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %95, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br label %772

114:                                              ; preds = %89
  %115 = load ptr, ptr %2, align 8, !tbaa !5
  %116 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %115)
  %117 = load i32, ptr %116, align 4, !tbaa !9
  %118 = icmp eq i32 %117, 5123
  br i1 %118, label %119, label %139

119:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %120 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %121 = load ptr, ptr %2, align 8, !tbaa !5
  %122 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %121)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialItEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %120, ptr noundef nonnull align 4 dereferenceable(4) %122, i32 noundef 1, i32 noundef 1)
          to label %123 unwind label %135

123:                                              ; preds = %119
  store ptr %120, ptr %9, align 8, !tbaa !5
  %124 = load ptr, ptr %9, align 8, !tbaa !5
  %125 = load ptr, ptr %124, align 8, !tbaa !11
  %126 = getelementptr inbounds ptr, ptr %125, i64 7
  %127 = load ptr, ptr %126, align 8
  %128 = call noundef ptr %127(ptr noundef nonnull align 8 dereferenceable(40) %124)
  %129 = load ptr, ptr %2, align 8, !tbaa !5
  %130 = load ptr, ptr %129, align 8, !tbaa !11
  %131 = getelementptr inbounds ptr, ptr %130, i64 6
  %132 = load ptr, ptr %131, align 8
  %133 = call noundef ptr %132(ptr noundef nonnull align 8 dereferenceable(28) %129)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %128, ptr align 1 %133, i64 2, i1 false)
  %134 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %134, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  br label %767

135:                                              ; preds = %119
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %5, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %120, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  br label %772

139:                                              ; preds = %114
  %140 = load ptr, ptr %2, align 8, !tbaa !5
  %141 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %140)
  %142 = load i32, ptr %141, align 4, !tbaa !9
  %143 = icmp eq i32 %142, 5126
  br i1 %143, label %144, label %164

144:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %145 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %146 = load ptr, ptr %2, align 8, !tbaa !5
  %147 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %146)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %145, ptr noundef nonnull align 4 dereferenceable(4) %147, i32 noundef 1, i32 noundef 1)
          to label %148 unwind label %160

148:                                              ; preds = %144
  store ptr %145, ptr %10, align 8, !tbaa !5
  %149 = load ptr, ptr %10, align 8, !tbaa !5
  %150 = load ptr, ptr %149, align 8, !tbaa !11
  %151 = getelementptr inbounds ptr, ptr %150, i64 7
  %152 = load ptr, ptr %151, align 8
  %153 = call noundef ptr %152(ptr noundef nonnull align 8 dereferenceable(40) %149)
  %154 = load ptr, ptr %2, align 8, !tbaa !5
  %155 = load ptr, ptr %154, align 8, !tbaa !11
  %156 = getelementptr inbounds ptr, ptr %155, i64 6
  %157 = load ptr, ptr %156, align 8
  %158 = call noundef ptr %157(ptr noundef nonnull align 8 dereferenceable(28) %154)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %153, ptr align 1 %158, i64 4, i1 false)
  %159 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %159, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %766

160:                                              ; preds = %144
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %5, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %145, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %772

164:                                              ; preds = %139
  %165 = load ptr, ptr %2, align 8, !tbaa !5
  %166 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %165)
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = icmp eq i32 %167, 35664
  br i1 %168, label %169, label %189

169:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %170 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %171 = load ptr, ptr %2, align 8, !tbaa !5
  %172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %171)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %170, ptr noundef nonnull align 4 dereferenceable(4) %172, i32 noundef 2, i32 noundef 1)
          to label %173 unwind label %185

173:                                              ; preds = %169
  store ptr %170, ptr %11, align 8, !tbaa !5
  %174 = load ptr, ptr %11, align 8, !tbaa !5
  %175 = load ptr, ptr %174, align 8, !tbaa !11
  %176 = getelementptr inbounds ptr, ptr %175, i64 7
  %177 = load ptr, ptr %176, align 8
  %178 = call noundef ptr %177(ptr noundef nonnull align 8 dereferenceable(40) %174)
  %179 = load ptr, ptr %2, align 8, !tbaa !5
  %180 = load ptr, ptr %179, align 8, !tbaa !11
  %181 = getelementptr inbounds ptr, ptr %180, i64 6
  %182 = load ptr, ptr %181, align 8
  %183 = call noundef ptr %182(ptr noundef nonnull align 8 dereferenceable(28) %179)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %178, ptr align 1 %183, i64 8, i1 false)
  %184 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %184, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %765

185:                                              ; preds = %169
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %5, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %170, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %772

189:                                              ; preds = %164
  %190 = load ptr, ptr %2, align 8, !tbaa !5
  %191 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %190)
  %192 = load i32, ptr %191, align 4, !tbaa !9
  %193 = icmp eq i32 %192, 35665
  br i1 %193, label %194, label %214

194:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %195 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %196 = load ptr, ptr %2, align 8, !tbaa !5
  %197 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %196)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %195, ptr noundef nonnull align 4 dereferenceable(4) %197, i32 noundef 3, i32 noundef 1)
          to label %198 unwind label %210

198:                                              ; preds = %194
  store ptr %195, ptr %12, align 8, !tbaa !5
  %199 = load ptr, ptr %12, align 8, !tbaa !5
  %200 = load ptr, ptr %199, align 8, !tbaa !11
  %201 = getelementptr inbounds ptr, ptr %200, i64 7
  %202 = load ptr, ptr %201, align 8
  %203 = call noundef ptr %202(ptr noundef nonnull align 8 dereferenceable(40) %199)
  %204 = load ptr, ptr %2, align 8, !tbaa !5
  %205 = load ptr, ptr %204, align 8, !tbaa !11
  %206 = getelementptr inbounds ptr, ptr %205, i64 6
  %207 = load ptr, ptr %206, align 8
  %208 = call noundef ptr %207(ptr noundef nonnull align 8 dereferenceable(28) %204)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %203, ptr align 1 %208, i64 12, i1 false)
  %209 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %209, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %764

210:                                              ; preds = %194
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %5, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %195, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %772

214:                                              ; preds = %189
  %215 = load ptr, ptr %2, align 8, !tbaa !5
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %215)
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = icmp eq i32 %217, 35666
  br i1 %218, label %219, label %239

219:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %220 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %221 = load ptr, ptr %2, align 8, !tbaa !5
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %221)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %220, ptr noundef nonnull align 4 dereferenceable(4) %222, i32 noundef 4, i32 noundef 1)
          to label %223 unwind label %235

223:                                              ; preds = %219
  store ptr %220, ptr %13, align 8, !tbaa !5
  %224 = load ptr, ptr %13, align 8, !tbaa !5
  %225 = load ptr, ptr %224, align 8, !tbaa !11
  %226 = getelementptr inbounds ptr, ptr %225, i64 7
  %227 = load ptr, ptr %226, align 8
  %228 = call noundef ptr %227(ptr noundef nonnull align 8 dereferenceable(40) %224)
  %229 = load ptr, ptr %2, align 8, !tbaa !5
  %230 = load ptr, ptr %229, align 8, !tbaa !11
  %231 = getelementptr inbounds ptr, ptr %230, i64 6
  %232 = load ptr, ptr %231, align 8
  %233 = call noundef ptr %232(ptr noundef nonnull align 8 dereferenceable(28) %229)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %228, ptr align 1 %233, i64 16, i1 false)
  %234 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %234, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  br label %763

235:                                              ; preds = %219
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %5, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %220, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  br label %772

239:                                              ; preds = %214
  %240 = load ptr, ptr %2, align 8, !tbaa !5
  %241 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %240)
  %242 = load i32, ptr %241, align 4, !tbaa !9
  %243 = icmp eq i32 %242, 5130
  br i1 %243, label %244, label %264

244:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %245 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %246 = load ptr, ptr %2, align 8, !tbaa !5
  %247 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %246)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %245, ptr noundef nonnull align 4 dereferenceable(4) %247, i32 noundef 1, i32 noundef 1)
          to label %248 unwind label %260

248:                                              ; preds = %244
  store ptr %245, ptr %14, align 8, !tbaa !5
  %249 = load ptr, ptr %14, align 8, !tbaa !5
  %250 = load ptr, ptr %249, align 8, !tbaa !11
  %251 = getelementptr inbounds ptr, ptr %250, i64 7
  %252 = load ptr, ptr %251, align 8
  %253 = call noundef ptr %252(ptr noundef nonnull align 8 dereferenceable(40) %249)
  %254 = load ptr, ptr %2, align 8, !tbaa !5
  %255 = load ptr, ptr %254, align 8, !tbaa !11
  %256 = getelementptr inbounds ptr, ptr %255, i64 6
  %257 = load ptr, ptr %256, align 8
  %258 = call noundef ptr %257(ptr noundef nonnull align 8 dereferenceable(28) %254)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %253, ptr align 1 %258, i64 8, i1 false)
  %259 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %259, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %762

260:                                              ; preds = %244
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %5, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %245, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %772

264:                                              ; preds = %239
  %265 = load ptr, ptr %2, align 8, !tbaa !5
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %265)
  %267 = load i32, ptr %266, align 4, !tbaa !9
  %268 = icmp eq i32 %267, 36860
  br i1 %268, label %269, label %289

269:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %270 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %271 = load ptr, ptr %2, align 8, !tbaa !5
  %272 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %271)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %270, ptr noundef nonnull align 4 dereferenceable(4) %272, i32 noundef 2, i32 noundef 1)
          to label %273 unwind label %285

273:                                              ; preds = %269
  store ptr %270, ptr %15, align 8, !tbaa !5
  %274 = load ptr, ptr %15, align 8, !tbaa !5
  %275 = load ptr, ptr %274, align 8, !tbaa !11
  %276 = getelementptr inbounds ptr, ptr %275, i64 7
  %277 = load ptr, ptr %276, align 8
  %278 = call noundef ptr %277(ptr noundef nonnull align 8 dereferenceable(40) %274)
  %279 = load ptr, ptr %2, align 8, !tbaa !5
  %280 = load ptr, ptr %279, align 8, !tbaa !11
  %281 = getelementptr inbounds ptr, ptr %280, i64 6
  %282 = load ptr, ptr %281, align 8
  %283 = call noundef ptr %282(ptr noundef nonnull align 8 dereferenceable(28) %279)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %278, ptr align 1 %283, i64 16, i1 false)
  %284 = load ptr, ptr %15, align 8, !tbaa !5
  store ptr %284, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  br label %761

285:                                              ; preds = %269
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %5, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %270, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  br label %772

289:                                              ; preds = %264
  %290 = load ptr, ptr %2, align 8, !tbaa !5
  %291 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %290)
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp eq i32 %292, 36861
  br i1 %293, label %294, label %314

294:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %295 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %296 = load ptr, ptr %2, align 8, !tbaa !5
  %297 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %296)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %295, ptr noundef nonnull align 4 dereferenceable(4) %297, i32 noundef 3, i32 noundef 1)
          to label %298 unwind label %310

298:                                              ; preds = %294
  store ptr %295, ptr %16, align 8, !tbaa !5
  %299 = load ptr, ptr %16, align 8, !tbaa !5
  %300 = load ptr, ptr %299, align 8, !tbaa !11
  %301 = getelementptr inbounds ptr, ptr %300, i64 7
  %302 = load ptr, ptr %301, align 8
  %303 = call noundef ptr %302(ptr noundef nonnull align 8 dereferenceable(40) %299)
  %304 = load ptr, ptr %2, align 8, !tbaa !5
  %305 = load ptr, ptr %304, align 8, !tbaa !11
  %306 = getelementptr inbounds ptr, ptr %305, i64 6
  %307 = load ptr, ptr %306, align 8
  %308 = call noundef ptr %307(ptr noundef nonnull align 8 dereferenceable(28) %304)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %303, ptr align 1 %308, i64 24, i1 false)
  %309 = load ptr, ptr %16, align 8, !tbaa !5
  store ptr %309, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %760

310:                                              ; preds = %294
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %5, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %295, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %772

314:                                              ; preds = %289
  %315 = load ptr, ptr %2, align 8, !tbaa !5
  %316 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %315)
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = icmp eq i32 %317, 36862
  br i1 %318, label %319, label %339

319:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  %320 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %321 = load ptr, ptr %2, align 8, !tbaa !5
  %322 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %321)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %320, ptr noundef nonnull align 4 dereferenceable(4) %322, i32 noundef 4, i32 noundef 1)
          to label %323 unwind label %335

323:                                              ; preds = %319
  store ptr %320, ptr %17, align 8, !tbaa !5
  %324 = load ptr, ptr %17, align 8, !tbaa !5
  %325 = load ptr, ptr %324, align 8, !tbaa !11
  %326 = getelementptr inbounds ptr, ptr %325, i64 7
  %327 = load ptr, ptr %326, align 8
  %328 = call noundef ptr %327(ptr noundef nonnull align 8 dereferenceable(40) %324)
  %329 = load ptr, ptr %2, align 8, !tbaa !5
  %330 = load ptr, ptr %329, align 8, !tbaa !11
  %331 = getelementptr inbounds ptr, ptr %330, i64 6
  %332 = load ptr, ptr %331, align 8
  %333 = call noundef ptr %332(ptr noundef nonnull align 8 dereferenceable(28) %329)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %328, ptr align 1 %333, i64 32, i1 false)
  %334 = load ptr, ptr %17, align 8, !tbaa !5
  store ptr %334, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br label %759

335:                                              ; preds = %319
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %5, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %320, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br label %772

339:                                              ; preds = %314
  %340 = load ptr, ptr %2, align 8, !tbaa !5
  %341 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %340)
  %342 = load i32, ptr %341, align 4, !tbaa !9
  %343 = icmp eq i32 %342, 5124
  br i1 %343, label %344, label %364

344:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %345 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %346 = load ptr, ptr %2, align 8, !tbaa !5
  %347 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %346)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %345, ptr noundef nonnull align 4 dereferenceable(4) %347, i32 noundef 1, i32 noundef 1)
          to label %348 unwind label %360

348:                                              ; preds = %344
  store ptr %345, ptr %18, align 8, !tbaa !5
  %349 = load ptr, ptr %18, align 8, !tbaa !5
  %350 = load ptr, ptr %349, align 8, !tbaa !11
  %351 = getelementptr inbounds ptr, ptr %350, i64 7
  %352 = load ptr, ptr %351, align 8
  %353 = call noundef ptr %352(ptr noundef nonnull align 8 dereferenceable(40) %349)
  %354 = load ptr, ptr %2, align 8, !tbaa !5
  %355 = load ptr, ptr %354, align 8, !tbaa !11
  %356 = getelementptr inbounds ptr, ptr %355, i64 6
  %357 = load ptr, ptr %356, align 8
  %358 = call noundef ptr %357(ptr noundef nonnull align 8 dereferenceable(28) %354)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %353, ptr align 1 %358, i64 4, i1 false)
  %359 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %359, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %758

360:                                              ; preds = %344
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %5, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %345, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %772

364:                                              ; preds = %339
  %365 = load ptr, ptr %2, align 8, !tbaa !5
  %366 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %365)
  %367 = load i32, ptr %366, align 4, !tbaa !9
  %368 = icmp eq i32 %367, 35667
  br i1 %368, label %369, label %389

369:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %370 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %371 = load ptr, ptr %2, align 8, !tbaa !5
  %372 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %371)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %370, ptr noundef nonnull align 4 dereferenceable(4) %372, i32 noundef 2, i32 noundef 1)
          to label %373 unwind label %385

373:                                              ; preds = %369
  store ptr %370, ptr %19, align 8, !tbaa !5
  %374 = load ptr, ptr %19, align 8, !tbaa !5
  %375 = load ptr, ptr %374, align 8, !tbaa !11
  %376 = getelementptr inbounds ptr, ptr %375, i64 7
  %377 = load ptr, ptr %376, align 8
  %378 = call noundef ptr %377(ptr noundef nonnull align 8 dereferenceable(40) %374)
  %379 = load ptr, ptr %2, align 8, !tbaa !5
  %380 = load ptr, ptr %379, align 8, !tbaa !11
  %381 = getelementptr inbounds ptr, ptr %380, i64 6
  %382 = load ptr, ptr %381, align 8
  %383 = call noundef ptr %382(ptr noundef nonnull align 8 dereferenceable(28) %379)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %378, ptr align 1 %383, i64 8, i1 false)
  %384 = load ptr, ptr %19, align 8, !tbaa !5
  store ptr %384, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  br label %757

385:                                              ; preds = %369
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %5, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %370, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  br label %772

389:                                              ; preds = %364
  %390 = load ptr, ptr %2, align 8, !tbaa !5
  %391 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %390)
  %392 = load i32, ptr %391, align 4, !tbaa !9
  %393 = icmp eq i32 %392, 35668
  br i1 %393, label %394, label %414

394:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %395 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %396 = load ptr, ptr %2, align 8, !tbaa !5
  %397 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %396)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %395, ptr noundef nonnull align 4 dereferenceable(4) %397, i32 noundef 3, i32 noundef 1)
          to label %398 unwind label %410

398:                                              ; preds = %394
  store ptr %395, ptr %20, align 8, !tbaa !5
  %399 = load ptr, ptr %20, align 8, !tbaa !5
  %400 = load ptr, ptr %399, align 8, !tbaa !11
  %401 = getelementptr inbounds ptr, ptr %400, i64 7
  %402 = load ptr, ptr %401, align 8
  %403 = call noundef ptr %402(ptr noundef nonnull align 8 dereferenceable(40) %399)
  %404 = load ptr, ptr %2, align 8, !tbaa !5
  %405 = load ptr, ptr %404, align 8, !tbaa !11
  %406 = getelementptr inbounds ptr, ptr %405, i64 6
  %407 = load ptr, ptr %406, align 8
  %408 = call noundef ptr %407(ptr noundef nonnull align 8 dereferenceable(28) %404)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %403, ptr align 1 %408, i64 12, i1 false)
  %409 = load ptr, ptr %20, align 8, !tbaa !5
  store ptr %409, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %756

410:                                              ; preds = %394
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %5, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %395, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %772

414:                                              ; preds = %389
  %415 = load ptr, ptr %2, align 8, !tbaa !5
  %416 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %415)
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = icmp eq i32 %417, 35669
  br i1 %418, label %419, label %439

419:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %420 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %421 = load ptr, ptr %2, align 8, !tbaa !5
  %422 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %421)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %420, ptr noundef nonnull align 4 dereferenceable(4) %422, i32 noundef 4, i32 noundef 1)
          to label %423 unwind label %435

423:                                              ; preds = %419
  store ptr %420, ptr %21, align 8, !tbaa !5
  %424 = load ptr, ptr %21, align 8, !tbaa !5
  %425 = load ptr, ptr %424, align 8, !tbaa !11
  %426 = getelementptr inbounds ptr, ptr %425, i64 7
  %427 = load ptr, ptr %426, align 8
  %428 = call noundef ptr %427(ptr noundef nonnull align 8 dereferenceable(40) %424)
  %429 = load ptr, ptr %2, align 8, !tbaa !5
  %430 = load ptr, ptr %429, align 8, !tbaa !11
  %431 = getelementptr inbounds ptr, ptr %430, i64 6
  %432 = load ptr, ptr %431, align 8
  %433 = call noundef ptr %432(ptr noundef nonnull align 8 dereferenceable(28) %429)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %428, ptr align 1 %433, i64 16, i1 false)
  %434 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %434, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %755

435:                                              ; preds = %419
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %5, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %420, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %772

439:                                              ; preds = %414
  %440 = load ptr, ptr %2, align 8, !tbaa !5
  %441 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %440)
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = icmp eq i32 %442, 5125
  br i1 %443, label %444, label %464

444:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %445 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %446 = load ptr, ptr %2, align 8, !tbaa !5
  %447 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %446)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %445, ptr noundef nonnull align 4 dereferenceable(4) %447, i32 noundef 1, i32 noundef 1)
          to label %448 unwind label %460

448:                                              ; preds = %444
  store ptr %445, ptr %22, align 8, !tbaa !5
  %449 = load ptr, ptr %22, align 8, !tbaa !5
  %450 = load ptr, ptr %449, align 8, !tbaa !11
  %451 = getelementptr inbounds ptr, ptr %450, i64 7
  %452 = load ptr, ptr %451, align 8
  %453 = call noundef ptr %452(ptr noundef nonnull align 8 dereferenceable(40) %449)
  %454 = load ptr, ptr %2, align 8, !tbaa !5
  %455 = load ptr, ptr %454, align 8, !tbaa !11
  %456 = getelementptr inbounds ptr, ptr %455, i64 6
  %457 = load ptr, ptr %456, align 8
  %458 = call noundef ptr %457(ptr noundef nonnull align 8 dereferenceable(28) %454)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %453, ptr align 1 %458, i64 4, i1 false)
  %459 = load ptr, ptr %22, align 8, !tbaa !5
  store ptr %459, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %754

460:                                              ; preds = %444
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %5, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %445, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %772

464:                                              ; preds = %439
  %465 = load ptr, ptr %2, align 8, !tbaa !5
  %466 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %465)
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = icmp eq i32 %467, 36294
  br i1 %468, label %469, label %489

469:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %470 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %471 = load ptr, ptr %2, align 8, !tbaa !5
  %472 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %471)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %470, ptr noundef nonnull align 4 dereferenceable(4) %472, i32 noundef 2, i32 noundef 1)
          to label %473 unwind label %485

473:                                              ; preds = %469
  store ptr %470, ptr %23, align 8, !tbaa !5
  %474 = load ptr, ptr %23, align 8, !tbaa !5
  %475 = load ptr, ptr %474, align 8, !tbaa !11
  %476 = getelementptr inbounds ptr, ptr %475, i64 7
  %477 = load ptr, ptr %476, align 8
  %478 = call noundef ptr %477(ptr noundef nonnull align 8 dereferenceable(40) %474)
  %479 = load ptr, ptr %2, align 8, !tbaa !5
  %480 = load ptr, ptr %479, align 8, !tbaa !11
  %481 = getelementptr inbounds ptr, ptr %480, i64 6
  %482 = load ptr, ptr %481, align 8
  %483 = call noundef ptr %482(ptr noundef nonnull align 8 dereferenceable(28) %479)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %478, ptr align 1 %483, i64 8, i1 false)
  %484 = load ptr, ptr %23, align 8, !tbaa !5
  store ptr %484, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %753

485:                                              ; preds = %469
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %5, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %470, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %772

489:                                              ; preds = %464
  %490 = load ptr, ptr %2, align 8, !tbaa !5
  %491 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %490)
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = icmp eq i32 %492, 36295
  br i1 %493, label %494, label %514

494:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %495 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %496 = load ptr, ptr %2, align 8, !tbaa !5
  %497 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %496)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %495, ptr noundef nonnull align 4 dereferenceable(4) %497, i32 noundef 3, i32 noundef 1)
          to label %498 unwind label %510

498:                                              ; preds = %494
  store ptr %495, ptr %24, align 8, !tbaa !5
  %499 = load ptr, ptr %24, align 8, !tbaa !5
  %500 = load ptr, ptr %499, align 8, !tbaa !11
  %501 = getelementptr inbounds ptr, ptr %500, i64 7
  %502 = load ptr, ptr %501, align 8
  %503 = call noundef ptr %502(ptr noundef nonnull align 8 dereferenceable(40) %499)
  %504 = load ptr, ptr %2, align 8, !tbaa !5
  %505 = load ptr, ptr %504, align 8, !tbaa !11
  %506 = getelementptr inbounds ptr, ptr %505, i64 6
  %507 = load ptr, ptr %506, align 8
  %508 = call noundef ptr %507(ptr noundef nonnull align 8 dereferenceable(28) %504)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %503, ptr align 1 %508, i64 12, i1 false)
  %509 = load ptr, ptr %24, align 8, !tbaa !5
  store ptr %509, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %752

510:                                              ; preds = %494
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %5, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %495, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %772

514:                                              ; preds = %489
  %515 = load ptr, ptr %2, align 8, !tbaa !5
  %516 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %515)
  %517 = load i32, ptr %516, align 4, !tbaa !9
  %518 = icmp eq i32 %517, 36296
  br i1 %518, label %519, label %539

519:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %520 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %521 = load ptr, ptr %2, align 8, !tbaa !5
  %522 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %521)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %520, ptr noundef nonnull align 4 dereferenceable(4) %522, i32 noundef 4, i32 noundef 1)
          to label %523 unwind label %535

523:                                              ; preds = %519
  store ptr %520, ptr %25, align 8, !tbaa !5
  %524 = load ptr, ptr %25, align 8, !tbaa !5
  %525 = load ptr, ptr %524, align 8, !tbaa !11
  %526 = getelementptr inbounds ptr, ptr %525, i64 7
  %527 = load ptr, ptr %526, align 8
  %528 = call noundef ptr %527(ptr noundef nonnull align 8 dereferenceable(40) %524)
  %529 = load ptr, ptr %2, align 8, !tbaa !5
  %530 = load ptr, ptr %529, align 8, !tbaa !11
  %531 = getelementptr inbounds ptr, ptr %530, i64 6
  %532 = load ptr, ptr %531, align 8
  %533 = call noundef ptr %532(ptr noundef nonnull align 8 dereferenceable(28) %529)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %528, ptr align 1 %533, i64 16, i1 false)
  %534 = load ptr, ptr %25, align 8, !tbaa !5
  store ptr %534, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %751

535:                                              ; preds = %519
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %5, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %520, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %772

539:                                              ; preds = %514
  %540 = load ptr, ptr %2, align 8, !tbaa !5
  %541 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %540)
  %542 = load i32, ptr %541, align 4, !tbaa !9
  %543 = icmp eq i32 %542, 35670
  br i1 %543, label %544, label %564

544:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %545 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %546 = load ptr, ptr %2, align 8, !tbaa !5
  %547 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %546)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %545, ptr noundef nonnull align 4 dereferenceable(4) %547, i32 noundef 1, i32 noundef 1)
          to label %548 unwind label %560

548:                                              ; preds = %544
  store ptr %545, ptr %26, align 8, !tbaa !5
  %549 = load ptr, ptr %26, align 8, !tbaa !5
  %550 = load ptr, ptr %549, align 8, !tbaa !11
  %551 = getelementptr inbounds ptr, ptr %550, i64 7
  %552 = load ptr, ptr %551, align 8
  %553 = call noundef ptr %552(ptr noundef nonnull align 8 dereferenceable(40) %549)
  %554 = load ptr, ptr %2, align 8, !tbaa !5
  %555 = load ptr, ptr %554, align 8, !tbaa !11
  %556 = getelementptr inbounds ptr, ptr %555, i64 6
  %557 = load ptr, ptr %556, align 8
  %558 = call noundef ptr %557(ptr noundef nonnull align 8 dereferenceable(28) %554)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %553, ptr align 1 %558, i64 1, i1 false)
  %559 = load ptr, ptr %26, align 8, !tbaa !5
  store ptr %559, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %750

560:                                              ; preds = %544
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %5, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %545, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %772

564:                                              ; preds = %539
  %565 = load ptr, ptr %2, align 8, !tbaa !5
  %566 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %565)
  %567 = load i32, ptr %566, align 4, !tbaa !9
  %568 = icmp eq i32 %567, 35671
  br i1 %568, label %569, label %589

569:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %570 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %571 = load ptr, ptr %2, align 8, !tbaa !5
  %572 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %571)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %570, ptr noundef nonnull align 4 dereferenceable(4) %572, i32 noundef 2, i32 noundef 1)
          to label %573 unwind label %585

573:                                              ; preds = %569
  store ptr %570, ptr %27, align 8, !tbaa !5
  %574 = load ptr, ptr %27, align 8, !tbaa !5
  %575 = load ptr, ptr %574, align 8, !tbaa !11
  %576 = getelementptr inbounds ptr, ptr %575, i64 7
  %577 = load ptr, ptr %576, align 8
  %578 = call noundef ptr %577(ptr noundef nonnull align 8 dereferenceable(40) %574)
  %579 = load ptr, ptr %2, align 8, !tbaa !5
  %580 = load ptr, ptr %579, align 8, !tbaa !11
  %581 = getelementptr inbounds ptr, ptr %580, i64 6
  %582 = load ptr, ptr %581, align 8
  %583 = call noundef ptr %582(ptr noundef nonnull align 8 dereferenceable(28) %579)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %578, ptr align 1 %583, i64 2, i1 false)
  %584 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %584, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %749

585:                                              ; preds = %569
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %5, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %570, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %772

589:                                              ; preds = %564
  %590 = load ptr, ptr %2, align 8, !tbaa !5
  %591 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %590)
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = icmp eq i32 %592, 35672
  br i1 %593, label %594, label %614

594:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %595 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %596 = load ptr, ptr %2, align 8, !tbaa !5
  %597 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %596)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %595, ptr noundef nonnull align 4 dereferenceable(4) %597, i32 noundef 3, i32 noundef 1)
          to label %598 unwind label %610

598:                                              ; preds = %594
  store ptr %595, ptr %28, align 8, !tbaa !5
  %599 = load ptr, ptr %28, align 8, !tbaa !5
  %600 = load ptr, ptr %599, align 8, !tbaa !11
  %601 = getelementptr inbounds ptr, ptr %600, i64 7
  %602 = load ptr, ptr %601, align 8
  %603 = call noundef ptr %602(ptr noundef nonnull align 8 dereferenceable(40) %599)
  %604 = load ptr, ptr %2, align 8, !tbaa !5
  %605 = load ptr, ptr %604, align 8, !tbaa !11
  %606 = getelementptr inbounds ptr, ptr %605, i64 6
  %607 = load ptr, ptr %606, align 8
  %608 = call noundef ptr %607(ptr noundef nonnull align 8 dereferenceable(28) %604)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %603, ptr align 1 %608, i64 3, i1 false)
  %609 = load ptr, ptr %28, align 8, !tbaa !5
  store ptr %609, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %748

610:                                              ; preds = %594
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %5, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %595, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %772

614:                                              ; preds = %589
  %615 = load ptr, ptr %2, align 8, !tbaa !5
  %616 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %615)
  %617 = load i32, ptr %616, align 4, !tbaa !9
  %618 = icmp eq i32 %617, 35673
  br i1 %618, label %619, label %639

619:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %620 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %621 = load ptr, ptr %2, align 8, !tbaa !5
  %622 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %621)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %620, ptr noundef nonnull align 4 dereferenceable(4) %622, i32 noundef 4, i32 noundef 1)
          to label %623 unwind label %635

623:                                              ; preds = %619
  store ptr %620, ptr %29, align 8, !tbaa !5
  %624 = load ptr, ptr %29, align 8, !tbaa !5
  %625 = load ptr, ptr %624, align 8, !tbaa !11
  %626 = getelementptr inbounds ptr, ptr %625, i64 7
  %627 = load ptr, ptr %626, align 8
  %628 = call noundef ptr %627(ptr noundef nonnull align 8 dereferenceable(40) %624)
  %629 = load ptr, ptr %2, align 8, !tbaa !5
  %630 = load ptr, ptr %629, align 8, !tbaa !11
  %631 = getelementptr inbounds ptr, ptr %630, i64 6
  %632 = load ptr, ptr %631, align 8
  %633 = call noundef ptr %632(ptr noundef nonnull align 8 dereferenceable(28) %629)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %628, ptr align 1 %633, i64 4, i1 false)
  %634 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %634, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %747

635:                                              ; preds = %619
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %5, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %620, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %772

639:                                              ; preds = %614
  %640 = load ptr, ptr %2, align 8, !tbaa !5
  %641 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %640)
  %642 = load i32, ptr %641, align 4, !tbaa !9
  %643 = icmp eq i32 %642, 35674
  br i1 %643, label %644, label %664

644:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %645 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %646 = load ptr, ptr %2, align 8, !tbaa !5
  %647 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %646)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %645, ptr noundef nonnull align 4 dereferenceable(4) %647, i32 noundef 2, i32 noundef 2)
          to label %648 unwind label %660

648:                                              ; preds = %644
  store ptr %645, ptr %30, align 8, !tbaa !5
  %649 = load ptr, ptr %30, align 8, !tbaa !5
  %650 = load ptr, ptr %649, align 8, !tbaa !11
  %651 = getelementptr inbounds ptr, ptr %650, i64 7
  %652 = load ptr, ptr %651, align 8
  %653 = call noundef ptr %652(ptr noundef nonnull align 8 dereferenceable(40) %649)
  %654 = load ptr, ptr %2, align 8, !tbaa !5
  %655 = load ptr, ptr %654, align 8, !tbaa !11
  %656 = getelementptr inbounds ptr, ptr %655, i64 6
  %657 = load ptr, ptr %656, align 8
  %658 = call noundef ptr %657(ptr noundef nonnull align 8 dereferenceable(28) %654)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %653, ptr align 1 %658, i64 16, i1 false)
  %659 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %659, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br label %746

660:                                              ; preds = %644
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %5, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %645, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br label %772

664:                                              ; preds = %639
  %665 = load ptr, ptr %2, align 8, !tbaa !5
  %666 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %665)
  %667 = load i32, ptr %666, align 4, !tbaa !9
  %668 = icmp eq i32 %667, 35675
  br i1 %668, label %669, label %689

669:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %670 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %671 = load ptr, ptr %2, align 8, !tbaa !5
  %672 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %671)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %670, ptr noundef nonnull align 4 dereferenceable(4) %672, i32 noundef 3, i32 noundef 3)
          to label %673 unwind label %685

673:                                              ; preds = %669
  store ptr %670, ptr %31, align 8, !tbaa !5
  %674 = load ptr, ptr %31, align 8, !tbaa !5
  %675 = load ptr, ptr %674, align 8, !tbaa !11
  %676 = getelementptr inbounds ptr, ptr %675, i64 7
  %677 = load ptr, ptr %676, align 8
  %678 = call noundef ptr %677(ptr noundef nonnull align 8 dereferenceable(40) %674)
  %679 = load ptr, ptr %2, align 8, !tbaa !5
  %680 = load ptr, ptr %679, align 8, !tbaa !11
  %681 = getelementptr inbounds ptr, ptr %680, i64 6
  %682 = load ptr, ptr %681, align 8
  %683 = call noundef ptr %682(ptr noundef nonnull align 8 dereferenceable(28) %679)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %678, ptr align 1 %683, i64 36, i1 false)
  %684 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %684, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %745

685:                                              ; preds = %669
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %5, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %670, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %772

689:                                              ; preds = %664
  %690 = load ptr, ptr %2, align 8, !tbaa !5
  %691 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %690)
  %692 = load i32, ptr %691, align 4, !tbaa !9
  %693 = icmp eq i32 %692, 35676
  br i1 %693, label %694, label %714

694:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %695 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
  %696 = load ptr, ptr %2, align 8, !tbaa !5
  %697 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %696)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %695, ptr noundef nonnull align 4 dereferenceable(4) %697, i32 noundef 4, i32 noundef 4)
          to label %698 unwind label %710

698:                                              ; preds = %694
  store ptr %695, ptr %32, align 8, !tbaa !5
  %699 = load ptr, ptr %32, align 8, !tbaa !5
  %700 = load ptr, ptr %699, align 8, !tbaa !11
  %701 = getelementptr inbounds ptr, ptr %700, i64 7
  %702 = load ptr, ptr %701, align 8
  %703 = call noundef ptr %702(ptr noundef nonnull align 8 dereferenceable(40) %699)
  %704 = load ptr, ptr %2, align 8, !tbaa !5
  %705 = load ptr, ptr %704, align 8, !tbaa !11
  %706 = getelementptr inbounds ptr, ptr %705, i64 6
  %707 = load ptr, ptr %706, align 8
  %708 = call noundef ptr %707(ptr noundef nonnull align 8 dereferenceable(28) %704)
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %703, ptr align 1 %708, i64 64, i1 false)
  %709 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %709, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %744

710:                                              ; preds = %694
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %5, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %6, align 4
  call void @_ZdlPvm(ptr noundef %695, i64 noundef 40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %772

714:                                              ; preds = %689
  store i1 true, ptr %39, align 1
  %715 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  %716 = load ptr, ptr %2, align 8, !tbaa !5
  %717 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %716)
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 4 dereferenceable(4) %717) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %718 unwind label %722

718:                                              ; preds = %714
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.1)
          to label %719 unwind label %726

719:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %720 unwind label %730

720:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 1, ptr %38, align 4, !tbaa !13
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %715, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef %36, i32 noundef 326, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %721 unwind label %734

721:                                              ; preds = %720
  store i1 false, ptr %39, align 1
  invoke void @__cxa_throw(ptr %715, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #12
          to label %778 unwind label %734

722:                                              ; preds = %714
  %723 = landingpad { ptr, i32 }
          cleanup
  %724 = extractvalue { ptr, i32 } %723, 0
  store ptr %724, ptr %5, align 8
  %725 = extractvalue { ptr, i32 } %723, 1
  store i32 %725, ptr %6, align 4
  br label %740

726:                                              ; preds = %718
  %727 = landingpad { ptr, i32 }
          cleanup
  %728 = extractvalue { ptr, i32 } %727, 0
  store ptr %728, ptr %5, align 8
  %729 = extractvalue { ptr, i32 } %727, 1
  store i32 %729, ptr %6, align 4
  br label %739

730:                                              ; preds = %719
  %731 = landingpad { ptr, i32 }
          cleanup
  %732 = extractvalue { ptr, i32 } %731, 0
  store ptr %732, ptr %5, align 8
  %733 = extractvalue { ptr, i32 } %731, 1
  store i32 %733, ptr %6, align 4
  br label %738

734:                                              ; preds = %721, %720
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %5, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %738

738:                                              ; preds = %734, %730
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %739

739:                                              ; preds = %738, %726
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %740

740:                                              ; preds = %739, %722
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  %741 = load i1, ptr %39, align 1
  br i1 %741, label %742, label %743

742:                                              ; preds = %740
  call void @__cxa_free_exception(ptr %715) #9
  br label %743

743:                                              ; preds = %742, %740
  br label %772

744:                                              ; preds = %698
  br label %745

745:                                              ; preds = %744, %673
  br label %746

746:                                              ; preds = %745, %648
  br label %747

747:                                              ; preds = %746, %623
  br label %748

748:                                              ; preds = %747, %598
  br label %749

749:                                              ; preds = %748, %573
  br label %750

750:                                              ; preds = %749, %548
  br label %751

751:                                              ; preds = %750, %523
  br label %752

752:                                              ; preds = %751, %498
  br label %753

753:                                              ; preds = %752, %473
  br label %754

754:                                              ; preds = %753, %448
  br label %755

755:                                              ; preds = %754, %423
  br label %756

756:                                              ; preds = %755, %398
  br label %757

757:                                              ; preds = %756, %373
  br label %758

758:                                              ; preds = %757, %348
  br label %759

759:                                              ; preds = %758, %323
  br label %760

760:                                              ; preds = %759, %298
  br label %761

761:                                              ; preds = %760, %273
  br label %762

762:                                              ; preds = %761, %248
  br label %763

763:                                              ; preds = %762, %223
  br label %764

764:                                              ; preds = %763, %198
  br label %765

765:                                              ; preds = %764, %173
  br label %766

766:                                              ; preds = %765, %148
  br label %767

767:                                              ; preds = %766, %123
  br label %768

768:                                              ; preds = %767, %98
  br label %769

769:                                              ; preds = %768, %73
  br label %770

770:                                              ; preds = %769, %48
  %771 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  ret ptr %771

772:                                              ; preds = %743, %710, %685, %660, %635, %610, %585, %560, %535, %510, %485, %460, %435, %410, %385, %360, %335, %310, %285, %260, %235, %210, %185, %160, %135, %110, %85, %60
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  br label %773

773:                                              ; preds = %772
  %774 = load ptr, ptr %5, align 8
  %775 = load i32, ptr %6, align 4
  %776 = insertvalue { ptr, i32 } poison, ptr %774, 0
  %777 = insertvalue { ptr, i32 } %776, i32 %775, 1
  resume { ptr, i32 } %777

778:                                              ; preds = %721
  unreachable
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [94 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.5 = external hidden unnamed_addr constant [54 x i8], align 1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #2

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #3 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIcEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIhEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIsEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialItEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 4 dereferenceable(4), i32 noundef, i32 noundef) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN4Glip6CoreGL14HdlDynamicData4copyERKS1_(ptr noundef nonnull align 8 dereferenceable(28) %0) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca i32, align 4
  %8 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %9 = load i32, ptr %8, align 4, !tbaa !5
  %10 = icmp eq i32 %9, 5120
  br i1 %10, label %11, label %26

11:                                               ; preds = %1
  %12 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %13 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIcEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, i32 noundef 1, i32 noundef 1)
          to label %14 unwind label %24

14:                                               ; preds = %11
  %15 = load ptr, ptr %12, align 8, !tbaa !9
  %16 = getelementptr inbounds i8, ptr %15, i64 56
  %17 = load ptr, ptr %16, align 8
  %18 = tail call noundef ptr %17(ptr noundef nonnull align 8 dereferenceable(40) %12)
  %19 = load ptr, ptr %0, align 8, !tbaa !9
  %20 = getelementptr inbounds i8, ptr %19, i64 48
  %21 = load ptr, ptr %20, align 8
  %22 = tail call noundef ptr %21(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %23 = load i8, ptr %22, align 1
  store i8 %23, ptr %18, align 1
  br label %524

24:                                               ; preds = %11
  %25 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %12, i64 noundef 40) #10
  br label %525

26:                                               ; preds = %1
  %27 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %28 = load i32, ptr %27, align 4, !tbaa !5
  %29 = icmp eq i32 %28, 5121
  br i1 %29, label %30, label %45

30:                                               ; preds = %26
  %31 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %32 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIhEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull align 4 dereferenceable(4) %32, i32 noundef 1, i32 noundef 1)
          to label %33 unwind label %43

33:                                               ; preds = %30
  %34 = load ptr, ptr %31, align 8, !tbaa !9
  %35 = getelementptr inbounds i8, ptr %34, i64 56
  %36 = load ptr, ptr %35, align 8
  %37 = tail call noundef ptr %36(ptr noundef nonnull align 8 dereferenceable(40) %31)
  %38 = load ptr, ptr %0, align 8, !tbaa !9
  %39 = getelementptr inbounds i8, ptr %38, i64 48
  %40 = load ptr, ptr %39, align 8
  %41 = tail call noundef ptr %40(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %42 = load i8, ptr %41, align 1
  store i8 %42, ptr %37, align 1
  br label %524

43:                                               ; preds = %30
  %44 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %31, i64 noundef 40) #10
  br label %525

45:                                               ; preds = %26
  %46 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %47 = load i32, ptr %46, align 4, !tbaa !5
  %48 = icmp eq i32 %47, 5122
  br i1 %48, label %49, label %64

49:                                               ; preds = %45
  %50 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %51 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIsEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %50, ptr noundef nonnull align 4 dereferenceable(4) %51, i32 noundef 1, i32 noundef 1)
          to label %52 unwind label %62

52:                                               ; preds = %49
  %53 = load ptr, ptr %50, align 8, !tbaa !9
  %54 = getelementptr inbounds i8, ptr %53, i64 56
  %55 = load ptr, ptr %54, align 8
  %56 = tail call noundef ptr %55(ptr noundef nonnull align 8 dereferenceable(40) %50)
  %57 = load ptr, ptr %0, align 8, !tbaa !9
  %58 = getelementptr inbounds i8, ptr %57, i64 48
  %59 = load ptr, ptr %58, align 8
  %60 = tail call noundef ptr %59(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %61 = load i16, ptr %60, align 1
  store i16 %61, ptr %56, align 1
  br label %524

62:                                               ; preds = %49
  %63 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %50, i64 noundef 40) #10
  br label %525

64:                                               ; preds = %45
  %65 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = icmp eq i32 %66, 5123
  br i1 %67, label %68, label %83

68:                                               ; preds = %64
  %69 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %70 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialItEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %69, ptr noundef nonnull align 4 dereferenceable(4) %70, i32 noundef 1, i32 noundef 1)
          to label %71 unwind label %81

71:                                               ; preds = %68
  %72 = load ptr, ptr %69, align 8, !tbaa !9
  %73 = getelementptr inbounds i8, ptr %72, i64 56
  %74 = load ptr, ptr %73, align 8
  %75 = tail call noundef ptr %74(ptr noundef nonnull align 8 dereferenceable(40) %69)
  %76 = load ptr, ptr %0, align 8, !tbaa !9
  %77 = getelementptr inbounds i8, ptr %76, i64 48
  %78 = load ptr, ptr %77, align 8
  %79 = tail call noundef ptr %78(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %80 = load i16, ptr %79, align 1
  store i16 %80, ptr %75, align 1
  br label %524

81:                                               ; preds = %68
  %82 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %69, i64 noundef 40) #10
  br label %525

83:                                               ; preds = %64
  %84 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = icmp eq i32 %85, 5126
  br i1 %86, label %87, label %102

87:                                               ; preds = %83
  %88 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %89 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %88, ptr noundef nonnull align 4 dereferenceable(4) %89, i32 noundef 1, i32 noundef 1)
          to label %90 unwind label %100

90:                                               ; preds = %87
  %91 = load ptr, ptr %88, align 8, !tbaa !9
  %92 = getelementptr inbounds i8, ptr %91, i64 56
  %93 = load ptr, ptr %92, align 8
  %94 = tail call noundef ptr %93(ptr noundef nonnull align 8 dereferenceable(40) %88)
  %95 = load ptr, ptr %0, align 8, !tbaa !9
  %96 = getelementptr inbounds i8, ptr %95, i64 48
  %97 = load ptr, ptr %96, align 8
  %98 = tail call noundef ptr %97(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %99 = load i32, ptr %98, align 1
  store i32 %99, ptr %94, align 1
  br label %524

100:                                              ; preds = %87
  %101 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %88, i64 noundef 40) #10
  br label %525

102:                                              ; preds = %83
  %103 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = icmp eq i32 %104, 35664
  br i1 %105, label %106, label %121

106:                                              ; preds = %102
  %107 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %108 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %107, ptr noundef nonnull align 4 dereferenceable(4) %108, i32 noundef 2, i32 noundef 1)
          to label %109 unwind label %119

109:                                              ; preds = %106
  %110 = load ptr, ptr %107, align 8, !tbaa !9
  %111 = getelementptr inbounds i8, ptr %110, i64 56
  %112 = load ptr, ptr %111, align 8
  %113 = tail call noundef ptr %112(ptr noundef nonnull align 8 dereferenceable(40) %107)
  %114 = load ptr, ptr %0, align 8, !tbaa !9
  %115 = getelementptr inbounds i8, ptr %114, i64 48
  %116 = load ptr, ptr %115, align 8
  %117 = tail call noundef ptr %116(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %118 = load i64, ptr %117, align 1
  store i64 %118, ptr %113, align 1
  br label %524

119:                                              ; preds = %106
  %120 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %107, i64 noundef 40) #10
  br label %525

121:                                              ; preds = %102
  %122 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = icmp eq i32 %123, 35665
  br i1 %124, label %125, label %139

125:                                              ; preds = %121
  %126 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %127 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %126, ptr noundef nonnull align 4 dereferenceable(4) %127, i32 noundef 3, i32 noundef 1)
          to label %128 unwind label %137

128:                                              ; preds = %125
  %129 = load ptr, ptr %126, align 8, !tbaa !9
  %130 = getelementptr inbounds i8, ptr %129, i64 56
  %131 = load ptr, ptr %130, align 8
  %132 = tail call noundef ptr %131(ptr noundef nonnull align 8 dereferenceable(40) %126)
  %133 = load ptr, ptr %0, align 8, !tbaa !9
  %134 = getelementptr inbounds i8, ptr %133, i64 48
  %135 = load ptr, ptr %134, align 8
  %136 = tail call noundef ptr %135(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %132, ptr noundef nonnull align 1 dereferenceable(12) %136, i64 12, i1 false)
  br label %524

137:                                              ; preds = %125
  %138 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %126, i64 noundef 40) #10
  br label %525

139:                                              ; preds = %121
  %140 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = icmp eq i32 %141, 35666
  br i1 %142, label %143, label %157

143:                                              ; preds = %139
  %144 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %145 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %144, ptr noundef nonnull align 4 dereferenceable(4) %145, i32 noundef 4, i32 noundef 1)
          to label %146 unwind label %155

146:                                              ; preds = %143
  %147 = load ptr, ptr %144, align 8, !tbaa !9
  %148 = getelementptr inbounds i8, ptr %147, i64 56
  %149 = load ptr, ptr %148, align 8
  %150 = tail call noundef ptr %149(ptr noundef nonnull align 8 dereferenceable(40) %144)
  %151 = load ptr, ptr %0, align 8, !tbaa !9
  %152 = getelementptr inbounds i8, ptr %151, i64 48
  %153 = load ptr, ptr %152, align 8
  %154 = tail call noundef ptr %153(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %150, ptr noundef nonnull align 1 dereferenceable(16) %154, i64 16, i1 false)
  br label %524

155:                                              ; preds = %143
  %156 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %144, i64 noundef 40) #10
  br label %525

157:                                              ; preds = %139
  %158 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = icmp eq i32 %159, 5130
  br i1 %160, label %161, label %176

161:                                              ; preds = %157
  %162 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %163 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %162, ptr noundef nonnull align 4 dereferenceable(4) %163, i32 noundef 1, i32 noundef 1)
          to label %164 unwind label %174

164:                                              ; preds = %161
  %165 = load ptr, ptr %162, align 8, !tbaa !9
  %166 = getelementptr inbounds i8, ptr %165, i64 56
  %167 = load ptr, ptr %166, align 8
  %168 = tail call noundef ptr %167(ptr noundef nonnull align 8 dereferenceable(40) %162)
  %169 = load ptr, ptr %0, align 8, !tbaa !9
  %170 = getelementptr inbounds i8, ptr %169, i64 48
  %171 = load ptr, ptr %170, align 8
  %172 = tail call noundef ptr %171(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %173 = load i64, ptr %172, align 1
  store i64 %173, ptr %168, align 1
  br label %524

174:                                              ; preds = %161
  %175 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %162, i64 noundef 40) #10
  br label %525

176:                                              ; preds = %157
  %177 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = icmp eq i32 %178, 36860
  br i1 %179, label %180, label %194

180:                                              ; preds = %176
  %181 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %182 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %181, ptr noundef nonnull align 4 dereferenceable(4) %182, i32 noundef 2, i32 noundef 1)
          to label %183 unwind label %192

183:                                              ; preds = %180
  %184 = load ptr, ptr %181, align 8, !tbaa !9
  %185 = getelementptr inbounds i8, ptr %184, i64 56
  %186 = load ptr, ptr %185, align 8
  %187 = tail call noundef ptr %186(ptr noundef nonnull align 8 dereferenceable(40) %181)
  %188 = load ptr, ptr %0, align 8, !tbaa !9
  %189 = getelementptr inbounds i8, ptr %188, i64 48
  %190 = load ptr, ptr %189, align 8
  %191 = tail call noundef ptr %190(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %187, ptr noundef nonnull align 1 dereferenceable(16) %191, i64 16, i1 false)
  br label %524

192:                                              ; preds = %180
  %193 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %181, i64 noundef 40) #10
  br label %525

194:                                              ; preds = %176
  %195 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = icmp eq i32 %196, 36861
  br i1 %197, label %198, label %212

198:                                              ; preds = %194
  %199 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %200 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %199, ptr noundef nonnull align 4 dereferenceable(4) %200, i32 noundef 3, i32 noundef 1)
          to label %201 unwind label %210

201:                                              ; preds = %198
  %202 = load ptr, ptr %199, align 8, !tbaa !9
  %203 = getelementptr inbounds i8, ptr %202, i64 56
  %204 = load ptr, ptr %203, align 8
  %205 = tail call noundef ptr %204(ptr noundef nonnull align 8 dereferenceable(40) %199)
  %206 = load ptr, ptr %0, align 8, !tbaa !9
  %207 = getelementptr inbounds i8, ptr %206, i64 48
  %208 = load ptr, ptr %207, align 8
  %209 = tail call noundef ptr %208(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(24) %205, ptr noundef nonnull align 1 dereferenceable(24) %209, i64 24, i1 false)
  br label %524

210:                                              ; preds = %198
  %211 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %199, i64 noundef 40) #10
  br label %525

212:                                              ; preds = %194
  %213 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = icmp eq i32 %214, 36862
  br i1 %215, label %216, label %230

216:                                              ; preds = %212
  %217 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %218 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIdEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %217, ptr noundef nonnull align 4 dereferenceable(4) %218, i32 noundef 4, i32 noundef 1)
          to label %219 unwind label %228

219:                                              ; preds = %216
  %220 = load ptr, ptr %217, align 8, !tbaa !9
  %221 = getelementptr inbounds i8, ptr %220, i64 56
  %222 = load ptr, ptr %221, align 8
  %223 = tail call noundef ptr %222(ptr noundef nonnull align 8 dereferenceable(40) %217)
  %224 = load ptr, ptr %0, align 8, !tbaa !9
  %225 = getelementptr inbounds i8, ptr %224, i64 48
  %226 = load ptr, ptr %225, align 8
  %227 = tail call noundef ptr %226(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %223, ptr noundef nonnull align 1 dereferenceable(32) %227, i64 32, i1 false)
  br label %524

228:                                              ; preds = %216
  %229 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %217, i64 noundef 40) #10
  br label %525

230:                                              ; preds = %212
  %231 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = icmp eq i32 %232, 5124
  br i1 %233, label %234, label %249

234:                                              ; preds = %230
  %235 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %236 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %235, ptr noundef nonnull align 4 dereferenceable(4) %236, i32 noundef 1, i32 noundef 1)
          to label %237 unwind label %247

237:                                              ; preds = %234
  %238 = load ptr, ptr %235, align 8, !tbaa !9
  %239 = getelementptr inbounds i8, ptr %238, i64 56
  %240 = load ptr, ptr %239, align 8
  %241 = tail call noundef ptr %240(ptr noundef nonnull align 8 dereferenceable(40) %235)
  %242 = load ptr, ptr %0, align 8, !tbaa !9
  %243 = getelementptr inbounds i8, ptr %242, i64 48
  %244 = load ptr, ptr %243, align 8
  %245 = tail call noundef ptr %244(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %246 = load i32, ptr %245, align 1
  store i32 %246, ptr %241, align 1
  br label %524

247:                                              ; preds = %234
  %248 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %235, i64 noundef 40) #10
  br label %525

249:                                              ; preds = %230
  %250 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = icmp eq i32 %251, 35667
  br i1 %252, label %253, label %268

253:                                              ; preds = %249
  %254 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %255 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %254, ptr noundef nonnull align 4 dereferenceable(4) %255, i32 noundef 2, i32 noundef 1)
          to label %256 unwind label %266

256:                                              ; preds = %253
  %257 = load ptr, ptr %254, align 8, !tbaa !9
  %258 = getelementptr inbounds i8, ptr %257, i64 56
  %259 = load ptr, ptr %258, align 8
  %260 = tail call noundef ptr %259(ptr noundef nonnull align 8 dereferenceable(40) %254)
  %261 = load ptr, ptr %0, align 8, !tbaa !9
  %262 = getelementptr inbounds i8, ptr %261, i64 48
  %263 = load ptr, ptr %262, align 8
  %264 = tail call noundef ptr %263(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %265 = load i64, ptr %264, align 1
  store i64 %265, ptr %260, align 1
  br label %524

266:                                              ; preds = %253
  %267 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %254, i64 noundef 40) #10
  br label %525

268:                                              ; preds = %249
  %269 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = icmp eq i32 %270, 35668
  br i1 %271, label %272, label %286

272:                                              ; preds = %268
  %273 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %274 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %273, ptr noundef nonnull align 4 dereferenceable(4) %274, i32 noundef 3, i32 noundef 1)
          to label %275 unwind label %284

275:                                              ; preds = %272
  %276 = load ptr, ptr %273, align 8, !tbaa !9
  %277 = getelementptr inbounds i8, ptr %276, i64 56
  %278 = load ptr, ptr %277, align 8
  %279 = tail call noundef ptr %278(ptr noundef nonnull align 8 dereferenceable(40) %273)
  %280 = load ptr, ptr %0, align 8, !tbaa !9
  %281 = getelementptr inbounds i8, ptr %280, i64 48
  %282 = load ptr, ptr %281, align 8
  %283 = tail call noundef ptr %282(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %279, ptr noundef nonnull align 1 dereferenceable(12) %283, i64 12, i1 false)
  br label %524

284:                                              ; preds = %272
  %285 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %273, i64 noundef 40) #10
  br label %525

286:                                              ; preds = %268
  %287 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = icmp eq i32 %288, 35669
  br i1 %289, label %290, label %304

290:                                              ; preds = %286
  %291 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %292 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIiEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %291, ptr noundef nonnull align 4 dereferenceable(4) %292, i32 noundef 4, i32 noundef 1)
          to label %293 unwind label %302

293:                                              ; preds = %290
  %294 = load ptr, ptr %291, align 8, !tbaa !9
  %295 = getelementptr inbounds i8, ptr %294, i64 56
  %296 = load ptr, ptr %295, align 8
  %297 = tail call noundef ptr %296(ptr noundef nonnull align 8 dereferenceable(40) %291)
  %298 = load ptr, ptr %0, align 8, !tbaa !9
  %299 = getelementptr inbounds i8, ptr %298, i64 48
  %300 = load ptr, ptr %299, align 8
  %301 = tail call noundef ptr %300(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %297, ptr noundef nonnull align 1 dereferenceable(16) %301, i64 16, i1 false)
  br label %524

302:                                              ; preds = %290
  %303 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %291, i64 noundef 40) #10
  br label %525

304:                                              ; preds = %286
  %305 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = icmp eq i32 %306, 5125
  br i1 %307, label %308, label %323

308:                                              ; preds = %304
  %309 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %310 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %309, ptr noundef nonnull align 4 dereferenceable(4) %310, i32 noundef 1, i32 noundef 1)
          to label %311 unwind label %321

311:                                              ; preds = %308
  %312 = load ptr, ptr %309, align 8, !tbaa !9
  %313 = getelementptr inbounds i8, ptr %312, i64 56
  %314 = load ptr, ptr %313, align 8
  %315 = tail call noundef ptr %314(ptr noundef nonnull align 8 dereferenceable(40) %309)
  %316 = load ptr, ptr %0, align 8, !tbaa !9
  %317 = getelementptr inbounds i8, ptr %316, i64 48
  %318 = load ptr, ptr %317, align 8
  %319 = tail call noundef ptr %318(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %320 = load i32, ptr %319, align 1
  store i32 %320, ptr %315, align 1
  br label %524

321:                                              ; preds = %308
  %322 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %309, i64 noundef 40) #10
  br label %525

323:                                              ; preds = %304
  %324 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = icmp eq i32 %325, 36294
  br i1 %326, label %327, label %342

327:                                              ; preds = %323
  %328 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %329 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %328, ptr noundef nonnull align 4 dereferenceable(4) %329, i32 noundef 2, i32 noundef 1)
          to label %330 unwind label %340

330:                                              ; preds = %327
  %331 = load ptr, ptr %328, align 8, !tbaa !9
  %332 = getelementptr inbounds i8, ptr %331, i64 56
  %333 = load ptr, ptr %332, align 8
  %334 = tail call noundef ptr %333(ptr noundef nonnull align 8 dereferenceable(40) %328)
  %335 = load ptr, ptr %0, align 8, !tbaa !9
  %336 = getelementptr inbounds i8, ptr %335, i64 48
  %337 = load ptr, ptr %336, align 8
  %338 = tail call noundef ptr %337(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %339 = load i64, ptr %338, align 1
  store i64 %339, ptr %334, align 1
  br label %524

340:                                              ; preds = %327
  %341 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %328, i64 noundef 40) #10
  br label %525

342:                                              ; preds = %323
  %343 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = icmp eq i32 %344, 36295
  br i1 %345, label %346, label %360

346:                                              ; preds = %342
  %347 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %348 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %347, ptr noundef nonnull align 4 dereferenceable(4) %348, i32 noundef 3, i32 noundef 1)
          to label %349 unwind label %358

349:                                              ; preds = %346
  %350 = load ptr, ptr %347, align 8, !tbaa !9
  %351 = getelementptr inbounds i8, ptr %350, i64 56
  %352 = load ptr, ptr %351, align 8
  %353 = tail call noundef ptr %352(ptr noundef nonnull align 8 dereferenceable(40) %347)
  %354 = load ptr, ptr %0, align 8, !tbaa !9
  %355 = getelementptr inbounds i8, ptr %354, i64 48
  %356 = load ptr, ptr %355, align 8
  %357 = tail call noundef ptr %356(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %353, ptr noundef nonnull align 1 dereferenceable(12) %357, i64 12, i1 false)
  br label %524

358:                                              ; preds = %346
  %359 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %347, i64 noundef 40) #10
  br label %525

360:                                              ; preds = %342
  %361 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = icmp eq i32 %362, 36296
  br i1 %363, label %364, label %378

364:                                              ; preds = %360
  %365 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %366 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIjEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %365, ptr noundef nonnull align 4 dereferenceable(4) %366, i32 noundef 4, i32 noundef 1)
          to label %367 unwind label %376

367:                                              ; preds = %364
  %368 = load ptr, ptr %365, align 8, !tbaa !9
  %369 = getelementptr inbounds i8, ptr %368, i64 56
  %370 = load ptr, ptr %369, align 8
  %371 = tail call noundef ptr %370(ptr noundef nonnull align 8 dereferenceable(40) %365)
  %372 = load ptr, ptr %0, align 8, !tbaa !9
  %373 = getelementptr inbounds i8, ptr %372, i64 48
  %374 = load ptr, ptr %373, align 8
  %375 = tail call noundef ptr %374(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %371, ptr noundef nonnull align 1 dereferenceable(16) %375, i64 16, i1 false)
  br label %524

376:                                              ; preds = %364
  %377 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %365, i64 noundef 40) #10
  br label %525

378:                                              ; preds = %360
  %379 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = icmp eq i32 %380, 35670
  br i1 %381, label %382, label %397

382:                                              ; preds = %378
  %383 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %384 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %383, ptr noundef nonnull align 4 dereferenceable(4) %384, i32 noundef 1, i32 noundef 1)
          to label %385 unwind label %395

385:                                              ; preds = %382
  %386 = load ptr, ptr %383, align 8, !tbaa !9
  %387 = getelementptr inbounds i8, ptr %386, i64 56
  %388 = load ptr, ptr %387, align 8
  %389 = tail call noundef ptr %388(ptr noundef nonnull align 8 dereferenceable(40) %383)
  %390 = load ptr, ptr %0, align 8, !tbaa !9
  %391 = getelementptr inbounds i8, ptr %390, i64 48
  %392 = load ptr, ptr %391, align 8
  %393 = tail call noundef ptr %392(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %394 = load i8, ptr %393, align 1
  store i8 %394, ptr %389, align 1
  br label %524

395:                                              ; preds = %382
  %396 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %383, i64 noundef 40) #10
  br label %525

397:                                              ; preds = %378
  %398 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = icmp eq i32 %399, 35671
  br i1 %400, label %401, label %416

401:                                              ; preds = %397
  %402 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %403 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %402, ptr noundef nonnull align 4 dereferenceable(4) %403, i32 noundef 2, i32 noundef 1)
          to label %404 unwind label %414

404:                                              ; preds = %401
  %405 = load ptr, ptr %402, align 8, !tbaa !9
  %406 = getelementptr inbounds i8, ptr %405, i64 56
  %407 = load ptr, ptr %406, align 8
  %408 = tail call noundef ptr %407(ptr noundef nonnull align 8 dereferenceable(40) %402)
  %409 = load ptr, ptr %0, align 8, !tbaa !9
  %410 = getelementptr inbounds i8, ptr %409, i64 48
  %411 = load ptr, ptr %410, align 8
  %412 = tail call noundef ptr %411(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %413 = load i16, ptr %412, align 1
  store i16 %413, ptr %408, align 1
  br label %524

414:                                              ; preds = %401
  %415 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %402, i64 noundef 40) #10
  br label %525

416:                                              ; preds = %397
  %417 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = icmp eq i32 %418, 35672
  br i1 %419, label %420, label %434

420:                                              ; preds = %416
  %421 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %422 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %421, ptr noundef nonnull align 4 dereferenceable(4) %422, i32 noundef 3, i32 noundef 1)
          to label %423 unwind label %432

423:                                              ; preds = %420
  %424 = load ptr, ptr %421, align 8, !tbaa !9
  %425 = getelementptr inbounds i8, ptr %424, i64 56
  %426 = load ptr, ptr %425, align 8
  %427 = tail call noundef ptr %426(ptr noundef nonnull align 8 dereferenceable(40) %421)
  %428 = load ptr, ptr %0, align 8, !tbaa !9
  %429 = getelementptr inbounds i8, ptr %428, i64 48
  %430 = load ptr, ptr %429, align 8
  %431 = tail call noundef ptr %430(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %427, ptr noundef nonnull align 1 dereferenceable(3) %431, i64 3, i1 false)
  br label %524

432:                                              ; preds = %420
  %433 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %421, i64 noundef 40) #10
  br label %525

434:                                              ; preds = %416
  %435 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = icmp eq i32 %436, 35673
  br i1 %437, label %438, label %453

438:                                              ; preds = %434
  %439 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %440 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIbEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %439, ptr noundef nonnull align 4 dereferenceable(4) %440, i32 noundef 4, i32 noundef 1)
          to label %441 unwind label %451

441:                                              ; preds = %438
  %442 = load ptr, ptr %439, align 8, !tbaa !9
  %443 = getelementptr inbounds i8, ptr %442, i64 56
  %444 = load ptr, ptr %443, align 8
  %445 = tail call noundef ptr %444(ptr noundef nonnull align 8 dereferenceable(40) %439)
  %446 = load ptr, ptr %0, align 8, !tbaa !9
  %447 = getelementptr inbounds i8, ptr %446, i64 48
  %448 = load ptr, ptr %447, align 8
  %449 = tail call noundef ptr %448(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %450 = load i32, ptr %449, align 1
  store i32 %450, ptr %445, align 1
  br label %524

451:                                              ; preds = %438
  %452 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %439, i64 noundef 40) #10
  br label %525

453:                                              ; preds = %434
  %454 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = icmp eq i32 %455, 35674
  br i1 %456, label %457, label %471

457:                                              ; preds = %453
  %458 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %459 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %458, ptr noundef nonnull align 4 dereferenceable(4) %459, i32 noundef 2, i32 noundef 2)
          to label %460 unwind label %469

460:                                              ; preds = %457
  %461 = load ptr, ptr %458, align 8, !tbaa !9
  %462 = getelementptr inbounds i8, ptr %461, i64 56
  %463 = load ptr, ptr %462, align 8
  %464 = tail call noundef ptr %463(ptr noundef nonnull align 8 dereferenceable(40) %458)
  %465 = load ptr, ptr %0, align 8, !tbaa !9
  %466 = getelementptr inbounds i8, ptr %465, i64 48
  %467 = load ptr, ptr %466, align 8
  %468 = tail call noundef ptr %467(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %464, ptr noundef nonnull align 1 dereferenceable(16) %468, i64 16, i1 false)
  br label %524

469:                                              ; preds = %457
  %470 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %458, i64 noundef 40) #10
  br label %525

471:                                              ; preds = %453
  %472 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = icmp eq i32 %473, 35675
  br i1 %474, label %475, label %489

475:                                              ; preds = %471
  %476 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %477 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %476, ptr noundef nonnull align 4 dereferenceable(4) %477, i32 noundef 3, i32 noundef 3)
          to label %478 unwind label %487

478:                                              ; preds = %475
  %479 = load ptr, ptr %476, align 8, !tbaa !9
  %480 = getelementptr inbounds i8, ptr %479, i64 56
  %481 = load ptr, ptr %480, align 8
  %482 = tail call noundef ptr %481(ptr noundef nonnull align 8 dereferenceable(40) %476)
  %483 = load ptr, ptr %0, align 8, !tbaa !9
  %484 = getelementptr inbounds i8, ptr %483, i64 48
  %485 = load ptr, ptr %484, align 8
  %486 = tail call noundef ptr %485(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(36) %482, ptr noundef nonnull align 1 dereferenceable(36) %486, i64 36, i1 false)
  br label %524

487:                                              ; preds = %475
  %488 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %476, i64 noundef 40) #10
  br label %525

489:                                              ; preds = %471
  %490 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = icmp eq i32 %491, 35676
  br i1 %492, label %493, label %507

493:                                              ; preds = %489
  %494 = tail call noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #9
  %495 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  invoke void @_ZN4Glip6CoreGL21HdlDynamicDataSpecialIfEC2ERKjii(ptr noundef nonnull align 8 dereferenceable(40) %494, ptr noundef nonnull align 4 dereferenceable(4) %495, i32 noundef 4, i32 noundef 4)
          to label %496 unwind label %505

496:                                              ; preds = %493
  %497 = load ptr, ptr %494, align 8, !tbaa !9
  %498 = getelementptr inbounds i8, ptr %497, i64 56
  %499 = load ptr, ptr %498, align 8
  %500 = tail call noundef ptr %499(ptr noundef nonnull align 8 dereferenceable(40) %494)
  %501 = load ptr, ptr %0, align 8, !tbaa !9
  %502 = getelementptr inbounds i8, ptr %501, i64 48
  %503 = load ptr, ptr %502, align 8
  %504 = tail call noundef ptr %503(ptr noundef nonnull align 8 dereferenceable(28) %0)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %500, ptr noundef nonnull align 1 dereferenceable(64) %504, i64 64, i1 false)
  br label %524

505:                                              ; preds = %493
  %506 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %494, i64 noundef 40) #10
  br label %525

507:                                              ; preds = %489
  %508 = tail call ptr @__cxa_allocate_exception(i64 152) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #11
  %509 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK4Glip6CoreGL14HdlDynamicData9getGLTypeEv(ptr noundef nonnull align 8 dereferenceable(28) %0)
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 4 dereferenceable(4) %509) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %510 unwind label %.thread

510:                                              ; preds = %507
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.1)
          to label %511 unwind label %515

511:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %512 unwind label %517

512:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #11
  store i32 1, ptr %7, align 4, !tbaa !11
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %508, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %5, i32 noundef 326, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %513 unwind label %519

513:                                              ; preds = %512
  invoke void @__cxa_throw(ptr nonnull %508, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #12
          to label %526 unwind label %519

.thread:                                          ; preds = %507
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #11
  br label %523

515:                                              ; preds = %510
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %522

517:                                              ; preds = %511
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %513, %512
  %.0 = phi i1 [ false, %513 ], [ true, %512 ]
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11
  br label %521

521:                                              ; preds = %519, %517
  %.pn = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  %.1 = phi i1 [ %.0, %519 ], [ true, %517 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #11
  br label %522

522:                                              ; preds = %515, %521
  %.pn.pn = phi { ptr, i32 } [ %.pn, %521 ], [ %516, %515 ]
  %.2 = phi i1 [ %.1, %521 ], [ true, %515 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #11
  br i1 %.2, label %523, label %525

523:                                              ; preds = %.thread, %522
  %.pn.pn.pn155 = phi { ptr, i32 } [ %514, %.thread ], [ %.pn.pn, %522 ]
  call void @__cxa_free_exception(ptr %508) #11
  br label %525

524:                                              ; preds = %33, %71, %109, %146, %183, %219, %256, %293, %330, %367, %404, %441, %478, %496, %460, %423, %385, %349, %311, %275, %237, %201, %164, %128, %90, %52, %14
  %.0139 = phi ptr [ %12, %14 ], [ %31, %33 ], [ %50, %52 ], [ %69, %71 ], [ %88, %90 ], [ %107, %109 ], [ %126, %128 ], [ %144, %146 ], [ %162, %164 ], [ %181, %183 ], [ %199, %201 ], [ %217, %219 ], [ %235, %237 ], [ %254, %256 ], [ %273, %275 ], [ %291, %293 ], [ %309, %311 ], [ %328, %330 ], [ %347, %349 ], [ %365, %367 ], [ %383, %385 ], [ %402, %404 ], [ %421, %423 ], [ %439, %441 ], [ %458, %460 ], [ %476, %478 ], [ %494, %496 ]
  ret ptr %.0139

525:                                              ; preds = %522, %523, %505, %487, %469, %451, %432, %414, %395, %376, %358, %340, %321, %302, %284, %266, %247, %228, %210, %192, %174, %155, %137, %119, %100, %81, %62, %43, %24
  %.pn151 = phi { ptr, i32 } [ %25, %24 ], [ %44, %43 ], [ %63, %62 ], [ %82, %81 ], [ %101, %100 ], [ %120, %119 ], [ %138, %137 ], [ %156, %155 ], [ %175, %174 ], [ %193, %192 ], [ %211, %210 ], [ %229, %228 ], [ %248, %247 ], [ %267, %266 ], [ %285, %284 ], [ %303, %302 ], [ %322, %321 ], [ %341, %340 ], [ %359, %358 ], [ %377, %376 ], [ %396, %395 ], [ %415, %414 ], [ %433, %432 ], [ %452, %451 ], [ %470, %469 ], [ %488, %487 ], [ %506, %505 ], [ %.pn.pn.pn155, %523 ], [ %.pn.pn, %522 ]
  resume { ptr, i32 } %.pn151

526:                                              ; preds = %513
  unreachable
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass