; LLVM IR from ronan-kerviche/glip-lib :: GLIP-Lib/src/Core (HdlTexture)

; 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 }
%"class.Glip::CoreGL::HdlTexture" = type <{ %"class.Glip::CoreGL::HdlAbstractTextureFormat.base", i32, i8, [7 x i8] }>
%"class.Glip::CoreGL::HdlAbstractTextureFormat.base" = type <{ ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>
%"struct.Glip::CoreGL::HdlTextureFormatDescriptor" = type { i32, i32, i32, i32, i32, [4 x i32], [4 x i32], [4 x i32], i8, i8, i8 }

@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [90 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTVN4Glip6CoreGL10HdlTextureE = external dso_local unnamed_addr constant { [7 x ptr] }, align 8
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [27 x i8], align 1
@__GLEW_ARB_multitexture = external global i8, align 1
@.str.16 = external hidden unnamed_addr constant [125 x i8], align 1
@__GLEW_ARB_texture_border_clamp = external global i8, align 1
@.str.17 = external hidden unnamed_addr constant [133 x i8], align 1
@__GLEW_ARB_texture_non_power_of_two = external global i8, align 1
@.str.18 = external hidden unnamed_addr constant [137 x i8], align 1
@__GLEW_ARB_texture_rectangle = external global i8, align 1
@.str.19 = external hidden unnamed_addr constant [130 x i8], align 1
@__GLEW_ARB_texture_float = external global i8, align 1
@.str.20 = external hidden unnamed_addr constant [126 x i8], align 1
@__GLEW_ARB_texture_compression = external global i8, align 1
@.str.21 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [23 x i8], align 1

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 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 #3 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 #4

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

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

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

declare void @__cxa_free_exception(ptr)

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(72) ptr @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat19getFormatDescriptorEv(ptr noundef nonnull align 8 dereferenceable(52)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat10getGLDepthEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat9getGLModeEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMinFilterEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMagFilterEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getSWrappingEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getTWrappingEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12isCompressedEv(ptr noundef nonnull align 8 dereferenceable(52)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat15isFloatingPointEv(ptr noundef nonnull align 8 dereferenceable(52)) #3 align 2

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

declare void @glBindTexture(i32 noundef, i32 noundef) #4

declare i32 @glGetError() #4

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

declare void @_ZN4Glip6CoreGL21getGLErrorDescriptionB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL10HdlTexture6unbindEj(i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Glip6CoreGL10HdlTextureC2ERKNS0_24HdlAbstractTextureFormatE(ptr noundef nonnull align 8 dereferenceable(57) %0, ptr noundef nonnull align 8 dereferenceable(52) %1) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i32, align 4
  %14 = alloca i1, align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca i32, align 4
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca i32, align 4
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca i32, align 4
  %38 = alloca i1, align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca i32, align 4
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca i32, align 4
  %50 = alloca i1, align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca i32, align 4
  %56 = alloca i1, align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca i32, align 4
  %62 = alloca i1, align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca i32, align 4
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca i32, align 4
  %74 = alloca i1, align 1
  %75 = alloca i32, align 4
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca i32, align 4
  %84 = alloca i1, align 1
  %85 = alloca i32, align 4
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca i32, align 4
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca i32, align 4
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca i32, align 4
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca i32, align 4
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca i32, align 4
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca i32, align 4
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator", align 1
  %117 = alloca i32, align 4
  %118 = alloca i1, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %119 = load ptr, ptr %3, align 8
  %120 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(52) %119, ptr noundef nonnull align 8 dereferenceable(52) %120)
  store ptr getelementptr inbounds inrange(-16, 40) ({ [7 x ptr] }, ptr @_ZTVN4Glip6CoreGL10HdlTextureE, i32 0, i32 0, i32 2), ptr %119, align 8, !tbaa !9
  %121 = getelementptr inbounds %"class.Glip::CoreGL::HdlTexture", ptr %119, i32 0, i32 1
  store i32 0, ptr %121, align 4, !tbaa !11
  %122 = getelementptr inbounds %"class.Glip::CoreGL::HdlTexture", ptr %119, i32 0, i32 2
  store i8 0, ptr %122, align 8, !tbaa !16
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = invoke noundef nonnull align 4 dereferenceable(72) ptr @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat19getFormatDescriptorEv(ptr noundef nonnull align 8 dereferenceable(52) %123)
          to label %125 unwind label %137

125:                                              ; preds = %2
  %126 = getelementptr inbounds %"struct.Glip::CoreGL::HdlTextureFormatDescriptor", ptr %124, i32 0, i32 10
  %127 = load i8, ptr %126, align 2, !tbaa !17, !range !19, !noundef !20
  %128 = trunc i8 %127 to i1
  br i1 %128, label %163, label %129

129:                                              ; preds = %125
  store i1 true, ptr %14, align 1
  %130 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  %131 = load ptr, ptr %4, align 8, !tbaa !5
  %132 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat9getGLModeEv(ptr noundef nonnull align 8 dereferenceable(52) %131)
  store i32 %132, ptr %10, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 4 dereferenceable(4) %10) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %133 unwind label %141

133:                                              ; preds = %129
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.14)
          to label %134 unwind label %145

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %135 unwind label %149

135:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 0, ptr %13, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %130, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef %11, i32 noundef 598, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %136 unwind label %153

136:                                              ; preds = %135
  store i1 false, ptr %14, align 1
  invoke void @__cxa_throw(ptr %130, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %153

137:                                              ; preds = %503, %498, %496, %494, %492, %490, %488, %485, %432, %431, %344, %315, %166, %163, %2
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %5, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %6, align 4
  br label %647

141:                                              ; preds = %129
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %5, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %6, align 4
  br label %159

145:                                              ; preds = %133
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %5, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %6, align 4
  br label %158

149:                                              ; preds = %134
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %5, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %6, align 4
  br label %157

153:                                              ; preds = %136, %135
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %5, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %157

157:                                              ; preds = %153, %149
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %158

158:                                              ; preds = %157, %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %159

159:                                              ; preds = %158, %141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #6
  %160 = load i1, ptr %14, align 1
  br i1 %160, label %161, label %162

161:                                              ; preds = %159
  call void @__cxa_free_exception(ptr %130) #6
  br label %162

162:                                              ; preds = %161, %159
  br label %647

163:                                              ; preds = %125
  %164 = load ptr, ptr %4, align 8, !tbaa !5
  %165 = invoke noundef nonnull align 4 dereferenceable(72) ptr @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat19getFormatDescriptorEv(ptr noundef nonnull align 8 dereferenceable(52) %164)
          to label %166 unwind label %137

166:                                              ; preds = %163
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat10getGLDepthEv(ptr noundef nonnull align 8 dereferenceable(52) %167)
  %169 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL26HdlTextureFormatDescriptor12isDepthValidEj(ptr noundef nonnull align 4 dereferenceable(72) %165, i32 noundef %168)
          to label %170 unwind label %137

170:                                              ; preds = %166
  br i1 %169, label %215, label %171

171:                                              ; preds = %170
  store i1 true, ptr %26, align 1
  %172 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  %173 = load ptr, ptr %4, align 8, !tbaa !5
  %174 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat9getGLModeEv(ptr noundef nonnull align 8 dereferenceable(52) %173)
  store i32 %174, ptr %20, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 4 dereferenceable(4) %20) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %175 unwind label %183

175:                                              ; preds = %171
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.15)
          to label %176 unwind label %187

176:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  %177 = load ptr, ptr %4, align 8, !tbaa !5
  %178 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat10getGLDepthEv(ptr noundef nonnull align 8 dereferenceable(52) %177)
  store i32 %178, ptr %22, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 4 dereferenceable(4) %22) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %179 unwind label %191

179:                                              ; preds = %176
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.11)
          to label %180 unwind label %195

180:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %181 unwind label %199

181:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  store i32 0, ptr %25, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %172, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %23, i32 noundef 600, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %182 unwind label %203

