; LLVM IR from ronan-kerviche/glip-lib :: Tools/ExternalSrc/NetPBM (NetPBM)

; 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::basic_fstream" = type { %"class.std::basic_iostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"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.std::fpos" = type { i64, %struct.__mbstate_t }
%"class.Glip::CoreGL::HdlTextureFormat" = type { %"class.Glip::CoreGL::HdlAbstractTextureFormat.base", [4 x i8] }
%"class.Glip::CoreGL::HdlAbstractTextureFormat.base" = type <{ ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>

@.str = external hidden unnamed_addr constant [43 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [93 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_Z18changeEndianness16t(i16 noundef zeroext) #0

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN6NetPBM14loadNetPBMFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %0) #1 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::basic_fstream", align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca i32, align 4
  %11 = alloca i1, align 1
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::fpos", align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.Glip::CoreGL::HdlTextureFormat", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca i32, align 4
  %23 = alloca i1, align 1
  %24 = alloca i8, align 1
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca i32, align 4
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca i32, align 4
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca i32, align 4
  %46 = alloca i1, align 1
  %47 = alloca i32, align 4
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca i32, align 4
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca i64, align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca i32, align 4
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca i32, align 4
  %66 = alloca i1, align 1
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 528, ptr %3) #9
  %71 = load ptr, ptr %2, align 8, !tbaa !5
  %72 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  %73 = call noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 8, i32 noundef 4)
  call void @_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(264) %3, ptr noundef %72, i32 noundef %73)
  %74 = invoke noundef zeroext i1 @_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(264) %3)
          to label %75 unwind label %83

75:                                               ; preds = %1
  br i1 %74, label %109, label %76

76:                                               ; preds = %75
  store i1 true, ptr %11, align 1
  %77 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #9
  %78 = load ptr, ptr %2, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef @.str, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %79 unwind label %87

79:                                               ; preds = %76
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.1)
          to label %80 unwind label %91

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %81 unwind label %95

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  store i32 0, ptr %10, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %77, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %8, i32 noundef 64, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %82 unwind label %99

82:                                               ; preds = %81
  store i1 false, ptr %11, align 1
  invoke void @__cxa_throw(ptr %77, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %99

83:                                               ; preds = %109, %1
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %4, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %5, align 4
  br label %530

87:                                               ; preds = %76
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %4, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %5, align 4
  br label %105

91:                                               ; preds = %79
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %4, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %5, align 4
  br label %104

95:                                               ; preds = %80
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %4, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %5, align 4
  br label %103

99:                                               ; preds = %82, %81
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %4, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %103

103:                                              ; preds = %99, %95
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %104

104:                                              ; preds = %103, %91
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %105

105:                                              ; preds = %104, %87
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #9
  %106 = load i1, ptr %11, align 1
  br i1 %106, label %107, label %108

107:                                              ; preds = %105
  call void @__cxa_free_exception(ptr %77) #9
  br label %108

108:                                              ; preds = %107, %105
  br label %530

109:                                              ; preds = %75
  %110 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgElSt12_Ios_Seekdir(ptr noundef nonnull align 8 dereferenceable(16) %3, i64 noundef 0, i32 noundef 2)
          to label %111 unwind label %83

111:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #9
  %112 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %113 unwind label %140

113:                                              ; preds = %111
  %114 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 0
  %115 = extractvalue { i64, i64 } %112, 0
  store i64 %115, ptr %114, align 8
  %116 = getelementptr inbounds { i64, i64 }, ptr %13, i32 0, i32 1
  %117 = extractvalue { i64, i64 } %112, 1
  store i64 %117, ptr %116, align 8
  %118 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %119 unwind label %140

119:                                              ; preds = %113
  %120 = trunc i64 %118 to i32
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #9
  store i32 %120, ptr %12, align 4, !tbaa !11
  %121 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgElSt12_Ios_Seekdir(ptr noundef nonnull align 8 dereferenceable(16) %3, i64 noundef 0, i32 noundef 0)
          to label %122 unwind label %144

122:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %123 = load i32, ptr %12, align 4, !tbaa !11
  %124 = zext i32 %123 to i64
  %125 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %124) #11
          to label %126 unwind label %148

126:                                              ; preds = %122
  store ptr %125, ptr %14, align 8, !tbaa !5
  %127 = load ptr, ptr %14, align 8, !tbaa !5
  %128 = load i32, ptr %12, align 4, !tbaa !11
  %129 = zext i32 %128 to i64
  %130 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef %127, i64 noundef %129)
          to label %131 unwind label %148

131:                                              ; preds = %126
  invoke void @_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(264) %3)
          to label %132 unwind label %148

132:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  %133 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %133, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %134 unwind label %152

134:                                              ; preds = %132
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %17) #9
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormatC1Eiijjjjjjii(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 9728, i32 noundef 9728, i32 noundef 33071, i32 noundef 33071, i32 noundef 0, i32 noundef 0)
          to label %135 unwind label %156

135:                                              ; preds = %134
  %136 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.3)
          to label %137 unwind label %160

137:                                              ; preds = %135
  br i1 %136, label %138, label %164

138:                                              ; preds = %137
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 6409)
          to label %139 unwind label %160

139:                                              ; preds = %138
  br label %202

140:                                              ; preds = %113, %111
  %141 = landingpad { ptr, i32 }
          cleanup
  %142 = extractvalue { ptr, i32 } %141, 0
  store ptr %142, ptr %4, align 8
  %143 = extractvalue { ptr, i32 } %141, 1
  store i32 %143, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #9
  br label %529

144:                                              ; preds = %119
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %4, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %5, align 4
  br label %529

148:                                              ; preds = %131, %126, %122
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %4, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %5, align 4
  br label %528

152:                                              ; preds = %132
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %4, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  br label %527

156:                                              ; preds = %134
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %4, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %5, align 4
  br label %526

160:                                              ; preds = %167, %164, %138, %135
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %4, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %5, align 4
  br label %525

164:                                              ; preds = %137
  %165 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.4)
          to label %166 unwind label %160

166:                                              ; preds = %164
  br i1 %165, label %167, label %169

167:                                              ; preds = %166
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 6407)
          to label %168 unwind label %160

168:                                              ; preds = %167
  br label %201

169:                                              ; preds = %166
  %170 = load ptr, ptr %14, align 8, !tbaa !5
  %171 = icmp eq ptr %170, null
  br i1 %171, label %173, label %172

