; LLVM IR from Overload-Technologies/Overload :: Dependencies/assimp/code/Common/Importer.ll (ZN6Assimp8Importer8ReadFileEPKcj)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.5" = type { i8 }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.59" }
%"struct.std::_Head_base.59" = type { ptr }
%"class.std::vector.65" = type { %"struct.std::_Vector_base.66" }
%"struct.std::_Vector_base.66" = type { %"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl" }
%"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl" = type { %"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.41" }
%"class.std::_Rb_tree.41" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%struct.ImporterAndIndex = type { ptr, i32 }
%"class.__gnu_cxx::__normal_iterator.70" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.71" = type { ptr }
%struct.aiString = type { i32, [1024 x i8] }
%"class.Assimp::ValidateDSProcess" = type { %"class.Assimp::BaseProcess", ptr }
%"class.Assimp::BaseProcess" = type { ptr, ptr, ptr }
%"class.Assimp::ScenePreprocessor" = type { ptr }
%"class.std::__exception_ptr::exception_ptr" = type { ptr }
%struct.ExceptionSwallower.56 = type { i8 }
%"class.Assimp::Importer" = type { ptr }
%"class.Assimp::ImporterPimpl" = type { ptr, i8, ptr, i8, %"class.std::vector", %"class.std::vector.0", ptr, %"class.std::__cxx11::basic_string", %"class.std::__exception_ptr::exception_ptr", %"class.std::map", %"class.std::map.11", %"class.std::map.16", %"class.std::map.21", %"class.std::map.26", i8, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Assimp::BaseImporter *, std::allocator<Assimp::BaseImporter *>>::_Vector_impl" }
%"struct.std::_Vector_base<Assimp::BaseImporter *, std::allocator<Assimp::BaseImporter *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Assimp::BaseImporter *, std::allocator<Assimp::BaseImporter *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Assimp::BaseImporter *, std::allocator<Assimp::BaseImporter *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<Assimp::BaseProcess *, std::allocator<Assimp::BaseProcess *>>::_Vector_impl" }
%"struct.std::_Vector_base<Assimp::BaseProcess *, std::allocator<Assimp::BaseProcess *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Assimp::BaseProcess *, std::allocator<Assimp::BaseProcess *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Assimp::BaseProcess *, std::allocator<Assimp::BaseProcess *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, int>, std::_Select1st<std::pair<const unsigned int, int>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, int>, std::_Select1st<std::pair<const unsigned int, int>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.11" = type { %"class.std::_Rb_tree.12" }
%"class.std::_Rb_tree.12" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, float>, std::_Select1st<std::pair<const unsigned int, float>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, float>, std::_Select1st<std::pair<const unsigned int, float>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.16" = type { %"class.std::_Rb_tree.17" }
%"class.std::_Rb_tree.17" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const unsigned int, std::__cxx11::basic_string<char>>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const unsigned int, std::__cxx11::basic_string<char>>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.21" = type { %"class.std::_Rb_tree.22" }
%"class.std::_Rb_tree.22" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, aiMatrix4x4t<float>>, std::_Select1st<std::pair<const unsigned int, aiMatrix4x4t<float>>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, aiMatrix4x4t<float>>, std::_Select1st<std::pair<const unsigned int, aiMatrix4x4t<float>>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.26" = type { %"class.std::_Rb_tree.27" }
%"class.std::_Rb_tree.27" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, void *>, std::_Select1st<std::pair<const unsigned int, void *>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, void *>, std::_Select1st<std::pair<const unsigned int, void *>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%struct.aiImporterDesc = type { ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, ptr }
%struct.aiScene = type { i32, ptr, i32, ptr, i32, ptr, i32, ptr, i32, ptr, i32, ptr, i32, ptr, ptr, %struct.aiString, i32, ptr, ptr }

@.str.1 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTI17DeadlyImportError = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.17 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [11 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

declare void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) #5

declare noundef ptr @_ZN6Assimp13DefaultLogger3getEv() #5

declare void @_ZN6Assimp6Logger4infoEPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) #5

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

declare void @_ZN6Assimp12BaseImporter16GetExtensionListERSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(48)) #5

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN6Assimp8Importer8ReadFileEPKcj(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1, i32 noundef %2) #6 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.5", align 1
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::unique_ptr", align 8
  %16 = alloca ptr, align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.5", align 1
  %20 = alloca %"class.std::vector.65", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::set", align 8
  %23 = alloca %struct.ImporterAndIndex, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.70", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.71", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.71", align 8
  %28 = alloca ptr, align 8
  %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.5", align 1
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.5", align 1
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.5", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.5", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.5", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.5", align 1
  %49 = alloca %struct.aiString, align 4
  %50 = alloca %"class.Assimp::ValidateDSProcess", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.5", align 1
  %53 = alloca %"class.Assimp::ScenePreprocessor", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator.5", align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator.5", align 1
  %58 = alloca %"class.std::__exception_ptr::exception_ptr", align 8
  %59 = alloca %struct.ExceptionSwallower.56, align 1
  %60 = alloca ptr, align 8
  %61 = alloca %"class.std::__exception_ptr::exception_ptr", align 8
  %62 = alloca %struct.ExceptionSwallower.56, align 1
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  %63 = load ptr, ptr %5, align 8
  %64 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %65 = load ptr, ptr %64, align 8, !tbaa !11
  %66 = icmp ne ptr null, %65
  br i1 %66, label %68, label %67

67:                                               ; preds = %3
  call void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 588)
  br label %68

68:                                               ; preds = %67, %3
  %69 = phi i1 [ true, %3 ], [ false, %67 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #11
  %70 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %70, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %71 unwind label %83

71:                                               ; preds = %68
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #11
  invoke void @_Z15WriteLogOpeningRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %72 unwind label %87

72:                                               ; preds = %71
  %73 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %74 = load ptr, ptr %73, align 8, !tbaa !11
  %75 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %74, i32 0, i32 6
  %76 = load ptr, ptr %75, align 8, !tbaa !13
  %77 = icmp ne ptr %76, null
  br i1 %77, label %78, label %91

78:                                               ; preds = %72
  %79 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %80 unwind label %87

80:                                               ; preds = %78
  invoke void @_ZN6Assimp6Logger5debugEPKc(ptr noundef nonnull align 8 dereferenceable(12) %79, ptr noundef @.str.30)
          to label %81 unwind label %87

81:                                               ; preds = %80
  invoke void @_ZN6Assimp8Importer9FreeSceneEv(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %82 unwind label %87

82:                                               ; preds = %81
  br label %91

83:                                               ; preds = %68
  %84 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %10, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #11
  br label %698

87:                                               ; preds = %106, %100, %91, %81, %80, %78, %71
  %88 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %10, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %11, align 4
  br label %697

91:                                               ; preds = %82, %72
  %92 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %93 = load ptr, ptr %92, align 8, !tbaa !11
  %94 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %93, i32 0, i32 0
  %95 = load ptr, ptr %94, align 8, !tbaa !48
  %96 = invoke noundef zeroext i1 @_ZNK6Assimp8IOSystem6ExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %97 unwind label %87

97:                                               ; preds = %91
  br i1 %96, label %120, label %98

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %99 unwind label %111

99:                                               ; preds = %98
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.32)
          to label %100 unwind label %115

100:                                              ; preds = %99
  %101 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %102 = load ptr, ptr %101, align 8, !tbaa !11
  %103 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %102, i32 0, i32 7
  %104 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  %105 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %106 unwind label %87

106:                                              ; preds = %100
  %107 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %108 = load ptr, ptr %107, align 8, !tbaa !11
  %109 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %108, i32 0, i32 7
  invoke void @_ZN6Assimp6Logger5errorIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %105, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %110 unwind label %87

110:                                              ; preds = %106
  store ptr null, ptr %4, align 8
  store i32 1, ptr %14, align 4
  br label %685

111:                                              ; preds = %98
  %112 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %10, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %11, align 4
  br label %119

115:                                              ; preds = %99
  %116 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %10, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  br label %119

119:                                              ; preds = %115, %111
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  br label %697

120:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  store i1 false, ptr %17, align 1
  %121 = invoke noundef i32 @_ZNK6Assimp8Importer18GetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str.33, i32 noundef 0)
          to label %122 unwind label %135

122:                                              ; preds = %120
  %123 = icmp ne i32 %121, 0
  br i1 %123, label %124, label %127

124:                                              ; preds = %122
  %125 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #12
          to label %126 unwind label %135

126:                                              ; preds = %124
  store ptr %125, ptr %16, align 8
  store i1 true, ptr %17, align 1
  call void @llvm.memset.p0.i64(ptr align 16 %125, i8 0, i64 48, i1 false)
  call void @_ZN6Assimp9Profiling8ProfilerC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %125) #11
  br label %128

127:                                              ; preds = %122
  br label %128

128:                                              ; preds = %127, %126
  %129 = phi ptr [ %125, %126 ], [ null, %127 ]
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEC2IS4_vEEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef %129) #11
  %130 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br i1 %130, label %131, label %148

131:                                              ; preds = %128
  %132 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %133 unwind label %139

133:                                              ; preds = %131
  invoke void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %132, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %134 unwind label %143

134:                                              ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #11
  br label %148

135:                                              ; preds = %124, %120
  %136 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %10, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %11, align 4
  br label %696

139:                                              ; preds = %131
  %140 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %10, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %11, align 4
  br label %147

143:                                              ; preds = %133
  %144 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %10, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  br label %147

147:                                              ; preds = %143, %139
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #11
  br label %695

148:                                              ; preds = %134, %128
  %149 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str.35, i32 noundef -1)
          to label %150 unwind label %160

150:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #11
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %151

151:                                              ; preds = %196, %150
  %152 = load i32, ptr %21, align 4, !tbaa !9
  %153 = zext i32 %152 to i64
  %154 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %155 = load ptr, ptr %154, align 8, !tbaa !11
  %156 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %155, i32 0, i32 4
  %157 = call noundef i64 @_ZNKSt6vectorIPN6Assimp12BaseImporterESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %156) #11
  %158 = icmp ult i64 %153, %157
  br i1 %158, label %164, label %159

159:                                              ; preds = %151
  store i32 2, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %200

160:                                              ; preds = %148
  %161 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %10, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %11, align 4
  br label %695

164:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 48, ptr %22) #11
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #11
  %165 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8, !tbaa !11
  %167 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %166, i32 0, i32 4
  %168 = load i32, ptr %21, align 4, !tbaa !9
  %169 = zext i32 %168 to i64
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %167, i64 noundef %169) #11
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  invoke void @_ZN6Assimp12BaseImporter16GetExtensionListERSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(72) %171, ptr noundef nonnull align 8 dereferenceable(48) %22)
          to label %172 unwind label %187

172:                                              ; preds = %164
  %173 = invoke noundef zeroext i1 @_ZN6Assimp12BaseImporter12HasExtensionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt3setIS6_St4lessIS6_ESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(48) %22)
          to label %174 unwind label %187

174:                                              ; preds = %172
  br i1 %173, label %175, label %195

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #11
  %176 = getelementptr inbounds %struct.ImporterAndIndex, ptr %23, i32 0, i32 0
  %177 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %178 = load ptr, ptr %177, align 8, !tbaa !11
  %179 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %178, i32 0, i32 4
  %180 = load i32, ptr %21, align 4, !tbaa !9
  %181 = zext i32 %180 to i64
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %181) #11
  %183 = load ptr, ptr %182, align 8, !tbaa !5
  store ptr %183, ptr %176, align 8, !tbaa !49
  %184 = getelementptr inbounds %struct.ImporterAndIndex, ptr %23, i32 0, i32 1
  %185 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %185, ptr %184, align 8, !tbaa !51
  invoke void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %186 unwind label %191