182:                                              ; preds = %181
  store i1 false, ptr %26, align 1
  invoke void @__cxa_throw(ptr %172, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %203

183:                                              ; preds = %171
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %5, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %6, align 4
  br label %211

187:                                              ; preds = %175
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %5, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %6, align 4
  br label %210

191:                                              ; preds = %176
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %5, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %6, align 4
  br label %209

195:                                              ; preds = %179
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %5, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %6, align 4
  br label %208

199:                                              ; preds = %180
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %5, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %6, align 4
  br label %207

203:                                              ; preds = %182, %181
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %5, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %207

207:                                              ; preds = %203, %199
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %208

208:                                              ; preds = %207, %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %209

209:                                              ; preds = %208, %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %210

210:                                              ; preds = %209, %187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %211

211:                                              ; preds = %210, %183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  %212 = load i1, ptr %26, align 1
  br i1 %212, label %213, label %214

213:                                              ; preds = %211
  call void @__cxa_free_exception(ptr %172) #6
  br label %214

214:                                              ; preds = %213, %211
  br label %647

215:                                              ; preds = %170
  %216 = load i8, ptr @__GLEW_ARB_multitexture, align 1, !tbaa !24
  %217 = icmp ne i8 %216, 0
  br i1 %217, label %240, label %218

218:                                              ; preds = %215
  store i1 true, ptr %32, align 1
  %219 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %220 unwind label %223

220:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %221 unwind label %227

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  store i32 3, ptr %31, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %219, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef %29, i32 noundef 604, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %222 unwind label %231

222:                                              ; preds = %221
  store i1 false, ptr %32, align 1
  invoke void @__cxa_throw(ptr %219, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %231

223:                                              ; preds = %218
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %5, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %6, align 4
  br label %236

227:                                              ; preds = %220
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %5, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %6, align 4
  br label %235

231:                                              ; preds = %222, %221
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %5, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %235

235:                                              ; preds = %231, %227
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %236

236:                                              ; preds = %235, %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  %237 = load i1, ptr %32, align 1
  br i1 %237, label %238, label %239

238:                                              ; preds = %236
  call void @__cxa_free_exception(ptr %219) #6
  br label %239

239:                                              ; preds = %238, %236
  br label %647

240:                                              ; preds = %215
  %241 = load i8, ptr @__GLEW_ARB_texture_border_clamp, align 1, !tbaa !24
  %242 = icmp ne i8 %241, 0
  br i1 %242, label %265, label %243

243:                                              ; preds = %240
  store i1 true, ptr %38, align 1
  %244 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %245 unwind label %248

245:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %246 unwind label %252

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  store i32 3, ptr %37, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %244, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef %35, i32 noundef 605, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %247 unwind label %256

247:                                              ; preds = %246
  store i1 false, ptr %38, align 1
  invoke void @__cxa_throw(ptr %244, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %256

248:                                              ; preds = %243
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %5, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %6, align 4
  br label %261

252:                                              ; preds = %245
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %5, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %6, align 4
  br label %260

256:                                              ; preds = %247, %246
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %5, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %260

260:                                              ; preds = %256, %252
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %261

261:                                              ; preds = %260, %248
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  %262 = load i1, ptr %38, align 1
  br i1 %262, label %263, label %264

263:                                              ; preds = %261
  call void @__cxa_free_exception(ptr %244) #6
  br label %264

264:                                              ; preds = %263, %261
  br label %647

265:                                              ; preds = %240
  %266 = load i8, ptr @__GLEW_ARB_texture_non_power_of_two, align 1, !tbaa !24
  %267 = icmp ne i8 %266, 0
  br i1 %267, label %290, label %268

268:                                              ; preds = %265
  store i1 true, ptr %44, align 1
  %269 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %270 unwind label %273

270:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %271 unwind label %277

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  store i32 3, ptr %43, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %269, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef %41, i32 noundef 606, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %272 unwind label %281

272:                                              ; preds = %271
  store i1 false, ptr %44, align 1
  invoke void @__cxa_throw(ptr %269, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %281

273:                                              ; preds = %268
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %5, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %6, align 4
  br label %286

277:                                              ; preds = %270
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %5, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %6, align 4
  br label %285

281:                                              ; preds = %272, %271
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %5, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %285

285:                                              ; preds = %281, %277
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %286

286:                                              ; preds = %285, %273
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #6
  %287 = load i1, ptr %44, align 1
  br i1 %287, label %288, label %289

288:                                              ; preds = %286
  call void @__cxa_free_exception(ptr %269) #6
  br label %289

289:                                              ; preds = %288, %286
  br label %647

290:                                              ; preds = %265
  %291 = load i8, ptr @__GLEW_ARB_texture_rectangle, align 1, !tbaa !24
  %292 = icmp ne i8 %291, 0
  br i1 %292, label %315, label %293

293:                                              ; preds = %290
  store i1 true, ptr %50, align 1
  %294 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %295 unwind label %298

295:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %296 unwind label %302

296:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  store i32 3, ptr %49, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %294, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef %47, i32 noundef 607, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %297 unwind label %306

297:                                              ; preds = %296
  store i1 false, ptr %50, align 1
  invoke void @__cxa_throw(ptr %294, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %306

298:                                              ; preds = %293
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %5, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %6, align 4
  br label %311

302:                                              ; preds = %295
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %5, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %6, align 4
  br label %310

306:                                              ; preds = %297, %296
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %5, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %310

310:                                              ; preds = %306, %302
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %311

311:                                              ; preds = %310, %298
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  %312 = load i1, ptr %50, align 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %311
  call void @__cxa_free_exception(ptr %294) #6
  br label %314

314:                                              ; preds = %313, %311
  br label %647

315:                                              ; preds = %290
  %316 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat15isFloatingPointEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
          to label %317 unwind label %137

317:                                              ; preds = %315
  br i1 %316, label %318, label %344

318:                                              ; preds = %317
  %319 = load i8, ptr @__GLEW_ARB_texture_float, align 1, !tbaa !24
  %320 = icmp ne i8 %319, 0
  br i1 %320, label %343, label %321

321:                                              ; preds = %318
  store i1 true, ptr %56, align 1
  %322 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %323 unwind label %326

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %324 unwind label %330

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  store i32 3, ptr %55, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %322, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef %53, i32 noundef 610, ptr noundef nonnull align 4 dereferenceable(4) %55)
          to label %325 unwind label %334

325:                                              ; preds = %324
  store i1 false, ptr %56, align 1
  invoke void @__cxa_throw(ptr %322, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %334

326:                                              ; preds = %321
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %5, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %6, align 4
  br label %339

330:                                              ; preds = %323
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %5, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %6, align 4
  br label %338

334:                                              ; preds = %325, %324
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %5, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %338

338:                                              ; preds = %334, %330
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %339

339:                                              ; preds = %338, %326
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  %340 = load i1, ptr %56, align 1
  br i1 %340, label %341, label %342

341:                                              ; preds = %339
  call void @__cxa_free_exception(ptr %322) #6
  br label %342

342:                                              ; preds = %341, %339
  br label %647

343:                                              ; preds = %318
  br label %344

344:                                              ; preds = %343, %317
  %345 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12isCompressedEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
          to label %346 unwind label %137

346:                                              ; preds = %344
  br i1 %345, label %347, label %373

347:                                              ; preds = %346
  %348 = load i8, ptr @__GLEW_ARB_texture_compression, align 1, !tbaa !24
  %349 = icmp ne i8 %348, 0
  br i1 %349, label %372, label %350

350:                                              ; preds = %347
  store i1 true, ptr %62, align 1
  %351 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %352 unwind label %355

352:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %353 unwind label %359

353:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #6
  store i32 3, ptr %61, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %351, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef %59, i32 noundef 613, ptr noundef nonnull align 4 dereferenceable(4) %61)
          to label %354 unwind label %363

354:                                              ; preds = %353
  store i1 false, ptr %62, align 1
  invoke void @__cxa_throw(ptr %351, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %363

355:                                              ; preds = %350
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %5, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %6, align 4
  br label %368

359:                                              ; preds = %352
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %5, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %6, align 4
  br label %367

363:                                              ; preds = %354, %353
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %5, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %367

367:                                              ; preds = %363, %359
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %368

368:                                              ; preds = %367, %355
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  %369 = load i1, ptr %62, align 1
  br i1 %369, label %370, label %371

370:                                              ; preds = %368
  call void @__cxa_free_exception(ptr %351) #6
  br label %371

371:                                              ; preds = %370, %368
  br label %647

372:                                              ; preds = %347
  br label %373

373:                                              ; preds = %372, %346
  %374 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  %375 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  %376 = icmp sgt i32 %374, %375
  br i1 %376, label %377, label %431

377:                                              ; preds = %373
  store i1 true, ptr %74, align 1
  %378 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  %379 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %379, ptr %68, align 4, !tbaa !21
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %380 unwind label %389

380:                                              ; preds = %377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %381 unwind label %393

381:                                              ; preds = %380
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.23)
          to label %382 unwind label %397

382:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #6
  %383 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %383, ptr %70, align 4, !tbaa !21
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 4 dereferenceable(4) %70)
          to label %384 unwind label %401

384:                                              ; preds = %382
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %385 unwind label %405

385:                                              ; preds = %384
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.1)
          to label %386 unwind label %409

386:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %387 unwind label %413

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #6
  store i32 3, ptr %73, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %378, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef %71, i32 noundef 618, ptr noundef nonnull align 4 dereferenceable(4) %73)
          to label %388 unwind label %417

388:                                              ; preds = %387
  store i1 false, ptr %74, align 1
  invoke void @__cxa_throw(ptr %378, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %417

389:                                              ; preds = %377
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %5, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %6, align 4
  br label %427

393:                                              ; preds = %380
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %5, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %6, align 4
  br label %426

397:                                              ; preds = %381
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %5, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %6, align 4
  br label %425

401:                                              ; preds = %382
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %5, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %6, align 4
  br label %424

405:                                              ; preds = %384
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %5, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %6, align 4
  br label %423

409:                                              ; preds = %385
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %5, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %6, align 4
  br label %422

413:                                              ; preds = %386
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %5, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %6, align 4
  br label %421

417:                                              ; preds = %388, %387
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %5, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  br label %421

421:                                              ; preds = %417, %413
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %422

422:                                              ; preds = %421, %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %423

423:                                              ; preds = %422, %405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %424

424:                                              ; preds = %423, %401
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %425

425:                                              ; preds = %424, %397
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %426

426:                                              ; preds = %425, %393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %427

427:                                              ; preds = %426, %389
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  %428 = load i1, ptr %74, align 1
  br i1 %428, label %429, label %430

429:                                              ; preds = %427
  call void @__cxa_free_exception(ptr %378) #6
  br label %430

430:                                              ; preds = %429, %427
  br label %647

431:                                              ; preds = %373
  invoke void @glEnable(i32 noundef 3553)
          to label %432 unwind label %137

432:                                              ; preds = %431
  %433 = getelementptr inbounds %"class.Glip::CoreGL::HdlTexture", ptr %119, i32 0, i32 1
  invoke void @glGenTextures(i32 noundef 1, ptr noundef %433)
          to label %434 unwind label %137

434:                                              ; preds = %432
  %435 = getelementptr inbounds %"class.Glip::CoreGL::HdlTexture", ptr %119, i32 0, i32 1
  %436 = load i32, ptr %435, align 4, !tbaa !11
  %437 = icmp eq i32 %436, 0
  br i1 %437, label %438, label %485

438:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #6
  %439 = invoke i32 @glGetError()
          to label %440 unwind label %448

440:                                              ; preds = %438
  store i32 %439, ptr %75, align 4, !tbaa !21
  store i1 true, ptr %84, align 1
  %441 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #6
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 4 dereferenceable(4) %75) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %442 unwind label %452

442:                                              ; preds = %440
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.25)
          to label %443 unwind label %456

443:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #6
  invoke void @_ZN4Glip6CoreGL21getGLErrorDescriptionB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %444 unwind label %460

444:                                              ; preds = %443
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %445 unwind label %464

445:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %446 unwind label %468

446:                                              ; preds = %445
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #6
  store i32 3, ptr %83, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %441, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef %81, i32 noundef 633, ptr noundef nonnull align 4 dereferenceable(4) %83)
          to label %447 unwind label %472

447:                                              ; preds = %446
  store i1 false, ptr %84, align 1
  invoke void @__cxa_throw(ptr %441, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %472

448:                                              ; preds = %438
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %5, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %6, align 4
  br label %484

452:                                              ; preds = %440
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %5, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %6, align 4
  br label %480

456:                                              ; preds = %442
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %5, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %6, align 4
  br label %479

460:                                              ; preds = %443
  %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
  br label %478

464:                                              ; preds = %444
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %5, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %6, align 4
  br label %477

468:                                              ; preds = %445
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %5, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %6, align 4
  br label %476

472:                                              ; preds = %447, %446
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %5, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %476

476:                                              ; preds = %472, %468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %477

477:                                              ; preds = %476, %464
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %478

478:                                              ; preds = %477, %460
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %479

479:                                              ; preds = %478, %456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %480

480:                                              ; preds = %479, %452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  %481 = load i1, ptr %84, align 1
  br i1 %481, label %482, label %483

482:                                              ; preds = %480
  call void @__cxa_free_exception(ptr %441) #6
  br label %483

483:                                              ; preds = %482, %480
  br label %484

484:                                              ; preds = %483, %448
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  br label %647

485:                                              ; preds = %434
  %486 = getelementptr inbounds %"class.Glip::CoreGL::HdlTexture", ptr %119, i32 0, i32 1
  %487 = load i32, ptr %486, align 4, !tbaa !11
  invoke void @glBindTexture(i32 noundef 3553, i32 noundef %487)
          to label %488 unwind label %137

488:                                              ; preds = %485
  %489 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMinFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10241, i32 noundef %489)
          to label %490 unwind label %137

490:                                              ; preds = %488
  %491 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMagFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10240, i32 noundef %491)
          to label %492 unwind label %137

492:                                              ; preds = %490
  %493 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getSWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10242, i32 noundef %493)
          to label %494 unwind label %137

494:                                              ; preds = %492
  %495 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getTWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10243, i32 noundef %495)
          to label %496 unwind label %137

496:                                              ; preds = %494
  %497 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 33084, i32 noundef %497)
          to label %498 unwind label %137

498:                                              ; preds = %496
  %499 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 33085, i32 noundef %499)
          to label %500 unwind label %137

500:                                              ; preds = %498
  %501 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  %502 = icmp sgt i32 %501, 0
  br i1 %502, label %503, label %505

503:                                              ; preds = %500
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 33169, i32 noundef 1)
          to label %504 unwind label %137

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504, %500
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #6
  %506 = invoke i32 @glGetError()
          to label %507 unwind label %538

507:                                              ; preds = %505
  store i32 %506, ptr %85, align 4, !tbaa !21
  %508 = load i32, ptr %85, align 4, !tbaa !21
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %644

510:                                              ; preds = %507
  store i1 true, ptr %118, align 1
  %511 = call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #6
  %512 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMinFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %512, ptr %102, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 4 dereferenceable(4) %102) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %513 unwind label %542

513:                                              ; preds = %510
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.27)
          to label %514 unwind label %546

514:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #6
  %515 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMagFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %515, ptr %104, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 4 dereferenceable(4) %104) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %516 unwind label %550

516:                                              ; preds = %514
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.28)
          to label %517 unwind label %554

517:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #6
  %518 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getSWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %518, ptr %106, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 4 dereferenceable(4) %106) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %519 unwind label %558

519:                                              ; preds = %517
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.29)
          to label %520 unwind label %562

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #6
  %521 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getTWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %521, ptr %108, align 4, !tbaa !21
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 4 dereferenceable(4) %108) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %522 unwind label %566

522:                                              ; preds = %520
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.30)
          to label %523 unwind label %570

523:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #6
  %524 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %524, ptr %110, align 4, !tbaa !21
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 4 dereferenceable(4) %110)
          to label %525 unwind label %574

525:                                              ; preds = %523
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %526 unwind label %578

