; LLVM IR from bldeng/AASolver :: AndersonOpt/external/OpenMesh/Core/IO/reader (PLYReader)

; 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.14" = type { i8 }
%"class.std::fpos" = type { i64, %struct.__mbstate_t }
%struct.__mbstate_t = type { i32, %union.anon.17 }
%union.anon.17 = type { i32 }
%"struct.OpenMesh::IO::_PLYReader_::PropertyInfo" = type <{ i32, i32, %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%"class.OpenMesh::IO::_PLYReader_" = type { %"class.OpenMesh::IO::BaseReader", [8 x i8], %"class.OpenMesh::IO::Options", %"class.OpenMesh::IO::Options", i32, i32, i32, i32, %"class.std::map", %"class.std::vector", %"class.std::vector" }
%"class.OpenMesh::IO::BaseReader" = type { ptr }
%"class.OpenMesh::IO::Options" = type { i32 }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<OpenMesh::IO::_PLYReader_::ValueType, std::pair<const OpenMesh::IO::_PLYReader_::ValueType, int>, std::_Select1st<std::pair<const OpenMesh::IO::_PLYReader_::ValueType, int>>, std::less<OpenMesh::IO::_PLYReader_::ValueType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<OpenMesh::IO::_PLYReader_::ValueType, std::pair<const OpenMesh::IO::_PLYReader_::ValueType, int>, std::_Select1st<std::pair<const OpenMesh::IO::_PLYReader_::ValueType, int>>, std::less<OpenMesh::IO::_PLYReader_::ValueType>>::_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 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<OpenMesh::IO::_PLYReader_::PropertyInfo, std::allocator<OpenMesh::IO::_PLYReader_::PropertyInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<OpenMesh::IO::_PLYReader_::PropertyInfo, std::allocator<OpenMesh::IO::_PLYReader_::PropertyInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<OpenMesh::IO::_PLYReader_::PropertyInfo, std::allocator<OpenMesh::IO::_PLYReader_::PropertyInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<OpenMesh::IO::_PLYReader_::PropertyInfo, std::allocator<OpenMesh::IO::_PLYReader_::PropertyInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [36 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1

declare noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv() #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #4 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK8OpenMesh2IO11_PLYReader_10can_u_readERSi(ptr noundef nonnull align 8 dereferenceable(136) %0, ptr noundef nonnull align 8 dereferenceable(16) %1) #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.14", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca float, align 4
  %19 = alloca i64, align 8
  %20 = alloca %"class.std::fpos", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %35 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %36 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %37 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %38 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %39 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %40 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %41 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %42 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %43 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %44 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %45 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %46 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %47 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %48 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %49 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %50 = alloca i32, align 4
  %51 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %52 = alloca %"class.std::fpos", align 8
  %53 = alloca %"class.std::fpos", align 8
  %54 = alloca i8, align 1
  %55 = alloca i8, align 1
  %56 = alloca %"class.std::fpos", align 8
  %57 = alloca %"class.std::fpos", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %58 = load ptr, ptr %4, align 8
  %59 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  call void @_ZN8OpenMesh2IO7Options7cleanupEv(ptr noundef nonnull align 4 dereferenceable(4) %59)
  %60 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 9
  call void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #6
  %61 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 10
  call void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  %62 = load ptr, ptr %5, align 8, !tbaa !5
  %63 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %64 unwind label %85

64:                                               ; preds = %2
  %65 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN8OpenMesh2IOL4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %66 unwind label %85

66:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  %67 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  %68 = trunc i64 %67 to i32
  store i32 %68, ptr %9, align 4, !tbaa !9
  %69 = load i32, ptr %9, align 4, !tbaa !9
  %70 = icmp sgt i32 %69, 0
  br i1 %70, label %71, label %93

71:                                               ; preds = %66
  %72 = load i32, ptr %9, align 4, !tbaa !9
  %73 = sub nsw i32 %72, 1
  %74 = sext i32 %73 to i64
  %75 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %74)
          to label %76 unwind label %89

76:                                               ; preds = %71
  %77 = load i8, ptr %75, align 1, !tbaa !11
  %78 = sext i8 %77 to i32
  %79 = icmp eq i32 %78, 13
  br i1 %79, label %80, label %93

80:                                               ; preds = %76
  %81 = load i32, ptr %9, align 4, !tbaa !9
  %82 = sub nsw i32 %81, 1
  %83 = sext i32 %82 to i64
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %83)
          to label %84 unwind label %89

84:                                               ; preds = %80
  br label %93

85:                                               ; preds = %64, %2
  %86 = landingpad { ptr, i32 }
          cleanup
  %87 = extractvalue { ptr, i32 } %86, 0
  store ptr %87, ptr %7, align 8
  %88 = extractvalue { ptr, i32 } %86, 1
  store i32 %88, ptr %8, align 4
  br label %892

89:                                               ; preds = %96, %93, %80, %71
  %90 = landingpad { ptr, i32 }
          cleanup
  %91 = extractvalue { ptr, i32 } %90, 0
  store ptr %91, ptr %7, align 8
  %92 = extractvalue { ptr, i32 } %90, 1
  store i32 %92, ptr %8, align 4
  br label %891

93:                                               ; preds = %84, %76, %66
  %94 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str.28)
          to label %95 unwind label %89

95:                                               ; preds = %93
  br i1 %94, label %96, label %100

96:                                               ; preds = %95
  %97 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str.29)
          to label %98 unwind label %89

98:                                               ; preds = %96
  br i1 %97, label %99, label %100

99:                                               ; preds = %98
  store i1 false, ptr %3, align 1
  store i32 1, ptr %10, align 4
  br label %889

100:                                              ; preds = %98, %95
  %101 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 4
  store i32 0, ptr %101, align 8, !tbaa !12
  %102 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 5
  store i32 0, ptr %102, align 4, !tbaa !30
  %103 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 7
  store i32 0, ptr %103, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %104 unwind label %128

104:                                              ; preds = %100
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %105 = load ptr, ptr %5, align 8, !tbaa !5
  %106 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %107 unwind label %132

107:                                              ; preds = %104
  %108 = load ptr, ptr %5, align 8, !tbaa !5
  %109 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %108, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %110 unwind label %132

110:                                              ; preds = %107
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %113 unwind label %132

113:                                              ; preds = %110
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = load ptr, ptr %114, align 8, !tbaa !32
  %116 = getelementptr i8, ptr %115, i64 -24
  %117 = load i64, ptr %116, align 8
  %118 = getelementptr inbounds i8, ptr %114, i64 %117
  %119 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv(ptr noundef nonnull align 8 dereferenceable(264) %118)
          to label %120 unwind label %132

120:                                              ; preds = %113
  br i1 %119, label %121, label %136

121:                                              ; preds = %120
  %122 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %123 unwind label %132

123:                                              ; preds = %121
  %124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef @.str.31)
          to label %125 unwind label %132

125:                                              ; preds = %123
  %126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %127 unwind label %132

127:                                              ; preds = %125
  store i1 false, ptr %3, align 1
  store i32 1, ptr %10, align 4
  br label %886

128:                                              ; preds = %100
  %129 = landingpad { ptr, i32 }
          cleanup
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %7, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  br label %888

132:                                              ; preds = %169, %167, %165, %163, %159, %156, %153, %149, %146, %143, %139, %136, %125, %123, %121, %113, %110, %107, %104
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %7, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %8, align 4
  br label %887

136:                                              ; preds = %120
  %137 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.32)
          to label %138 unwind label %132

138:                                              ; preds = %136
  br i1 %137, label %139, label %143

139:                                              ; preds = %138
  %140 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %141 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionsmIEi(ptr noundef nonnull align 4 dereferenceable(4) %140, i32 noundef 1)
          to label %142 unwind label %132

142:                                              ; preds = %139
  br label %174

143:                                              ; preds = %138
  %144 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.33)
          to label %145 unwind label %132

145:                                              ; preds = %143
  br i1 %144, label %146, label %153

146:                                              ; preds = %145
  %147 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %148 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %147, i32 noundef 1)
          to label %149 unwind label %132

149:                                              ; preds = %146
  %150 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %151 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %150, i32 noundef 4)
          to label %152 unwind label %132

152:                                              ; preds = %149
  br label %173

153:                                              ; preds = %145
  %154 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.34)
          to label %155 unwind label %132

155:                                              ; preds = %153
  br i1 %154, label %156, label %163

156:                                              ; preds = %155
  %157 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %158 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %157, i32 noundef 1)
          to label %159 unwind label %132

159:                                              ; preds = %156
  %160 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %161 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %160, i32 noundef 2)
          to label %162 unwind label %132

162:                                              ; preds = %159
  br label %172

163:                                              ; preds = %155
  %164 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %165 unwind label %132

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef @.str.35)
          to label %167 unwind label %132

167:                                              ; preds = %165
  %168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %169 unwind label %132

169:                                              ; preds = %167
  %170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %171 unwind label %132

171:                                              ; preds = %169
  store i1 false, ptr %3, align 1
  store i32 1, ptr %10, align 4
  br label %886

172:                                              ; preds = %162
  br label %173

173:                                              ; preds = %172, %152
  br label %174

174:                                              ; preds = %173, %142
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #6
  %175 = load ptr, ptr %5, align 8, !tbaa !5
  %176 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %175)
          to label %177 unwind label %197

177:                                              ; preds = %174
  %178 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 0
  %179 = extractvalue { i64, i64 } %176, 0
  store i64 %179, ptr %178, align 8
  %180 = getelementptr inbounds { i64, i64 }, ptr %20, i32 0, i32 1
  %181 = extractvalue { i64, i64 } %176, 1
  store i64 %181, ptr %180, align 8
  %182 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %183 unwind label %197

183:                                              ; preds = %177
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #6
  store i64 %182, ptr %19, align 8, !tbaa !34
  %184 = load ptr, ptr %5, align 8, !tbaa !5
  %185 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %186 unwind label %201

186:                                              ; preds = %183
  br label %187

187:                                              ; preds = %828, %782, %186
  %188 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.36)
          to label %189 unwind label %201

189:                                              ; preds = %187
  br i1 %188, label %190, label %829

190:                                              ; preds = %189
  %191 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.37)
          to label %192 unwind label %201

192:                                              ; preds = %190
  br i1 %191, label %193, label %205