186:                                              ; preds = %175
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #11
  br label %195

187:                                              ; preds = %172, %164
  %188 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %10, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %11, align 4
  br label %199

191:                                              ; preds = %175
  %192 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %10, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #11
  br label %199

195:                                              ; preds = %186, %174
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #11
  br label %196

196:                                              ; preds = %195
  %197 = load i32, ptr %21, align 4, !tbaa !9
  %198 = add i32 %197, 1
  store i32 %198, ptr %21, align 4, !tbaa !9
  br label %151, !llvm.loop !52

199:                                              ; preds = %191, %187
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %694

200:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  store ptr null, ptr %24, align 8, !tbaa !5
  %201 = call noundef i64 @_ZNKSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  %202 = icmp eq i64 1, %201
  br i1 %202, label %203, label %216

203:                                              ; preds = %200
  %204 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 0) #11
  %205 = getelementptr inbounds %struct.ImporterAndIndex, ptr %204, i32 0, i32 0
  %206 = load ptr, ptr %205, align 8, !tbaa !49
  store ptr %206, ptr %24, align 8, !tbaa !5
  %207 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 0) #11
  %208 = getelementptr inbounds %struct.ImporterAndIndex, ptr %207, i32 0, i32 1
  %209 = load i32, ptr %208, align 8, !tbaa !51
  %210 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str.35, i32 noundef %209)
          to label %211 unwind label %212

211:                                              ; preds = %203
  br label %296

212:                                              ; preds = %360, %354, %301, %299, %203
  %213 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %10, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %11, align 4
  br label %693

216:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #11
  %217 = call ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  %218 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.71", ptr %26, i32 0, i32 0
  store ptr %217, ptr %218, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEC2IPS5_vEERKNS0_IT_SA_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  br label %219

219:                                              ; preds = %291, %216
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  %220 = call ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  %221 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.71", ptr %27, i32 0, i32 0
  store ptr %220, ptr %221, align 8
  %222 = call noundef zeroext i1 @_ZN9__gnu_cxxltIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexPS5_St6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNSC_IT0_SE_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  br i1 %222, label %224, label %223

223:                                              ; preds = %219
  store i32 5, ptr %14, align 4
  br label %294

224:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %225 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  %226 = getelementptr inbounds %struct.ImporterAndIndex, ptr %225, i32 0, i32 0
  %227 = load ptr, ptr %226, align 8, !tbaa !49
  store ptr %227, ptr %28, align 8, !tbaa !5
  %228 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %229 unwind label %259

229:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #11
  %230 = load ptr, ptr %28, align 8, !tbaa !5
  %231 = load ptr, ptr %230, align 8, !tbaa !54
  %232 = getelementptr inbounds ptr, ptr %231, i64 4
  %233 = load ptr, ptr %232, align 8
  %234 = invoke noundef ptr %233(ptr noundef nonnull align 8 dereferenceable(72) %230)
          to label %235 unwind label %263

235:                                              ; preds = %229
  %236 = getelementptr inbounds %struct.aiImporterDesc, ptr %234, i32 0, i32 0
  %237 = load ptr, ptr %236, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef %237, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %238 unwind label %267

238:                                              ; preds = %235
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef @.str.36, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %239 unwind label %271

239:                                              ; preds = %238
  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.37)
          to label %240 unwind label %275

240:                                              ; preds = %239
  invoke void @_ZN6Assimp6Logger4infoIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %228, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %241 unwind label %279

241:                                              ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #11
  %242 = load ptr, ptr %28, align 8, !tbaa !5
  %243 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %244 = load ptr, ptr %243, align 8, !tbaa !11
  %245 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %244, i32 0, i32 0
  %246 = load ptr, ptr %245, align 8, !tbaa !48
  %247 = load ptr, ptr %242, align 8, !tbaa !54
  %248 = getelementptr inbounds ptr, ptr %247, i64 2
  %249 = load ptr, ptr %248, align 8
  %250 = invoke noundef zeroext i1 %249(ptr noundef nonnull align 8 dereferenceable(72) %242, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %246, i1 noundef zeroext true)
          to label %251 unwind label %259

251:                                              ; preds = %241
  br i1 %250, label %252, label %287

252:                                              ; preds = %251
  %253 = load ptr, ptr %28, align 8, !tbaa !5
  store ptr %253, ptr %24, align 8, !tbaa !5
  %254 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  %255 = getelementptr inbounds %struct.ImporterAndIndex, ptr %254, i32 0, i32 1
  %256 = load i32, ptr %255, align 8, !tbaa !51
  %257 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str.35, i32 noundef %256)
          to label %258 unwind label %259

258:                                              ; preds = %252
  store i32 5, ptr %14, align 4
  br label %288

259:                                              ; preds = %252, %241, %224
  %260 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %10, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %11, align 4
  br label %293

263:                                              ; preds = %229
  %264 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %10, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %11, align 4
  br label %286

267:                                              ; preds = %235
  %268 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %10, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %11, align 4
  br label %285

271:                                              ; preds = %238
  %272 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %10, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %11, align 4
  br label %284

275:                                              ; preds = %239
  %276 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %10, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %11, align 4
  br label %283

279:                                              ; preds = %240
  %280 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %10, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %283

283:                                              ; preds = %279, %275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  br label %284

284:                                              ; preds = %283, %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  br label %285

285:                                              ; preds = %284, %267
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #11
  br label %286

286:                                              ; preds = %285, %263
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #11
  br label %293

287:                                              ; preds = %251
  store i32 0, ptr %14, align 4
  br label %288

288:                                              ; preds = %287, %258
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  %289 = load i32, ptr %14, align 4
  switch i32 %289, label %294 [
    i32 0, label %290
  ]

290:                                              ; preds = %288
  br label %291

291:                                              ; preds = %290
  %292 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  br label %219, !llvm.loop !58

293:                                              ; preds = %286, %259
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %693

294:                                              ; preds = %288, %223
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %295

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %295, %211
  %297 = load ptr, ptr %24, align 8, !tbaa !5
  %298 = icmp ne ptr %297, null
  br i1 %298, label %375, label %299

299:                                              ; preds = %296
  %300 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %301 unwind label %212

301:                                              ; preds = %299
  invoke void @_ZN6Assimp6Logger4infoEPKc(ptr noundef nonnull align 8 dereferenceable(12) %300, ptr noundef @.str.38)
          to label %302 unwind label %212

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  store i32 0, ptr %33, align 4, !tbaa !9
  br label %303

303:                                              ; preds = %345, %302
  %304 = load i32, ptr %33, align 4, !tbaa !9
  %305 = zext i32 %304 to i64
  %306 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %307 = load ptr, ptr %306, align 8, !tbaa !11
  %308 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %307, i32 0, i32 4
  %309 = call noundef i64 @_ZNKSt6vectorIPN6Assimp12BaseImporterESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #11
  %310 = icmp ult i64 %305, %309
  br i1 %310, label %312, label %311

311:                                              ; preds = %303
  store i32 8, ptr %14, align 4
  br label %348

312:                                              ; preds = %303
  %313 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %314 = load ptr, ptr %313, align 8, !tbaa !11
  %315 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %314, i32 0, i32 4
  %316 = load i32, ptr %33, align 4, !tbaa !9
  %317 = zext i32 %316 to i64
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %315, i64 noundef %317) #11
  %319 = load ptr, ptr %318, align 8, !tbaa !5
  %320 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %321 = load ptr, ptr %320, align 8, !tbaa !11
  %322 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %321, i32 0, i32 0
  %323 = load ptr, ptr %322, align 8, !tbaa !48
  %324 = load ptr, ptr %319, align 8, !tbaa !54
  %325 = getelementptr inbounds ptr, ptr %324, i64 2
  %326 = load ptr, ptr %325, align 8
  %327 = invoke noundef zeroext i1 %326(ptr noundef nonnull align 8 dereferenceable(72) %319, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %323, i1 noundef zeroext true)
          to label %328 unwind label %340

328:                                              ; preds = %312
  br i1 %327, label %329, label %344

329:                                              ; preds = %328
  %330 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %331 = load ptr, ptr %330, align 8, !tbaa !11
  %332 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %331, i32 0, i32 4
  %333 = load i32, ptr %33, align 4, !tbaa !9
  %334 = zext i32 %333 to i64
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %332, i64 noundef %334) #11
  %336 = load ptr, ptr %335, align 8, !tbaa !5
  store ptr %336, ptr %24, align 8, !tbaa !5
  %337 = load i32, ptr %33, align 4, !tbaa !9
  %338 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str.35, i32 noundef %337)
          to label %339 unwind label %340

339:                                              ; preds = %329
  store i32 8, ptr %14, align 4
  br label %348

340:                                              ; preds = %329, %312
  %341 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %10, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %693

344:                                              ; preds = %328
  br label %345

345:                                              ; preds = %344
  %346 = load i32, ptr %33, align 4, !tbaa !9
  %347 = add i32 %346, 1
  store i32 %347, ptr %33, align 4, !tbaa !9
  br label %303, !llvm.loop !59

348:                                              ; preds = %339, %311
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %349

349:                                              ; preds = %348
  %350 = load ptr, ptr %24, align 8, !tbaa !5
  %351 = icmp ne ptr %350, null
  br i1 %351, label %374, label %352

352:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef @.str.39, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %353 unwind label %365

353:                                              ; preds = %352
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.32)
          to label %354 unwind label %369

354:                                              ; preds = %353
  %355 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %356 = load ptr, ptr %355, align 8, !tbaa !11
  %357 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %356, i32 0, i32 7
  %358 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  %359 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %360 unwind label %212

360:                                              ; preds = %354
  %361 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %362 = load ptr, ptr %361, align 8, !tbaa !11
  %363 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %362, i32 0, i32 7
  invoke void @_ZN6Assimp6Logger5errorIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %359, ptr noundef nonnull align 8 dereferenceable(32) %363)
          to label %364 unwind label %212

364:                                              ; preds = %360
  store ptr null, ptr %4, align 8
  store i32 1, ptr %14, align 4
  br label %682

365:                                              ; preds = %352
  %366 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %10, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %11, align 4
  br label %373

369:                                              ; preds = %353
  %370 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %10, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %373

373:                                              ; preds = %369, %365
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  br label %693

374:                                              ; preds = %349
  br label %375

375:                                              ; preds = %374, %296
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  %376 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %377 = load ptr, ptr %376, align 8, !tbaa !11
  %378 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %377, i32 0, i32 0
  %379 = load ptr, ptr %378, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %380 unwind label %402

380:                                              ; preds = %375
  %381 = invoke noundef ptr @_ZN6Assimp8IOSystem4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %382 unwind label %406

382:                                              ; preds = %380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #11
  store ptr %381, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  store i32 0, ptr %39, align 4, !tbaa !9
  %383 = load ptr, ptr %36, align 8, !tbaa !5
  %384 = icmp ne ptr %383, null
  br i1 %384, label %385, label %415

385:                                              ; preds = %382
  %386 = load ptr, ptr %36, align 8, !tbaa !5
  %387 = load ptr, ptr %386, align 8, !tbaa !54
  %388 = getelementptr inbounds ptr, ptr %387, i64 6
  %389 = load ptr, ptr %388, align 8
  %390 = invoke noundef i64 %389(ptr noundef nonnull align 8 dereferenceable(8) %386)
          to label %391 unwind label %411

391:                                              ; preds = %385
  %392 = trunc i64 %390 to i32
  store i32 %392, ptr %39, align 4, !tbaa !9
  %393 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %394 = load ptr, ptr %393, align 8, !tbaa !11
  %395 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %394, i32 0, i32 0
  %396 = load ptr, ptr %395, align 8, !tbaa !48
  %397 = load ptr, ptr %36, align 8, !tbaa !5
  %398 = load ptr, ptr %396, align 8, !tbaa !54
  %399 = getelementptr inbounds ptr, ptr %398, i64 5
  %400 = load ptr, ptr %399, align 8
  invoke void %400(ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef %397)
          to label %401 unwind label %411