526:                                              ; preds = %525
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.31)
          to label %527 unwind label %582

527:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #6
  %528 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %119)
  store i32 %528, ptr %112, align 4, !tbaa !21
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr noundef nonnull align 4 dereferenceable(4) %112)
          to label %529 unwind label %586

529:                                              ; preds = %527
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %530 unwind label %590

530:                                              ; preds = %529
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.32)
          to label %531 unwind label %594

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #6
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 4 dereferenceable(4) %85) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %532 unwind label %598

532:                                              ; preds = %531
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.10)
          to label %533 unwind label %602

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #6
  invoke void @_ZN4Glip6CoreGL21getGLErrorDescriptionB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 4 dereferenceable(4) %85)
          to label %534 unwind label %606

534:                                              ; preds = %533
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %535 unwind label %610

535:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %536 unwind label %614

536:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #6
  store i32 3, ptr %117, align 4, !tbaa !22
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %511, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef %115, i32 noundef 657, ptr noundef nonnull align 4 dereferenceable(4) %117)
          to label %537 unwind label %618

537:                                              ; preds = %536
  store i1 false, ptr %118, align 1
  invoke void @__cxa_throw(ptr %511, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #7
          to label %653 unwind label %618

538:                                              ; preds = %644, %505
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %5, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %6, align 4
  br label %646

542:                                              ; preds = %510
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %5, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %6, align 4
  br label %640

546:                                              ; preds = %513
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %5, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %6, align 4
  br label %639

550:                                              ; preds = %514
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %5, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %6, align 4
  br label %638

554:                                              ; preds = %516
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %5, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %6, align 4
  br label %637

558:                                              ; preds = %517
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %5, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %6, align 4
  br label %636

562:                                              ; preds = %519
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %5, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %6, align 4
  br label %635

566:                                              ; preds = %520
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %5, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %6, align 4
  br label %634

570:                                              ; preds = %522
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %5, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %6, align 4
  br label %633

574:                                              ; preds = %523
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %5, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %6, align 4
  br label %632

578:                                              ; preds = %525
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %5, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %6, align 4
  br label %631

582:                                              ; preds = %526
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %5, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %6, align 4
  br label %630

586:                                              ; preds = %527
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %5, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %6, align 4
  br label %629

590:                                              ; preds = %529
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %5, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %6, align 4
  br label %628

594:                                              ; preds = %530
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %5, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %6, align 4
  br label %627

598:                                              ; preds = %531
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %5, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %6, align 4
  br label %626

602:                                              ; preds = %532
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %5, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %6, align 4
  br label %625

606:                                              ; preds = %533
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %5, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %6, align 4
  br label %624

610:                                              ; preds = %534
  %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
  br label %623

614:                                              ; preds = %535
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %5, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %6, align 4
  br label %622

618:                                              ; preds = %537, %536
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %5, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  br label %622

622:                                              ; preds = %618, %614
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  br label %623

623:                                              ; preds = %622, %610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #6
  br label %624

624:                                              ; preds = %623, %606
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  br label %625

625:                                              ; preds = %624, %602
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  br label %626

626:                                              ; preds = %625, %598
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %627

627:                                              ; preds = %626, %594
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %628

628:                                              ; preds = %627, %590
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  br label %629

629:                                              ; preds = %628, %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  br label %630

630:                                              ; preds = %629, %582
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #6
  br label %631

631:                                              ; preds = %630, %578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %632

632:                                              ; preds = %631, %574
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %633

633:                                              ; preds = %632, %570
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  br label %634

634:                                              ; preds = %633, %566
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %635

635:                                              ; preds = %634, %562
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  br label %636

636:                                              ; preds = %635, %558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %637

637:                                              ; preds = %636, %554
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %638

638:                                              ; preds = %637, %550
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %639

639:                                              ; preds = %638, %546
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  br label %640

640:                                              ; preds = %639, %542
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #6
  %641 = load i1, ptr %118, align 1
  br i1 %641, label %642, label %643

642:                                              ; preds = %640
  call void @__cxa_free_exception(ptr %511) #6
  br label %643

643:                                              ; preds = %642, %640
  br label %646

644:                                              ; preds = %507
  invoke void @_ZN4Glip6CoreGL10HdlTexture6unbindEj(i32 noundef 33984)
          to label %645 unwind label %538

645:                                              ; preds = %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #6
  ret void

646:                                              ; preds = %643, %538
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #6
  br label %647

647:                                              ; preds = %646, %484, %430, %371, %342, %314, %289, %264, %239, %214, %162, %137
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %119) #6
  br label %648

648:                                              ; preds = %647
  %649 = load ptr, ptr %5, align 8
  %650 = load i32, ptr %6, align 4
  %651 = insertvalue { ptr, i32 } poison, ptr %649, 0
  %652 = insertvalue { ptr, i32 } %651, i32 %650, 1
  resume { ptr, i32 } %652

653:                                              ; preds = %537, %447, %388, %354, %325, %297, %272, %247, %222, %182, %136
  unreachable
}

declare noundef zeroext i1 @_ZNK4Glip6CoreGL26HdlTextureFormatDescriptor12isDepthValidEj(ptr noundef nonnull align 4 dereferenceable(72), i32 noundef) #4

declare void @glEnable(i32 noundef) #4

declare void @glGenTextures(i32 noundef, ptr noundef) #4