193:                                              ; preds = %192
  %194 = load ptr, ptr %5, align 8, !tbaa !5
  %195 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %194, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %196 unwind label %201

196:                                              ; preds = %193
  br label %797

197:                                              ; preds = %177, %174
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %7, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #6
  br label %885

201:                                              ; preds = %836, %833, %829, %821, %819, %817, %809, %806, %792, %790, %788, %786, %238, %233, %231, %229, %227, %222, %219, %214, %211, %208, %205, %193, %190, %187, %183
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %7, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %8, align 4
  br label %885

205:                                              ; preds = %192
  %206 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.38)
          to label %207 unwind label %201

207:                                              ; preds = %205
  br i1 %206, label %208, label %238

208:                                              ; preds = %207
  %209 = load ptr, ptr %5, align 8, !tbaa !5
  %210 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %209, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %211 unwind label %201

211:                                              ; preds = %208
  %212 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.39)
          to label %213 unwind label %201

213:                                              ; preds = %211
  br i1 %212, label %214, label %219

214:                                              ; preds = %213
  %215 = load ptr, ptr %5, align 8, !tbaa !5
  %216 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 4
  %217 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 4 dereferenceable(4) %216)
          to label %218 unwind label %201

218:                                              ; preds = %214
  br label %237

219:                                              ; preds = %213
  %220 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.40)
          to label %221 unwind label %201

221:                                              ; preds = %219
  br i1 %220, label %222, label %227

222:                                              ; preds = %221
  %223 = load ptr, ptr %5, align 8, !tbaa !5
  %224 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 5
  %225 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %223, ptr noundef nonnull align 4 dereferenceable(4) %224)
          to label %226 unwind label %201

226:                                              ; preds = %222
  br label %236

227:                                              ; preds = %221
  %228 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %229 unwind label %201

229:                                              ; preds = %227
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef @.str.41)
          to label %231 unwind label %201

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %233 unwind label %201

233:                                              ; preds = %231
  %234 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %235 unwind label %201

235:                                              ; preds = %233
  br label %236

236:                                              ; preds = %235, %226
  br label %237

237:                                              ; preds = %236, %218
  br label %796

238:                                              ; preds = %207
  %239 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.42)
          to label %240 unwind label %201

240:                                              ; preds = %238
  br i1 %239, label %241, label %786

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  %242 = load ptr, ptr %5, align 8, !tbaa !5
  %243 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %244 unwind label %260

244:                                              ; preds = %241
  %245 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.43)
          to label %246 unwind label %260

246:                                              ; preds = %244
  br i1 %245, label %247, label %375

247:                                              ; preds = %246
  %248 = load ptr, ptr %5, align 8, !tbaa !5
  %249 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %248, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %250 unwind label %260

250:                                              ; preds = %247
  %251 = load ptr, ptr %5, align 8, !tbaa !5
  %252 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %253 unwind label %260

253:                                              ; preds = %250
  %254 = load ptr, ptr %5, align 8, !tbaa !5
  %255 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %254, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %256 unwind label %260

256:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 0, ptr %23, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 0, ptr %24, align 4, !tbaa !35
  %257 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.15)
          to label %258 unwind label %264

258:                                              ; preds = %256
  br i1 %257, label %259, label %268

259:                                              ; preds = %258
  store i32 3, ptr %23, align 4, !tbaa !35
  br label %287

260:                                              ; preds = %375, %253, %250, %247, %244, %241
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %7, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %8, align 4
  br label %785

264:                                              ; preds = %300, %298, %296, %294, %287, %282, %280, %278, %276, %272, %268, %256
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %7, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %8, align 4
  br label %374

268:                                              ; preds = %258
  %269 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.17)
          to label %270 unwind label %264

270:                                              ; preds = %268
  br i1 %269, label %271, label %272

271:                                              ; preds = %270
  store i32 4, ptr %23, align 4, !tbaa !35
  br label %286

272:                                              ; preds = %270
  %273 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.20)
          to label %274 unwind label %264

274:                                              ; preds = %272
  br i1 %273, label %275, label %276

275:                                              ; preds = %274
  store i32 10, ptr %23, align 4, !tbaa !35
  br label %285

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %278 unwind label %264

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef @.str.44)
          to label %280 unwind label %264

280:                                              ; preds = %278
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %282 unwind label %264

282:                                              ; preds = %280
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %284 unwind label %264

284:                                              ; preds = %282
  store i32 2, ptr %10, align 4
  br label %370, !llvm.loop !36

285:                                              ; preds = %275
  br label %286

286:                                              ; preds = %285, %271
  br label %287

287:                                              ; preds = %286, %259
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %288 unwind label %264

288:                                              ; preds = %287
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %289 unwind label %303

289:                                              ; preds = %288
  %290 = invoke noundef i32 @_ZN8OpenMesh2IO17get_property_typeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr noundef %25, ptr noundef %26)
          to label %291 unwind label %307

291:                                              ; preds = %289
  store i32 %290, ptr %24, align 4, !tbaa !35
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  %292 = load i32, ptr %24, align 4, !tbaa !35
  %293 = icmp eq i32 %292, 0
  br i1 %293, label %294, label %312

294:                                              ; preds = %291
  %295 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %296 unwind label %264

296:                                              ; preds = %294
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef @.str.45)
          to label %298 unwind label %264

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %300 unwind label %264

300:                                              ; preds = %298
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %302 unwind label %264

302:                                              ; preds = %300
  br label %312

303:                                              ; preds = %288
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %7, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %8, align 4
  br label %311

307:                                              ; preds = %289
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %7, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %311

311:                                              ; preds = %307, %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %374

312:                                              ; preds = %302, %291
  call void @llvm.lifetime.start.p0(i64 48, ptr %27) #6
  %313 = load i32, ptr %24, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(44) %27, i32 noundef 12, i32 noundef %313, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %314 unwind label %322

314:                                              ; preds = %312
  %315 = load i32, ptr %23, align 4, !tbaa !35
  %316 = getelementptr inbounds %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", ptr %27, i32 0, i32 3
  store i32 %315, ptr %316, align 8, !tbaa !38
  %317 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.39)
          to label %318 unwind label %326

318:                                              ; preds = %314
  br i1 %317, label %319, label %330

319:                                              ; preds = %318
  %320 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 9
  invoke void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %320, ptr noundef nonnull align 8 dereferenceable(44) %27)
          to label %321 unwind label %326

321:                                              ; preds = %319
  br label %369

322:                                              ; preds = %312
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %7, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %8, align 4
  br label %373

326:                                              ; preds = %365, %363, %361, %359, %357, %355, %352, %347, %345, %343, %336, %333, %330, %319, %314
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %7, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %8, align 4
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %27) #6
  br label %373

330:                                              ; preds = %318
  %331 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.40)
          to label %332 unwind label %326

332:                                              ; preds = %330
  br i1 %331, label %333, label %355

333:                                              ; preds = %332
  %334 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.46)
          to label %335 unwind label %326

335:                                              ; preds = %333
  br i1 %334, label %339, label %336

336:                                              ; preds = %335
  %337 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.47)
          to label %338 unwind label %326

338:                                              ; preds = %336
  br i1 %337, label %339, label %352

339:                                              ; preds = %338, %335
  %340 = getelementptr inbounds %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", ptr %27, i32 0, i32 0
  store i32 13, ptr %340, align 8, !tbaa !43
  %341 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 10
  %342 = call noundef zeroext i1 @_ZNKSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %341) #6
  br i1 %342, label %351, label %343

343:                                              ; preds = %339
  %344 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %345 unwind label %326

345:                                              ; preds = %343
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %344, ptr noundef @.str.48)
          to label %347 unwind label %326

347:                                              ; preds = %345
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %349 unwind label %326

349:                                              ; preds = %347
  %350 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 10
  call void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %350) #6
  br label %351

351:                                              ; preds = %349, %339
  br label %352

352:                                              ; preds = %351, %338
  %353 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 10
  invoke void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %353, ptr noundef nonnull align 8 dereferenceable(44) %27)
          to label %354 unwind label %326

354:                                              ; preds = %352
  br label %368

355:                                              ; preds = %332
  %356 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %357 unwind label %326

357:                                              ; preds = %355
  %358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef @.str.49)
          to label %359 unwind label %326

359:                                              ; preds = %357
  %360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %361 unwind label %326

361:                                              ; preds = %359
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %360, ptr noundef @.str.50)
          to label %363 unwind label %326

363:                                              ; preds = %361
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %365 unwind label %326

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %367 unwind label %326

367:                                              ; preds = %365
  br label %368

368:                                              ; preds = %367, %354
  br label %369

369:                                              ; preds = %368, %321
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %27) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #6
  store i32 0, ptr %10, align 4
  br label %370

370:                                              ; preds = %369, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  %371 = load i32, ptr %10, align 4
  switch i32 %371, label %782 [
    i32 0, label %372
  ]

372:                                              ; preds = %370
  br label %781

373:                                              ; preds = %326, %322
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #6
  br label %374

374:                                              ; preds = %373, %311, %264
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %785

375:                                              ; preds = %246
  %376 = load ptr, ptr %5, align 8, !tbaa !5
  %377 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %376, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %378 unwind label %260

378:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %379 unwind label %400

379:                                              ; preds = %378
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %380 unwind label %404

380:                                              ; preds = %379
  %381 = invoke noundef i32 @_ZN8OpenMesh2IO17get_property_typeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr noundef %29, ptr noundef %30)
          to label %382 unwind label %408

382:                                              ; preds = %380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  store i32 %381, ptr %28, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %383 unwind label %413

383:                                              ; preds = %382
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %384 unwind label %417

384:                                              ; preds = %383
  invoke void @_ZN8OpenMesh2IO17get_property_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef %32, ptr noundef %33)
          to label %385 unwind label %421

385:                                              ; preds = %384
  %386 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr %34) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(44) %34)
          to label %387 unwind label %427

387:                                              ; preds = %385
  %388 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.39)
          to label %389 unwind label %431

389:                                              ; preds = %387
  br i1 %388, label %390, label %729

390:                                              ; preds = %389
  %391 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.51)
          to label %392 unwind label %431

392:                                              ; preds = %390
  br i1 %391, label %393, label %439

393:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 48, ptr %35) #6
  %394 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %35, i32 noundef 0, i32 noundef %394)
          to label %395 unwind label %435