401:                                              ; preds = %391
  br label %415

402:                                              ; preds = %375
  %403 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %10, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %11, align 4
  br label %410

406:                                              ; preds = %380
  %407 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %10, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  br label %410

410:                                              ; preds = %406, %402
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #11
  br label %692

411:                                              ; preds = %391, %385
  %412 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %10, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %11, align 4
  br label %691

415:                                              ; preds = %401, %382
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %416 = load ptr, ptr %24, align 8, !tbaa !5
  %417 = load ptr, ptr %416, align 8, !tbaa !54
  %418 = getelementptr inbounds ptr, ptr %417, i64 4
  %419 = load ptr, ptr %418, align 8
  %420 = invoke noundef ptr %419(ptr noundef nonnull align 8 dereferenceable(72) %416)
          to label %421 unwind label %431

421:                                              ; preds = %415
  store ptr %420, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %422 unwind label %435

422:                                              ; preds = %421
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #11
  %423 = load ptr, ptr %40, align 8, !tbaa !5
  %424 = icmp ne ptr null, %423
  br i1 %424, label %425, label %443

425:                                              ; preds = %422
  %426 = load ptr, ptr %40, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.aiImporterDesc, ptr %426, i32 0, i32 0
  %428 = load ptr, ptr %427, align 8, !tbaa !56
  %429 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef %428)
          to label %430 unwind label %439

430:                                              ; preds = %425
  br label %443

431:                                              ; preds = %415
  %432 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %10, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %11, align 4
  br label %690

435:                                              ; preds = %421
  %436 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %10, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #11
  br label %689

439:                                              ; preds = %660, %651, %646, %643, %538, %521, %505, %477, %470, %446, %445, %443, %425
  %440 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %10, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %11, align 4
  br label %688

443:                                              ; preds = %430, %422
  %444 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %445 unwind label %439

445:                                              ; preds = %443
  invoke void @_ZN6Assimp6Logger4infoIJRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %444, ptr noundef nonnull align 1 dereferenceable(49) @.str.42, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 1 dereferenceable(2) @.str.20)
          to label %446 unwind label %439

446:                                              ; preds = %445
  %447 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %448 = load ptr, ptr %447, align 8, !tbaa !11
  %449 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %448, i32 0, i32 2
  %450 = load ptr, ptr %449, align 8, !tbaa !60
  %451 = load i32, ptr %39, align 4, !tbaa !9
  %452 = load ptr, ptr %450, align 8, !tbaa !54
  %453 = getelementptr inbounds ptr, ptr %452, i64 3
  %454 = load ptr, ptr %453, align 8
  invoke void %454(ptr noundef nonnull align 8 dereferenceable(8) %450, i32 noundef 0, i32 noundef %451)
          to label %455 unwind label %439

455:                                              ; preds = %446
  %456 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br i1 %456, label %457, label %470

457:                                              ; preds = %455
  %458 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %459 unwind label %461

459:                                              ; preds = %457
  invoke void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %458, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %460 unwind label %465

460:                                              ; preds = %459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #11
  br label %470

461:                                              ; preds = %457
  %462 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %10, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %11, align 4
  br label %469

465:                                              ; preds = %459
  %466 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %10, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %469

469:                                              ; preds = %465, %461
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #11
  br label %688

470:                                              ; preds = %460, %455
  %471 = load ptr, ptr %24, align 8, !tbaa !5
  %472 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %473 = load ptr, ptr %472, align 8, !tbaa !11
  %474 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %473, i32 0, i32 0
  %475 = load ptr, ptr %474, align 8, !tbaa !48
  %476 = invoke noundef ptr @_ZN6Assimp12BaseImporter8ReadFileEPNS_8ImporterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_8IOSystemE(ptr noundef nonnull align 8 dereferenceable(72) %471, ptr noundef %63, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %475)
          to label %477 unwind label %439

477:                                              ; preds = %470
  %478 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %479 = load ptr, ptr %478, align 8, !tbaa !11
  %480 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %479, i32 0, i32 6
  store ptr %476, ptr %480, align 8, !tbaa !13
  %481 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %482 = load ptr, ptr %481, align 8, !tbaa !11
  %483 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %482, i32 0, i32 2
  %484 = load ptr, ptr %483, align 8, !tbaa !60
  %485 = load i32, ptr %39, align 4, !tbaa !9
  %486 = load i32, ptr %39, align 4, !tbaa !9
  %487 = load ptr, ptr %484, align 8, !tbaa !54
  %488 = getelementptr inbounds ptr, ptr %487, i64 3
  %489 = load ptr, ptr %488, align 8
  invoke void %489(ptr noundef nonnull align 8 dereferenceable(8) %484, i32 noundef %485, i32 noundef %486)
          to label %490 unwind label %439

490:                                              ; preds = %477
  %491 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br i1 %491, label %492, label %505

492:                                              ; preds = %490
  %493 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %494 unwind label %496

494:                                              ; preds = %492
  invoke void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %493, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %495 unwind label %500

495:                                              ; preds = %494
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #11
  br label %505

496:                                              ; preds = %492
  %497 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %10, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %11, align 4
  br label %504

500:                                              ; preds = %494
  %501 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %10, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  br label %504

504:                                              ; preds = %500, %496
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #11
  br label %688

505:                                              ; preds = %495, %490
  %506 = invoke noundef zeroext i1 @_ZN6Assimp8Importer17SetPropertyStringEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str.44, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %507 unwind label %439

507:                                              ; preds = %505
  %508 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %509 = load ptr, ptr %508, align 8, !tbaa !11
  %510 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %509, i32 0, i32 6
  %511 = load ptr, ptr %510, align 8, !tbaa !13
  %512 = icmp ne ptr %511, null
  br i1 %512, label %513, label %637

513:                                              ; preds = %507
  %514 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %515 = load ptr, ptr %514, align 8, !tbaa !11
  %516 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %515, i32 0, i32 6
  %517 = load ptr, ptr %516, align 8, !tbaa !13
  %518 = getelementptr inbounds %struct.aiScene, ptr %517, i32 0, i32 14
  %519 = load ptr, ptr %518, align 8, !tbaa !61
  %520 = icmp ne ptr %519, null
  br i1 %520, label %521, label %530

521:                                              ; preds = %513
  %522 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %523 = load ptr, ptr %522, align 8, !tbaa !11
  %524 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %523, i32 0, i32 6
  %525 = load ptr, ptr %524, align 8, !tbaa !13
  %526 = getelementptr inbounds %struct.aiScene, ptr %525, i32 0, i32 14
  %527 = load ptr, ptr %526, align 8, !tbaa !61
  %528 = invoke noundef zeroext i1 @_ZNK10aiMetadata6HasKeyEPKc(ptr noundef nonnull align 8 dereferenceable(24) %527, ptr noundef @.str.45)
          to label %529 unwind label %439

529:                                              ; preds = %521
  br i1 %528, label %565, label %530

530:                                              ; preds = %529, %513
  %531 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %532 = load ptr, ptr %531, align 8, !tbaa !11
  %533 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %532, i32 0, i32 6
  %534 = load ptr, ptr %533, align 8, !tbaa !13
  %535 = getelementptr inbounds %struct.aiScene, ptr %534, i32 0, i32 14
  %536 = load ptr, ptr %535, align 8, !tbaa !61
  %537 = icmp ne ptr %536, null
  br i1 %537, label %546, label %538

538:                                              ; preds = %530
  %539 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #12
          to label %540 unwind label %439

540:                                              ; preds = %538
  call void @_ZN10aiMetadataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %539) #11
  %541 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %542 = load ptr, ptr %541, align 8, !tbaa !11
  %543 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %542, i32 0, i32 6
  %544 = load ptr, ptr %543, align 8, !tbaa !13
  %545 = getelementptr inbounds %struct.aiScene, ptr %544, i32 0, i32 14
  store ptr %539, ptr %545, align 8, !tbaa !61
  br label %546

546:                                              ; preds = %540, %530
  %547 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %548 = load ptr, ptr %547, align 8, !tbaa !11
  %549 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %548, i32 0, i32 6
  %550 = load ptr, ptr %549, align 8, !tbaa !13
  %551 = getelementptr inbounds %struct.aiScene, ptr %550, i32 0, i32 14
  %552 = load ptr, ptr %551, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %553 unwind label %556

553:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 1028, ptr %49) #11
  invoke void @_ZN8aiStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 4 dereferenceable(1028) %49, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %554 unwind label %560

554:                                              ; preds = %553
  invoke void @_ZN10aiMetadata3AddI8aiStringEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %552, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 4 dereferenceable(1028) %49)
          to label %555 unwind label %560

555:                                              ; preds = %554
  call void @llvm.lifetime.end.p0(i64 1028, ptr %49) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #11
  br label %565

556:                                              ; preds = %546
  %557 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %10, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %11, align 4
  br label %564

560:                                              ; preds = %554, %553
  %561 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %10, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1028, ptr %49) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  br label %564

564:                                              ; preds = %560, %556
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #11
  br label %688

565:                                              ; preds = %555, %529
  %566 = load i32, ptr %7, align 4, !tbaa !9
  %567 = and i32 %566, 1024
  %568 = icmp ne i32 %567, 0
  br i1 %568, label %569, label %591

569:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #11
  invoke void @_ZN6Assimp17ValidateDSProcessC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %570 unwind label %578

570:                                              ; preds = %569
  invoke void @_ZN6Assimp11BaseProcess14ExecuteOnSceneEPNS_8ImporterE(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef %63)
          to label %571 unwind label %582

571:                                              ; preds = %570
  %572 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %573 = load ptr, ptr %572, align 8, !tbaa !11
  %574 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %573, i32 0, i32 6
  %575 = load ptr, ptr %574, align 8, !tbaa !13
  %576 = icmp ne ptr %575, null
  br i1 %576, label %586, label %577

577:                                              ; preds = %571
  store ptr null, ptr %4, align 8
  store i32 1, ptr %14, align 4
  br label %587

578:                                              ; preds = %569
  %579 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %10, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %11, align 4
  br label %590

582:                                              ; preds = %570
  %583 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %10, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %11, align 4
  call void @_ZN6Assimp11BaseProcessD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %590

586:                                              ; preds = %571
  store i32 0, ptr %14, align 4
  br label %587

587:                                              ; preds = %586, %577
  call void @_ZN6Assimp11BaseProcessD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  %588 = load i32, ptr %14, align 4
  switch i32 %588, label %681 [
    i32 0, label %589
  ]

589:                                              ; preds = %587
  br label %591

590:                                              ; preds = %582, %578
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  br label %688

591:                                              ; preds = %589, %565
  %592 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br i1 %592, label %593, label %606

593:                                              ; preds = %591
  %594 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %595 unwind label %597

595:                                              ; preds = %593
  invoke void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %594, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %596 unwind label %601

596:                                              ; preds = %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #11
  br label %606

597:                                              ; preds = %593
  %598 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %10, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %11, align 4
  br label %605

601:                                              ; preds = %595
  %602 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %10, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %605

605:                                              ; preds = %601, %597
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #11
  br label %688

606:                                              ; preds = %596, %591
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  %607 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %608 = load ptr, ptr %607, align 8, !tbaa !11
  %609 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %608, i32 0, i32 6
  %610 = load ptr, ptr %609, align 8, !tbaa !13
  invoke void @_ZN6Assimp17ScenePreprocessorC2EP7aiScene(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef %610)
          to label %611 unwind label %618