declare void @glTexParameteri(i32 noundef, i32 noundef, i32 noundef) #4

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

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

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { "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 = { 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 #6 = { nounwind }
attributes #7 = { 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 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !14, i64 52}
!12 = !{!"_ZTSN4Glip6CoreGL10HdlTextureE", !13, i64 0, !14, i64 52, !15, i64 56}
!13 = !{!"_ZTSN4Glip6CoreGL24HdlAbstractTextureFormatE", !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48}
!14 = !{!"int", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!12, !15, i64 56}
!17 = !{!18, !15, i64 70}
!18 = !{!"_ZTSN4Glip6CoreGL26HdlTextureFormatDescriptorE", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !7, i64 20, !7, i64 36, !7, i64 52, !15, i64 68, !15, i64 69, !15, i64 70}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = !{!14, !14, i64 0}
!22 = !{!23, !23, i64 0}
!23 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}
!24 = !{!7, !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 [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [90 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTVN4Glip6CoreGL10HdlTextureE = external dso_local unnamed_addr constant { [7 x ptr] }, align 8
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [27 x i8], align 1
@__GLEW_ARB_multitexture = external local_unnamed_addr global i8, align 1
@.str.16 = external hidden unnamed_addr constant [125 x i8], align 1
@__GLEW_ARB_texture_border_clamp = external local_unnamed_addr global i8, align 1
@.str.17 = external hidden unnamed_addr constant [133 x i8], align 1
@__GLEW_ARB_texture_non_power_of_two = external local_unnamed_addr global i8, align 1
@.str.18 = external hidden unnamed_addr constant [137 x i8], align 1
@__GLEW_ARB_texture_rectangle = external local_unnamed_addr global i8, align 1
@.str.19 = external hidden unnamed_addr constant [130 x i8], align 1
@__GLEW_ARB_texture_float = external local_unnamed_addr global i8, align 1
@.str.20 = external hidden unnamed_addr constant [126 x i8], align 1
@__GLEW_ARB_texture_compression = external local_unnamed_addr global i8, align 1
@.str.21 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [23 x i8], align 1

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 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 #3 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 #4

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(72) ptr @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat19getFormatDescriptorEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat10getGLDepthEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat9getGLModeEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMinFilterEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMagFilterEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getSWrappingEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getTWrappingEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12isCompressedEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat15isFloatingPointEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #3 align 2

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

declare void @glBindTexture(i32 noundef, i32 noundef) local_unnamed_addr #4

declare i32 @glGetError() local_unnamed_addr #4

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

declare void @_ZN4Glip6CoreGL21getGLErrorDescriptionB5cxx11ERKj(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip6CoreGL10HdlTexture6unbindEj(i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Glip6CoreGL10HdlTextureC2ERKNS0_24HdlAbstractTextureFormatE(ptr noundef nonnull align 8 dereferenceable(57) %0, ptr noundef nonnull align 8 dereferenceable(52) %1) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %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 i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca i32, align 4
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca i32, align 4
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca i32, align 4
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca i32, align 4
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca i32, align 4
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca i32, align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca i32, align 4
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca i32, align 4
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca i32, align 4
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca i32, align 4
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca i32, align 4
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::allocator", align 1
  %103 = alloca i32, align 4
  tail call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(52) %0, ptr noundef nonnull align 8 dereferenceable(52) %1)
  store ptr getelementptr inbounds inrange(-16, 40) (i8, ptr @_ZTVN4Glip6CoreGL10HdlTextureE, i64 16), ptr %0, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 0, ptr %104, align 4, !tbaa !8
  %105 = getelementptr inbounds i8, ptr %0, i64 56
  store i8 0, ptr %105, align 8, !tbaa !14
  %106 = invoke noundef nonnull align 4 dereferenceable(72) ptr @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat19getFormatDescriptorEv(ptr noundef nonnull align 8 dereferenceable(52) %1)
          to label %107 unwind label %118

107:                                              ; preds = %2
  %108 = getelementptr inbounds i8, ptr %106, i64 70
  %109 = load i8, ptr %108, align 2, !tbaa !15, !range !17, !noundef !18
  %110 = trunc nuw i8 %109 to i1
  br i1 %110, label %130, label %111

111:                                              ; preds = %107
  %112 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  %113 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat9getGLModeEv(ptr noundef nonnull align 8 dereferenceable(52) %1)
  store i32 %113, ptr %6, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 4 dereferenceable(4) %6) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %114 unwind label %.thread

114:                                              ; preds = %111
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.14)
          to label %115 unwind label %121

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %116 unwind label %123

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  store i32 0, ptr %9, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %112, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull %7, i32 noundef 598, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %117 unwind label %125

117:                                              ; preds = %116
  invoke void @__cxa_throw(ptr nonnull %112, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %125

118:                                              ; preds = %338, %333, %331, %329, %327, %325, %323, %322, %289, %288, %235, %218, %132, %130, %2
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %433

.thread:                                          ; preds = %111
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %129

121:                                              ; preds = %114
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %128

123:                                              ; preds = %115
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %127

125:                                              ; preds = %117, %116
  %.062 = phi i1 [ false, %117 ], [ true, %116 ]
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %127

127:                                              ; preds = %125, %123
  %.pn = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  %.163 = phi i1 [ %.062, %125 ], [ true, %123 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %128

128:                                              ; preds = %121, %127
  %.pn.pn = phi { ptr, i32 } [ %.pn, %127 ], [ %122, %121 ]
  %.264 = phi i1 [ %.163, %127 ], [ true, %121 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br i1 %.264, label %129, label %433

129:                                              ; preds = %.thread, %128
  %.pn.pn.pn212 = phi { ptr, i32 } [ %120, %.thread ], [ %.pn.pn, %128 ]
  call void @__cxa_free_exception(ptr %112) #6
  br label %433

130:                                              ; preds = %107
  %131 = invoke noundef nonnull align 4 dereferenceable(72) ptr @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat19getFormatDescriptorEv(ptr noundef nonnull align 8 dereferenceable(52) %1)
          to label %132 unwind label %118

132:                                              ; preds = %130
  %133 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat10getGLDepthEv(ptr noundef nonnull align 8 dereferenceable(52) %1)
  %134 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL26HdlTextureFormatDescriptor12isDepthValidEj(ptr noundef nonnull align 4 dereferenceable(72) %131, i32 noundef %133)
          to label %135 unwind label %118

135:                                              ; preds = %132
  br i1 %134, label %162, label %136

136:                                              ; preds = %135
  %137 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  %138 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat9getGLModeEv(ptr noundef nonnull align 8 dereferenceable(52) %1)
  store i32 %138, ptr %15, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 4 dereferenceable(4) %15) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %139 unwind label %.thread213

139:                                              ; preds = %136
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.15)
          to label %140 unwind label %147

140:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %141 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat10getGLDepthEv(ptr noundef nonnull align 8 dereferenceable(52) %1)
  store i32 %141, ptr %17, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 4 dereferenceable(4) %17) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %142 unwind label %149

142:                                              ; preds = %140
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.11)
          to label %143 unwind label %151

143:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %144 unwind label %153

144:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  store i32 0, ptr %20, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %137, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %18, i32 noundef 600, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %145 unwind label %155

145:                                              ; preds = %144
  invoke void @__cxa_throw(ptr nonnull %137, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %155

.thread213:                                       ; preds = %136
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  br label %161

147:                                              ; preds = %139
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %160

149:                                              ; preds = %140
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %159

151:                                              ; preds = %142
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %158

153:                                              ; preds = %143
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

155:                                              ; preds = %145, %144
  %.056 = phi i1 [ false, %145 ], [ true, %144 ]
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %157

157:                                              ; preds = %155, %153
  %.pn144 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  %.157 = phi i1 [ %.056, %155 ], [ true, %153 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %158

158:                                              ; preds = %157, %151
  %.pn144.pn = phi { ptr, i32 } [ %.pn144, %157 ], [ %152, %151 ]
  %.258 = phi i1 [ %.157, %157 ], [ true, %151 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %159

159:                                              ; preds = %158, %149
  %.pn144.pn.pn = phi { ptr, i32 } [ %.pn144.pn, %158 ], [ %150, %149 ]
  %.359 = phi i1 [ %.258, %158 ], [ true, %149 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %160

160:                                              ; preds = %147, %159
  %.pn144.pn.pn.pn = phi { ptr, i32 } [ %.pn144.pn.pn, %159 ], [ %148, %147 ]
  %.460 = phi i1 [ %.359, %159 ], [ true, %147 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  br i1 %.460, label %161, label %433

161:                                              ; preds = %.thread213, %160
  %.pn144.pn.pn.pn.pn216 = phi { ptr, i32 } [ %146, %.thread213 ], [ %.pn144.pn.pn.pn, %160 ]
  call void @__cxa_free_exception(ptr %137) #6
  br label %433

162:                                              ; preds = %135
  %163 = load i8, ptr @__GLEW_ARB_multitexture, align 1, !tbaa !22
  %.not150 = icmp eq i8 %163, 0
  br i1 %.not150, label %164, label %176

164:                                              ; preds = %162
  %165 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %166 unwind label %.thread217

166:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %167 unwind label %170

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  store i32 3, ptr %25, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %165, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull %23, i32 noundef 604, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %168 unwind label %172

168:                                              ; preds = %167
  invoke void @__cxa_throw(ptr nonnull %165, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %172

.thread217:                                       ; preds = %164
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br label %175

170:                                              ; preds = %166
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %168, %167
  %.053 = phi i1 [ false, %168 ], [ true, %167 ]
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %174

174:                                              ; preds = %170, %172
  %.pn151 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  %.154 = phi i1 [ %.053, %172 ], [ true, %170 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br i1 %.154, label %175, label %433

175:                                              ; preds = %.thread217, %174
  %.pn151.pn220 = phi { ptr, i32 } [ %169, %.thread217 ], [ %.pn151, %174 ]
  call void @__cxa_free_exception(ptr %165) #6
  br label %433

176:                                              ; preds = %162
  %177 = load i8, ptr @__GLEW_ARB_texture_border_clamp, align 1, !tbaa !22
  %.not154 = icmp eq i8 %177, 0
  br i1 %.not154, label %178, label %190

178:                                              ; preds = %176
  %179 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %180 unwind label %.thread221

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %181 unwind label %184

181:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  store i32 3, ptr %30, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %179, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull %28, i32 noundef 605, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %182 unwind label %186

182:                                              ; preds = %181
  invoke void @__cxa_throw(ptr nonnull %179, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %186

.thread221:                                       ; preds = %178
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %189

184:                                              ; preds = %180
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %188

186:                                              ; preds = %182, %181
  %.050 = phi i1 [ false, %182 ], [ true, %181 ]
  %187 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %188

188:                                              ; preds = %184, %186
  %.pn155 = phi { ptr, i32 } [ %187, %186 ], [ %185, %184 ]
  %.151 = phi i1 [ %.050, %186 ], [ true, %184 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br i1 %.151, label %189, label %433

189:                                              ; preds = %.thread221, %188
  %.pn155.pn224 = phi { ptr, i32 } [ %183, %.thread221 ], [ %.pn155, %188 ]
  call void @__cxa_free_exception(ptr %179) #6
  br label %433

190:                                              ; preds = %176
  %191 = load i8, ptr @__GLEW_ARB_texture_non_power_of_two, align 1, !tbaa !22
  %.not158 = icmp eq i8 %191, 0
  br i1 %.not158, label %192, label %204

192:                                              ; preds = %190
  %193 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %194 unwind label %.thread225

194:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %195 unwind label %198

195:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  store i32 3, ptr %35, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %193, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull %33, i32 noundef 606, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %196 unwind label %200

196:                                              ; preds = %195
  invoke void @__cxa_throw(ptr nonnull %193, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %200

.thread225:                                       ; preds = %192
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %203

198:                                              ; preds = %194
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %202

200:                                              ; preds = %196, %195
  %.047 = phi i1 [ false, %196 ], [ true, %195 ]
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %202

202:                                              ; preds = %198, %200
  %.pn159 = phi { ptr, i32 } [ %201, %200 ], [ %199, %198 ]
  %.148 = phi i1 [ %.047, %200 ], [ true, %198 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br i1 %.148, label %203, label %433

203:                                              ; preds = %.thread225, %202
  %.pn159.pn228 = phi { ptr, i32 } [ %197, %.thread225 ], [ %.pn159, %202 ]
  call void @__cxa_free_exception(ptr %193) #6
  br label %433

204:                                              ; preds = %190
  %205 = load i8, ptr @__GLEW_ARB_texture_rectangle, align 1, !tbaa !22
  %.not162 = icmp eq i8 %205, 0
  br i1 %.not162, label %206, label %218

206:                                              ; preds = %204
  %207 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %208 unwind label %.thread229

208:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %209 unwind label %212

209:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  store i32 3, ptr %40, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %207, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull %38, i32 noundef 607, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %210 unwind label %214

210:                                              ; preds = %209
  invoke void @__cxa_throw(ptr nonnull %207, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %214

.thread229:                                       ; preds = %206
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  br label %217

212:                                              ; preds = %208
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %216

214:                                              ; preds = %210, %209
  %.044 = phi i1 [ false, %210 ], [ true, %209 ]
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %216

216:                                              ; preds = %212, %214
  %.pn163 = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ]
  %.145 = phi i1 [ %.044, %214 ], [ true, %212 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  br i1 %.145, label %217, label %433

217:                                              ; preds = %.thread229, %216
  %.pn163.pn232 = phi { ptr, i32 } [ %211, %.thread229 ], [ %.pn163, %216 ]
  call void @__cxa_free_exception(ptr %207) #6
  br label %433

218:                                              ; preds = %204
  %219 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat15isFloatingPointEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
          to label %220 unwind label %118

220:                                              ; preds = %218
  %221 = load i8, ptr @__GLEW_ARB_texture_float, align 1
  %222 = icmp eq i8 %221, 0
  %or.cond.not = select i1 %219, i1 %222, i1 false
  br i1 %or.cond.not, label %223, label %235

223:                                              ; preds = %220
  %224 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %225 unwind label %.thread233

225:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %226 unwind label %229

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  store i32 3, ptr %45, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %224, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull %43, i32 noundef 610, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %227 unwind label %231

227:                                              ; preds = %226
  invoke void @__cxa_throw(ptr nonnull %224, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %231

.thread233:                                       ; preds = %223
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #6
  br label %234

229:                                              ; preds = %225
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %233

231:                                              ; preds = %227, %226
  %.041 = phi i1 [ false, %227 ], [ true, %226 ]
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %233

233:                                              ; preds = %229, %231
  %.pn167 = phi { ptr, i32 } [ %232, %231 ], [ %230, %229 ]
  %.142 = phi i1 [ %.041, %231 ], [ true, %229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #6
  br i1 %.142, label %234, label %433

234:                                              ; preds = %.thread233, %233
  %.pn167.pn236 = phi { ptr, i32 } [ %228, %.thread233 ], [ %.pn167, %233 ]
  call void @__cxa_free_exception(ptr %224) #6
  br label %433

235:                                              ; preds = %220
  %236 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12isCompressedEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
          to label %237 unwind label %118

237:                                              ; preds = %235
  %238 = load i8, ptr @__GLEW_ARB_texture_compression, align 1
  %239 = icmp eq i8 %238, 0
  %or.cond4.not = select i1 %236, i1 %239, i1 false
  br i1 %or.cond4.not, label %240, label %252

240:                                              ; preds = %237
  %241 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %242 unwind label %.thread237

242:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %243 unwind label %246

243:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #6
  store i32 3, ptr %50, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %241, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull %48, i32 noundef 613, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %244 unwind label %248

244:                                              ; preds = %243
  invoke void @__cxa_throw(ptr nonnull %241, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %248

.thread237:                                       ; preds = %240
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  br label %251

246:                                              ; preds = %242
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %250

248:                                              ; preds = %244, %243
  %.038 = phi i1 [ false, %244 ], [ true, %243 ]
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  br label %250

250:                                              ; preds = %246, %248
  %.pn170 = phi { ptr, i32 } [ %249, %248 ], [ %247, %246 ]
  %.139 = phi i1 [ %.038, %248 ], [ true, %246 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  br i1 %.139, label %251, label %433

251:                                              ; preds = %.thread237, %250
  %.pn170.pn240 = phi { ptr, i32 } [ %245, %.thread237 ], [ %.pn170, %250 ]
  call void @__cxa_free_exception(ptr %241) #6
  br label %433

252:                                              ; preds = %237
  %253 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  %254 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  %255 = icmp sgt i32 %253, %254
  br i1 %255, label %256, label %288

256:                                              ; preds = %252
  %257 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #6
  %258 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %258, ptr %56, align 4, !tbaa !19
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %259 unwind label %.thread241

259:                                              ; preds = %256
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %260 unwind label %.thread245

260:                                              ; preds = %259
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.23)
          to label %261 unwind label %270

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #6
  %262 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %262, ptr %58, align 4, !tbaa !19
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %263 unwind label %272

263:                                              ; preds = %261
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %264 unwind label %274

264:                                              ; preds = %263
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.1)
          to label %265 unwind label %276

265:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %266 unwind label %278

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %61) #6
  store i32 3, ptr %61, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %257, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull %59, i32 noundef 618, ptr noundef nonnull align 4 dereferenceable(4) %61)
          to label %267 unwind label %280

267:                                              ; preds = %266
  invoke void @__cxa_throw(ptr nonnull %257, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %280

.thread241:                                       ; preds = %256
  %268 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  br label %287

.thread245:                                       ; preds = %259
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  br label %287

270:                                              ; preds = %260
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %286

272:                                              ; preds = %261
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %285

274:                                              ; preds = %263
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %284

276:                                              ; preds = %264
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %283

278:                                              ; preds = %265
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %282

280:                                              ; preds = %267, %266
  %.030 = phi i1 [ false, %267 ], [ true, %266 ]
  %281 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %282

282:                                              ; preds = %280, %278
  %.pn201 = phi { ptr, i32 } [ %281, %280 ], [ %279, %278 ]
  %.131 = phi i1 [ %.030, %280 ], [ true, %278 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %283

283:                                              ; preds = %282, %276
  %.pn201.pn = phi { ptr, i32 } [ %.pn201, %282 ], [ %277, %276 ]
  %.232 = phi i1 [ %.131, %282 ], [ true, %276 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %284

284:                                              ; preds = %283, %274
  %.pn201.pn.pn = phi { ptr, i32 } [ %.pn201.pn, %283 ], [ %275, %274 ]
  %.333 = phi i1 [ %.232, %283 ], [ true, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %285

285:                                              ; preds = %284, %272
  %.pn201.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn, %284 ], [ %273, %272 ]
  %.434 = phi i1 [ %.333, %284 ], [ true, %272 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %286

286:                                              ; preds = %270, %285
  %.pn201.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn.pn, %285 ], [ %271, %270 ]
  %.535 = phi i1 [ %.434, %285 ], [ true, %270 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  br i1 %.535, label %287, label %433

287:                                              ; preds = %.thread245, %.thread241, %286
  %.pn201.pn.pn.pn.pn.pn.pn244 = phi { ptr, i32 } [ %268, %.thread241 ], [ %.pn201.pn.pn.pn.pn, %286 ], [ %269, %.thread245 ]
  call void @__cxa_free_exception(ptr %257) #6
  br label %433

288:                                              ; preds = %252
  invoke void @glEnable(i32 noundef 3553)
          to label %289 unwind label %118

289:                                              ; preds = %288
  invoke void @glGenTextures(i32 noundef 1, ptr noundef nonnull %104)
          to label %290 unwind label %118

290:                                              ; preds = %289
  %291 = load i32, ptr %104, align 4, !tbaa !8
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %322

293:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %62) #6
  %294 = invoke i32 @glGetError()
          to label %295 unwind label %303

295:                                              ; preds = %293
  store i32 %294, ptr %62, align 4, !tbaa !19
  %296 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #6
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 4 dereferenceable(4) %62) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %297 unwind label %.thread248

297:                                              ; preds = %295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.25)
          to label %298 unwind label %306

298:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #6
  invoke void @_ZN4Glip6CoreGL21getGLErrorDescriptionB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 4 dereferenceable(4) %62)
          to label %299 unwind label %308

299:                                              ; preds = %298
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %300 unwind label %310

300:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %69) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %301 unwind label %312

301:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #6
  store i32 3, ptr %70, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %296, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull %68, i32 noundef 633, ptr noundef nonnull align 4 dereferenceable(4) %70)
          to label %302 unwind label %314

302:                                              ; preds = %301
  invoke void @__cxa_throw(ptr nonnull %296, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %314

303:                                              ; preds = %293
  %304 = landingpad { ptr, i32 }
          cleanup
  br label %321

.thread248:                                       ; preds = %295
  %305 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  br label %320

306:                                              ; preds = %297
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %319

308:                                              ; preds = %298
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %318

310:                                              ; preds = %299
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %317

312:                                              ; preds = %300
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %316

314:                                              ; preds = %302, %301
  %.024 = phi i1 [ false, %302 ], [ true, %301 ]
  %315 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %316

316:                                              ; preds = %314, %312
  %.pn194 = phi { ptr, i32 } [ %315, %314 ], [ %313, %312 ]
  %.125 = phi i1 [ %.024, %314 ], [ true, %312 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %317

317:                                              ; preds = %316, %310
  %.pn194.pn = phi { ptr, i32 } [ %.pn194, %316 ], [ %311, %310 ]
  %.226 = phi i1 [ %.125, %316 ], [ true, %310 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %318

318:                                              ; preds = %317, %308
  %.pn194.pn.pn = phi { ptr, i32 } [ %.pn194.pn, %317 ], [ %309, %308 ]
  %.327 = phi i1 [ %.226, %317 ], [ true, %308 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %319

319:                                              ; preds = %306, %318
  %.pn194.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn, %318 ], [ %307, %306 ]
  %.428 = phi i1 [ %.327, %318 ], [ true, %306 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #6
  br i1 %.428, label %320, label %321

320:                                              ; preds = %.thread248, %319
  %.pn194.pn.pn.pn.pn251 = phi { ptr, i32 } [ %305, %.thread248 ], [ %.pn194.pn.pn.pn, %319 ]
  call void @__cxa_free_exception(ptr %296) #6
  br label %321

321:                                              ; preds = %319, %320, %303
  %.pn194.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn.pn251, %320 ], [ %.pn194.pn.pn.pn, %319 ], [ %304, %303 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  br label %433

322:                                              ; preds = %290
  invoke void @glBindTexture(i32 noundef 3553, i32 noundef %291)
          to label %323 unwind label %118

323:                                              ; preds = %322
  %324 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMinFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10241, i32 noundef %324)
          to label %325 unwind label %118

325:                                              ; preds = %323
  %326 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMagFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10240, i32 noundef %326)
          to label %327 unwind label %118

327:                                              ; preds = %325
  %328 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getSWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10242, i32 noundef %328)
          to label %329 unwind label %118

329:                                              ; preds = %327
  %330 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getTWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 10243, i32 noundef %330)
          to label %331 unwind label %118

331:                                              ; preds = %329
  %332 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 33084, i32 noundef %332)
          to label %333 unwind label %118

333:                                              ; preds = %331
  %334 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 33085, i32 noundef %334)
          to label %335 unwind label %118

335:                                              ; preds = %333
  %336 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  %337 = icmp sgt i32 %336, 0
  br i1 %337, label %338, label %339

338:                                              ; preds = %335
  invoke void @glTexParameteri(i32 noundef 3553, i32 noundef 33169, i32 noundef 1)
          to label %339 unwind label %118

339:                                              ; preds = %338, %335
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %71) #6
  %340 = invoke i32 @glGetError()
          to label %341 unwind label %370

341:                                              ; preds = %339
  store i32 %340, ptr %71, align 4, !tbaa !19
  %.not = icmp eq i32 %340, 0
  br i1 %.not, label %430, label %342

342:                                              ; preds = %341
  %343 = tail call ptr @__cxa_allocate_exception(i64 152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %88) #6
  %344 = tail call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMinFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %344, ptr %88, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 4 dereferenceable(4) %88) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull @.str.26, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %345 unwind label %.thread252

345:                                              ; preds = %342
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull @.str.27)
          to label %346 unwind label %373

346:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %90) #6
  %347 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getMagFilterEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %347, ptr %90, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 4 dereferenceable(4) %90) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %348 unwind label %375

348:                                              ; preds = %346
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.28)
          to label %349 unwind label %377

349:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #6
  %350 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getSWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %350, ptr %92, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 4 dereferenceable(4) %92) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %351 unwind label %379

351:                                              ; preds = %349
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.29)
          to label %352 unwind label %381

352:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %94) #6
  %353 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getTWrappingEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %353, ptr %94, align 4, !tbaa !19
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 4 dereferenceable(4) %94) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %354 unwind label %383