395:                                              ; preds = %393
  %396 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %35) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %35) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %35) #6
  %397 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 7
  %398 = load i32, ptr %397, align 4, !tbaa !31
  %399 = add i32 %398, 1
  store i32 %399, ptr %397, align 4, !tbaa !31
  br label %728

400:                                              ; preds = %378
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %7, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %8, align 4
  br label %780

404:                                              ; preds = %379
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %7, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %8, align 4
  br label %412

408:                                              ; preds = %380
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %7, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %412

412:                                              ; preds = %408, %404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %780

413:                                              ; preds = %382
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %7, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %8, align 4
  br label %426

417:                                              ; preds = %383
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %7, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %8, align 4
  br label %425

421:                                              ; preds = %384
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %7, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %425

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

426:                                              ; preds = %425, %413
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  br label %780

427:                                              ; preds = %385
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %7, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %8, align 4
  br label %779

431:                                              ; preds = %772, %770, %768, %766, %763, %760, %757, %754, %705, %696, %692, %687, %678, %668, %663, %654, %644, %639, %630, %620, %615, %606, %596, %591, %582, %572, %567, %558, %548, %543, %534, %529, %526, %517, %512, %509, %500, %495, %486, %481, %472, %467, %453, %439, %390, %387
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %7, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %8, align 4
  br label %778

435:                                              ; preds = %393
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %7, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %35) #6
  br label %778

439:                                              ; preds = %392
  %440 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.52)
          to label %441 unwind label %431

441:                                              ; preds = %439
  br i1 %440, label %442, label %453

442:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 48, ptr %36) #6
  %443 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %36, i32 noundef 1, i32 noundef %443)
          to label %444 unwind label %449

444:                                              ; preds = %442
  %445 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %36) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %36) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #6
  %446 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 7
  %447 = load i32, ptr %446, align 4, !tbaa !31
  %448 = add i32 %447, 1
  store i32 %448, ptr %446, align 4, !tbaa !31
  br label %727

449:                                              ; preds = %442
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %7, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #6
  br label %778

453:                                              ; preds = %441
  %454 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.53)
          to label %455 unwind label %431

455:                                              ; preds = %453
  br i1 %454, label %456, label %467

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 48, ptr %37) #6
  %457 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %37, i32 noundef 2, i32 noundef %457)
          to label %458 unwind label %463

458:                                              ; preds = %456
  %459 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %37) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %37) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %37) #6
  %460 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 7
  %461 = load i32, ptr %460, align 4, !tbaa !31
  %462 = add i32 %461, 1
  store i32 %462, ptr %460, align 4, !tbaa !31
  br label %726

463:                                              ; preds = %456
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %7, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %37) #6
  br label %778

467:                                              ; preds = %455
  %468 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.54)
          to label %469 unwind label %431

469:                                              ; preds = %467
  br i1 %468, label %470, label %481

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 48, ptr %38) #6
  %471 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %38, i32 noundef 9, i32 noundef %471)
          to label %472 unwind label %477

472:                                              ; preds = %470
  %473 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %38) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %38) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #6
  %474 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %475 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %474, i32 noundef 16)
          to label %476 unwind label %431

476:                                              ; preds = %472
  br label %725

477:                                              ; preds = %470
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %7, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #6
  br label %778

481:                                              ; preds = %469
  %482 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.55)
          to label %483 unwind label %431

483:                                              ; preds = %481
  br i1 %482, label %484, label %495

484:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 48, ptr %39) #6
  %485 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %39, i32 noundef 10, i32 noundef %485)
          to label %486 unwind label %491

486:                                              ; preds = %484
  %487 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %39) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %39) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #6
  %488 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %489 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %488, i32 noundef 16)
          to label %490 unwind label %431

490:                                              ; preds = %486
  br label %724

491:                                              ; preds = %484
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %7, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #6
  br label %778

495:                                              ; preds = %483
  %496 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.56)
          to label %497 unwind label %431

497:                                              ; preds = %495
  br i1 %496, label %498, label %509

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 48, ptr %40) #6
  %499 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %40, i32 noundef 11, i32 noundef %499)
          to label %500 unwind label %505

500:                                              ; preds = %498
  %501 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %40) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %40) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %40) #6
  %502 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %503 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %502, i32 noundef 16)
          to label %504 unwind label %431

504:                                              ; preds = %500
  br label %723

505:                                              ; preds = %498
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %7, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %40) #6
  br label %778

509:                                              ; preds = %497
  %510 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.57)
          to label %511 unwind label %431

511:                                              ; preds = %509
  br i1 %510, label %515, label %512

512:                                              ; preds = %511
  %513 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.58)
          to label %514 unwind label %431

514:                                              ; preds = %512
  br i1 %513, label %515, label %526

515:                                              ; preds = %514, %511
  call void @llvm.lifetime.start.p0(i64 48, ptr %41) #6
  %516 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %41, i32 noundef 3, i32 noundef %516)
          to label %517 unwind label %522

517:                                              ; preds = %515
  %518 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %41) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %41) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %41) #6
  %519 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %520 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %519, i32 noundef 64)
          to label %521 unwind label %431

521:                                              ; preds = %517
  br label %722

522:                                              ; preds = %515
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %7, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %41) #6
  br label %778

526:                                              ; preds = %514
  %527 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.59)
          to label %528 unwind label %431

528:                                              ; preds = %526
  br i1 %527, label %532, label %529

529:                                              ; preds = %528
  %530 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.60)
          to label %531 unwind label %431

531:                                              ; preds = %529
  br i1 %530, label %532, label %543

532:                                              ; preds = %531, %528
  call void @llvm.lifetime.start.p0(i64 48, ptr %42) #6
  %533 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %42, i32 noundef 4, i32 noundef %533)
          to label %534 unwind label %539

534:                                              ; preds = %532
  %535 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %42) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %42) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %42) #6
  %536 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %537 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %536, i32 noundef 64)
          to label %538 unwind label %431

538:                                              ; preds = %534
  br label %721

539:                                              ; preds = %532
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %7, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %42) #6
  br label %778

543:                                              ; preds = %531
  %544 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.61)
          to label %545 unwind label %431

545:                                              ; preds = %543
  br i1 %544, label %546, label %567

546:                                              ; preds = %545
  call void @llvm.lifetime.start.p0(i64 48, ptr %43) #6
  %547 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %43, i32 noundef 5, i32 noundef %547)
          to label %548 unwind label %562

548:                                              ; preds = %546
  %549 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %43) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %43) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #6
  %550 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %551 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %550, i32 noundef 32)
          to label %552 unwind label %431

552:                                              ; preds = %548
  %553 = load i32, ptr %28, align 4, !tbaa !35
  %554 = icmp eq i32 %553, 14
  br i1 %554, label %558, label %555

555:                                              ; preds = %552
  %556 = load i32, ptr %28, align 4, !tbaa !35
  %557 = icmp eq i32 %556, 13
  br i1 %557, label %558, label %566

558:                                              ; preds = %555, %552
  %559 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %560 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %559, i32 noundef 4096)
          to label %561 unwind label %431

561:                                              ; preds = %558
  br label %566

562:                                              ; preds = %546
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %7, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #6
  br label %778

566:                                              ; preds = %561, %555
  br label %720

567:                                              ; preds = %545
  %568 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.62)
          to label %569 unwind label %431

569:                                              ; preds = %567
  br i1 %568, label %570, label %591

570:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 48, ptr %44) #6
  %571 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %44, i32 noundef 6, i32 noundef %571)
          to label %572 unwind label %586

572:                                              ; preds = %570
  %573 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %44) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %44) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #6
  %574 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %575 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %574, i32 noundef 32)
          to label %576 unwind label %431

576:                                              ; preds = %572
  %577 = load i32, ptr %28, align 4, !tbaa !35
  %578 = icmp eq i32 %577, 14
  br i1 %578, label %582, label %579

579:                                              ; preds = %576
  %580 = load i32, ptr %28, align 4, !tbaa !35
  %581 = icmp eq i32 %580, 13
  br i1 %581, label %582, label %590

582:                                              ; preds = %579, %576
  %583 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %584 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %583, i32 noundef 4096)
          to label %585 unwind label %431

585:                                              ; preds = %582
  br label %590

586:                                              ; preds = %570
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %7, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #6
  br label %778

590:                                              ; preds = %585, %579
  br label %719

591:                                              ; preds = %569
  %592 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.63)
          to label %593 unwind label %431

593:                                              ; preds = %591
  br i1 %592, label %594, label %615

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 48, ptr %45) #6
  %595 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %45, i32 noundef 7, i32 noundef %595)
          to label %596 unwind label %610

596:                                              ; preds = %594
  %597 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %45) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %45) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %45) #6
  %598 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %599 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %598, i32 noundef 32)
          to label %600 unwind label %431

600:                                              ; preds = %596
  %601 = load i32, ptr %28, align 4, !tbaa !35
  %602 = icmp eq i32 %601, 14
  br i1 %602, label %606, label %603

603:                                              ; preds = %600
  %604 = load i32, ptr %28, align 4, !tbaa !35
  %605 = icmp eq i32 %604, 13
  br i1 %605, label %606, label %614

606:                                              ; preds = %603, %600
  %607 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %608 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %607, i32 noundef 4096)
          to label %609 unwind label %431

609:                                              ; preds = %606
  br label %614

610:                                              ; preds = %594
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %7, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %45) #6
  br label %778

614:                                              ; preds = %609, %603
  br label %718

615:                                              ; preds = %593
  %616 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.64)
          to label %617 unwind label %431

617:                                              ; preds = %615
  br i1 %616, label %618, label %639

618:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 48, ptr %46) #6
  %619 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %46, i32 noundef 5, i32 noundef %619)
          to label %620 unwind label %634

620:                                              ; preds = %618
  %621 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %46) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %46) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %46) #6
  %622 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %623 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %622, i32 noundef 32)
          to label %624 unwind label %431

624:                                              ; preds = %620
  %625 = load i32, ptr %28, align 4, !tbaa !35
  %626 = icmp eq i32 %625, 14
  br i1 %626, label %630, label %627

627:                                              ; preds = %624
  %628 = load i32, ptr %28, align 4, !tbaa !35
  %629 = icmp eq i32 %628, 13
  br i1 %629, label %630, label %638

630:                                              ; preds = %627, %624
  %631 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %632 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %631, i32 noundef 4096)
          to label %633 unwind label %431

633:                                              ; preds = %630
  br label %638

634:                                              ; preds = %618
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %7, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %46) #6
  br label %778