611:                                              ; preds = %606
  invoke void @_ZN6Assimp17ScenePreprocessor12ProcessSceneEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %612 unwind label %618

612:                                              ; preds = %611
  %613 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br i1 %613, label %614, label %631

614:                                              ; preds = %612
  %615 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %616 unwind label %622

616:                                              ; preds = %614
  invoke void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %615, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %617 unwind label %626

617:                                              ; preds = %616
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #11
  br label %631

618:                                              ; preds = %631, %611, %606
  %619 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %10, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %11, align 4
  br label %636

622:                                              ; preds = %614
  %623 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %10, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %11, align 4
  br label %630

626:                                              ; preds = %616
  %627 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %10, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  br label %630

630:                                              ; preds = %626, %622
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #11
  br label %636

631:                                              ; preds = %617, %612
  %632 = load i32, ptr %7, align 4, !tbaa !9
  %633 = and i32 %632, -1025
  %634 = invoke noundef ptr @_ZN6Assimp8Importer19ApplyPostProcessingEj(ptr noundef nonnull align 8 dereferenceable(8) %63, i32 noundef %633)
          to label %635 unwind label %618

635:                                              ; preds = %631
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %660

636:                                              ; preds = %630, %618
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %688

637:                                              ; preds = %507
  %638 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %639 = load ptr, ptr %638, align 8, !tbaa !11
  %640 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %639, i32 0, i32 6
  %641 = load ptr, ptr %640, align 8, !tbaa !13
  %642 = icmp ne ptr %641, null
  br i1 %642, label %659, label %643

643:                                              ; preds = %637
  %644 = load ptr, ptr %24, align 8, !tbaa !5
  %645 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp12BaseImporter12GetErrorTextB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72) %644)
          to label %646 unwind label %439

646:                                              ; preds = %643
  %647 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %648 = load ptr, ptr %647, align 8, !tbaa !11
  %649 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %648, i32 0, i32 7
  %650 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %649, ptr noundef nonnull align 8 dereferenceable(32) %645)
          to label %651 unwind label %439

651:                                              ; preds = %646
  %652 = load ptr, ptr %24, align 8, !tbaa !5
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6Assimp12BaseImporter12GetExceptionEv(ptr noundef nonnull align 8 dereferenceable(72) %652)
          to label %654 unwind label %439

654:                                              ; preds = %651
  %655 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %656 = load ptr, ptr %655, align 8, !tbaa !11
  %657 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %656, i32 0, i32 8
  %658 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt15__exception_ptr13exception_ptraSERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %657, ptr noundef nonnull align 8 dereferenceable(8) %653) #11
  br label %659

659:                                              ; preds = %654, %637
  br label %660

660:                                              ; preds = %659, %635
  %661 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %662 = load ptr, ptr %661, align 8, !tbaa !11
  %663 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %662, i32 0, i32 15
  %664 = load ptr, ptr %663, align 8, !tbaa !64
  invoke void @_ZN6Assimp21SharedPostProcessInfo5CleanEv(ptr noundef nonnull align 8 dereferenceable(48) %664)
          to label %665 unwind label %439

665:                                              ; preds = %660
  %666 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br i1 %666, label %667, label %680

667:                                              ; preds = %665
  %668 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %669 unwind label %671

669:                                              ; preds = %667
  invoke void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %668, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %670 unwind label %675

670:                                              ; preds = %669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #11
  br label %680

671:                                              ; preds = %667
  %672 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %673 = extractvalue { ptr, i32 } %672, 0
  store ptr %673, ptr %10, align 8
  %674 = extractvalue { ptr, i32 } %672, 1
  store i32 %674, ptr %11, align 4
  br label %679

675:                                              ; preds = %669
  %676 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %10, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  br label %679

679:                                              ; preds = %675, %671
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #11
  br label %688

680:                                              ; preds = %670, %665
  store i32 0, ptr %14, align 4
  br label %681

681:                                              ; preds = %680, %587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  br label %682

682:                                              ; preds = %681, %364
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #11
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  %683 = load i32, ptr %14, align 4
  switch i32 %683, label %685 [
    i32 0, label %684
  ]

684:                                              ; preds = %682
  store i32 0, ptr %14, align 4
  br label %685

685:                                              ; preds = %684, %682, %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #11
  %686 = load i32, ptr %14, align 4
  switch i32 %686, label %771 [
    i32 0, label %687
    i32 1, label %761
  ]

687:                                              ; preds = %685
  br label %756

688:                                              ; preds = %679, %636, %605, %590, %564, %504, %469, %439
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %689

689:                                              ; preds = %688, %435
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  br label %690

690:                                              ; preds = %689, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %691

691:                                              ; preds = %690, %411
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %692

692:                                              ; preds = %691, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  br label %693

693:                                              ; preds = %692, %373, %340, %293, %212
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  br label %694

694:                                              ; preds = %693, %199
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #11
  br label %695

695:                                              ; preds = %694, %160, %147
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  br label %696

696:                                              ; preds = %695, %135
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  br label %697

697:                                              ; preds = %696, %119, %87
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  br label %698

698:                                              ; preds = %697, %83
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #11
  br label %699

699:                                              ; preds = %698
  %700 = load i32, ptr %11, align 4
  %701 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTI17DeadlyImportError) #11
  %702 = icmp eq i32 %700, %701
  br i1 %702, label %703, label %722

703:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %704 = load ptr, ptr %10, align 8
  %705 = call ptr @__cxa_begin_catch(ptr %704) #11
  store ptr %705, ptr %60, align 8
  %706 = load ptr, ptr %60, align 8, !tbaa !5
  %707 = load ptr, ptr %706, align 8, !tbaa !54
  %708 = getelementptr inbounds ptr, ptr %707, i64 2
  %709 = load ptr, ptr %708, align 8
  %710 = call noundef ptr %709(ptr noundef nonnull align 8 dereferenceable(16) %706) #11
  %711 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %712 = load ptr, ptr %711, align 8, !tbaa !11
  %713 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %712, i32 0, i32 7
  %714 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef %710)
          to label %715 unwind label %746

715:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  call void @_ZSt17current_exceptionv(ptr dead_on_unwind writable sret(%"class.std::__exception_ptr::exception_ptr") align 8 %61) #11
  %716 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %717 = load ptr, ptr %716, align 8, !tbaa !11
  %718 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %717, i32 0, i32 8
  %719 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt15__exception_ptr13exception_ptraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %718, ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  call void @_ZNSt15__exception_ptr13exception_ptrD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #11
  %720 = invoke noundef ptr @_ZNK18ExceptionSwallowerIPK7aiSceneEclEv(ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %721 unwind label %750

721:                                              ; preds = %715
  store ptr %720, ptr %4, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  store i32 1, ptr %14, align 4
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %761

722:                                              ; preds = %699
  %723 = load ptr, ptr %10, align 8
  %724 = call ptr @__cxa_begin_catch(ptr %723) #11
  %725 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %726 = load ptr, ptr %725, align 8, !tbaa !11
  %727 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %726, i32 0, i32 7
  %728 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %727, ptr noundef @.str.17)
          to label %729 unwind label %736

729:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  call void @_ZSt17current_exceptionv(ptr dead_on_unwind writable sret(%"class.std::__exception_ptr::exception_ptr") align 8 %58) #11
  %730 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %731 = load ptr, ptr %730, align 8, !tbaa !11
  %732 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %731, i32 0, i32 8
  %733 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt15__exception_ptr13exception_ptraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %732, ptr noundef nonnull align 8 dereferenceable(8) %58) #11
  call void @_ZNSt15__exception_ptr13exception_ptrD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #11
  %734 = invoke noundef ptr @_ZNK18ExceptionSwallowerIPK7aiSceneEclEv(ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %735 unwind label %740

735:                                              ; preds = %729
  store ptr %734, ptr %4, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  store i32 1, ptr %14, align 4
  call void @__cxa_end_catch()
  br label %761

736:                                              ; preds = %722
  %737 = landingpad { ptr, i32 }
          cleanup
  %738 = extractvalue { ptr, i32 } %737, 0
  store ptr %738, ptr %10, align 8
  %739 = extractvalue { ptr, i32 } %737, 1
  store i32 %739, ptr %11, align 4
  br label %744

740:                                              ; preds = %729
  %741 = landingpad { ptr, i32 }
          cleanup
  %742 = extractvalue { ptr, i32 } %741, 0
  store ptr %742, ptr %10, align 8
  %743 = extractvalue { ptr, i32 } %741, 1
  store i32 %743, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  br label %744

744:                                              ; preds = %740, %736
  invoke void @__cxa_end_catch()
          to label %745 unwind label %768

745:                                              ; preds = %744
  br label %763

746:                                              ; preds = %703
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %10, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %11, align 4
  br label %754

750:                                              ; preds = %715
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %10, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  br label %754

754:                                              ; preds = %750, %746
  invoke void @__cxa_end_catch()
          to label %755 unwind label %768

755:                                              ; preds = %754
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %763

756:                                              ; preds = %687
  %757 = getelementptr inbounds %"class.Assimp::Importer", ptr %63, i32 0, i32 0
  %758 = load ptr, ptr %757, align 8, !tbaa !11
  %759 = getelementptr inbounds %"class.Assimp::ImporterPimpl", ptr %758, i32 0, i32 6
  %760 = load ptr, ptr %759, align 8, !tbaa !13
  store ptr %760, ptr %4, align 8
  br label %761

761:                                              ; preds = %756, %735, %721, %685
  %762 = load ptr, ptr %4, align 8
  ret ptr %762

763:                                              ; preds = %755, %745
  %764 = load ptr, ptr %10, align 8
  %765 = load i32, ptr %11, align 4
  %766 = insertvalue { ptr, i32 } poison, ptr %764, 0
  %767 = insertvalue { ptr, i32 } %766, i32 %765, 1
  resume { ptr, i32 } %767

768:                                              ; preds = %754, %744
  %769 = landingpad { ptr, i32 }
          catch ptr null
  %770 = extractvalue { ptr, i32 } %769, 0
  call void @__clang_call_terminate(ptr %770) #13
  unreachable

771:                                              ; preds = %685
  unreachable
}

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

; Function Attrs: nounwind
declare void @_ZSt17current_exceptionv(ptr dead_on_unwind writable sret(%"class.std::__exception_ptr::exception_ptr") align 8) #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15WriteLogOpeningRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #6

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

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

declare void @_ZN6Assimp6Logger5debugEPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK6Assimp8IOSystem6ExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #10 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp6Logger5errorIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK6Assimp8Importer18GetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i32 noundef) #6 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

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

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

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

declare noundef zeroext i1 @_ZN6Assimp12BaseImporter12HasExtensionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt3setIS6_St4lessIS6_ESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(48)) #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i64 @_ZNKSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN9__gnu_cxxltIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexPS5_St6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNSC_IT0_SE_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress nounwind uwtable
declare hidden ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp6Logger4infoIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp8IOSystem4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #10 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp6Logger4infoIJRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10aiMetadata3AddI8aiStringEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(1028)) #10 align 2

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

declare void @_ZN6Assimp17ValidateDSProcessC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

declare void @_ZN6Assimp11BaseProcess14ExecuteOnSceneEPNS_8ImporterE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #5

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

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