354:                                              ; preds = %352
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.30)
          to label %355 unwind label %385

355:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %96) #6
  %356 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat12getBaseLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %356, ptr %96, align 4, !tbaa !19
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 4 dereferenceable(4) %96)
          to label %357 unwind label %387

357:                                              ; preds = %355
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %358 unwind label %389

358:                                              ; preds = %357
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.31)
          to label %359 unwind label %391

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %98) #6
  %360 = call noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat11getMaxLevelEv(ptr noundef nonnull align 8 dereferenceable(52) %0)
  store i32 %360, ptr %98, align 4, !tbaa !19
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 4 dereferenceable(4) %98)
          to label %361 unwind label %393

361:                                              ; preds = %359
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %362 unwind label %395

362:                                              ; preds = %361
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.32)
          to label %363 unwind label %397

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #6
  call void @_ZN4Glip6CoreGL17getGLEnumNameSafeB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 4 dereferenceable(4) %71) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %364 unwind label %399

364:                                              ; preds = %363
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.10)
          to label %365 unwind label %401

365:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #6
  invoke void @_ZN4Glip6CoreGL21getGLErrorDescriptionB5cxx11ERKj(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 4 dereferenceable(4) %71)
          to label %366 unwind label %403

366:                                              ; preds = %365
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %367 unwind label %405

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %102) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %368 unwind label %407

368:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %103) #6
  store i32 3, ptr %103, align 4, !tbaa !20
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %343, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull %101, i32 noundef 657, ptr noundef nonnull align 4 dereferenceable(4) %103)
          to label %369 unwind label %409

369:                                              ; preds = %368
  invoke void @__cxa_throw(ptr nonnull %343, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #7
          to label %434 unwind label %409

370:                                              ; preds = %430, %339
  %371 = landingpad { ptr, i32 }
          cleanup
  br label %432

.thread252:                                       ; preds = %342
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #6
  br label %429

373:                                              ; preds = %345
  %374 = landingpad { ptr, i32 }
          cleanup
  br label %428

375:                                              ; preds = %346
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %427

377:                                              ; preds = %348
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %426

379:                                              ; preds = %349
  %380 = landingpad { ptr, i32 }
          cleanup
  br label %425

381:                                              ; preds = %351
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %424

383:                                              ; preds = %352
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %423

385:                                              ; preds = %354
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %422

387:                                              ; preds = %355
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %421

389:                                              ; preds = %357
  %390 = landingpad { ptr, i32 }
          cleanup
  br label %420

391:                                              ; preds = %358
  %392 = landingpad { ptr, i32 }
          cleanup
  br label %419

393:                                              ; preds = %359
  %394 = landingpad { ptr, i32 }
          cleanup
  br label %418

395:                                              ; preds = %361
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %417

397:                                              ; preds = %362
  %398 = landingpad { ptr, i32 }
          cleanup
  br label %416

399:                                              ; preds = %363
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %415

401:                                              ; preds = %364
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %414

403:                                              ; preds = %365
  %404 = landingpad { ptr, i32 }
          cleanup
  br label %413

405:                                              ; preds = %366
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %412

407:                                              ; preds = %367
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %411

409:                                              ; preds = %369, %368
  %.0 = phi i1 [ false, %369 ], [ true, %368 ]
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %103) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %411