172:                                              ; preds = %169
  call void @_ZdaPv(ptr noundef %170) #12
  br label %173

173:                                              ; preds = %172, %169
  store i1 true, ptr %23, align 1
  %174 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %175 unwind label %179

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

176:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %177 unwind label %187

177:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  store i32 0, ptr %22, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %174, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef %20, i32 noundef 91, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %178 unwind label %191

178:                                              ; preds = %177
  store i1 false, ptr %23, align 1
  invoke void @__cxa_throw(ptr %174, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %191

179:                                              ; preds = %173
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %4, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %5, align 4
  br label %197

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

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

191:                                              ; preds = %178, %177
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %4, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %195

195:                                              ; preds = %191, %187
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %196

196:                                              ; preds = %195, %183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %197

197:                                              ; preds = %196, %179
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  %198 = load i1, ptr %23, align 1
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void @__cxa_free_exception(ptr %174) #9
  br label %200

200:                                              ; preds = %199, %197
  br label %525

201:                                              ; preds = %168
  br label %202

202:                                              ; preds = %201, %139
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #9
  store i8 1, ptr %24, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  store i32 2, ptr %25, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %203 = load ptr, ptr %14, align 8, !tbaa !5
  %204 = load i32, ptr %12, align 4, !tbaa !11
  %205 = invoke noundef zeroext i1 @_Z11nextIntegerRjPcS_j(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef %203, ptr noundef nonnull align 4 dereferenceable(4) %25, i32 noundef %204)
          to label %206 unwind label %221

206:                                              ; preds = %202
  %207 = zext i1 %205 to i8
  store i8 %207, ptr %24, align 1, !tbaa !13
  %208 = load i8, ptr %24, align 1, !tbaa !13, !range !15, !noundef !16
  %209 = trunc i8 %208 to i1
  br i1 %209, label %247, label %210

210:                                              ; preds = %206
  %211 = load ptr, ptr %14, align 8, !tbaa !5
  %212 = icmp eq ptr %211, null
  br i1 %212, label %214, label %213

213:                                              ; preds = %210
  call void @_ZdaPv(ptr noundef %211) #12
  br label %214

214:                                              ; preds = %213, %210
  store i1 true, ptr %34, align 1
  %215 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #9
  %216 = load ptr, ptr %2, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %216)
          to label %217 unwind label %225

217:                                              ; preds = %214
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.8)
          to label %218 unwind label %229

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %219 unwind label %233

219:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  store i32 0, ptr %33, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %215, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef %31, i32 noundef 102, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %220 unwind label %237

220:                                              ; preds = %219
  store i1 false, ptr %34, align 1
  invoke void @__cxa_throw(ptr %215, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %237

221:                                              ; preds = %331, %329, %288, %247, %202
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %4, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %5, align 4
  br label %524

225:                                              ; preds = %214
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %4, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %5, align 4
  br label %243

229:                                              ; preds = %217
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %4, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %5, align 4
  br label %242

233:                                              ; preds = %218
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %4, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %5, align 4
  br label %241

237:                                              ; preds = %220, %219
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %4, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %241

241:                                              ; preds = %237, %233
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %242

242:                                              ; preds = %241, %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %243

243:                                              ; preds = %242, %225
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  %244 = load i1, ptr %34, align 1
  br i1 %244, label %245, label %246

245:                                              ; preds = %243
  call void @__cxa_free_exception(ptr %215) #9
  br label %246

246:                                              ; preds = %245, %243
  br label %524

247:                                              ; preds = %206
  %248 = load ptr, ptr %14, align 8, !tbaa !5
  %249 = load i32, ptr %12, align 4, !tbaa !11
  %250 = invoke noundef zeroext i1 @_Z11nextIntegerRjPcS_j(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef %248, ptr noundef nonnull align 4 dereferenceable(4) %25, i32 noundef %249)
          to label %251 unwind label %221

251:                                              ; preds = %247
  %252 = zext i1 %250 to i8
  store i8 %252, ptr %24, align 1, !tbaa !13
  %253 = load i8, ptr %24, align 1, !tbaa !13, !range !15, !noundef !16
  %254 = trunc i8 %253 to i1
  br i1 %254, label %288, label %255

255:                                              ; preds = %251
  %256 = load ptr, ptr %14, align 8, !tbaa !5
  %257 = icmp eq ptr %256, null
  br i1 %257, label %259, label %258

258:                                              ; preds = %255
  call void @_ZdaPv(ptr noundef %256) #12
  br label %259

259:                                              ; preds = %258, %255
  store i1 true, ptr %40, align 1
  %260 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #9
  %261 = load ptr, ptr %2, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef @.str.9, ptr noundef nonnull align 8 dereferenceable(32) %261)
          to label %262 unwind label %266

262:                                              ; preds = %259
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.8)
          to label %263 unwind label %270

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %264 unwind label %274

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %260, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %37, i32 noundef 110, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %265 unwind label %278

265:                                              ; preds = %264
  store i1 false, ptr %40, align 1
  invoke void @__cxa_throw(ptr %260, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %278

266:                                              ; preds = %259
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %4, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %5, align 4
  br label %284

270:                                              ; preds = %262
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %4, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %5, align 4
  br label %283

274:                                              ; preds = %263
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %4, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %5, align 4
  br label %282

278:                                              ; preds = %265, %264
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %4, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %282

282:                                              ; preds = %278, %274
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %283

283:                                              ; preds = %282, %270
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %284

284:                                              ; preds = %283, %266
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  %285 = load i1, ptr %40, align 1
  br i1 %285, label %286, label %287

286:                                              ; preds = %284
  call void @__cxa_free_exception(ptr %260) #9
  br label %287

287:                                              ; preds = %286, %284
  br label %524

288:                                              ; preds = %251
  %289 = load ptr, ptr %14, align 8, !tbaa !5
  %290 = load i32, ptr %12, align 4, !tbaa !11
  %291 = invoke noundef zeroext i1 @_Z11nextIntegerRjPcS_j(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef %289, ptr noundef nonnull align 4 dereferenceable(4) %25, i32 noundef %290)
          to label %292 unwind label %221

292:                                              ; preds = %288
  %293 = zext i1 %291 to i8
  store i8 %293, ptr %24, align 1, !tbaa !13
  %294 = load i8, ptr %24, align 1, !tbaa !13, !range !15, !noundef !16
  %295 = trunc i8 %294 to i1
  br i1 %295, label %329, label %296

296:                                              ; preds = %292
  %297 = load ptr, ptr %14, align 8, !tbaa !5
  %298 = icmp eq ptr %297, null
  br i1 %298, label %300, label %299

299:                                              ; preds = %296
  call void @_ZdaPv(ptr noundef %297) #12
  br label %300

300:                                              ; preds = %299, %296
  store i1 true, ptr %46, align 1
  %301 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #9
  %302 = load ptr, ptr %2, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef @.str.10, ptr noundef nonnull align 8 dereferenceable(32) %302)
          to label %303 unwind label %307