declare void @_ZN6Assimp17ScenePreprocessor12ProcessSceneEv(ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp8Importer19ApplyPostProcessingEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp12BaseImporter12GetErrorTextB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72)) #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Assimp21SharedPostProcessInfo5CleanEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN6Assimp8ImporterE", !6, i64 0}
!13 = !{!14, !6, i64 80}
!14 = !{!"_ZTSN6Assimp13ImporterPimplE", !6, i64 0, !15, i64 8, !6, i64 16, !15, i64 24, !16, i64 32, !20, i64 56, !6, i64 80, !24, i64 88, !27, i64 120, !28, i64 128, !36, i64 176, !39, i64 224, !42, i64 272, !45, i64 320, !15, i64 368, !6, i64 376}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTSSt6vectorIPN6Assimp12BaseImporterESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIPN6Assimp12BaseImporterESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp12BaseImporterESaIS2_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp12BaseImporterESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSSt6vectorIPN6Assimp11BaseProcessESaIS2_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIPN6Assimp11BaseProcessESaIS2_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp11BaseProcessESaIS2_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp11BaseProcessESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSNSt15__exception_ptr13exception_ptrE", !6, i64 0}
!28 = !{!"_ZTSSt3mapIjiSt4lessIjESaISt4pairIKjiEEE", !29, i64 0}
!29 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !30, i64 0}
!30 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !31, i64 0, !33, i64 8}
!31 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !32, i64 0}
!32 = !{!"_ZTSSt4lessIjE"}
!33 = !{!"_ZTSSt15_Rb_tree_header", !34, i64 0, !26, i64 32}
!34 = !{!"_ZTSSt18_Rb_tree_node_base", !35, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!35 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!36 = !{!"_ZTSSt3mapIjfSt4lessIjESaISt4pairIKjfEEE", !37, i64 0}
!37 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjfESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !38, i64 0}
!38 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjfESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !31, i64 0, !33, i64 8}
!39 = !{!"_ZTSSt3mapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIjESaISt4pairIKjS5_EEE", !40, i64 0}
!40 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIjESaIS8_EE", !41, i64 0}
!41 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIjESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !31, i64 0, !33, i64 8}
!42 = !{!"_ZTSSt3mapIj12aiMatrix4x4tIfESt4lessIjESaISt4pairIKjS1_EEE", !43, i64 0}
!43 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKj12aiMatrix4x4tIfEESt10_Select1stIS4_ESt4lessIjESaIS4_EE", !44, i64 0}
!44 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKj12aiMatrix4x4tIfEESt10_Select1stIS4_ESt4lessIjESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !31, i64 0, !33, i64 8}
!45 = !{!"_ZTSSt3mapIjPvSt4lessIjESaISt4pairIKjS0_EEE", !46, i64 0}
!46 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjPvESt10_Select1stIS3_ESt4lessIjESaIS3_EE", !47, i64 0}
!47 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjPvESt10_Select1stIS3_ESt4lessIjESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !31, i64 0, !33, i64 8}
!48 = !{!14, !6, i64 0}
!49 = !{!50, !6, i64 0}
!50 = !{!"_ZTSZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndex", !6, i64 0, !10, i64 8}
!51 = !{!50, !10, i64 8}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = !{!55, !55, i64 0}
!55 = !{!"vtable pointer", !8, i64 0}
!56 = !{!57, !6, i64 0}
!57 = !{!"_ZTS14aiImporterDesc", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !6, i64 56}
!58 = distinct !{!58, !53}
!59 = distinct !{!59, !53}
!60 = !{!14, !6, i64 16}
!61 = !{!62, !6, i64 112}
!62 = !{!"_ZTS7aiScene", !10, i64 0, !6, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !6, i64 56, !10, i64 64, !6, i64 72, !10, i64 80, !6, i64 88, !10, i64 96, !6, i64 104, !6, i64 112, !63, i64 120, !10, i64 1148, !6, i64 1152, !6, i64 1160}
!63 = !{!"_ZTS8aiString", !10, i64 0, !7, i64 4}
!64 = !{!14, !6, i64 376}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.5" = type { i8 }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.59" }
%"struct.std::_Head_base.59" = type { ptr }
%"class.std::vector.65" = type { %"struct.std::_Vector_base.66" }
%"struct.std::_Vector_base.66" = type { %"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl" }
%"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl" = type { %"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ImporterAndIndex, std::allocator<ImporterAndIndex>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.41" }
%"class.std::_Rb_tree.41" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%struct.ImporterAndIndex = type { ptr, i32 }
%"class.__gnu_cxx::__normal_iterator.70" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.71" = type { ptr }
%struct.aiString = type { i32, [1024 x i8] }
%"class.Assimp::ValidateDSProcess" = type { %"class.Assimp::BaseProcess", ptr }
%"class.Assimp::BaseProcess" = type { ptr, ptr, ptr }
%"class.Assimp::ScenePreprocessor" = type { ptr }
%"class.std::__exception_ptr::exception_ptr" = type { ptr }
%struct.ExceptionSwallower.56 = type { i8 }

@.str.1 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTI17DeadlyImportError = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.17 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [11 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr 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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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 nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

declare void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare noundef ptr @_ZN6Assimp13DefaultLogger3getEv() local_unnamed_addr #5

declare void @_ZN6Assimp6Logger4infoEPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) local_unnamed_addr #5

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

declare void @_ZN6Assimp12BaseImporter16GetExtensionListERSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #5

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN6Assimp8Importer8ReadFileEPKcj(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %1, i32 noundef %2) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator.5", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::unique_ptr", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.5", align 1
  %11 = alloca %"class.std::vector.65", align 8
  %12 = alloca %"class.std::set", align 8
  %13 = alloca %struct.ImporterAndIndex, align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.70", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.71", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.71", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.5", align 1
  %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.5", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.5", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.5", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.5", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.5", align 1
  %33 = alloca %struct.aiString, align 4
  %34 = alloca %"class.Assimp::ValidateDSProcess", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.5", align 1
  %37 = alloca %"class.Assimp::ScenePreprocessor", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.5", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator.5", align 1
  %42 = alloca %"class.std::__exception_ptr::exception_ptr", align 8
  %43 = alloca %struct.ExceptionSwallower.56, align 1
  %44 = alloca %"class.std::__exception_ptr::exception_ptr", align 8
  %45 = alloca %struct.ExceptionSwallower.56, align 1
  %46 = load ptr, ptr %0, align 8, !tbaa !5
  %.not = icmp eq ptr %46, null
  br i1 %.not, label %47, label %48

47:                                               ; preds = %3
  tail call void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 588)
  br label %48

48:                                               ; preds = %47, %3
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %1, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %49 unwind label %58

49:                                               ; preds = %48
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #11
  invoke void @_Z15WriteLogOpeningRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %50 unwind label %60

50:                                               ; preds = %49
  %51 = load ptr, ptr %0, align 8, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %51, i64 80
  %53 = load ptr, ptr %52, align 8, !tbaa !10
  %.not99 = icmp eq ptr %53, null
  br i1 %.not99, label %62, label %54

54:                                               ; preds = %50
  %55 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %56 unwind label %60

56:                                               ; preds = %54
  invoke void @_ZN6Assimp6Logger5debugEPKc(ptr noundef nonnull align 8 dereferenceable(12) %55, ptr noundef nonnull @.str.30)
          to label %57 unwind label %60

57:                                               ; preds = %56
  invoke void @_ZN6Assimp8Importer9FreeSceneEv(ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %._crit_edge197 unwind label %60

._crit_edge197:                                   ; preds = %57
  %.pre = load ptr, ptr %0, align 8, !tbaa !5
  br label %62

58:                                               ; preds = %48
  %59 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #11
  br label %438

60:                                               ; preds = %74, %69, %62, %57, %56, %54, %49
  %61 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %437

62:                                               ; preds = %._crit_edge197, %50
  %63 = phi ptr [ %.pre, %._crit_edge197 ], [ %51, %50 ]
  %64 = load ptr, ptr %63, align 8, !tbaa !45
  %65 = invoke noundef zeroext i1 @_ZNK6Assimp8IOSystem6ExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %66 unwind label %60

66:                                               ; preds = %62
  br i1 %65, label %82, label %67

67:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %68 unwind label %77

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

69:                                               ; preds = %68
  %70 = load ptr, ptr %0, align 8, !tbaa !5
  %71 = getelementptr inbounds i8, ptr %70, i64 88
  %72 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  %73 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %74 unwind label %60

74:                                               ; preds = %69
  %75 = load ptr, ptr %0, align 8, !tbaa !5
  %76 = getelementptr inbounds i8, ptr %75, i64 88
  invoke void @_ZN6Assimp6Logger5errorIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %73, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %.thread159 unwind label %60

.thread159:                                       ; preds = %74
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %468

77:                                               ; preds = %67
  %78 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %81

79:                                               ; preds = %68
  %80 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %81

81:                                               ; preds = %79, %77
  %.pn = phi { ptr, i32 } [ %80, %79 ], [ %78, %77 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  br label %437

82:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %83 = invoke noundef i32 @_ZNK6Assimp8Importer18GetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.33, i32 noundef 0)
          to label %84 unwind label %95

84:                                               ; preds = %82
  %.not101 = icmp eq i32 %83, 0
  br i1 %.not101, label %88, label %85

85:                                               ; preds = %84
  %86 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #12
          to label %87 unwind label %95

87:                                               ; preds = %85
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %86, i8 0, i64 48, i1 false)
  call void @_ZN6Assimp9Profiling8ProfilerC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %86) #11
  br label %88

88:                                               ; preds = %84, %87
  %89 = phi ptr [ %86, %87 ], [ null, %84 ]
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEC2IS4_vEEPS2_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %89) #11
  %90 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br i1 %90, label %91, label %102

91:                                               ; preds = %88
  %92 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %93 unwind label %97

93:                                               ; preds = %91
  invoke void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %92, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %94 unwind label %99

94:                                               ; preds = %93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  br label %102

95:                                               ; preds = %85, %82
  %96 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %436

97:                                               ; preds = %91
  %98 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %101

99:                                               ; preds = %93
  %100 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  br label %101

101:                                              ; preds = %99, %97
  %.pn102 = phi { ptr, i32 } [ %100, %99 ], [ %98, %97 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  br label %435

102:                                              ; preds = %94, %88
  %103 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.35, i32 noundef -1)
          to label %104 unwind label %111

104:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #11
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  %105 = load ptr, ptr %0, align 8, !tbaa !5
  %106 = getelementptr inbounds i8, ptr %105, i64 32
  %107 = call noundef i64 @_ZNKSt6vectorIPN6Assimp12BaseImporterESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %106) #11
  %.not184 = icmp eq i64 %107, 0
  br i1 %.not184, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %104
  %108 = getelementptr inbounds i8, ptr %13, i64 8
  br label %113

._crit_edge:                                      ; preds = %132, %104
  %109 = call noundef i64 @_ZNKSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  %110 = icmp eq i64 %109, 1
  br i1 %110, label %140, label %149

111:                                              ; preds = %102
  %112 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %435

113:                                              ; preds = %.lr.ph, %132
  %114 = phi i64 [ 0, %.lr.ph ], [ %134, %132 ]
  %.093179 = phi i32 [ 0, %.lr.ph ], [ %133, %132 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #11
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #11
  %115 = load ptr, ptr %0, align 8, !tbaa !5
  %116 = getelementptr inbounds i8, ptr %115, i64 32
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %116, i64 noundef %114) #11
  %118 = load ptr, ptr %117, align 8, !tbaa !46
  invoke void @_ZN6Assimp12BaseImporter16GetExtensionListERSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS7_ESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(72) %118, ptr noundef nonnull align 8 dereferenceable(48) %12)
          to label %119 unwind label %128

119:                                              ; preds = %113
  %120 = invoke noundef zeroext i1 @_ZN6Assimp12BaseImporter12HasExtensionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt3setIS6_St4lessIS6_ESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(48) %12)
          to label %121 unwind label %128