411:                                              ; preds = %409, %407
  %.pn173 = phi { ptr, i32 } [ %410, %409 ], [ %408, %407 ]
  %.1 = phi i1 [ %.0, %409 ], [ true, %407 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %412

412:                                              ; preds = %411, %405
  %.pn173.pn = phi { ptr, i32 } [ %.pn173, %411 ], [ %406, %405 ]
  %.2 = phi i1 [ %.1, %411 ], [ true, %405 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  br label %413

413:                                              ; preds = %412, %403
  %.pn173.pn.pn = phi { ptr, i32 } [ %.pn173.pn, %412 ], [ %404, %403 ]
  %.3 = phi i1 [ %.2, %412 ], [ true, %403 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %414

414:                                              ; preds = %413, %401
  %.pn173.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn, %413 ], [ %402, %401 ]
  %.4 = phi i1 [ %.3, %413 ], [ true, %401 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %415

415:                                              ; preds = %414, %399
  %.pn173.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn, %414 ], [ %400, %399 ]
  %.5 = phi i1 [ %.4, %414 ], [ true, %399 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %416

416:                                              ; preds = %415, %397
  %.pn173.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn, %415 ], [ %398, %397 ]
  %.6 = phi i1 [ %.5, %415 ], [ true, %397 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %417

417:                                              ; preds = %416, %395
  %.pn173.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn, %416 ], [ %396, %395 ]
  %.7 = phi i1 [ %.6, %416 ], [ true, %395 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %418

418:                                              ; preds = %417, %393
  %.pn173.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn, %417 ], [ %394, %393 ]
  %.8 = phi i1 [ %.7, %417 ], [ true, %393 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %419

419:                                              ; preds = %418, %391
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn, %418 ], [ %392, %391 ]
  %.9 = phi i1 [ %.8, %418 ], [ true, %391 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %420

420:                                              ; preds = %419, %389
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn, %419 ], [ %390, %389 ]
  %.10 = phi i1 [ %.9, %419 ], [ true, %389 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %421

421:                                              ; preds = %420, %387
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn, %420 ], [ %388, %387 ]
  %.11 = phi i1 [ %.10, %420 ], [ true, %387 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %422

422:                                              ; preds = %421, %385
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %421 ], [ %386, %385 ]
  %.12 = phi i1 [ %.11, %421 ], [ true, %385 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %423

423:                                              ; preds = %422, %383
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %422 ], [ %384, %383 ]
  %.13 = phi i1 [ %.12, %422 ], [ true, %383 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %424

424:                                              ; preds = %423, %381
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %423 ], [ %382, %381 ]
  %.14 = phi i1 [ %.13, %423 ], [ true, %381 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %425

425:                                              ; preds = %424, %379
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %424 ], [ %380, %379 ]
  %.15 = phi i1 [ %.14, %424 ], [ true, %379 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %426

426:                                              ; preds = %425, %377
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %425 ], [ %378, %377 ]
  %.16 = phi i1 [ %.15, %425 ], [ true, %377 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %427

427:                                              ; preds = %426, %375
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %426 ], [ %376, %375 ]
  %.17 = phi i1 [ %.16, %426 ], [ true, %375 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %428

428:                                              ; preds = %373, %427
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %427 ], [ %374, %373 ]
  %.18 = phi i1 [ %.17, %427 ], [ true, %373 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #6
  br i1 %.18, label %429, label %432

429:                                              ; preds = %.thread252, %428
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn255 = phi { ptr, i32 } [ %372, %.thread252 ], [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %428 ]
  call void @__cxa_free_exception(ptr %343) #6
  br label %432

430:                                              ; preds = %341
  invoke void @_ZN4Glip6CoreGL10HdlTexture6unbindEj(i32 noundef 33984)
          to label %431 unwind label %370

431:                                              ; preds = %430
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #6
  ret void

432:                                              ; preds = %428, %429, %370
  %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn255, %429 ], [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %428 ], [ %371, %370 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #6
  br label %433

433:                                              ; preds = %286, %287, %250, %251, %233, %234, %216, %217, %202, %203, %188, %189, %174, %175, %160, %161, %128, %129, %432, %321, %118
  %.pn201.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn.pn.pn.pn.pn244, %287 ], [ %.pn201.pn.pn.pn.pn, %286 ], [ %.pn194.pn.pn.pn.pn.pn, %321 ], [ %.pn173.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %432 ], [ %119, %118 ], [ %.pn170.pn240, %251 ], [ %.pn170, %250 ], [ %.pn167.pn236, %234 ], [ %.pn167, %233 ], [ %.pn163.pn232, %217 ], [ %.pn163, %216 ], [ %.pn159.pn228, %203 ], [ %.pn159, %202 ], [ %.pn155.pn224, %189 ], [ %.pn155, %188 ], [ %.pn151.pn220, %175 ], [ %.pn151, %174 ], [ %.pn144.pn.pn.pn.pn216, %161 ], [ %.pn144.pn.pn.pn, %160 ], [ %.pn.pn.pn212, %129 ], [ %.pn.pn, %128 ]
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %0) #6
  resume { ptr, i32 } %.pn201.pn.pn.pn.pn.pn.pn.pn

434:                                              ; preds = %369, %302, %267, %244, %227, %210, %196, %182, %168, %145, %117
  unreachable
}

declare noundef zeroext i1 @_ZNK4Glip6CoreGL26HdlTextureFormatDescriptor12isDepthValidEj(ptr noundef nonnull align 4 dereferenceable(72), i32 noundef) local_unnamed_addr #4

declare void @glEnable(i32 noundef) local_unnamed_addr #4

declare void @glGenTextures(i32 noundef, ptr noundef) local_unnamed_addr #4

declare void @glTexParameteri(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

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

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

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { "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 = { 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 #6 = { nounwind }
attributes #7 = { 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !11, i64 52}
!9 = !{!"_ZTSN4Glip6CoreGL10HdlTextureE", !10, i64 0, !11, i64 52, !13, i64 56}
!10 = !{!"_ZTSN4Glip6CoreGL24HdlAbstractTextureFormatE", !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48}
!11 = !{!"int", !12, i64 0}
!12 = !{!"omnipotent char", !7, i64 0}
!13 = !{!"bool", !12, i64 0}
!14 = !{!9, !13, i64 56}
!15 = !{!16, !13, i64 70}
!16 = !{!"_ZTSN4Glip6CoreGL26HdlTextureFormatDescriptorE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !12, i64 20, !12, i64 36, !12, i64 52, !13, i64 68, !13, i64 69, !13, i64 70}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!11, !11, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"_ZTSN4Glip9Exception4TypeE", !12, i64 0}
!22 = !{!12, !12, i64 0}


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