638:                                              ; preds = %633, %627
  br label %717

639:                                              ; preds = %617
  %640 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.65)
          to label %641 unwind label %431

641:                                              ; preds = %639
  br i1 %640, label %642, label %663

642:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 48, ptr %47) #6
  %643 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %47, i32 noundef 6, i32 noundef %643)
          to label %644 unwind label %658

644:                                              ; preds = %642
  %645 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %47) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %47) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #6
  %646 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %647 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %646, i32 noundef 32)
          to label %648 unwind label %431

648:                                              ; preds = %644
  %649 = load i32, ptr %28, align 4, !tbaa !35
  %650 = icmp eq i32 %649, 14
  br i1 %650, label %654, label %651

651:                                              ; preds = %648
  %652 = load i32, ptr %28, align 4, !tbaa !35
  %653 = icmp eq i32 %652, 13
  br i1 %653, label %654, label %662

654:                                              ; preds = %651, %648
  %655 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %656 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %655, i32 noundef 4096)
          to label %657 unwind label %431

657:                                              ; preds = %654
  br label %662

658:                                              ; preds = %642
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %7, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #6
  br label %778

662:                                              ; preds = %657, %651
  br label %716

663:                                              ; preds = %641
  %664 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.66)
          to label %665 unwind label %431

665:                                              ; preds = %663
  br i1 %664, label %666, label %687

666:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 48, ptr %48) #6
  %667 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %48, i32 noundef 7, i32 noundef %667)
          to label %668 unwind label %682

668:                                              ; preds = %666
  %669 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %48) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %48) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #6
  %670 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %671 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %670, i32 noundef 32)
          to label %672 unwind label %431

672:                                              ; preds = %668
  %673 = load i32, ptr %28, align 4, !tbaa !35
  %674 = icmp eq i32 %673, 14
  br i1 %674, label %678, label %675

675:                                              ; preds = %672
  %676 = load i32, ptr %28, align 4, !tbaa !35
  %677 = icmp eq i32 %676, 13
  br i1 %677, label %678, label %686

678:                                              ; preds = %675, %672
  %679 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %680 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %679, i32 noundef 4096)
          to label %681 unwind label %431

681:                                              ; preds = %678
  br label %686

682:                                              ; preds = %666
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %7, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #6
  br label %778

686:                                              ; preds = %681, %675
  br label %715

687:                                              ; preds = %665
  %688 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.67)
          to label %689 unwind label %431

689:                                              ; preds = %687
  br i1 %688, label %690, label %714

690:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 48, ptr %49) #6
  %691 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %49, i32 noundef 8, i32 noundef %691)
          to label %692 unwind label %709

692:                                              ; preds = %690
  %693 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %49) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %49) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %49) #6
  %694 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %695 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %694, i32 noundef 32)
          to label %696 unwind label %431

696:                                              ; preds = %692
  %697 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %698 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %697, i32 noundef 2048)
          to label %699 unwind label %431

699:                                              ; preds = %696
  %700 = load i32, ptr %28, align 4, !tbaa !35
  %701 = icmp eq i32 %700, 14
  br i1 %701, label %705, label %702

702:                                              ; preds = %699
  %703 = load i32, ptr %28, align 4, !tbaa !35
  %704 = icmp eq i32 %703, 13
  br i1 %704, label %705, label %713

705:                                              ; preds = %702, %699
  %706 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %707 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %706, i32 noundef 4096)
          to label %708 unwind label %431

708:                                              ; preds = %705
  br label %713

709:                                              ; preds = %690
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %7, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %49) #6
  br label %778

713:                                              ; preds = %708, %702
  br label %714

714:                                              ; preds = %713, %689
  br label %715

715:                                              ; preds = %714, %686
  br label %716

716:                                              ; preds = %715, %662
  br label %717

717:                                              ; preds = %716, %638
  br label %718

718:                                              ; preds = %717, %614
  br label %719

719:                                              ; preds = %718, %590
  br label %720

720:                                              ; preds = %719, %566
  br label %721

721:                                              ; preds = %720, %538
  br label %722

722:                                              ; preds = %721, %521
  br label %723

723:                                              ; preds = %722, %504
  br label %724

724:                                              ; preds = %723, %490
  br label %725

725:                                              ; preds = %724, %476
  br label %726

726:                                              ; preds = %725, %458
  br label %727

727:                                              ; preds = %726, %444
  br label %728

728:                                              ; preds = %727, %395
  br label %729

729:                                              ; preds = %728, %389
  %730 = getelementptr inbounds %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", ptr %34, i32 0, i32 1
  %731 = load i32, ptr %730, align 4, !tbaa !44
  %732 = icmp eq i32 %731, 0
  br i1 %732, label %733, label %750

733:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #6
  store i32 12, ptr %50, align 4, !tbaa !45
  %734 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %735 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %734, i32 noundef 8192)
          to label %736 unwind label %741

736:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 48, ptr %51) #6
  %737 = load i32, ptr %50, align 4, !tbaa !45
  %738 = load i32, ptr %28, align 4, !tbaa !35
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(44) %51, i32 noundef %737, i32 noundef %738, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %739 unwind label %745

739:                                              ; preds = %736
  %740 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %51) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %51) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  br label %750

741:                                              ; preds = %733
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %7, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %8, align 4
  br label %749

745:                                              ; preds = %736
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %7, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #6
  br label %749

749:                                              ; preds = %745, %741
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  br label %778

750:                                              ; preds = %739, %729
  %751 = getelementptr inbounds %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", ptr %34, i32 0, i32 0
  %752 = load i32, ptr %751, align 8, !tbaa !43
  %753 = icmp ne i32 %752, 14
  br i1 %753, label %754, label %777

754:                                              ; preds = %750
  %755 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.39)
          to label %756 unwind label %431

756:                                              ; preds = %754
  br i1 %755, label %757, label %760

757:                                              ; preds = %756
  %758 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 9
  invoke void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %758, ptr noundef nonnull align 8 dereferenceable(44) %34)
          to label %759 unwind label %431

759:                                              ; preds = %757
  br label %776

760:                                              ; preds = %756
  %761 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.40)
          to label %762 unwind label %431

762:                                              ; preds = %760
  br i1 %761, label %763, label %766

763:                                              ; preds = %762
  %764 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 10
  invoke void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %764, ptr noundef nonnull align 8 dereferenceable(44) %34)
          to label %765 unwind label %431

765:                                              ; preds = %763
  br label %775

766:                                              ; preds = %762
  %767 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %768 unwind label %431

768:                                              ; preds = %766
  %769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %767, ptr noundef @.str.68)
          to label %770 unwind label %431

770:                                              ; preds = %768
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %769, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %772 unwind label %431

772:                                              ; preds = %770
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %771, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %774 unwind label %431

774:                                              ; preds = %772
  br label %775

775:                                              ; preds = %774, %765
  br label %776

776:                                              ; preds = %775, %759
  br label %777

777:                                              ; preds = %776, %750
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %34) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br label %781

778:                                              ; preds = %749, %709, %682, %658, %634, %610, %586, %562, %539, %522, %505, %491, %477, %463, %449, %435, %431
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %34) #6
  br label %779

779:                                              ; preds = %778, %427
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #6
  br label %780

780:                                              ; preds = %779, %426, %412, %400
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br label %785

781:                                              ; preds = %777, %372
  store i32 0, ptr %10, align 4
  br label %782

782:                                              ; preds = %781, %370
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  %783 = load i32, ptr %10, align 4
  switch i32 %783, label %898 [
    i32 0, label %784
    i32 2, label %187
  ]

784:                                              ; preds = %782
  br label %795

785:                                              ; preds = %780, %374, %260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  br label %885

786:                                              ; preds = %240
  %787 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omlogv()
          to label %788 unwind label %201

788:                                              ; preds = %786
  %789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %787, ptr noundef @.str.69)
          to label %790 unwind label %201

790:                                              ; preds = %788
  %791 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %789, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %792 unwind label %201

792:                                              ; preds = %790
  %793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %791, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %794 unwind label %201

794:                                              ; preds = %792
  br label %795

795:                                              ; preds = %794, %784
  br label %796

796:                                              ; preds = %795, %237
  br label %797

797:                                              ; preds = %796, %196
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #6
  %798 = load ptr, ptr %5, align 8, !tbaa !5
  %799 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %798)
          to label %800 unwind label %824

800:                                              ; preds = %797
  %801 = getelementptr inbounds { i64, i64 }, ptr %52, i32 0, i32 0
  %802 = extractvalue { i64, i64 } %799, 0
  store i64 %802, ptr %801, align 8
  %803 = getelementptr inbounds { i64, i64 }, ptr %52, i32 0, i32 1
  %804 = extractvalue { i64, i64 } %799, 1
  store i64 %804, ptr %803, align 8
  %805 = invoke noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %52)
          to label %806 unwind label %824

806:                                              ; preds = %800
  store i64 %805, ptr %19, align 8, !tbaa !34
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #6
  %807 = load ptr, ptr %5, align 8, !tbaa !5
  %808 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %807, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %809 unwind label %201

809:                                              ; preds = %806
  %810 = load ptr, ptr %5, align 8, !tbaa !5
  %811 = load ptr, ptr %810, align 8, !tbaa !32
  %812 = getelementptr i8, ptr %811, i64 -24
  %813 = load i64, ptr %812, align 8
  %814 = getelementptr inbounds i8, ptr %810, i64 %813
  %815 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv(ptr noundef nonnull align 8 dereferenceable(264) %814)
          to label %816 unwind label %201

816:                                              ; preds = %809
  br i1 %815, label %817, label %828

817:                                              ; preds = %816
  %818 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %819 unwind label %201

819:                                              ; preds = %817
  %820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %818, ptr noundef @.str.70)
          to label %821 unwind label %201

821:                                              ; preds = %819
  %822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %820, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %823 unwind label %201

823:                                              ; preds = %821
  store i1 false, ptr %3, align 1
  store i32 1, ptr %10, align 4
  br label %884

824:                                              ; preds = %800, %797
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %7, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #6
  br label %885

828:                                              ; preds = %816
  br label %187, !llvm.loop !36

829:                                              ; preds = %189
  %830 = getelementptr inbounds %"class.OpenMesh::IO::_PLYReader_", ptr %58, i32 0, i32 2
  %831 = invoke noundef zeroext i1 @_ZNK8OpenMesh2IO7Options9is_binaryEv(ptr noundef nonnull align 4 dereferenceable(4) %830)
          to label %832 unwind label %201