121:                                              ; preds = %119
  br i1 %120, label %122, label %132

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #11
  %123 = load ptr, ptr %0, align 8, !tbaa !5
  %124 = getelementptr inbounds i8, ptr %123, i64 32
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %124, i64 noundef %114) #11
  %126 = load ptr, ptr %125, align 8, !tbaa !46
  store ptr %126, ptr %13, align 8, !tbaa !47
  store i32 %.093179, ptr %108, align 8, !tbaa !50
  invoke void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %127 unwind label %130

127:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  br label %132

128:                                              ; preds = %119, %113
  %129 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %139

130:                                              ; preds = %122
  %131 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  br label %139

132:                                              ; preds = %127, %121
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #11
  %133 = add i32 %.093179, 1
  %134 = zext i32 %133 to i64
  %135 = load ptr, ptr %0, align 8, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %135, i64 32
  %137 = call noundef i64 @_ZNKSt6vectorIPN6Assimp12BaseImporterESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %136) #11
  %138 = icmp ugt i64 %137, %134
  br i1 %138, label %113, label %._crit_edge, !llvm.loop !51

139:                                              ; preds = %130, %128
  %.pn146 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #11
  br label %434

140:                                              ; preds = %._crit_edge
  %141 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef 0) #11
  %142 = load ptr, ptr %141, align 8, !tbaa !47
  %143 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef 0) #11
  %144 = getelementptr inbounds i8, ptr %143, i64 8
  %145 = load i32, ptr %144, align 8, !tbaa !50
  %146 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.35, i32 noundef %145)
          to label %198 unwind label %147

147:                                              ; preds = %237, %232, %201, %199, %140
  %148 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %434

149:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %150 = call ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  store ptr %150, ptr %15, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEC2IPS5_vEERKNS0_IT_SA_EE(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %151 = call ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  store ptr %151, ptr %16, align 8
  %152 = call noundef zeroext i1 @_ZN9__gnu_cxxltIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexPS5_St6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNSC_IT0_SE_EE(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  br i1 %152, label %.lr.ph181, label %.thread

.lr.ph181:                                        ; preds = %149, %193
  %153 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #11
  %154 = load ptr, ptr %153, align 8, !tbaa !47
  %155 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %156 unwind label %.loopexit164

156:                                              ; preds = %.lr.ph181
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #11
  %157 = load ptr, ptr %154, align 8, !tbaa !53
  %158 = getelementptr inbounds i8, ptr %157, i64 32
  %159 = load ptr, ptr %158, align 8
  %160 = invoke noundef ptr %159(ptr noundef nonnull align 8 dereferenceable(72) %154)
          to label %161 unwind label %179

161:                                              ; preds = %156
  %162 = load ptr, ptr %160, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %162, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %163 unwind label %181

163:                                              ; preds = %161
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull @.str.36, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %164 unwind label %183

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

165:                                              ; preds = %164
  invoke void @_ZN6Assimp6Logger4infoIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %155, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %166 unwind label %187

166:                                              ; preds = %165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #11
  %167 = load ptr, ptr %0, align 8, !tbaa !5
  %168 = load ptr, ptr %167, align 8, !tbaa !45
  %169 = load ptr, ptr %154, align 8, !tbaa !53
  %170 = getelementptr inbounds i8, ptr %169, i64 16
  %171 = load ptr, ptr %170, align 8
  %172 = invoke noundef zeroext i1 %171(ptr noundef nonnull align 8 dereferenceable(72) %154, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %168, i1 noundef zeroext true)
          to label %173 unwind label %.loopexit164

173:                                              ; preds = %166
  br i1 %172, label %174, label %193

174:                                              ; preds = %173
  %175 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #11
  %176 = getelementptr inbounds i8, ptr %175, i64 8
  %177 = load i32, ptr %176, align 8, !tbaa !50
  %178 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.35, i32 noundef %177)
          to label %.thread unwind label %.loopexit.split-lp165

.loopexit164:                                     ; preds = %.lr.ph181, %166
  %lpad.loopexit166 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %197

.loopexit.split-lp165:                            ; preds = %174
  %lpad.loopexit.split-lp167 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %197

179:                                              ; preds = %156
  %180 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %192

181:                                              ; preds = %161
  %182 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %191

183:                                              ; preds = %163
  %184 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %190

185:                                              ; preds = %164
  %186 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %189

187:                                              ; preds = %165
  %188 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  br label %189

189:                                              ; preds = %187, %185
  %.pn104 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  br label %190

190:                                              ; preds = %189, %183
  %.pn104.pn = phi { ptr, i32 } [ %.pn104, %189 ], [ %184, %183 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  br label %191

191:                                              ; preds = %190, %181
  %.pn104.pn.pn = phi { ptr, i32 } [ %.pn104.pn, %190 ], [ %182, %181 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #11
  br label %192

192:                                              ; preds = %191, %179
  %.pn104.pn.pn.pn = phi { ptr, i32 } [ %.pn104.pn.pn, %191 ], [ %180, %179 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #11
  br label %197

193:                                              ; preds = %173
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %195 = call ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  store ptr %195, ptr %16, align 8
  %196 = call noundef zeroext i1 @_ZN9__gnu_cxxltIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexPS5_St6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNSC_IT0_SE_EE(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  br i1 %196, label %.lr.ph181, label %.thread, !llvm.loop !57

197:                                              ; preds = %.loopexit164, %.loopexit.split-lp165, %192
  %.pn109 = phi { ptr, i32 } [ %.pn104.pn.pn.pn, %192 ], [ %lpad.loopexit166, %.loopexit164 ], [ %lpad.loopexit.split-lp167, %.loopexit.split-lp165 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %434

.thread:                                          ; preds = %193, %149, %174
  %.289 = phi ptr [ %154, %174 ], [ null, %149 ], [ null, %193 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %198

198:                                              ; preds = %140, %.thread
  %.390 = phi ptr [ %142, %140 ], [ %.289, %.thread ]
  %.not111 = icmp eq ptr %.390, null
  br i1 %.not111, label %199, label %245

199:                                              ; preds = %198
  %200 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %201 unwind label %147

201:                                              ; preds = %199
  invoke void @_ZN6Assimp6Logger4infoEPKc(ptr noundef nonnull align 8 dereferenceable(12) %200, ptr noundef nonnull @.str.38)
          to label %.preheader unwind label %147

.preheader:                                       ; preds = %201
  %202 = load ptr, ptr %0, align 8, !tbaa !5
  %203 = getelementptr inbounds i8, ptr %202, i64 32
  %204 = call noundef i64 @_ZNKSt6vectorIPN6Assimp12BaseImporterESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %203) #11
  %.not185 = icmp eq i64 %204, 0
  br i1 %.not185, label %.thread156, label %.lr.ph183

.lr.ph183:                                        ; preds = %.preheader, %223
  %205 = phi i64 [ %225, %223 ], [ 0, %.preheader ]
  %.081182 = phi i32 [ %224, %223 ], [ 0, %.preheader ]
  %206 = load ptr, ptr %0, align 8, !tbaa !5
  %207 = getelementptr inbounds i8, ptr %206, i64 32
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %207, i64 noundef %205) #11
  %209 = load ptr, ptr %208, align 8, !tbaa !46
  %210 = load ptr, ptr %0, align 8, !tbaa !5
  %211 = load ptr, ptr %210, align 8, !tbaa !45
  %212 = load ptr, ptr %209, align 8, !tbaa !53
  %213 = getelementptr inbounds i8, ptr %212, i64 16
  %214 = load ptr, ptr %213, align 8
  %215 = invoke noundef zeroext i1 %214(ptr noundef nonnull align 8 dereferenceable(72) %209, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %211, i1 noundef zeroext true)
          to label %216 unwind label %.loopexit

216:                                              ; preds = %.lr.ph183
  br i1 %215, label %217, label %223

217:                                              ; preds = %216
  %218 = load ptr, ptr %0, align 8, !tbaa !5
  %219 = getelementptr inbounds i8, ptr %218, i64 32
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6Assimp12BaseImporterESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef %205) #11
  %221 = load ptr, ptr %220, align 8, !tbaa !46
  %222 = invoke noundef zeroext i1 @_ZN6Assimp8Importer18SetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.35, i32 noundef %.081182)
          to label %230 unwind label %.loopexit.split-lp

.loopexit:                                        ; preds = %.lr.ph183
  %lpad.loopexit = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %434

.loopexit.split-lp:                               ; preds = %217
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %434

223:                                              ; preds = %216
  %224 = add i32 %.081182, 1
  %225 = zext i32 %224 to i64
  %226 = load ptr, ptr %0, align 8, !tbaa !5
  %227 = getelementptr inbounds i8, ptr %226, i64 32
  %228 = call noundef i64 @_ZNKSt6vectorIPN6Assimp12BaseImporterESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %227) #11
  %229 = icmp ugt i64 %228, %225
  br i1 %229, label %.lr.ph183, label %.thread156, !llvm.loop !58

230:                                              ; preds = %217
  %.not112 = icmp eq ptr %221, null
  br i1 %.not112, label %.thread156, label %245

.thread156:                                       ; preds = %223, %.preheader, %230
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #11
  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.39, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %231 unwind label %240

231:                                              ; preds = %.thread156
  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.32)
          to label %232 unwind label %242

232:                                              ; preds = %231
  %233 = load ptr, ptr %0, align 8, !tbaa !5
  %234 = getelementptr inbounds i8, ptr %233, i64 88
  %235 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #11
  %236 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %237 unwind label %147

237:                                              ; preds = %232
  %238 = load ptr, ptr %0, align 8, !tbaa !5
  %239 = getelementptr inbounds i8, ptr %238, i64 88
  invoke void @_ZN6Assimp6Logger5errorIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %236, ptr noundef nonnull align 8 dereferenceable(32) %239)
          to label %.critedge unwind label %147

240:                                              ; preds = %.thread156
  %241 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %244

242:                                              ; preds = %231
  %243 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %244

244:                                              ; preds = %242, %240
  %.pn113 = phi { ptr, i32 } [ %243, %242 ], [ %241, %240 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #11
  br label %434

245:                                              ; preds = %230, %198
  %.592 = phi ptr [ %.390, %198 ], [ %221, %230 ]
  %246 = load ptr, ptr %0, align 8, !tbaa !5
  %247 = load ptr, ptr %246, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %248 unwind label %263

248:                                              ; preds = %245
  %249 = invoke noundef ptr @_ZN6Assimp8IOSystem4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %250 unwind label %265

250:                                              ; preds = %248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  %.not117 = icmp eq ptr %249, null
  br i1 %.not117, label %270, label %251

251:                                              ; preds = %250
  %252 = load ptr, ptr %249, align 8, !tbaa !53
  %253 = getelementptr inbounds i8, ptr %252, i64 48
  %254 = load ptr, ptr %253, align 8
  %255 = invoke noundef i64 %254(ptr noundef nonnull align 8 dereferenceable(8) %249)
          to label %256 unwind label %268

256:                                              ; preds = %251
  %257 = trunc i64 %255 to i32
  %258 = load ptr, ptr %0, align 8, !tbaa !5
  %259 = load ptr, ptr %258, align 8, !tbaa !45
  %260 = load ptr, ptr %259, align 8, !tbaa !53
  %261 = getelementptr inbounds i8, ptr %260, i64 40
  %262 = load ptr, ptr %261, align 8
  invoke void %262(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull %249)
          to label %270 unwind label %268

263:                                              ; preds = %245
  %264 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %267

265:                                              ; preds = %248
  %266 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  br label %267

267:                                              ; preds = %265, %263
  %.pn115 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %434

268:                                              ; preds = %256, %251
  %269 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %434

270:                                              ; preds = %256, %250
  %.050 = phi i32 [ %257, %256 ], [ 0, %250 ]
  %271 = load ptr, ptr %.592, align 8, !tbaa !53
  %272 = getelementptr inbounds i8, ptr %271, i64 32
  %273 = load ptr, ptr %272, align 8
  %274 = invoke noundef ptr %273(ptr noundef nonnull align 8 dereferenceable(72) %.592)
          to label %275 unwind label %280

275:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %276 unwind label %282

276:                                              ; preds = %275
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #11
  %.not118 = icmp eq ptr %274, null
  br i1 %.not118, label %286, label %277

277:                                              ; preds = %276
  %278 = load ptr, ptr %274, align 8, !tbaa !55
  %279 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %278)
          to label %286 unwind label %284