303:                                              ; preds = %300
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.8)
          to label %304 unwind label %311

304:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %305 unwind label %315

305:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 0, ptr %45, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %301, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef %43, i32 noundef 118, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %306 unwind label %319

306:                                              ; preds = %305
  store i1 false, ptr %46, align 1
  invoke void @__cxa_throw(ptr %301, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %319

307:                                              ; preds = %300
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %4, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %5, align 4
  br label %325

311:                                              ; preds = %303
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %4, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %5, align 4
  br label %324

315:                                              ; preds = %304
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %4, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %5, align 4
  br label %323

319:                                              ; preds = %306, %305
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %4, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %323

323:                                              ; preds = %319, %315
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %324

324:                                              ; preds = %323, %311
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %325

325:                                              ; preds = %324, %307
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  %326 = load i1, ptr %46, align 1
  br i1 %326, label %327, label %328

327:                                              ; preds = %325
  call void @__cxa_free_exception(ptr %301) #9
  br label %328

328:                                              ; preds = %327, %325
  br label %524

329:                                              ; preds = %292
  %330 = load i32, ptr %26, align 4, !tbaa !11
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat8setWidthEi(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef %330)
          to label %331 unwind label %221

331:                                              ; preds = %329
  %332 = load i32, ptr %27, align 4, !tbaa !11
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setHeightEi(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef %332)
          to label %333 unwind label %221

333:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %334 = load i32, ptr %28, align 4, !tbaa !11
  %335 = invoke noundef double @_ZSt3logIjEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %334)
          to label %336 unwind label %344

336:                                              ; preds = %333
  %337 = call double @log(double noundef 2.000000e+00) #9
  %338 = fdiv double %335, %337
  %339 = fptosi double %338 to i32
  store i32 %339, ptr %47, align 4, !tbaa !11
  %340 = load i32, ptr %47, align 4, !tbaa !11
  %341 = icmp sle i32 %340, 8
  br i1 %341, label %342, label %348

342:                                              ; preds = %336
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat10setGLDepthEj(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 5121)
          to label %343 unwind label %344

343:                                              ; preds = %342
  br label %389

344:                                              ; preds = %389, %352, %351, %342, %333
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %4, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %5, align 4
  br label %523

348:                                              ; preds = %336
  %349 = load i32, ptr %47, align 4, !tbaa !11
  %350 = icmp sle i32 %349, 16
  br i1 %350, label %351, label %354

351:                                              ; preds = %348
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 32834)
          to label %352 unwind label %344

352:                                              ; preds = %351
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat10setGLDepthEj(ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 5123)
          to label %353 unwind label %344

353:                                              ; preds = %352
  br label %388

354:                                              ; preds = %348
  store i1 true, ptr %54, align 1
  %355 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %356 unwind label %361

356:                                              ; preds = %354
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef @.str.11, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %357 unwind label %365

357:                                              ; preds = %356
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.12)
          to label %358 unwind label %369

358:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %359 unwind label %373

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  store i32 0, ptr %53, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %355, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef %51, i32 noundef 135, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %360 unwind label %377

360:                                              ; preds = %359
  store i1 false, ptr %54, align 1
  invoke void @__cxa_throw(ptr %355, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %377

361:                                              ; preds = %354
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %4, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %5, align 4
  br label %384

365:                                              ; preds = %356
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %4, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %5, align 4
  br label %383

369:                                              ; preds = %357
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %4, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %5, align 4
  br label %382

373:                                              ; preds = %358
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %4, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %5, align 4
  br label %381

377:                                              ; preds = %360, %359
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %4, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %381

381:                                              ; preds = %377, %373
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %382

382:                                              ; preds = %381, %369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %383

383:                                              ; preds = %382, %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %384

384:                                              ; preds = %383, %361
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  %385 = load i1, ptr %54, align 1
  br i1 %385, label %386, label %387

386:                                              ; preds = %384
  call void @__cxa_free_exception(ptr %355) #9
  br label %387

387:                                              ; preds = %386, %384
  br label %523

388:                                              ; preds = %353
  br label %389

389:                                              ; preds = %388, %343
  %390 = load i32, ptr %25, align 4, !tbaa !11
  %391 = add i32 %390, 1
  store i32 %391, ptr %25, align 4, !tbaa !11
  %392 = load i32, ptr %12, align 4, !tbaa !11
  %393 = load i32, ptr %25, align 4, !tbaa !11
  %394 = sub i32 %392, %393
  %395 = zext i32 %394 to i64
  %396 = invoke noundef i64 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat7getSizeEv(ptr noundef nonnull align 8 dereferenceable(52) %17)
          to label %397 unwind label %344

397:                                              ; preds = %389
  %398 = icmp ne i64 %395, %396
  br i1 %398, label %399, label %460

399:                                              ; preds = %397
  %400 = load ptr, ptr %14, align 8, !tbaa !5
  %401 = icmp eq ptr %400, null
  br i1 %401, label %403, label %402

402:                                              ; preds = %399
  call void @_ZdaPv(ptr noundef %400) #12
  br label %403

403:                                              ; preds = %402, %399
  store i1 true, ptr %66, align 1
  %404 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %405 = invoke noundef i64 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat7getSizeEv(ptr noundef nonnull align 8 dereferenceable(52) %17)
          to label %406 unwind label %418

406:                                              ; preds = %403
  store i64 %405, ptr %60, align 8, !tbaa !17
  invoke void @_ZN4Glip8toStringImEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %407 unwind label %418

407:                                              ; preds = %406
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %408 unwind label %422

408:                                              ; preds = %407
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.14)
          to label %409 unwind label %426

409:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %410 = load i32, ptr %12, align 4, !tbaa !11
  %411 = load i32, ptr %25, align 4, !tbaa !11
  %412 = sub i32 %410, %411
  store i32 %412, ptr %62, align 4, !tbaa !11
  invoke void @_ZN4Glip8toStringIjEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 4 dereferenceable(4) %62)
          to label %413 unwind label %430