832:                                              ; preds = %829
  br i1 %831, label %833, label %883

833:                                              ; preds = %832
  %834 = load ptr, ptr %5, align 8, !tbaa !5
  %835 = load i64, ptr %19, align 8, !tbaa !34
  invoke void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16) %53, i64 noundef %835)
          to label %836 unwind label %201

836:                                              ; preds = %833
  %837 = getelementptr inbounds { i64, i64 }, ptr %53, i32 0, i32 0
  %838 = load i64, ptr %837, align 8
  %839 = getelementptr inbounds { i64, i64 }, ptr %53, i32 0, i32 1
  %840 = load i64, ptr %839, align 8
  %841 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16) %834, i64 %838, i64 %840)
          to label %842 unwind label %201

842:                                              ; preds = %836
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #6
  store i8 0, ptr %54, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #6
  store i8 0, ptr %55, align 1, !tbaa !11
  %843 = load ptr, ptr %5, align 8, !tbaa !5
  %844 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi3getERc(ptr noundef nonnull align 8 dereferenceable(16) %843, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %845 unwind label %867

845:                                              ; preds = %842
  %846 = load ptr, ptr %5, align 8, !tbaa !5
  %847 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi3getERc(ptr noundef nonnull align 8 dereferenceable(16) %846, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %848 unwind label %867

848:                                              ; preds = %845
  %849 = load i8, ptr %54, align 1, !tbaa !11
  %850 = sext i8 %849 to i32
  %851 = icmp eq i32 %850, 13
  br i1 %851, label %852, label %871

852:                                              ; preds = %848
  %853 = load i8, ptr %55, align 1, !tbaa !11
  %854 = sext i8 %853 to i32
  %855 = icmp eq i32 %854, 10
  br i1 %855, label %856, label %871

856:                                              ; preds = %852
  %857 = load ptr, ptr %5, align 8, !tbaa !5
  %858 = load i64, ptr %19, align 8, !tbaa !34
  %859 = add nsw i64 %858, 14
  invoke void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16) %56, i64 noundef %859)
          to label %860 unwind label %867

860:                                              ; preds = %856
  %861 = getelementptr inbounds { i64, i64 }, ptr %56, i32 0, i32 0
  %862 = load i64, ptr %861, align 8
  %863 = getelementptr inbounds { i64, i64 }, ptr %56, i32 0, i32 1
  %864 = load i64, ptr %863, align 8
  %865 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16) %857, i64 %862, i64 %864)
          to label %866 unwind label %867

866:                                              ; preds = %860
  br label %882

867:                                              ; preds = %875, %871, %860, %856, %845, %842
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %7, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  br label %885

871:                                              ; preds = %852, %848
  %872 = load ptr, ptr %5, align 8, !tbaa !5
  %873 = load i64, ptr %19, align 8, !tbaa !34
  %874 = add nsw i64 %873, 12
  invoke void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16) %57, i64 noundef %874)
          to label %875 unwind label %867

875:                                              ; preds = %871
  %876 = getelementptr inbounds { i64, i64 }, ptr %57, i32 0, i32 0
  %877 = load i64, ptr %876, align 8
  %878 = getelementptr inbounds { i64, i64 }, ptr %57, i32 0, i32 1
  %879 = load i64, ptr %878, align 8
  %880 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16) %872, i64 %877, i64 %879)
          to label %881 unwind label %867

881:                                              ; preds = %875
  br label %882

882:                                              ; preds = %881, %866
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  br label %883

883:                                              ; preds = %882, %832
  store i1 true, ptr %3, align 1
  store i32 1, ptr %10, align 4
  br label %884

884:                                              ; preds = %883, %823
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %886

885:                                              ; preds = %867, %824, %785, %201, %197
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %887

886:                                              ; preds = %884, %171, %127
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  br label %889

887:                                              ; preds = %885, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %888

888:                                              ; preds = %887, %128
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  br label %891

889:                                              ; preds = %886, %99
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  %890 = load i1, ptr %3, align 1
  ret i1 %890

891:                                              ; preds = %888, %89
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  br label %892

892:                                              ; preds = %891, %85
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  br label %893

893:                                              ; preds = %892
  %894 = load ptr, ptr %7, align 8
  %895 = load i32, ptr %8, align 4
  %896 = insertvalue { ptr, i32 } poison, ptr %894, 0
  %897 = insertvalue { ptr, i32 } %896, i32 %895, 1
  resume { ptr, i32 } %897

898:                                              ; preds = %782
  unreachable
}

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN8OpenMesh2IO17get_property_typeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8OpenMesh2IO7Options7cleanupEv(ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #1

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(32) ptr @_ZN8OpenMesh2IOL4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #4 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionsmIEi(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(44), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(44)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #4 align 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)) #4 align 2

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

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

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

declare noundef nonnull align 8 dereferenceable(224) ptr @_Z5omlogv() #2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16), i64, i64) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #4 align 2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi3getERc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(1)) #2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { 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 #6 = { 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 = !{!7, !7, i64 0}
!12 = !{!13, !10, i64 24}
!13 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_E", !14, i64 0, !7, i64 8, !15, i64 16, !15, i64 20, !10, i64 24, !10, i64 28, !16, i64 32, !10, i64 36, !17, i64 40, !26, i64 88, !26, i64 112}
!14 = !{!"_ZTSN8OpenMesh2IO10BaseReaderE"}
!15 = !{!"_ZTSN8OpenMesh2IO7OptionsE", !10, i64 0}
!16 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_9ValueTypeE", !7, i64 0}
!17 = !{!"_ZTSSt3mapIN8OpenMesh2IO11_PLYReader_9ValueTypeEiSt4lessIS3_ESaISt4pairIKS3_iEEE", !18, i64 0}
!18 = !{!"_ZTSSt8_Rb_treeIN8OpenMesh2IO11_PLYReader_9ValueTypeESt4pairIKS3_iESt10_Select1stIS6_ESt4lessIS3_ESaIS6_EE", !19, i64 0}
!19 = !{!"_ZTSNSt8_Rb_treeIN8OpenMesh2IO11_PLYReader_9ValueTypeESt4pairIKS3_iESt10_Select1stIS6_ESt4lessIS3_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !20, i64 0, !22, i64 8}
!20 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN8OpenMesh2IO11_PLYReader_9ValueTypeEEE", !21, i64 0}
!21 = !{!"_ZTSSt4lessIN8OpenMesh2IO11_PLYReader_9ValueTypeEE"}
!22 = !{!"_ZTSSt15_Rb_tree_header", !23, i64 0, !25, i64 32}
!23 = !{!"_ZTSSt18_Rb_tree_node_base", !24, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!24 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTSSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!13, !10, i64 28}
!31 = !{!13, !10, i64 36}
!32 = !{!33, !33, i64 0}
!33 = !{!"vtable pointer", !8, i64 0}
!34 = !{!25, !25, i64 0}
!35 = !{!16, !16, i64 0}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!39, !16, i64 40}
!39 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_12PropertyInfoE", !40, i64 0, !16, i64 4, !41, i64 8, !16, i64 40}
!40 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_8PropertyE", !7, i64 0}
!41 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !42, i64 0, !25, i64 8, !7, i64 16}
!42 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!43 = !{!39, !40, i64 0}
!44 = !{!39, !16, i64 4}
!45 = !{!40, !40, i64 0}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.14" = type { i8 }
%"class.std::fpos" = type { i64, %struct.__mbstate_t }
%struct.__mbstate_t = type { i32, %union.anon.17 }
%union.anon.17 = type { i32 }
%"struct.OpenMesh::IO::_PLYReader_::PropertyInfo" = type <{ i32, i32, %"class.std::__cxx11::basic_string", i32, [4 x i8] }>

@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [36 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

declare noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv() local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK8OpenMesh2IO11_PLYReader_10can_u_readERSi(ptr noundef nonnull align 8 dereferenceable(136) %0, ptr noundef nonnull align 8 dereferenceable(16) %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.14", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca float, align 4
  %12 = alloca %"class.std::fpos", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %24 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %25 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %26 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %27 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %28 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %29 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %30 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %31 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %32 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %33 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %34 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %35 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %36 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %37 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %38 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %39 = alloca %"struct.OpenMesh::IO::_PLYReader_::PropertyInfo", align 8
  %40 = alloca %"class.std::fpos", align 8
  %41 = alloca %"class.std::fpos", align 8
  %42 = alloca i8, align 1
  %43 = alloca i8, align 1
  %44 = alloca %"class.std::fpos", align 8
  %45 = alloca %"class.std::fpos", align 8
  %46 = getelementptr inbounds i8, ptr %0, i64 16
  tail call void @_ZN8OpenMesh2IO7Options7cleanupEv(ptr noundef nonnull align 4 dereferenceable(4) %46)
  %47 = getelementptr inbounds i8, ptr %0, i64 88
  tail call void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %47) #6
  %48 = getelementptr inbounds i8, ptr %0, i64 112
  tail call void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  %49 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %50 unwind label %63

50:                                               ; preds = %2
  %51 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN8OpenMesh2IOL4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %52 unwind label %63

52:                                               ; preds = %50
  %53 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  %54 = trunc i64 %53 to i32
  %55 = icmp sgt i32 %54, 0
  br i1 %55, label %56, label %67

56:                                               ; preds = %52
  %57 = add i64 %53, 4294967295
  %58 = and i64 %57, 4294967295
  %59 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %3, i64 noundef %58)
  %60 = load i8, ptr %59, align 1, !tbaa !5
  %61 = icmp eq i8 %60, 13
  br i1 %61, label %62, label %67

62:                                               ; preds = %56
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %3, i64 noundef %58)
          to label %67 unwind label %65

63:                                               ; preds = %50, %2
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %499

65:                                               ; preds = %70, %67, %62
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %499

67:                                               ; preds = %62, %56, %52
  %68 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.28)
          to label %69 unwind label %65

69:                                               ; preds = %67
  br i1 %68, label %70, label %73

70:                                               ; preds = %69
  %71 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.29)
          to label %72 unwind label %65

72:                                               ; preds = %70
  br i1 %71, label %498, label %73

73:                                               ; preds = %72, %69
  %74 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 0, ptr %74, align 8, !tbaa !8
  %75 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 0, ptr %75, align 4, !tbaa !28
  %76 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 0, ptr %76, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %77 unwind label %93