280:                                              ; preds = %270
  %281 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %434

282:                                              ; preds = %275
  %283 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #11
  br label %433

284:                                              ; preds = %404, %.thread203, %339, %330, %311, %307, %289, %288, %286, %277
  %285 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %432

286:                                              ; preds = %277, %276
  %287 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %288 unwind label %284

288:                                              ; preds = %286
  invoke void @_ZN6Assimp6Logger4infoIJRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %287, ptr noundef nonnull align 1 dereferenceable(49) @.str.42, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 1 dereferenceable(2) @.str.20)
          to label %289 unwind label %284

289:                                              ; preds = %288
  %290 = load ptr, ptr %0, align 8, !tbaa !5
  %291 = getelementptr inbounds i8, ptr %290, i64 16
  %292 = load ptr, ptr %291, align 8, !tbaa !59
  %293 = load ptr, ptr %292, align 8, !tbaa !53
  %294 = getelementptr inbounds i8, ptr %293, i64 24
  %295 = load ptr, ptr %294, align 8
  invoke void %295(ptr noundef nonnull align 8 dereferenceable(8) %292, i32 noundef 0, i32 noundef %.050)
          to label %296 unwind label %284

296:                                              ; preds = %289
  %297 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br i1 %297, label %298, label %307

298:                                              ; preds = %296
  %299 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %300 unwind label %302

300:                                              ; preds = %298
  invoke void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %299, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %301 unwind label %304

301:                                              ; preds = %300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  br label %307

302:                                              ; preds = %298
  %303 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %306

304:                                              ; preds = %300
  %305 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  br label %306

306:                                              ; preds = %304, %302
  %.pn119 = phi { ptr, i32 } [ %305, %304 ], [ %303, %302 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  br label %432

307:                                              ; preds = %301, %296
  %308 = load ptr, ptr %0, align 8, !tbaa !5
  %309 = load ptr, ptr %308, align 8, !tbaa !45
  %310 = invoke noundef ptr @_ZN6Assimp12BaseImporter8ReadFileEPNS_8ImporterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_8IOSystemE(ptr noundef nonnull align 8 dereferenceable(72) %.592, ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %309)
          to label %311 unwind label %284

311:                                              ; preds = %307
  %312 = load ptr, ptr %0, align 8, !tbaa !5
  %313 = getelementptr inbounds i8, ptr %312, i64 80
  store ptr %310, ptr %313, align 8, !tbaa !10
  %314 = getelementptr inbounds i8, ptr %312, i64 16
  %315 = load ptr, ptr %314, align 8, !tbaa !59
  %316 = load ptr, ptr %315, align 8, !tbaa !53
  %317 = getelementptr inbounds i8, ptr %316, i64 24
  %318 = load ptr, ptr %317, align 8
  invoke void %318(ptr noundef nonnull align 8 dereferenceable(8) %315, i32 noundef %.050, i32 noundef %.050)
          to label %319 unwind label %284

319:                                              ; preds = %311
  %320 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br i1 %320, label %321, label %330

321:                                              ; preds = %319
  %322 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %323 unwind label %325

323:                                              ; preds = %321
  invoke void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %322, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %324 unwind label %327

324:                                              ; preds = %323
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %330

325:                                              ; preds = %321
  %326 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %329

327:                                              ; preds = %323
  %328 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %329

329:                                              ; preds = %327, %325
  %.pn121 = phi { ptr, i32 } [ %328, %327 ], [ %326, %325 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %432

330:                                              ; preds = %324, %319
  %331 = invoke noundef zeroext i1 @_ZN6Assimp8Importer17SetPropertyStringEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.44, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %332 unwind label %284

332:                                              ; preds = %330
  %333 = load ptr, ptr %0, align 8, !tbaa !5
  %334 = getelementptr inbounds i8, ptr %333, i64 80
  %335 = load ptr, ptr %334, align 8, !tbaa !10
  %.not123 = icmp eq ptr %335, null
  br i1 %.not123, label %404, label %336

336:                                              ; preds = %332
  %337 = getelementptr inbounds i8, ptr %335, i64 112
  %338 = load ptr, ptr %337, align 8, !tbaa !60
  %.not124 = icmp eq ptr %338, null
  br i1 %.not124, label %.thread203, label %339

339:                                              ; preds = %336
  %340 = invoke noundef zeroext i1 @_ZNK10aiMetadata6HasKeyEPKc(ptr noundef nonnull align 8 dereferenceable(24) %338, ptr noundef nonnull @.str.45)
          to label %341 unwind label %284

341:                                              ; preds = %339
  br i1 %340, label %358, label %342

342:                                              ; preds = %341
  %.pre199 = load ptr, ptr %0, align 8, !tbaa !5
  %.phi.trans.insert = getelementptr inbounds i8, ptr %.pre199, i64 80
  %.pre200 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !10
  %.phi.trans.insert201 = getelementptr inbounds i8, ptr %.pre200, i64 112
  %.pre202 = load ptr, ptr %.phi.trans.insert201, align 8, !tbaa !60
  %.not125 = icmp eq ptr %.pre202, null
  br i1 %.not125, label %.thread203, label %349

.thread203:                                       ; preds = %336, %342
  %343 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #12
          to label %344 unwind label %284

344:                                              ; preds = %.thread203
  call void @_ZN10aiMetadataC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %343) #11
  %345 = load ptr, ptr %0, align 8, !tbaa !5
  %346 = getelementptr inbounds i8, ptr %345, i64 80
  %347 = load ptr, ptr %346, align 8, !tbaa !10
  %348 = getelementptr inbounds i8, ptr %347, i64 112
  store ptr %343, ptr %348, align 8, !tbaa !60
  br label %349

349:                                              ; preds = %344, %342
  %350 = phi ptr [ %343, %344 ], [ %.pre202, %342 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %351 unwind label %353

351:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 1028, ptr nonnull %33) #11
  call void @_ZN8aiStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 4 dereferenceable(1028) %33, ptr noundef nonnull align 8 dereferenceable(32) %25)
  invoke void @_ZN10aiMetadata3AddI8aiStringEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(24) %350, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 4 dereferenceable(1028) %33)
          to label %352 unwind label %355

352:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %33) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #11
  br label %358

353:                                              ; preds = %349
  %354 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %357

355:                                              ; preds = %351
  %356 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %33) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  br label %357

357:                                              ; preds = %355, %353
  %.pn126 = phi { ptr, i32 } [ %356, %355 ], [ %354, %353 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #11
  br label %432

358:                                              ; preds = %352, %341
  %359 = and i32 %2, 1024
  %.not128 = icmp eq i32 %359, 0
  br i1 %.not128, label %371, label %360

360:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #11
  invoke void @_ZN6Assimp17ValidateDSProcessC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %361 unwind label %366

361:                                              ; preds = %360
  invoke void @_ZN6Assimp11BaseProcess14ExecuteOnSceneEPNS_8ImporterE(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull %0)
          to label %362 unwind label %368

362:                                              ; preds = %361
  %363 = load ptr, ptr %0, align 8, !tbaa !5
  %364 = getelementptr inbounds i8, ptr %363, i64 80
  %365 = load ptr, ptr %364, align 8, !tbaa !10
  %.not131.not = icmp eq ptr %365, null
  call void @_ZN6Assimp11BaseProcessD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #11
  br i1 %.not131.not, label %.critedge163, label %371

366:                                              ; preds = %360
  %367 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %370

368:                                              ; preds = %361
  %369 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZN6Assimp11BaseProcessD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %370

370:                                              ; preds = %368, %366
  %.pn129 = phi { ptr, i32 } [ %369, %368 ], [ %367, %366 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #11
  br label %432

371:                                              ; preds = %362, %358
  %372 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br i1 %372, label %373, label %382

373:                                              ; preds = %371
  %374 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %375 unwind label %377

375:                                              ; preds = %373
  invoke void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %374, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %376 unwind label %379

376:                                              ; preds = %375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #11
  br label %382

377:                                              ; preds = %373
  %378 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %381

379:                                              ; preds = %375
  %380 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %381

381:                                              ; preds = %379, %377
  %.pn132 = phi { ptr, i32 } [ %380, %379 ], [ %378, %377 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #11
  br label %432

382:                                              ; preds = %376, %371
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %383 = load ptr, ptr %0, align 8, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %383, i64 80
  %385 = load ptr, ptr %384, align 8, !tbaa !10
  call void @_ZN6Assimp17ScenePreprocessorC2EP7aiScene(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef %385)
  invoke void @_ZN6Assimp17ScenePreprocessor12ProcessSceneEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %386 unwind label %392

386:                                              ; preds = %382
  %387 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br i1 %387, label %388, label %399

388:                                              ; preds = %386
  %389 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %390 unwind label %394

390:                                              ; preds = %388
  invoke void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %389, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %391 unwind label %396

391:                                              ; preds = %390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #11
  br label %399

392:                                              ; preds = %399, %382
  %393 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %403

394:                                              ; preds = %388
  %395 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %398

396:                                              ; preds = %390
  %397 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  br label %398

398:                                              ; preds = %396, %394
  %.pn134 = phi { ptr, i32 } [ %397, %396 ], [ %395, %394 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #11
  br label %403

399:                                              ; preds = %391, %386
  %400 = and i32 %2, -1025
  %401 = invoke noundef ptr @_ZN6Assimp8Importer19ApplyPostProcessingEj(ptr noundef nonnull align 8 dereferenceable(8) %0, i32 noundef %400)
          to label %402 unwind label %392

402:                                              ; preds = %399
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %414

403:                                              ; preds = %398, %392
  %.pn136 = phi { ptr, i32 } [ %393, %392 ], [ %.pn134, %398 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %432

404:                                              ; preds = %332
  %405 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp12BaseImporter12GetErrorTextB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72) %.592)
  %406 = load ptr, ptr %0, align 8, !tbaa !5
  %407 = getelementptr inbounds i8, ptr %406, i64 88
  %408 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %407, ptr noundef nonnull align 8 dereferenceable(32) %405)
          to label %409 unwind label %284

409:                                              ; preds = %404
  %410 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6Assimp12BaseImporter12GetExceptionEv(ptr noundef nonnull align 8 dereferenceable(72) %.592)
  %411 = load ptr, ptr %0, align 8, !tbaa !5
  %412 = getelementptr inbounds i8, ptr %411, i64 120
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt15__exception_ptr13exception_ptraSERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef nonnull align 8 dereferenceable(8) %410) #11
  br label %414

414:                                              ; preds = %409, %402
  %415 = load ptr, ptr %0, align 8, !tbaa !5
  %416 = getelementptr inbounds i8, ptr %415, i64 376
  %417 = load ptr, ptr %416, align 8, !tbaa !63
  call void @_ZN6Assimp21SharedPostProcessInfo5CleanEv(ptr noundef nonnull align 8 dereferenceable(48) %417)
  %418 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br i1 %418, label %419, label %428

419:                                              ; preds = %414
  %420 = call noundef ptr @_ZNKSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %421 unwind label %423

421:                                              ; preds = %419
  invoke void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %420, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %422 unwind label %425

422:                                              ; preds = %421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #11
  br label %428

423:                                              ; preds = %419
  %424 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  br label %427

425:                                              ; preds = %421
  %426 = landingpad { ptr, i32 }
          catch ptr @_ZTI17DeadlyImportError
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  br label %427

427:                                              ; preds = %425, %423
  %.pn138 = phi { ptr, i32 } [ %426, %425 ], [ %424, %423 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #11
  br label %432

428:                                              ; preds = %414, %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #11
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  %429 = load ptr, ptr %0, align 8, !tbaa !5
  %430 = getelementptr inbounds i8, ptr %429, i64 80
  %431 = load ptr, ptr %430, align 8, !tbaa !10
  br label %468

432:                                              ; preds = %427, %403, %381, %370, %357, %329, %306, %284
  %.pn138.pn = phi { ptr, i32 } [ %.pn138, %427 ], [ %.pn136, %403 ], [ %.pn132, %381 ], [ %.pn129, %370 ], [ %.pn126, %357 ], [ %285, %284 ], [ %.pn121, %329 ], [ %.pn119, %306 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  br label %433

433:                                              ; preds = %432, %282
  %.pn138.pn.pn = phi { ptr, i32 } [ %.pn138.pn, %432 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  br label %434

434:                                              ; preds = %.loopexit, %.loopexit.split-lp, %147, %197, %244, %268, %433, %280, %267, %139
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %139 ], [ %148, %147 ], [ %.pn113, %244 ], [ %.pn109, %197 ], [ %.pn115, %267 ], [ %269, %268 ], [ %.pn138.pn.pn, %433 ], [ %281, %280 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #11
  br label %435

435:                                              ; preds = %434, %111, %101
  %.pn146.pn.pn = phi { ptr, i32 } [ %.pn146.pn, %434 ], [ %112, %111 ], [ %.pn102, %101 ]
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  br label %436

436:                                              ; preds = %435, %95
  %.pn146.pn.pn.pn = phi { ptr, i32 } [ %.pn146.pn.pn, %435 ], [ %96, %95 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  br label %437

437:                                              ; preds = %436, %81, %60
  %.pn146.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn146.pn.pn.pn, %436 ], [ %61, %60 ], [ %.pn, %81 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  br label %438

438:                                              ; preds = %437, %58
  %.pn146.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn146.pn.pn.pn.pn, %437 ], [ %59, %58 ]
  %.28 = extractvalue { ptr, i32 } %.pn146.pn.pn.pn.pn.pn, 0
  %.2879 = extractvalue { ptr, i32 } %.pn146.pn.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  %439 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTI17DeadlyImportError) #11
  %440 = icmp eq i32 %.2879, %439
  %441 = call ptr @__cxa_begin_catch(ptr %.28) #11
  br i1 %440, label %442, label %455

442:                                              ; preds = %438
  %443 = load ptr, ptr %441, align 8, !tbaa !53
  %444 = getelementptr inbounds i8, ptr %443, i64 16
  %445 = load ptr, ptr %444, align 8
  %446 = call noundef ptr %445(ptr noundef nonnull align 8 dereferenceable(16) %441) #11
  %447 = load ptr, ptr %0, align 8, !tbaa !5
  %448 = getelementptr inbounds i8, ptr %447, i64 88
  %449 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef %446)
          to label %450 unwind label %466

450:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  call void @_ZSt17current_exceptionv(ptr dead_on_unwind nonnull writable sret(%"class.std::__exception_ptr::exception_ptr") align 8 %44) #11
  %451 = load ptr, ptr %0, align 8, !tbaa !5
  %452 = getelementptr inbounds i8, ptr %451, i64 120
  %453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt15__exception_ptr13exception_ptraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %452, ptr noundef nonnull align 8 dereferenceable(8) %44) #11
  call void @_ZNSt15__exception_ptr13exception_ptrD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #11
  %454 = call noundef ptr @_ZNK18ExceptionSwallowerIPK7aiSceneEclEv(ptr noundef nonnull align 1 dereferenceable(1) %45)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  call void @__cxa_end_catch()
  br label %468

455:                                              ; preds = %438
  %456 = load ptr, ptr %0, align 8, !tbaa !5
  %457 = getelementptr inbounds i8, ptr %456, i64 88
  %458 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef nonnull @.str.17)
          to label %459 unwind label %464

459:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  call void @_ZSt17current_exceptionv(ptr dead_on_unwind nonnull writable sret(%"class.std::__exception_ptr::exception_ptr") align 8 %42) #11
  %460 = load ptr, ptr %0, align 8, !tbaa !5
  %461 = getelementptr inbounds i8, ptr %460, i64 120
  %462 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt15__exception_ptr13exception_ptraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %461, ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  call void @_ZNSt15__exception_ptr13exception_ptrD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #11
  %463 = call noundef ptr @_ZNK18ExceptionSwallowerIPK7aiSceneEclEv(ptr noundef nonnull align 1 dereferenceable(1) %43)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #11
  call void @__cxa_end_catch()
  br label %468

464:                                              ; preds = %455
  %465 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %469 unwind label %470

466:                                              ; preds = %442
  %467 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %469 unwind label %470

.critedge:                                        ; preds = %237
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #11
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %468

.critedge163:                                     ; preds = %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  call void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #11
  call void @_ZNSt10unique_ptrIN6Assimp9Profiling8ProfilerESt14default_deleteIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %468

468:                                              ; preds = %.critedge163, %.critedge, %.thread159, %428, %459, %450
  %.6 = phi ptr [ %454, %450 ], [ %463, %459 ], [ %431, %428 ], [ null, %.thread159 ], [ null, %.critedge ], [ null, %.critedge163 ]
  ret ptr %.6

469:                                              ; preds = %466, %464
  %.pn153 = phi { ptr, i32 } [ %465, %464 ], [ %467, %466 ]
  resume { ptr, i32 } %.pn153

470:                                              ; preds = %466, %464
  %471 = landingpad { ptr, i32 }
          catch ptr null
  %472 = extractvalue { ptr, i32 } %471, 0
  call void @__clang_call_terminate(ptr %472) #13
  unreachable
}

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

; Function Attrs: nounwind
declare void @_ZSt17current_exceptionv(ptr dead_on_unwind writable sret(%"class.std::__exception_ptr::exception_ptr") align 8) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15WriteLogOpeningRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6

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

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

declare void @_ZN6Assimp6Logger5debugEPKc(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) local_unnamed_addr #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp6Logger5errorIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK6Assimp8Importer18GetPropertyIntegerEPKci(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i32 noundef) local_unnamed_addr #6 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp9Profiling8Profiler11BeginRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

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

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

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

declare noundef zeroext i1 @_ZN6Assimp12BaseImporter12HasExtensionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt3setIS6_St4lessIS6_ESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i64 @_ZNKSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN9__gnu_cxxltIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexPS5_St6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNSC_IT0_SE_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare hidden ptr @_ZNSt6vectorIZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp6Logger4infoIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndexSt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp8IOSystem4OpenERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #10 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp6Logger4infoIJRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA2_S2_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(49), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp9Profiling8Profiler9EndRegionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10aiMetadata3AddI8aiStringEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(1028)) local_unnamed_addr #10 align 2

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

declare void @_ZN6Assimp17ValidateDSProcessC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

declare void @_ZN6Assimp11BaseProcess14ExecuteOnSceneEPNS_8ImporterE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #5

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

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

declare void @_ZN6Assimp17ScenePreprocessor12ProcessSceneEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp8Importer19ApplyPostProcessingEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp12BaseImporter12GetErrorTextB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Assimp21SharedPostProcessInfo5CleanEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN6Assimp8ImporterE", !7, i64 0}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !7, i64 80}
!11 = !{!"_ZTSN6Assimp13ImporterPimplE", !7, i64 0, !12, i64 8, !7, i64 16, !12, i64 24, !13, i64 32, !17, i64 56, !7, i64 80, !21, i64 88, !24, i64 120, !25, i64 128, !33, i64 176, !36, i64 224, !39, i64 272, !42, i64 320, !12, i64 368, !7, i64 376}
!12 = !{!"bool", !8, i64 0}
!13 = !{!"_ZTSSt6vectorIPN6Assimp12BaseImporterESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIPN6Assimp12BaseImporterESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp12BaseImporterESaIS2_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp12BaseImporterESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!17 = !{!"_ZTSSt6vectorIPN6Assimp11BaseProcessESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIPN6Assimp11BaseProcessESaIS2_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp11BaseProcessESaIS2_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIPN6Assimp11BaseProcessESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !8, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!23 = !{!"long", !8, i64 0}
!24 = !{!"_ZTSNSt15__exception_ptr13exception_ptrE", !7, i64 0}
!25 = !{!"_ZTSSt3mapIjiSt4lessIjESaISt4pairIKjiEEE", !26, i64 0}
!26 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !27, i64 0}
!27 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjiESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !28, i64 0, !30, i64 8}
!28 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !29, i64 0}
!29 = !{!"_ZTSSt4lessIjE"}
!30 = !{!"_ZTSSt15_Rb_tree_header", !31, i64 0, !23, i64 32}
!31 = !{!"_ZTSSt18_Rb_tree_node_base", !32, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!32 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!33 = !{!"_ZTSSt3mapIjfSt4lessIjESaISt4pairIKjfEEE", !34, i64 0}
!34 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjfESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !35, i64 0}
!35 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjfESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !28, i64 0, !30, i64 8}
!36 = !{!"_ZTSSt3mapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIjESaISt4pairIKjS5_EEE", !37, i64 0}
!37 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIjESaIS8_EE", !38, i64 0}
!38 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIjESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !28, i64 0, !30, i64 8}
!39 = !{!"_ZTSSt3mapIj12aiMatrix4x4tIfESt4lessIjESaISt4pairIKjS1_EEE", !40, i64 0}
!40 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKj12aiMatrix4x4tIfEESt10_Select1stIS4_ESt4lessIjESaIS4_EE", !41, i64 0}
!41 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKj12aiMatrix4x4tIfEESt10_Select1stIS4_ESt4lessIjESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !28, i64 0, !30, i64 8}
!42 = !{!"_ZTSSt3mapIjPvSt4lessIjESaISt4pairIKjS0_EEE", !43, i64 0}
!43 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjPvESt10_Select1stIS3_ESt4lessIjESaIS3_EE", !44, i64 0}
!44 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjPvESt10_Select1stIS3_ESt4lessIjESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !28, i64 0, !30, i64 8}
!45 = !{!11, !7, i64 0}
!46 = !{!7, !7, i64 0}
!47 = !{!48, !7, i64 0}
!48 = !{!"_ZTSZN6Assimp8Importer8ReadFileEPKcjE16ImporterAndIndex", !7, i64 0, !49, i64 8}
!49 = !{!"int", !8, i64 0}
!50 = !{!48, !49, i64 8}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!54, !54, i64 0}
!54 = !{!"vtable pointer", !9, i64 0}
!55 = !{!56, !7, i64 0}
!56 = !{!"_ZTS14aiImporterDesc", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !49, i64 32, !49, i64 36, !49, i64 40, !49, i64 44, !49, i64 48, !7, i64 56}
!57 = distinct !{!57, !52}
!58 = distinct !{!58, !52}
!59 = !{!11, !7, i64 16}
!60 = !{!61, !7, i64 112}
!61 = !{!"_ZTS7aiScene", !49, i64 0, !7, i64 8, !49, i64 16, !7, i64 24, !49, i64 32, !7, i64 40, !49, i64 48, !7, i64 56, !49, i64 64, !7, i64 72, !49, i64 80, !7, i64 88, !49, i64 96, !7, i64 104, !7, i64 112, !62, i64 120, !49, i64 1148, !7, i64 1152, !7, i64 1160}
!62 = !{!"_ZTS8aiString", !49, i64 0, !8, i64 4}
!63 = !{!11, !7, i64 376}


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