413:                                              ; preds = %409
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %414 unwind label %434

414:                                              ; preds = %413
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.15)
          to label %415 unwind label %438

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %416 unwind label %442

416:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  store i32 0, ptr %65, align 4, !tbaa !9
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %404, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef %63, i32 noundef 143, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %417 unwind label %446

417:                                              ; preds = %416
  store i1 false, ptr %66, align 1
  invoke void @__cxa_throw(ptr %404, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #10
          to label %536 unwind label %446

418:                                              ; preds = %406, %403
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %4, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %5, align 4
  br label %456

422:                                              ; preds = %407
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %4, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %5, align 4
  br label %455

426:                                              ; preds = %408
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %4, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %5, align 4
  br label %454

430:                                              ; preds = %409
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %4, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %5, align 4
  br label %453

434:                                              ; preds = %413
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %4, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %5, align 4
  br label %452

438:                                              ; preds = %414
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %4, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %5, align 4
  br label %451

442:                                              ; preds = %415
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %4, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %5, align 4
  br label %450

446:                                              ; preds = %417, %416
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %4, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %450

450:                                              ; preds = %446, %442
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %451

451:                                              ; preds = %450, %438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %452

452:                                              ; preds = %451, %434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %453

453:                                              ; preds = %452, %430
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %454

454:                                              ; preds = %453, %426
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %455

455:                                              ; preds = %454, %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %456

456:                                              ; preds = %455, %418
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  %457 = load i1, ptr %66, align 1
  br i1 %457, label %458, label %459

458:                                              ; preds = %456
  call void @__cxa_free_exception(ptr %404) #9
  br label %459

459:                                              ; preds = %458, %456
  br label %523

460:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 1, ptr %67, align 4, !tbaa !11
  %461 = load i8, ptr %67, align 4, !tbaa !19
  %462 = sext i8 %461 to i32
  %463 = icmp eq i32 %462, 1
  br i1 %463, label %464, label %497

464:                                              ; preds = %460
  %465 = load i32, ptr %47, align 4, !tbaa !11
  %466 = icmp sgt i32 %465, 8
  br i1 %466, label %467, label %497

467:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %468 = load ptr, ptr %14, align 8, !tbaa !5
  %469 = load i32, ptr %25, align 4, !tbaa !11
  %470 = zext i32 %469 to i64
  %471 = getelementptr inbounds i8, ptr %468, i64 %470
  store ptr %471, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  store i32 0, ptr %69, align 4, !tbaa !11
  br label %472

472:                                              ; preds = %493, %467
  %473 = load i32, ptr %69, align 4, !tbaa !11
  %474 = invoke noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat14getNumElementsEv(ptr noundef nonnull align 8 dereferenceable(52) %17)
          to label %475 unwind label %478

475:                                              ; preds = %472
  %476 = icmp slt i32 %473, %474
  br i1 %476, label %482, label %477

477:                                              ; preds = %475
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %496

478:                                              ; preds = %472
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %4, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %522

482:                                              ; preds = %475
  %483 = load ptr, ptr %68, align 8, !tbaa !5
  %484 = load i32, ptr %69, align 4, !tbaa !11
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds i16, ptr %483, i64 %485
  %487 = load i16, ptr %486, align 2, !tbaa !20
  %488 = call noundef zeroext i16 @_Z18changeEndianness16t(i16 noundef zeroext %487)
  %489 = load ptr, ptr %68, align 8, !tbaa !5
  %490 = load i32, ptr %69, align 4, !tbaa !11
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds i16, ptr %489, i64 %491
  store i16 %488, ptr %492, align 2, !tbaa !20
  br label %493

493:                                              ; preds = %482
  %494 = load i32, ptr %69, align 4, !tbaa !11
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %69, align 4, !tbaa !11
  br label %472, !llvm.loop !22

496:                                              ; preds = %477
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %497

497:                                              ; preds = %496, %464, %460
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  %498 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 72) #11
          to label %499 unwind label %513

499:                                              ; preds = %497
  invoke void @_ZN4Glip7Modules11ImageBufferC1ERKNS_6CoreGL24HdlAbstractTextureFormatEi(ptr noundef nonnull align 8 dereferenceable(72) %498, ptr noundef nonnull align 8 dereferenceable(52) %17, i32 noundef 1)
          to label %500 unwind label %517

500:                                              ; preds = %499
  store ptr %498, ptr %70, align 8, !tbaa !5
  %501 = load ptr, ptr %70, align 8, !tbaa !5
  %502 = load ptr, ptr %14, align 8, !tbaa !5
  %503 = load i32, ptr %25, align 4, !tbaa !11
  %504 = zext i32 %503 to i64
  %505 = getelementptr inbounds i8, ptr %502, i64 %504
  %506 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN4Glip7Modules11ImageBufferlsEPKv(ptr noundef nonnull align 8 dereferenceable(72) %501, ptr noundef %505)
          to label %507 unwind label %513

507:                                              ; preds = %500
  %508 = load ptr, ptr %14, align 8, !tbaa !5
  %509 = icmp eq ptr %508, null
  br i1 %509, label %511, label %510

510:                                              ; preds = %507
  call void @_ZdaPv(ptr noundef %508) #12
  br label %511

511:                                              ; preds = %510, %507
  %512 = load ptr, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %17) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(264) %3) #9
  call void @llvm.lifetime.end.p0(i64 528, ptr %3) #9
  ret ptr %512

513:                                              ; preds = %500, %497
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %4, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %5, align 4
  br label %521

517:                                              ; preds = %499
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %4, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %5, align 4
  call void @_ZdlPvm(ptr noundef %498, i64 noundef 72) #12
  br label %521

521:                                              ; preds = %517, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  br label %522

522:                                              ; preds = %521, %478
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %523

523:                                              ; preds = %522, %459, %387, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %524

524:                                              ; preds = %523, %328, %287, %246, %221
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  br label %525

525:                                              ; preds = %524, %200, %160
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %17) #9
  br label %526

526:                                              ; preds = %525, %156
  call void @llvm.lifetime.end.p0(i64 56, ptr %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %527

527:                                              ; preds = %526, %152
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  br label %528

528:                                              ; preds = %527, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %529

529:                                              ; preds = %528, %144, %140
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %530

530:                                              ; preds = %529, %108, %83
  call void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(264) %3) #9
  call void @llvm.lifetime.end.p0(i64 528, ptr %3) #9
  br label %531