77:                                               ; preds = %73
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  %78 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %79 unwind label %95

79:                                               ; preds = %77
  %80 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %81 unwind label %95

81:                                               ; preds = %79
  %82 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %83 unwind label %95

83:                                               ; preds = %81
  %84 = load ptr, ptr %1, align 8, !tbaa !30
  %85 = getelementptr i8, ptr %84, i64 -24
  %86 = load i64, ptr %85, align 8
  %87 = getelementptr inbounds i8, ptr %1, i64 %86
  %88 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv(ptr noundef nonnull align 8 dereferenceable(264) %87)
  br i1 %88, label %89, label %97

89:                                               ; preds = %83
  %90 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %91 unwind label %95

91:                                               ; preds = %89
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull @.str.31)
          to label %.invoke unwind label %95

93:                                               ; preds = %73
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  br label %497

95:                                               ; preds = %.invoke, %115, %113, %111, %91, %89, %81, %79, %77
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

97:                                               ; preds = %83
  %98 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.32)
  br i1 %98, label %99, label %101

99:                                               ; preds = %97
  %100 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionsmIEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 1)
  br label %119

101:                                              ; preds = %97
  %102 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.33)
  br i1 %102, label %103, label %106

103:                                              ; preds = %101
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 1)
  %105 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4)
  br label %119

106:                                              ; preds = %101
  %107 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.34)
  br i1 %107, label %108, label %111

108:                                              ; preds = %106
  %109 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 1)
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 2)
  br label %119

111:                                              ; preds = %106
  %112 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %113 unwind label %95

113:                                              ; preds = %111
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull @.str.35)
          to label %115 unwind label %95

115:                                              ; preds = %113
  %116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.invoke unwind label %95

.invoke:                                          ; preds = %91, %115
  %117 = phi ptr [ %116, %115 ], [ %92, %91 ]
  %118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %496 unwind label %95

119:                                              ; preds = %103, %108, %99
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #6
  %120 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %1)
          to label %121 unwind label %137

121:                                              ; preds = %119
  %122 = extractvalue { i64, i64 } %120, 0
  store i64 %122, ptr %12, align 8
  %123 = getelementptr inbounds i8, ptr %12, i64 8
  %124 = extractvalue { i64, i64 } %120, 1
  store i64 %124, ptr %123, align 8
  %125 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  %126 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %121
  %127 = getelementptr inbounds i8, ptr %23, i64 4
  %128 = getelementptr inbounds i8, ptr %17, i64 40
  %129 = getelementptr inbounds i8, ptr %40, i64 8
  br label %.outer

.outer:                                           ; preds = %.preheader, %459
  %.089.ph = phi i64 [ %125, %.preheader ], [ %457, %459 ]
  br label %130

.critedge:                                        ; preds = %177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  br label %130

130:                                              ; preds = %.outer, %.critedge
  %131 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.36)
          to label %132 unwind label %.loopexit.loopexit

132:                                              ; preds = %130
  br i1 %131, label %133, label %473

133:                                              ; preds = %132
  %134 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.37)
  br i1 %134, label %135, label %139

135:                                              ; preds = %133
  %136 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %452 unwind label %.loopexit.loopexit.split-lp

137:                                              ; preds = %119
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  br label %.loopexit

.loopexit.loopexit:                               ; preds = %130
  %lpad.loopexit131 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.loopexit.split-lp:                      ; preds = %.invoke331, %.invoke328, %.invoke278, %454, %446, %444, %151, %149, %141, %135
  %lpad.loopexit.split-lp132 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.split-lp:                               ; preds = %121, %465, %467, %469, %475
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

139:                                              ; preds = %133
  %140 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.38)
  br i1 %140, label %141, label %153

141:                                              ; preds = %139
  %142 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %143 unwind label %.loopexit.loopexit.split-lp

143:                                              ; preds = %141
  %144 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.39)
  br i1 %144, label %.invoke278, label %145

145:                                              ; preds = %143
  %146 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.40)
  br i1 %146, label %.invoke278, label %149

.invoke278:                                       ; preds = %145, %143
  %147 = phi ptr [ %74, %143 ], [ %75, %145 ]
  %148 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 4 dereferenceable(4) %147)
          to label %452 unwind label %.loopexit.loopexit.split-lp

149:                                              ; preds = %145
  %150 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %151 unwind label %.loopexit.loopexit.split-lp

151:                                              ; preds = %149
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull @.str.41)
          to label %.invoke331 unwind label %.loopexit.loopexit.split-lp

153:                                              ; preds = %139
  %154 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.42)
  br i1 %154, label %155, label %444

155:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  %156 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %157 unwind label %.loopexit134

157:                                              ; preds = %155
  %158 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.43)
  br i1 %158, label %159, label %234

159:                                              ; preds = %157
  %160 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %161 unwind label %.loopexit134

161:                                              ; preds = %159
  %162 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %163 unwind label %.loopexit134

163:                                              ; preds = %161
  %164 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %165 unwind label %.loopexit134

165:                                              ; preds = %163
  %166 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.15)
  br i1 %166, label %179, label %167

.loopexit134:                                     ; preds = %155, %159, %161, %163
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %443

.loopexit.split-lp135:                            ; preds = %234
  %lpad.loopexit.split-lp136 = landingpad { ptr, i32 }
          cleanup
  br label %443

.loopexit138:                                     ; preds = %171, %173, %175, %177
  %lpad.loopexit140 = landingpad { ptr, i32 }
          cleanup
  br label %443

.loopexit.split-lp139:                            ; preds = %179, %185, %187, %189, %191
  %lpad.loopexit.split-lp141 = landingpad { ptr, i32 }
          cleanup
  br label %443

167:                                              ; preds = %165
  %168 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.17)
  br i1 %168, label %179, label %169

169:                                              ; preds = %167
  %170 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.20)
  br i1 %170, label %179, label %171

171:                                              ; preds = %169
  %172 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %173 unwind label %.loopexit138

173:                                              ; preds = %171
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull @.str.44)
          to label %175 unwind label %.loopexit138

175:                                              ; preds = %173
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %177 unwind label %.loopexit138

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.critedge unwind label %.loopexit138, !llvm.loop !32

179:                                              ; preds = %169, %167, %165
  %.088 = phi i32 [ 3, %165 ], [ 4, %167 ], [ 10, %169 ]
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %180 unwind label %.loopexit.split-lp139

180:                                              ; preds = %179
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %181 unwind label %193

181:                                              ; preds = %180
  %182 = invoke noundef i32 @_ZN8OpenMesh2IO17get_property_typeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr noundef nonnull %15, ptr noundef nonnull %16)
          to label %183 unwind label %195

183:                                              ; preds = %181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  %184 = icmp eq i32 %182, 0
  br i1 %184, label %185, label %198

185:                                              ; preds = %183
  %186 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %187 unwind label %.loopexit.split-lp139

187:                                              ; preds = %185
  %188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %186, ptr noundef nonnull @.str.45)
          to label %189 unwind label %.loopexit.split-lp139

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %191 unwind label %.loopexit.split-lp139

191:                                              ; preds = %189
  %192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %198 unwind label %.loopexit.split-lp139

193:                                              ; preds = %180
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %197

195:                                              ; preds = %181
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %197

197:                                              ; preds = %195, %193
  %.pn116 = phi { ptr, i32 } [ %196, %195 ], [ %194, %193 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %443

198:                                              ; preds = %191, %183
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %17) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(44) %17, i32 noundef 12, i32 noundef %182, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %199 unwind label %201

199:                                              ; preds = %198
  store i32 %.088, ptr %128, align 8, !tbaa !34
  %200 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.39)
  br i1 %200, label %.invoke279, label %205

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

203:                                              ; preds = %.invoke279, %231, %229, %227, %225, %223, %221, %217, %215, %213
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %17) #6
  br label %233

205:                                              ; preds = %199
  %206 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.40)
  br i1 %206, label %207, label %221

207:                                              ; preds = %205
  %208 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.46)
  br i1 %208, label %211, label %209

209:                                              ; preds = %207
  %210 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.47)
  br i1 %210, label %211, label %.invoke279

211:                                              ; preds = %209, %207
  store i32 13, ptr %17, align 8, !tbaa !39
  %212 = call noundef zeroext i1 @_ZNKSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  br i1 %212, label %.invoke279, label %213

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %215 unwind label %203

215:                                              ; preds = %213
  %216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %214, ptr noundef nonnull @.str.48)
          to label %217 unwind label %203

217:                                              ; preds = %215
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %216, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %219 unwind label %203

219:                                              ; preds = %217
  call void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  br label %.invoke279

.invoke279:                                       ; preds = %199, %209, %219, %211
  %220 = phi ptr [ %48, %211 ], [ %48, %219 ], [ %48, %209 ], [ %47, %199 ]
  invoke void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %220, ptr noundef nonnull align 8 dereferenceable(44) %17)
          to label %.thread unwind label %203

221:                                              ; preds = %205
  %222 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %223 unwind label %203

223:                                              ; preds = %221
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull @.str.49)
          to label %225 unwind label %203

225:                                              ; preds = %223
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %227 unwind label %203

227:                                              ; preds = %225
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %226, ptr noundef nonnull @.str.50)
          to label %229 unwind label %203

229:                                              ; preds = %227
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %231 unwind label %203

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.thread unwind label %203

.thread:                                          ; preds = %.invoke279, %231
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %17) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #6
  br label %442

233:                                              ; preds = %203, %201
  %.pn118 = phi { ptr, i32 } [ %204, %203 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #6
  br label %443

234:                                              ; preds = %157
  %235 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %236 unwind label %.loopexit.split-lp135

236:                                              ; preds = %234
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %237 unwind label %254

237:                                              ; preds = %236
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %238 unwind label %256

238:                                              ; preds = %237
  %239 = invoke noundef i32 @_ZN8OpenMesh2IO17get_property_typeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr noundef nonnull %18, ptr noundef nonnull %19)
          to label %240 unwind label %258

240:                                              ; preds = %238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %241 unwind label %261

241:                                              ; preds = %240
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %242 unwind label %263

242:                                              ; preds = %241
  invoke void @_ZN8OpenMesh2IO17get_property_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull %21, ptr noundef nonnull %22)
          to label %243 unwind label %265

243:                                              ; preds = %242
  %244 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %23) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(44) %23)
          to label %245 unwind label %269

245:                                              ; preds = %243
  %246 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.39)
  br i1 %246, label %247, label %415

247:                                              ; preds = %245
  %248 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.51)
  br i1 %248, label %249, label %275

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %24) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %24, i32 noundef 0, i32 noundef %239)
          to label %250 unwind label %273

250:                                              ; preds = %249
  %251 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %24) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %24) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #6
  %252 = load i32, ptr %76, align 4, !tbaa !29
  %253 = add i32 %252, 1
  store i32 %253, ptr %76, align 4, !tbaa !29
  br label %415

254:                                              ; preds = %236
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %443

256:                                              ; preds = %237
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %260

258:                                              ; preds = %238
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %260

260:                                              ; preds = %258, %256
  %.pn = phi { ptr, i32 } [ %259, %258 ], [ %257, %256 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %443

261:                                              ; preds = %240
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %268

263:                                              ; preds = %241
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %242
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %267

267:                                              ; preds = %265, %263
  %.pn109 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %268

268:                                              ; preds = %267, %261
  %.pn109.pn = phi { ptr, i32 } [ %.pn109, %267 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %443

269:                                              ; preds = %243
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %441

271:                                              ; preds = %.invoke280, %437, %435, %433, %431
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %440

273:                                              ; preds = %249
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #6
  br label %440

275:                                              ; preds = %247
  %276 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.52)
  br i1 %276, label %277, label %284

277:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %25) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %25, i32 noundef 1, i32 noundef %239)
          to label %278 unwind label %282

278:                                              ; preds = %277
  %279 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %25) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %25) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #6
  %280 = load i32, ptr %76, align 4, !tbaa !29
  %281 = add i32 %280, 1
  store i32 %281, ptr %76, align 4, !tbaa !29
  br label %415

282:                                              ; preds = %277
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #6
  br label %440

284:                                              ; preds = %275
  %285 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.53)
  br i1 %285, label %286, label %293

286:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %26) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %26, i32 noundef 2, i32 noundef %239)
          to label %287 unwind label %291

287:                                              ; preds = %286
  %288 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %26) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %26) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #6
  %289 = load i32, ptr %76, align 4, !tbaa !29
  %290 = add i32 %289, 1
  store i32 %290, ptr %76, align 4, !tbaa !29
  br label %415

291:                                              ; preds = %286
  %292 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #6
  br label %440

293:                                              ; preds = %284
  %294 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.54)
  br i1 %294, label %295, label %301

295:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %27) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %27, i32 noundef 9, i32 noundef %239)
          to label %296 unwind label %299

296:                                              ; preds = %295
  %297 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %27) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %27) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %27) #6
  %298 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 16)
  br label %415

299:                                              ; preds = %295
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %27) #6
  br label %440

301:                                              ; preds = %293
  %302 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.55)
  br i1 %302, label %303, label %309

303:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %28, i32 noundef 10, i32 noundef %239)
          to label %304 unwind label %307

304:                                              ; preds = %303
  %305 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %28) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %28) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #6
  %306 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 16)
  br label %415

307:                                              ; preds = %303
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #6
  br label %440

309:                                              ; preds = %301
  %310 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.56)
  br i1 %310, label %311, label %317

311:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %29) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %29, i32 noundef 11, i32 noundef %239)
          to label %312 unwind label %315

312:                                              ; preds = %311
  %313 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %29) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %29) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %29) #6
  %314 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 16)
  br label %415

315:                                              ; preds = %311
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %29) #6
  br label %440

317:                                              ; preds = %309
  %318 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.57)
  br i1 %318, label %321, label %319

319:                                              ; preds = %317
  %320 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.58)
  br i1 %320, label %321, label %327

321:                                              ; preds = %319, %317
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %30) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %30, i32 noundef 3, i32 noundef %239)
          to label %322 unwind label %325

322:                                              ; preds = %321
  %323 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %30) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %30) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #6
  %324 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 64)
  br label %415

325:                                              ; preds = %321
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #6
  br label %440

327:                                              ; preds = %319
  %328 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.59)
  br i1 %328, label %331, label %329

329:                                              ; preds = %327
  %330 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.60)
  br i1 %330, label %331, label %337

331:                                              ; preds = %329, %327
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %31) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %31, i32 noundef 4, i32 noundef %239)
          to label %332 unwind label %335

332:                                              ; preds = %331
  %333 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %31) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %31) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #6
  %334 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 64)
  br label %415

335:                                              ; preds = %331
  %336 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #6
  br label %440

337:                                              ; preds = %329
  %338 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.61)
  br i1 %338, label %339, label %348

339:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %32) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %32, i32 noundef 5, i32 noundef %239)
          to label %340 unwind label %346

340:                                              ; preds = %339
  %341 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %32) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %32) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %32) #6
  %342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %343 = add i32 %239, -13
  %or.cond = icmp ult i32 %343, 2
  br i1 %or.cond, label %344, label %415

344:                                              ; preds = %340
  %345 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

346:                                              ; preds = %339
  %347 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %32) #6
  br label %440

348:                                              ; preds = %337
  %349 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.62)
  br i1 %349, label %350, label %359

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %33) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %33, i32 noundef 6, i32 noundef %239)
          to label %351 unwind label %357

351:                                              ; preds = %350
  %352 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %33) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %33) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #6
  %353 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %354 = add i32 %239, -13
  %or.cond3 = icmp ult i32 %354, 2
  br i1 %or.cond3, label %355, label %415

355:                                              ; preds = %351
  %356 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

357:                                              ; preds = %350
  %358 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #6
  br label %440

359:                                              ; preds = %348
  %360 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.63)
  br i1 %360, label %361, label %370

361:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %34) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %34, i32 noundef 7, i32 noundef %239)
          to label %362 unwind label %368

362:                                              ; preds = %361
  %363 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %34) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %34) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #6
  %364 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %365 = add i32 %239, -13
  %or.cond5 = icmp ult i32 %365, 2
  br i1 %or.cond5, label %366, label %415

366:                                              ; preds = %362
  %367 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

368:                                              ; preds = %361
  %369 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #6
  br label %440

370:                                              ; preds = %359
  %371 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.64)
  br i1 %371, label %372, label %381

372:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %35) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %35, i32 noundef 5, i32 noundef %239)
          to label %373 unwind label %379

373:                                              ; preds = %372
  %374 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %35) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %35) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %35) #6
  %375 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %376 = add i32 %239, -13
  %or.cond7 = icmp ult i32 %376, 2
  br i1 %or.cond7, label %377, label %415

377:                                              ; preds = %373
  %378 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

379:                                              ; preds = %372
  %380 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %35) #6
  br label %440

381:                                              ; preds = %370
  %382 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.65)
  br i1 %382, label %383, label %392

383:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %36) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %36, i32 noundef 6, i32 noundef %239)
          to label %384 unwind label %390

384:                                              ; preds = %383
  %385 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %36) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %36) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %36) #6
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %387 = add i32 %239, -13
  %or.cond9 = icmp ult i32 %387, 2
  br i1 %or.cond9, label %388, label %415

388:                                              ; preds = %384
  %389 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

390:                                              ; preds = %383
  %391 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %36) #6
  br label %440

392:                                              ; preds = %381
  %393 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.66)
  br i1 %393, label %394, label %403

394:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %37) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %37, i32 noundef 7, i32 noundef %239)
          to label %395 unwind label %401

395:                                              ; preds = %394
  %396 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %37) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %37) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %37) #6
  %397 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %398 = add i32 %239, -13
  %or.cond11 = icmp ult i32 %398, 2
  br i1 %or.cond11, label %399, label %415

399:                                              ; preds = %395
  %400 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

401:                                              ; preds = %394
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %37) #6
  br label %440

403:                                              ; preds = %392
  %404 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.67)
  br i1 %404, label %405, label %415

405:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %38) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeE(ptr noundef nonnull align 8 dereferenceable(44) %38, i32 noundef 8, i32 noundef %239)
          to label %406 unwind label %413

406:                                              ; preds = %405
  %407 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %38) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %38) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %38) #6
  %408 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 32)
  %409 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 2048)
  %410 = add i32 %239, -13
  %or.cond13 = icmp ult i32 %410, 2
  br i1 %or.cond13, label %411, label %415

411:                                              ; preds = %406
  %412 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 4096)
  br label %415

413:                                              ; preds = %405
  %414 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %38) #6
  br label %440

415:                                              ; preds = %250, %287, %304, %322, %340, %344, %362, %366, %384, %388, %403, %406, %411, %399, %395, %377, %373, %355, %351, %332, %312, %296, %278, %245
  %416 = load i32, ptr %127, align 4, !tbaa !40
  %417 = icmp eq i32 %416, 0
  br i1 %417, label %418, label %424

418:                                              ; preds = %415
  %419 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionspLEi(ptr noundef nonnull align 4 dereferenceable(4) %46, i32 noundef 8192)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %39) #6
  invoke void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(44) %39, i32 noundef 12, i32 noundef %239, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %420 unwind label %422

420:                                              ; preds = %418
  %421 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoaSEOS2_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %39) #6
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %39) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %39) #6
  br label %424

422:                                              ; preds = %418
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %39) #6
  br label %440

424:                                              ; preds = %420, %415
  %425 = load i32, ptr %23, align 8, !tbaa !39
  %.not = icmp eq i32 %425, 14
  br i1 %.not, label %439, label %426

426:                                              ; preds = %424
  %427 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.39)
  br i1 %427, label %.invoke280, label %428

428:                                              ; preds = %426
  %429 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.40)
  br i1 %429, label %.invoke280, label %431

.invoke280:                                       ; preds = %428, %426
  %430 = phi ptr [ %47, %426 ], [ %48, %428 ]
  invoke void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %430, ptr noundef nonnull align 8 dereferenceable(44) %23)
          to label %439 unwind label %271

431:                                              ; preds = %428
  %432 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %433 unwind label %271

433:                                              ; preds = %431
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull @.str.68)
          to label %435 unwind label %271

435:                                              ; preds = %433
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %437 unwind label %271

437:                                              ; preds = %435
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %439 unwind label %271

439:                                              ; preds = %.invoke280, %437, %424
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %23) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #6
  br label %442

440:                                              ; preds = %422, %413, %401, %390, %379, %368, %357, %346, %335, %325, %315, %307, %299, %291, %282, %273, %271
  %.pn112 = phi { ptr, i32 } [ %272, %271 ], [ %423, %422 ], [ %274, %273 ], [ %283, %282 ], [ %292, %291 ], [ %300, %299 ], [ %308, %307 ], [ %316, %315 ], [ %326, %325 ], [ %336, %335 ], [ %347, %346 ], [ %358, %357 ], [ %369, %368 ], [ %380, %379 ], [ %391, %390 ], [ %402, %401 ], [ %414, %413 ]
  call void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %23) #6
  br label %441

441:                                              ; preds = %440, %269
  %.pn112.pn = phi { ptr, i32 } [ %.pn112, %440 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #6
  br label %443

442:                                              ; preds = %439, %.thread
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  br label %452

443:                                              ; preds = %.loopexit138, %.loopexit.split-lp139, %.loopexit134, %.loopexit.split-lp135, %254, %260, %268, %441, %197, %233
  %.pn118.pn.pn = phi { ptr, i32 } [ %.pn118, %233 ], [ %.pn116, %197 ], [ %.pn112.pn, %441 ], [ %.pn109.pn, %268 ], [ %.pn, %260 ], [ %255, %254 ], [ %lpad.loopexit, %.loopexit134 ], [ %lpad.loopexit.split-lp136, %.loopexit.split-lp135 ], [ %lpad.loopexit140, %.loopexit138 ], [ %lpad.loopexit.split-lp141, %.loopexit.split-lp139 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  br label %.loopexit

444:                                              ; preds = %153
  %445 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omlogv()
          to label %446 unwind label %.loopexit.loopexit.split-lp

446:                                              ; preds = %444
  %447 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %445, ptr noundef nonnull @.str.69)
          to label %.invoke331 unwind label %.loopexit.loopexit.split-lp

.invoke331:                                       ; preds = %446, %151
  %448 = phi ptr [ %152, %151 ], [ %447, %446 ]
  %449 = phi ptr [ %6, %151 ], [ %4, %446 ]
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef nonnull align 8 dereferenceable(32) %449)
          to label %.invoke328 unwind label %.loopexit.loopexit.split-lp

.invoke328:                                       ; preds = %.invoke331
  %451 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %452 unwind label %.loopexit.loopexit.split-lp

452:                                              ; preds = %.invoke328, %.invoke278, %442, %135
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #6
  %453 = invoke { i64, i64 } @_ZNSi5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %1)
          to label %454 unwind label %471

454:                                              ; preds = %452
  %455 = extractvalue { i64, i64 } %453, 0
  store i64 %455, ptr %40, align 8
  %456 = extractvalue { i64, i64 } %453, 1
  store i64 %456, ptr %129, align 8
  %457 = call noundef i64 @_ZNKSt4fposI11__mbstate_tEcvlEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #6
  %458 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %459 unwind label %.loopexit.loopexit.split-lp

459:                                              ; preds = %454
  %460 = load ptr, ptr %1, align 8, !tbaa !30
  %461 = getelementptr i8, ptr %460, i64 -24
  %462 = load i64, ptr %461, align 8
  %463 = getelementptr inbounds i8, ptr %1, i64 %462
  %464 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv(ptr noundef nonnull align 8 dereferenceable(264) %463)
  br i1 %464, label %465, label %.outer, !llvm.loop !32

465:                                              ; preds = %459
  %466 = invoke noundef nonnull align 8 dereferenceable(224) ptr @_Z5omerrv()
          to label %467 unwind label %.loopexit.split-lp

467:                                              ; preds = %465
  %468 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %466, ptr noundef nonnull @.str.70)
          to label %469 unwind label %.loopexit.split-lp

469:                                              ; preds = %467
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %468, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %495 unwind label %.loopexit.split-lp

471:                                              ; preds = %452
  %472 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #6
  br label %.loopexit

473:                                              ; preds = %132
  %474 = call noundef zeroext i1 @_ZNK8OpenMesh2IO7Options9is_binaryEv(ptr noundef nonnull align 4 dereferenceable(4) %46)
  br i1 %474, label %475, label %495

475:                                              ; preds = %473
  call void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16) %41, i64 noundef %.089.ph)
  %476 = load i64, ptr %41, align 8
  %477 = getelementptr inbounds i8, ptr %41, i64 8
  %478 = load i64, ptr %477, align 8
  %479 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16) %1, i64 %476, i64 %478)
          to label %480 unwind label %.loopexit.split-lp

480:                                              ; preds = %475
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #6
  store i8 0, ptr %42, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #6
  store i8 0, ptr %43, align 1, !tbaa !5
  %481 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi3getERc(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %482 unwind label %492

482:                                              ; preds = %480
  %483 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi3getERc(ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %.invoke281 unwind label %492

.invoke281:                                       ; preds = %482
  %484 = load i8, ptr %42, align 1, !tbaa !5
  %485 = icmp eq i8 %484, 13
  %486 = load i8, ptr %43, align 1
  %487 = icmp eq i8 %486, 10
  %or.cond16 = select i1 %485, i1 %487, i1 false
  %. = select i1 %or.cond16, i64 14, i64 12
  %.332 = select i1 %or.cond16, ptr %44, ptr %45
  %488 = add nsw i64 %.089.ph, %.
  call void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16) %.332, i64 noundef %488)
  %489 = load i64, ptr %.332, align 8
  %.332.sroa.sel.v = select i1 %or.cond16, ptr %44, ptr %45
  %.332.sroa.sel = getelementptr inbounds i8, ptr %.332.sroa.sel.v, i64 8
  %490 = load i64, ptr %.332.sroa.sel, align 8
  %491 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16) %1, i64 %489, i64 %490)
          to label %494 unwind label %492

492:                                              ; preds = %.invoke281, %482, %480
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #6
  br label %.loopexit

494:                                              ; preds = %.invoke281
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #6
  br label %495

495:                                              ; preds = %473, %494, %469
  %.0 = xor i1 %131, true
  br label %496

496:                                              ; preds = %.invoke, %495
  %.1 = phi i1 [ %.0, %495 ], [ false, %.invoke ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  br label %498

.loopexit:                                        ; preds = %.loopexit.split-lp, %.loopexit.loopexit.split-lp, %.loopexit.loopexit, %137, %443, %471, %492, %95
  %.pn124 = phi { ptr, i32 } [ %96, %95 ], [ %472, %471 ], [ %.pn118.pn.pn, %443 ], [ %493, %492 ], [ %138, %137 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit131, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp132, %.loopexit.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %497

497:                                              ; preds = %.loopexit, %93
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %.loopexit ], [ %94, %93 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  br label %499

498:                                              ; preds = %72, %496
  %.2 = phi i1 [ %.1, %496 ], [ false, %72 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  ret i1 %.2

499:                                              ; preds = %65, %497, %63
  %.pn124.pn.pn.pn = phi { ptr, i32 } [ %64, %63 ], [ %.pn124.pn, %497 ], [ %66, %65 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  resume { ptr, i32 } %.pn124.pn.pn.pn
}

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERf(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERj(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN8OpenMesh2IO17get_property_typeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8OpenMesh2IO7Options7cleanupEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(32) ptr @_ZN8OpenMesh2IOL4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #4 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8OpenMesh2IO7OptionsmIEi(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8OpenMesh2IO11_PLYReader_12PropertyInfoC2ENS1_8PropertyENS1_9ValueTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(44), i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 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 #4 align 2

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

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

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

declare noundef nonnull align 8 dereferenceable(224) ptr @_Z5omlogv() local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi5seekgESt4fposI11__mbstate_tE(ptr noundef nonnull align 8 dereferenceable(16), i64, i64) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt4fposI11__mbstate_tEC2El(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) unnamed_addr #4 align 2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi3getERc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { 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 #6 = { 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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !12, i64 24}
!9 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_E", !10, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !12, i64 24, !12, i64 28, !13, i64 32, !12, i64 36, !14, i64 40, !24, i64 88, !24, i64 112}
!10 = !{!"_ZTSN8OpenMesh2IO10BaseReaderE"}
!11 = !{!"_ZTSN8OpenMesh2IO7OptionsE", !12, i64 0}
!12 = !{!"int", !6, i64 0}
!13 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_9ValueTypeE", !6, i64 0}
!14 = !{!"_ZTSSt3mapIN8OpenMesh2IO11_PLYReader_9ValueTypeEiSt4lessIS3_ESaISt4pairIKS3_iEEE", !15, i64 0}
!15 = !{!"_ZTSSt8_Rb_treeIN8OpenMesh2IO11_PLYReader_9ValueTypeESt4pairIKS3_iESt10_Select1stIS6_ESt4lessIS3_ESaIS6_EE", !16, i64 0}
!16 = !{!"_ZTSNSt8_Rb_treeIN8OpenMesh2IO11_PLYReader_9ValueTypeESt4pairIKS3_iESt10_Select1stIS6_ESt4lessIS3_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !17, i64 0, !19, i64 8}
!17 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN8OpenMesh2IO11_PLYReader_9ValueTypeEEE", !18, i64 0}
!18 = !{!"_ZTSSt4lessIN8OpenMesh2IO11_PLYReader_9ValueTypeEE"}
!19 = !{!"_ZTSSt15_Rb_tree_header", !20, i64 0, !23, i64 32}
!20 = !{!"_ZTSSt18_Rb_tree_node_base", !21, i64 0, !22, i64 8, !22, i64 16, !22, i64 24}
!21 = !{!"_ZTSSt14_Rb_tree_color", !6, i64 0}
!22 = !{!"any pointer", !6, i64 0}
!23 = !{!"long", !6, i64 0}
!24 = !{!"_ZTSSt6vectorIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN8OpenMesh2IO11_PLYReader_12PropertyInfoESaIS3_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!28 = !{!9, !12, i64 28}
!29 = !{!9, !12, i64 36}
!30 = !{!31, !31, i64 0}
!31 = !{!"vtable pointer", !7, i64 0}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{!35, !13, i64 40}
!35 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_12PropertyInfoE", !36, i64 0, !13, i64 4, !37, i64 8, !13, i64 40}
!36 = !{!"_ZTSN8OpenMesh2IO11_PLYReader_8PropertyE", !6, i64 0}
!37 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !38, i64 0, !23, i64 8, !6, i64 16}
!38 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !22, i64 0}
!39 = !{!35, !36, i64 0}
!40 = !{!35, !13, i64 4}


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