531:                                              ; preds = %530
  %532 = load ptr, ptr %4, align 8
  %533 = load i32, ptr %5, align 4
  %534 = insertvalue { ptr, i32 } poison, ptr %532, 0
  %535 = insertvalue { ptr, i32 } %534, i32 %533, 1
  resume { ptr, i32 } %535

536:                                              ; preds = %417, %360, %306, %265, %220, %178, %82
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, i32 noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(264)) #0 align 2

declare ptr @__cxa_allocate_exception(i64)

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

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

; Function Attrs: 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 #1 align 2

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgElSt12_Ios_Seekdir(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i32 noundef) #5

declare { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) #5

; Function Attrs: mustprogress uwtable
declare void @_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(264)) #1 align 2

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

declare void @_ZN4Glip6CoreGL16HdlTextureFormatC1Eiijjjjjjii(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

declare void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) #5

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #8

declare void @_ZN4Glip6CoreGL16HdlTextureFormat8setWidthEi(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) #5

declare void @_ZN4Glip6CoreGL16HdlTextureFormat9setHeightEi(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3logIjEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef) #3

; Function Attrs: nounwind
declare double @log(double noundef) #6

declare void @_ZN4Glip6CoreGL16HdlTextureFormat10setGLDepthEj(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) #5

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

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

declare noundef i64 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat7getSizeEv(ptr noundef nonnull align 8 dereferenceable(52)) unnamed_addr #5

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

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

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

declare noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat14getNumElementsEv(ptr noundef nonnull align 8 dereferenceable(52)) #5

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

declare void @_ZN4Glip7Modules11ImageBufferC1ERKNS_6CoreGL24HdlAbstractTextureFormatEi(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(72) ptr @_ZN4Glip7Modules11ImageBufferlsEPKv(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) #5

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52)) unnamed_addr #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"short", !7, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}


; 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::basic_fstream" = type { %"class.std::basic_iostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"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.std::fpos" = type { i64, %struct.__mbstate_t }
%"class.Glip::CoreGL::HdlTextureFormat" = type { %"class.Glip::CoreGL::HdlAbstractTextureFormat.base", [4 x i8] }
%"class.Glip::CoreGL::HdlAbstractTextureFormat.base" = type <{ ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>

@.str = external hidden unnamed_addr constant [43 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [93 x i8], align 1
@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_Z18changeEndianness16t(i16 noundef zeroext) local_unnamed_addr #0

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef nonnull ptr @_ZN6NetPBM14loadNetPBMFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %0) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::basic_fstream", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::fpos", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.Glip::CoreGL::HdlTextureFormat", 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 %"class.std::allocator", align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::__cxx11::basic_string", align 8
  %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::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca i32, align 4
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca i64, align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i32, align 4
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 528, ptr nonnull %2) #9
  %54 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #9
  %55 = tail call noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 8, i32 noundef 4)
  call void @_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(264) %2, ptr noundef %54, i32 noundef %55)
  %56 = call noundef zeroext i1 @_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(264) %2)
  br i1 %56, label %73, label %57

57:                                               ; preds = %1
  %58 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull @.str, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %59 unwind label %.thread

59:                                               ; preds = %57
  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.1)
          to label %60 unwind label %.thread162

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

61:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #9
  store i32 0, ptr %7, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %58, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull %5, i32 noundef 64, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %62 unwind label %69

62:                                               ; preds = %61
  invoke void @__cxa_throw(ptr nonnull %58, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %69

63:                                               ; preds = %73
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %285

.thread:                                          ; preds = %57
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %72

.thread162:                                       ; preds = %59
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %72

67:                                               ; preds = %60
  %68 = landingpad { ptr, i32 }
          cleanup
  br label %71

69:                                               ; preds = %62, %61
  %.082 = phi i1 [ false, %62 ], [ true, %61 ]
  %70 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  br label %71

71:                                               ; preds = %67, %69
  %.183 = phi i1 [ %.082, %69 ], [ true, %67 ]
  %.pn = phi { ptr, i32 } [ %70, %69 ], [ %68, %67 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br i1 %.183, label %72, label %285

72:                                               ; preds = %.thread162, %.thread, %71
  %.pn.pn.pn161 = phi { ptr, i32 } [ %65, %.thread ], [ %.pn, %71 ], [ %66, %.thread162 ]
  call void @__cxa_free_exception(ptr %58) #9
  br label %285

73:                                               ; preds = %1
  %74 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgElSt12_Ios_Seekdir(ptr noundef nonnull align 8 dereferenceable(16) %2, i64 noundef 0, i32 noundef 2)
          to label %75 unwind label %63

75:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #9
  %76 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %77 unwind label %94

77:                                               ; preds = %75
  %78 = extractvalue { i64, i64 } %76, 0
  store i64 %78, ptr %8, align 8
  %79 = getelementptr inbounds i8, ptr %8, i64 8
  %80 = extractvalue { i64, i64 } %76, 1
  store i64 %80, ptr %79, align 8
  %81 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
  %82 = trunc i64 %81 to i32
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #9
  %83 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgElSt12_Ios_Seekdir(ptr noundef nonnull align 8 dereferenceable(16) %2, i64 noundef 0, i32 noundef 0)
          to label %84 unwind label %96

84:                                               ; preds = %77
  %85 = and i64 %81, 4294967295
  %86 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %85) #11
          to label %87 unwind label %98

87:                                               ; preds = %84
  %88 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull %86, i64 noundef %85)
          to label %89 unwind label %98

89:                                               ; preds = %87
  invoke void @_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(264) %2)
          to label %90 unwind label %98

90:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull %86, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %91 unwind label %100

91:                                               ; preds = %90
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %11) #9
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormatC1Eiijjjjjjii(ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 9728, i32 noundef 9728, i32 noundef 33071, i32 noundef 33071, i32 noundef 0, i32 noundef 0)
          to label %92 unwind label %102

92:                                               ; preds = %91
  %93 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.3)
  br i1 %93, label %.invoke, label %106

94:                                               ; preds = %75
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #9
  br label %285

96:                                               ; preds = %77
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %285

98:                                               ; preds = %89, %87, %84
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %285

100:                                              ; preds = %90
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  br label %284

102:                                              ; preds = %91
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %283

104:                                              ; preds = %.invoke
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %282

106:                                              ; preds = %92
  %107 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.4)
  br i1 %107, label %.invoke, label %109

.invoke:                                          ; preds = %92, %106
  %108 = phi i32 [ 6407, %106 ], [ 6409, %92 ]
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef %108)
          to label %123 unwind label %104

109:                                              ; preds = %106
  call void @_ZdaPv(ptr noundef nonnull %86) #12
  %110 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %111 unwind label %.thread165

111:                                              ; preds = %109
  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.6)
          to label %112 unwind label %.thread169

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %113 unwind label %117

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #9
  store i32 0, ptr %16, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %110, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull %14, i32 noundef 91, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %114 unwind label %119

114:                                              ; preds = %113
  invoke void @__cxa_throw(ptr nonnull %110, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %119

.thread165:                                       ; preds = %109
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  br label %122

.thread169:                                       ; preds = %111
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  br label %122

117:                                              ; preds = %112
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %121

119:                                              ; preds = %114, %113
  %.086 = phi i1 [ false, %114 ], [ true, %113 ]
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %121

121:                                              ; preds = %117, %119
  %.187 = phi i1 [ %.086, %119 ], [ true, %117 ]
  %.pn119 = phi { ptr, i32 } [ %120, %119 ], [ %118, %117 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  br i1 %.187, label %122, label %282

122:                                              ; preds = %.thread169, %.thread165, %121
  %.pn119.pn.pn168 = phi { ptr, i32 } [ %115, %.thread165 ], [ %.pn119, %121 ], [ %116, %.thread169 ]
  call void @__cxa_free_exception(ptr %110) #9
  br label %282

123:                                              ; preds = %.invoke
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #9
  store i32 2, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #9
  %124 = invoke noundef zeroext i1 @_Z11nextIntegerRjPcS_j(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull %86, ptr noundef nonnull align 4 dereferenceable(4) %17, i32 noundef %82)
          to label %125 unwind label %132

125:                                              ; preds = %123
  br i1 %124, label %142, label %126

126:                                              ; preds = %125
  call void @_ZdaPv(ptr noundef nonnull %86) #12
  %127 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull @.str.7, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %128 unwind label %.thread172

128:                                              ; preds = %126
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.8)
          to label %129 unwind label %.thread176

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  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 %130 unwind label %136

130:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #9
  store i32 0, ptr %25, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %127, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull %23, i32 noundef 102, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %131 unwind label %138

131:                                              ; preds = %130
  invoke void @__cxa_throw(ptr nonnull %127, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %138

132:                                              ; preds = %178, %176, %159, %142, %123
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %281

.thread172:                                       ; preds = %126
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  br label %141

.thread176:                                       ; preds = %128
  %135 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  br label %141

136:                                              ; preds = %129
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %140

138:                                              ; preds = %131, %130
  %.0111 = phi i1 [ false, %131 ], [ true, %130 ]
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %140

140:                                              ; preds = %136, %138
  %.1112 = phi i1 [ %.0111, %138 ], [ true, %136 ]
  %.pn123 = phi { ptr, i32 } [ %139, %138 ], [ %137, %136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  br i1 %.1112, label %141, label %281

141:                                              ; preds = %.thread176, %.thread172, %140
  %.pn123.pn.pn175 = phi { ptr, i32 } [ %134, %.thread172 ], [ %.pn123, %140 ], [ %135, %.thread176 ]
  call void @__cxa_free_exception(ptr %127) #9
  br label %281

142:                                              ; preds = %125
  %143 = invoke noundef zeroext i1 @_Z11nextIntegerRjPcS_j(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull %86, ptr noundef nonnull align 4 dereferenceable(4) %17, i32 noundef %82)
          to label %144 unwind label %132

144:                                              ; preds = %142
  br i1 %143, label %159, label %145

145:                                              ; preds = %144
  call void @_ZdaPv(ptr noundef nonnull %86) #12
  %146 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull @.str.9, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %147 unwind label %.thread179

147:                                              ; preds = %145
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.8)
          to label %148 unwind label %.thread183

148:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  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 %149 unwind label %153

149:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #9
  store i32 0, ptr %30, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %146, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull %28, i32 noundef 110, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %150 unwind label %155

150:                                              ; preds = %149
  invoke void @__cxa_throw(ptr nonnull %146, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %155

.thread179:                                       ; preds = %145
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %158

.thread183:                                       ; preds = %147
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br label %158

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

155:                                              ; preds = %150, %149
  %.0107 = phi i1 [ false, %150 ], [ true, %149 ]
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %157

157:                                              ; preds = %153, %155
  %.1108 = phi i1 [ %.0107, %155 ], [ true, %153 ]
  %.pn127 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  br i1 %.1108, label %158, label %281

158:                                              ; preds = %.thread183, %.thread179, %157
  %.pn127.pn.pn182 = phi { ptr, i32 } [ %151, %.thread179 ], [ %.pn127, %157 ], [ %152, %.thread183 ]
  call void @__cxa_free_exception(ptr %146) #9
  br label %281

159:                                              ; preds = %144
  %160 = invoke noundef zeroext i1 @_Z11nextIntegerRjPcS_j(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull %86, ptr noundef nonnull align 4 dereferenceable(4) %17, i32 noundef %82)
          to label %161 unwind label %132

161:                                              ; preds = %159
  br i1 %160, label %176, label %162

162:                                              ; preds = %161
  call void @_ZdaPv(ptr noundef nonnull %86) #12
  %163 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull @.str.10, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %164 unwind label %.thread186

164:                                              ; preds = %162
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.8)
          to label %165 unwind label %.thread190

165:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #9
  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 %166 unwind label %170

166:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #9
  store i32 0, ptr %35, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %163, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull %33, i32 noundef 118, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %167 unwind label %172

167:                                              ; preds = %166
  invoke void @__cxa_throw(ptr nonnull %163, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %172

.thread186:                                       ; preds = %162
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  br label %175

.thread190:                                       ; preds = %164
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  br label %175

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

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

174:                                              ; preds = %170, %172
  %.1104 = phi i1 [ %.0103, %172 ], [ true, %170 ]
  %.pn131 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  br i1 %.1104, label %175, label %281

175:                                              ; preds = %.thread190, %.thread186, %174
  %.pn131.pn.pn189 = phi { ptr, i32 } [ %168, %.thread186 ], [ %.pn131, %174 ], [ %169, %.thread190 ]
  call void @__cxa_free_exception(ptr %163) #9
  br label %281

176:                                              ; preds = %161
  %177 = load i32, ptr %18, align 4, !tbaa !9
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat8setWidthEi(ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef %177)
          to label %178 unwind label %132

178:                                              ; preds = %176
  %179 = load i32, ptr %19, align 4, !tbaa !9
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setHeightEi(ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef %179)
          to label %180 unwind label %132

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #9
  %181 = load i32, ptr %20, align 4, !tbaa !9
  %182 = call noundef double @_ZSt3logIjEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %181)
  %183 = fdiv double %182, 0x3FE62E42FEFA39EF
  %184 = fptosi double %183 to i32
  store i32 %184, ptr %36, align 4, !tbaa !9
  %185 = icmp slt i32 %184, 9
  br i1 %185, label %.invoke208, label %188

186:                                              ; preds = %.invoke208, %210, %190
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %280

188:                                              ; preds = %180
  %189 = icmp ult i32 %184, 17
  br i1 %189, label %190, label %192

190:                                              ; preds = %188
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef 32834)
          to label %.invoke208 unwind label %186

.invoke208:                                       ; preds = %180, %190
  %191 = phi i32 [ 5123, %190 ], [ 5121, %180 ]
  invoke void @_ZN4Glip6CoreGL16HdlTextureFormat10setGLDepthEj(ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef %191)
          to label %210 unwind label %186

192:                                              ; preds = %188
  %193 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #9
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %194 unwind label %.thread193

194:                                              ; preds = %192
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull @.str.11, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %195 unwind label %.thread197

195:                                              ; preds = %194
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.12)
          to label %196 unwind label %201

196:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %197 unwind label %203

197:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #9
  store i32 0, ptr %42, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %193, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull %40, i32 noundef 135, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %198 unwind label %205

198:                                              ; preds = %197
  invoke void @__cxa_throw(ptr nonnull %193, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %205

.thread193:                                       ; preds = %192
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  br label %209

.thread197:                                       ; preds = %194
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  br label %209

201:                                              ; preds = %195
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %208

203:                                              ; preds = %196
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %207

205:                                              ; preds = %198, %197
  %.098 = phi i1 [ false, %198 ], [ true, %197 ]
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %207

207:                                              ; preds = %205, %203
  %.199 = phi i1 [ %.098, %205 ], [ true, %203 ]
  %.pn135 = phi { ptr, i32 } [ %206, %205 ], [ %204, %203 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %208

208:                                              ; preds = %201, %207
  %.2100 = phi i1 [ %.199, %207 ], [ true, %201 ]
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %207 ], [ %202, %201 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  br i1 %.2100, label %209, label %280

209:                                              ; preds = %.thread197, %.thread193, %208
  %.pn135.pn.pn.pn196 = phi { ptr, i32 } [ %199, %.thread193 ], [ %.pn135.pn, %208 ], [ %200, %.thread197 ]
  call void @__cxa_free_exception(ptr %193) #9
  br label %280

210:                                              ; preds = %.invoke208
  %211 = load i32, ptr %17, align 4, !tbaa !9
  %212 = add i32 %211, 1
  store i32 %212, ptr %17, align 4, !tbaa !9
  %213 = invoke noundef i64 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat7getSizeEv(ptr noundef nonnull align 8 dereferenceable(52) %11)
          to label %214 unwind label %186

214:                                              ; preds = %210
  %215 = sub i32 %82, %212
  %216 = zext i32 %215 to i64
  %.not = icmp eq i64 %213, %216
  br i1 %.not, label %251, label %217

217:                                              ; preds = %214
  call void @_ZdaPv(ptr noundef nonnull %86) #12
  %218 = call ptr @__cxa_allocate_exception(i64 152) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #9
  %219 = invoke noundef i64 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat7getSizeEv(ptr noundef nonnull align 8 dereferenceable(52) %11)
          to label %220 unwind label %.thread200

220:                                              ; preds = %217
  store i64 %219, ptr %48, align 8, !tbaa !11
  invoke void @_ZN4Glip8toStringImEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %221 unwind label %.thread200

221:                                              ; preds = %220
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull @.str.13, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %222 unwind label %.thread204

222:                                              ; preds = %221
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.14)
          to label %223 unwind label %233

223:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #9
  %224 = load i32, ptr %17, align 4, !tbaa !9
  %225 = sub i32 %82, %224
  store i32 %225, ptr %50, align 4, !tbaa !9
  invoke void @_ZN4Glip8toStringIjEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %226 unwind label %235

226:                                              ; preds = %223
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %227 unwind label %237

227:                                              ; preds = %226
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.15)
          to label %228 unwind label %239

228:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %229 unwind label %241

229:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #9
  store i32 0, ptr %53, align 4, !tbaa !5
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %218, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull %51, i32 noundef 143, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %230 unwind label %243

230:                                              ; preds = %229
  invoke void @__cxa_throw(ptr nonnull %218, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #10
          to label %286 unwind label %243

.thread200:                                       ; preds = %217, %220
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br label %250

.thread204:                                       ; preds = %221
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br label %250

233:                                              ; preds = %222
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %249

235:                                              ; preds = %223
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %248

237:                                              ; preds = %226
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %247

239:                                              ; preds = %227
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %246

241:                                              ; preds = %228
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %245

243:                                              ; preds = %230, %229
  %.090 = phi i1 [ false, %230 ], [ true, %229 ]
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %245

245:                                              ; preds = %243, %241
  %.191 = phi i1 [ %.090, %243 ], [ true, %241 ]
  %.pn143 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %246

246:                                              ; preds = %245, %239
  %.292 = phi i1 [ %.191, %245 ], [ true, %239 ]
  %.pn143.pn = phi { ptr, i32 } [ %.pn143, %245 ], [ %240, %239 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %247

247:                                              ; preds = %246, %237
  %.393 = phi i1 [ %.292, %246 ], [ true, %237 ]
  %.pn143.pn.pn = phi { ptr, i32 } [ %.pn143.pn, %246 ], [ %238, %237 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %248

248:                                              ; preds = %247, %235
  %.494 = phi i1 [ %.393, %247 ], [ true, %235 ]
  %.pn143.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn, %247 ], [ %236, %235 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %249

249:                                              ; preds = %233, %248
  %.595 = phi i1 [ %.494, %248 ], [ true, %233 ]
  %.pn143.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn, %248 ], [ %234, %233 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br i1 %.595, label %250, label %280

250:                                              ; preds = %.thread204, %.thread200, %249
  %.pn143.pn.pn.pn.pn.pn.pn203 = phi { ptr, i32 } [ %231, %.thread200 ], [ %.pn143.pn.pn.pn.pn, %249 ], [ %232, %.thread204 ]
  call void @__cxa_free_exception(ptr %218) #9
  br label %280

251:                                              ; preds = %214
  %252 = icmp sgt i32 %184, 8
  br i1 %252, label %253, label %.loopexit

253:                                              ; preds = %251
  %254 = load i32, ptr %17, align 4, !tbaa !9
  %255 = zext i32 %254 to i64
  %256 = getelementptr inbounds i8, ptr %86, i64 %255
  br label %257

257:                                              ; preds = %264, %253
  %indvars.iv = phi i64 [ %indvars.iv.next, %264 ], [ 0, %253 ]
  %258 = invoke noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat14getNumElementsEv(ptr noundef nonnull align 8 dereferenceable(52) %11)
          to label %259 unwind label %262

259:                                              ; preds = %257
  %260 = sext i32 %258 to i64
  %261 = icmp slt i64 %indvars.iv, %260
  br i1 %261, label %264, label %.loopexit

262:                                              ; preds = %257
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %280

264:                                              ; preds = %259
  %265 = getelementptr inbounds i16, ptr %256, i64 %indvars.iv
  %266 = load i16, ptr %265, align 2, !tbaa !13
  %267 = call noundef zeroext i16 @_Z18changeEndianness16t(i16 noundef zeroext %266)
  store i16 %267, ptr %265, align 2, !tbaa !13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  br label %257, !llvm.loop !15

.loopexit:                                        ; preds = %259, %251
  %268 = invoke noalias noundef nonnull dereferenceable(72) ptr @_Znwm(i64 noundef 72) #11
          to label %269 unwind label %276

269:                                              ; preds = %.loopexit
  invoke void @_ZN4Glip7Modules11ImageBufferC1ERKNS_6CoreGL24HdlAbstractTextureFormatEi(ptr noundef nonnull align 8 dereferenceable(72) %268, ptr noundef nonnull align 8 dereferenceable(52) %11, i32 noundef 1)
          to label %270 unwind label %278

270:                                              ; preds = %269
  %271 = load i32, ptr %17, align 4, !tbaa !9
  %272 = zext i32 %271 to i64
  %273 = getelementptr inbounds i8, ptr %86, i64 %272
  %274 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN4Glip7Modules11ImageBufferlsEPKv(ptr noundef nonnull align 8 dereferenceable(72) %268, ptr noundef nonnull %273)
          to label %275 unwind label %276

275:                                              ; preds = %270
  call void @_ZdaPv(ptr noundef nonnull %86) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #9
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %11) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(264) %2) #9
  call void @llvm.lifetime.end.p0(i64 528, ptr nonnull %2) #9
  ret ptr %268

276:                                              ; preds = %270, %.loopexit
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %280

278:                                              ; preds = %269
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %268, i64 noundef 72) #12
  br label %280

280:                                              ; preds = %262, %278, %276, %249, %250, %208, %209, %186
  %.pn143.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn203, %250 ], [ %.pn143.pn.pn.pn.pn, %249 ], [ %187, %186 ], [ %.pn135.pn.pn.pn196, %209 ], [ %.pn135.pn, %208 ], [ %263, %262 ], [ %277, %276 ], [ %279, %278 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #9
  br label %281

281:                                              ; preds = %174, %175, %157, %158, %140, %141, %280, %132
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn.pn, %280 ], [ %133, %132 ], [ %.pn131.pn.pn189, %175 ], [ %.pn131, %174 ], [ %.pn127.pn.pn182, %158 ], [ %.pn127, %157 ], [ %.pn123.pn.pn175, %141 ], [ %.pn123, %140 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #9
  br label %282

282:                                              ; preds = %121, %122, %281, %104
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn.pn.pn, %281 ], [ %105, %104 ], [ %.pn119.pn.pn168, %122 ], [ %.pn119, %121 ]
  call void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %11) #9
  br label %283

283:                                              ; preds = %282, %102
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn, %282 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br label %284

284:                                              ; preds = %283, %100
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %283 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  br label %285

285:                                              ; preds = %94, %96, %284, %98, %71, %72, %63
  %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %64, %63 ], [ %.pn.pn.pn161, %72 ], [ %.pn, %71 ], [ %97, %96 ], [ %95, %94 ], [ %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %284 ], [ %99, %98 ]
  call void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(264) %2) #9
  call void @llvm.lifetime.end.p0(i64 528, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn143.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

286:                                              ; preds = %230, %198, %167, %150, %131, %114, %62
  unreachable
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare void @_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, i32 noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #0 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

; Function Attrs: 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 #1 align 2

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgElSt12_Ios_Seekdir(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i32 noundef) local_unnamed_addr #5

declare { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare void @_ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #1 align 2

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

declare void @_ZN4Glip6CoreGL16HdlTextureFormatC1Eiijjjjjjii(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

declare void @_ZN4Glip6CoreGL16HdlTextureFormat9setGLModeEj(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) local_unnamed_addr #5

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #8

declare void @_ZN4Glip6CoreGL16HdlTextureFormat8setWidthEi(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) local_unnamed_addr #5

declare void @_ZN4Glip6CoreGL16HdlTextureFormat9setHeightEi(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3logIjEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef) local_unnamed_addr #3

declare void @_ZN4Glip6CoreGL16HdlTextureFormat10setGLDepthEj(ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) local_unnamed_addr #5

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

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

declare noundef i64 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat7getSizeEv(ptr noundef nonnull align 8 dereferenceable(52)) unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Glip8toStringIjEENSt7__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 #1

declare noundef i32 @_ZNK4Glip6CoreGL24HdlAbstractTextureFormat14getNumElementsEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #5

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

declare void @_ZN4Glip7Modules11ImageBufferC1ERKNS_6CoreGL24HdlAbstractTextureFormatEi(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(52), i32 noundef) unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(72) ptr @_ZN4Glip7Modules11ImageBufferlsEPKv(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) local_unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL24HdlAbstractTextureFormatD2Ev(ptr noundef nonnull align 8 dereferenceable(52)) unnamed_addr #6

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

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass