; LLVM IR from niessner/Matterport :: code/gaps/apps/mpview/mp.ll (ZNK7MPHouse14WriteAsciiFileEPKc)

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

%struct.MPHouse = type { %class.RNArray.0, %class.RNArray.1, %class.RNArray.2, %class.RNArray.3, %class.RNArray.4, %class.RNArray.5, %class.RNArray.6, %class.RNArray.7, %class.RNArray.8, %class.RNArray.9, %class.RGBDConfiguration, ptr, ptr, %class.R3Box, ptr, ptr }
%class.RNArray.0 = type { %class.RNVArray }
%class.RNVArray = type { ptr, i32, i32 }
%class.RNArray.1 = type { %class.RNVArray }
%class.RNArray.2 = type { %class.RNVArray }
%class.RNArray.3 = type { %class.RNVArray }
%class.RNArray.4 = type { %class.RNVArray }
%class.RNArray.5 = type { %class.RNVArray }
%class.RNArray.6 = type { %class.RNVArray }
%class.RNArray.7 = type { %class.RNVArray }
%class.RNArray.8 = type { %class.RNVArray }
%class.RNArray.9 = type { %class.RNVArray }
%class.RGBDConfiguration = type { ptr, %class.RNArray.10, %class.RNArray.11, ptr, ptr, ptr, ptr, %class.R3Box }
%class.RNArray.10 = type { %class.RNVArray }
%class.RNArray.11 = type { %class.RNVArray }
%class.R3Box = type { %class.R3Solid, %class.R3Point, %class.R3Point }
%class.R3Solid = type { %class.R3Shape }
%class.R3Shape = type { ptr }
%class.R3Point = type { [3 x double] }
%struct.MPLevel = type { ptr, i32, %class.RNArray.7, %class.R3Point, %class.R3Box, ptr }
%struct.MPRegion = type { ptr, i32, ptr, i32, %class.RNArray.1, %class.RNArray.6, %class.RNArray.4, %class.RNArray.8, %class.R3Point, double, %class.R3Box, ptr }
%struct.MPPortal = type { ptr, i32, [2 x ptr], [2 x i32], %class.R3Span, ptr }
%class.R3Span = type { %class.R3Ray, %class.R3Point, double }
%class.R3Ray = type { %class.R3Line }
%class.R3Line = type { %class.R3Point, %class.R3Vector }
%class.R3Vector = type { [3 x double] }
%struct.MPSurface = type { ptr, i32, ptr, i32, %class.RNArray.5, %class.R3Point, %class.R3Vector, %class.R3Box, ptr }
%struct.MPVertex = type { ptr, i32, ptr, i32, %class.R3Point, %class.R3Vector, ptr }
%struct.MPPanorama = type { ptr, i32, ptr, i32, ptr, %class.RNArray.0, %class.R3Point }
%struct.MPImage = type { ptr, i32, ptr, i32, ptr, i32, i32, %class.RGBDImage, %class.R4Matrix, %class.R3Matrix, i32, i32, %class.R3Point }
%class.RGBDImage = type { ptr, ptr, i32, %class.RNArray, i32, i32, %class.R3Affine, %class.R3Matrix, %class.R3Box, i32, ptr, ptr, ptr, i32, i32 }
%class.RNArray = type { %class.RNVArray }
%class.R3Affine = type { %class.R3Transformation, %class.R4Matrix, %class.R4Matrix, %class.RNFlags }
%class.R3Transformation = type { ptr }
%class.RNFlags = type { i64 }
%class.R4Matrix = type { [4 x [4 x double]] }
%class.R3Matrix = type { [3 x [3 x double]] }
%struct.MPCategory = type { ptr, i32, %class.RNArray.4, i32, ptr, i32, ptr }
%struct.MPObject = type { ptr, i32, ptr, i32, ptr, i32, %class.RNArray.3, %class.R3Point, %class.R3OrientedBox }
%class.R3OrientedBox = type { %class.R3Solid, %class.R3CoordSystem, [3 x double] }
%class.R3CoordSystem = type { %class.R3Point, %class.R3Triad }
%class.R3Triad = type { [3 x %class.R3Vector] }
%struct.MPSegment = type <{ ptr, i32, [4 x i8], ptr, i32, [4 x i8], ptr, %class.RNArray.12, double, %class.R3Point, %class.R3Box, i32, [4 x i8] }>
%class.RNArray.12 = type { %class.RNVArray }

@stderr = external global ptr, align 8
@.str.9 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

declare noalias ptr @fopen(ptr noundef, ptr noundef) #4

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #5

declare i32 @fclose(ptr noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZNK7MPHouse14WriteAsciiFileEPKc(ptr noundef nonnull align 8 dereferenceable(376) %0, ptr noundef %1) #2 align 2 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca [1024 x i8], align 16
  %38 = alloca [1024 x i8], align 16
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %48 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %49 = load ptr, ptr %5, align 8, !tbaa !5
  %50 = call noalias ptr @fopen(ptr noundef %49, ptr noundef @.str.41)
  store ptr %50, ptr %6, align 8, !tbaa !5
  %51 = load ptr, ptr %6, align 8, !tbaa !5
  %52 = icmp ne ptr %51, null
  br i1 %52, label %57, label %53

53:                                               ; preds = %2
  %54 = load ptr, ptr @stderr, align 8, !tbaa !5
  %55 = load ptr, ptr %5, align 8, !tbaa !5
  %56 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef @.str.9, ptr noundef %55) #6
  store i32 0, ptr %3, align 4
  store i32 1, ptr %7, align 4
  br label %1232

57:                                               ; preds = %2
  %58 = load ptr, ptr %6, align 8, !tbaa !5
  %59 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %58, ptr noundef @.str.42) #6
  %60 = load ptr, ptr %6, align 8, !tbaa !5
  %61 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %60, ptr noundef @.str.43) #6
  %62 = load ptr, ptr %6, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 15
  %64 = load ptr, ptr %63, align 8, !tbaa !9
  %65 = icmp ne ptr %64, null
  br i1 %65, label %66, label %69

66:                                               ; preds = %57
  %67 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 15
  %68 = load ptr, ptr %67, align 8, !tbaa !9
  br label %70

69:                                               ; preds = %57
  br label %70

70:                                               ; preds = %69, %66
  %71 = phi ptr [ %68, %66 ], [ @.str.15, %69 ]
  %72 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef @.str.44, ptr noundef %71) #6
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 14
  %75 = load ptr, ptr %74, align 8, !tbaa !30
  %76 = icmp ne ptr %75, null
  br i1 %76, label %77, label %80

77:                                               ; preds = %70
  %78 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 14
  %79 = load ptr, ptr %78, align 8, !tbaa !30
  br label %81

80:                                               ; preds = %70
  br label %81

81:                                               ; preds = %80, %77
  %82 = phi ptr [ %79, %77 ], [ @.str.15, %80 ]
  %83 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %73, ptr noundef @.str.44, ptr noundef %82) #6
  %84 = load ptr, ptr %6, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 0
  %86 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %85)
  %87 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %84, ptr noundef @.str.45, i32 noundef %86) #6
  %88 = load ptr, ptr %6, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 1
  %90 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %89)
  %91 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %88, ptr noundef @.str.45, i32 noundef %90) #6
  %92 = load ptr, ptr %6, align 8, !tbaa !5
  %93 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 5
  %94 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
  %95 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef @.str.45, i32 noundef %94) #6
  %96 = load ptr, ptr %6, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 6
  %98 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %97)
  %99 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef @.str.45, i32 noundef %98) #6
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 3
  %102 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %101)
  %103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %100, ptr noundef @.str.45, i32 noundef %102) #6
  %104 = load ptr, ptr %6, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 4
  %106 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %105)
  %107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %104, ptr noundef @.str.45, i32 noundef %106) #6
  %108 = load ptr, ptr %6, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 2
  %110 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %109)
  %111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef @.str.45, i32 noundef %110) #6
  %112 = load ptr, ptr %6, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 7
  %114 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %113)
  %115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %112, ptr noundef @.str.45, i32 noundef %114) #6
  %116 = load ptr, ptr %6, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 8
  %118 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %117)
  %119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %116, ptr noundef @.str.46, i32 noundef %118) #6
  %120 = load ptr, ptr %6, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 9
  %122 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %121)
  %123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef @.str.46, i32 noundef %122) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #6
  store i32 0, ptr %8, align 4, !tbaa !31
  br label %124

124:                                              ; preds = %131, %81
  %125 = load i32, ptr %8, align 4, !tbaa !31
  %126 = icmp slt i32 %125, 5
  br i1 %126, label %128, label %127

127:                                              ; preds = %124
  store i32 2, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  br label %134

128:                                              ; preds = %124
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  %130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef @.str.47) #6
  br label %131

131:                                              ; preds = %128
  %132 = load i32, ptr %8, align 4, !tbaa !31
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr %8, align 4, !tbaa !31
  br label %124, !llvm.loop !32

134:                                              ; preds = %127
  %135 = load ptr, ptr %6, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 13
  %137 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %136, i32 noundef 0)
  %138 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %137, i32 noundef 0)
  %139 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 13
  %140 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %139, i32 noundef 0)
  %141 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %140, i32 noundef 1)
  %142 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 13
  %143 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %142, i32 noundef 0)
  %144 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %143, i32 noundef 2)
  %145 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 13
  %146 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 1)
  %147 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %146, i32 noundef 0)
  %148 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 13
  %149 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %148, i32 noundef 1)
  %150 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %149, i32 noundef 1)
  %151 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 13
  %152 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %151, i32 noundef 1)
  %153 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %152, i32 noundef 2)
  %154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef @.str.48, double noundef %138, double noundef %141, double noundef %144, double noundef %147, double noundef %150, double noundef %153) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  store i32 0, ptr %9, align 4, !tbaa !31
  br label %155

155:                                              ; preds = %162, %134
  %156 = load i32, ptr %9, align 4, !tbaa !31
  %157 = icmp slt i32 %156, 5
  br i1 %157, label %159, label %158

158:                                              ; preds = %155
  store i32 5, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  br label %165

159:                                              ; preds = %155
  %160 = load ptr, ptr %6, align 8, !tbaa !5
  %161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef @.str.47) #6
  br label %162

162:                                              ; preds = %159
  %163 = load i32, ptr %9, align 4, !tbaa !31
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr %9, align 4, !tbaa !31
  br label %155, !llvm.loop !34

165:                                              ; preds = %158
  %166 = load ptr, ptr %6, align 8, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef @.str.49) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  store i32 0, ptr %10, align 4, !tbaa !31
  br label %168

168:                                              ; preds = %256, %165
  %169 = load i32, ptr %10, align 4, !tbaa !31
  %170 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 9
  %171 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %170)
  %172 = icmp slt i32 %169, %171
  br i1 %172, label %174, label %173

173:                                              ; preds = %168
  store i32 8, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  br label %259

174:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %175 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 9
  %176 = load i32, ptr %10, align 4, !tbaa !31
  %177 = call noundef ptr @_ZNK7RNArrayIP7MPLevelE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %175, i32 noundef %176)
  store ptr %177, ptr %11, align 8, !tbaa !5
  %178 = load ptr, ptr %6, align 8, !tbaa !5
  %179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef @.str.50) #6
  %180 = load ptr, ptr %6, align 8, !tbaa !5
  %181 = load ptr, ptr %11, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.MPLevel, ptr %181, i32 0, i32 1
  %183 = load i32, ptr %182, align 8, !tbaa !35
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %180, ptr noundef @.str.46, i32 noundef %183) #6
  %185 = load ptr, ptr %6, align 8, !tbaa !5
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %185, ptr noundef @.str.51) #6
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = load ptr, ptr %11, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.MPLevel, ptr %188, i32 0, i32 5
  %190 = load ptr, ptr %189, align 8, !tbaa !37
  %191 = icmp ne ptr %190, null
  br i1 %191, label %192, label %196

192:                                              ; preds = %174
  %193 = load ptr, ptr %11, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.MPLevel, ptr %193, i32 0, i32 5
  %195 = load ptr, ptr %194, align 8, !tbaa !37
  br label %197

196:                                              ; preds = %174
  br label %197

197:                                              ; preds = %196, %192
  %198 = phi ptr [ %195, %192 ], [ @.str.15, %196 ]
  %199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %187, ptr noundef @.str.44, ptr noundef %198) #6
  %200 = load ptr, ptr %6, align 8, !tbaa !5
  %201 = load ptr, ptr %11, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.MPLevel, ptr %201, i32 0, i32 3
  %203 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %202)
  %204 = load ptr, ptr %11, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.MPLevel, ptr %204, i32 0, i32 3
  %206 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %205)
  %207 = load ptr, ptr %11, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.MPLevel, ptr %207, i32 0, i32 3
  %209 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %208)
  %210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef @.str.52, double noundef %203, double noundef %206, double noundef %209) #6
  %211 = load ptr, ptr %6, align 8, !tbaa !5
  %212 = load ptr, ptr %11, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.MPLevel, ptr %212, i32 0, i32 4
  %214 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %213, i32 noundef 0)
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %214, i32 noundef 0)
  %216 = load double, ptr %215, align 8, !tbaa !38
  %217 = load ptr, ptr %11, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.MPLevel, ptr %217, i32 0, i32 4
  %219 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %218, i32 noundef 0)
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %219, i32 noundef 1)
  %221 = load double, ptr %220, align 8, !tbaa !38
  %222 = load ptr, ptr %11, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.MPLevel, ptr %222, i32 0, i32 4
  %224 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %223, i32 noundef 0)
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %224, i32 noundef 2)
  %226 = load double, ptr %225, align 8, !tbaa !38
  %227 = load ptr, ptr %11, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.MPLevel, ptr %227, i32 0, i32 4
  %229 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %228, i32 noundef 1)
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %229, i32 noundef 0)
  %231 = load double, ptr %230, align 8, !tbaa !38
  %232 = load ptr, ptr %11, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.MPLevel, ptr %232, i32 0, i32 4
  %234 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %233, i32 noundef 1)
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %234, i32 noundef 1)
  %236 = load double, ptr %235, align 8, !tbaa !38
  %237 = load ptr, ptr %11, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.MPLevel, ptr %237, i32 0, i32 4
  %239 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %238, i32 noundef 1)
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %239, i32 noundef 2)
  %241 = load double, ptr %240, align 8, !tbaa !38
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef @.str.48, double noundef %216, double noundef %221, double noundef %226, double noundef %231, double noundef %236, double noundef %241) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  store i32 0, ptr %12, align 4, !tbaa !31
  br label %243

243:                                              ; preds = %250, %197
  %244 = load i32, ptr %12, align 4, !tbaa !31
  %245 = icmp slt i32 %244, 5
  br i1 %245, label %247, label %246

246:                                              ; preds = %243
  store i32 11, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  br label %253

247:                                              ; preds = %243
  %248 = load ptr, ptr %6, align 8, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef @.str.47) #6
  br label %250

250:                                              ; preds = %247
  %251 = load i32, ptr %12, align 4, !tbaa !31
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr %12, align 4, !tbaa !31
  br label %243, !llvm.loop !40

253:                                              ; preds = %246
  %254 = load ptr, ptr %6, align 8, !tbaa !5
  %255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  br label %256

256:                                              ; preds = %253
  %257 = load i32, ptr %10, align 4, !tbaa !31
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr %10, align 4, !tbaa !31
  br label %168, !llvm.loop !41

259:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 0, ptr %13, align 4, !tbaa !31
  br label %260

260:                                              ; preds = %370, %259
  %261 = load i32, ptr %13, align 4, !tbaa !31
  %262 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 7
  %263 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %262)
  %264 = icmp slt i32 %261, %263
  br i1 %264, label %266, label %265

265:                                              ; preds = %260
  store i32 14, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br label %373

266:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  %267 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 7
  %268 = load i32, ptr %13, align 4, !tbaa !31
  %269 = call noundef ptr @_ZNK7RNArrayIP8MPRegionE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %267, i32 noundef %268)
  store ptr %269, ptr %14, align 8, !tbaa !5
  %270 = load ptr, ptr %6, align 8, !tbaa !5
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef @.str.53) #6
  %272 = load ptr, ptr %6, align 8, !tbaa !5
  %273 = load ptr, ptr %14, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.MPRegion, ptr %273, i32 0, i32 1
  %275 = load i32, ptr %274, align 8, !tbaa !42
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %272, ptr noundef @.str.45, i32 noundef %275) #6
  %277 = load ptr, ptr %6, align 8, !tbaa !5
  %278 = load ptr, ptr %14, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.MPRegion, ptr %278, i32 0, i32 2
  %280 = load ptr, ptr %279, align 8, !tbaa !44
  %281 = icmp ne ptr %280, null
  br i1 %281, label %282, label %288

282:                                              ; preds = %266
  %283 = load ptr, ptr %14, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.MPRegion, ptr %283, i32 0, i32 2
  %285 = load ptr, ptr %284, align 8, !tbaa !44
  %286 = getelementptr inbounds %struct.MPLevel, ptr %285, i32 0, i32 1
  %287 = load i32, ptr %286, align 8, !tbaa !35
  br label %289

288:                                              ; preds = %266
  br label %289

289:                                              ; preds = %288, %282
  %290 = phi i32 [ %287, %282 ], [ -1, %288 ]
  %291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %277, ptr noundef @.str.46, i32 noundef %290) #6
  %292 = load ptr, ptr %6, align 8, !tbaa !5
  %293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef @.str.47) #6
  %294 = load ptr, ptr %6, align 8, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef @.str.51) #6
  %296 = load ptr, ptr %6, align 8, !tbaa !5
  %297 = load ptr, ptr %14, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.MPRegion, ptr %297, i32 0, i32 11
  %299 = load ptr, ptr %298, align 8, !tbaa !45
  %300 = icmp ne ptr %299, null
  br i1 %300, label %301, label %305

301:                                              ; preds = %289
  %302 = load ptr, ptr %14, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.MPRegion, ptr %302, i32 0, i32 11
  %304 = load ptr, ptr %303, align 8, !tbaa !45
  br label %306

305:                                              ; preds = %289
  br label %306

306:                                              ; preds = %305, %301
  %307 = phi ptr [ %304, %301 ], [ @.str.15, %305 ]
  %308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef @.str.44, ptr noundef %307) #6
  %309 = load ptr, ptr %6, align 8, !tbaa !5
  %310 = load ptr, ptr %14, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.MPRegion, ptr %310, i32 0, i32 8
  %312 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %311)
  %313 = load ptr, ptr %14, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.MPRegion, ptr %313, i32 0, i32 8
  %315 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %314)
  %316 = load ptr, ptr %14, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.MPRegion, ptr %316, i32 0, i32 8
  %318 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %317)
  %319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef @.str.52, double noundef %312, double noundef %315, double noundef %318) #6
  %320 = load ptr, ptr %6, align 8, !tbaa !5
  %321 = load ptr, ptr %14, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.MPRegion, ptr %321, i32 0, i32 10
  %323 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %322, i32 noundef 0)
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %323, i32 noundef 0)
  %325 = load double, ptr %324, align 8, !tbaa !38
  %326 = load ptr, ptr %14, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.MPRegion, ptr %326, i32 0, i32 10
  %328 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %327, i32 noundef 0)
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %328, i32 noundef 1)
  %330 = load double, ptr %329, align 8, !tbaa !38
  %331 = load ptr, ptr %14, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.MPRegion, ptr %331, i32 0, i32 10
  %333 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %332, i32 noundef 0)
  %334 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %333, i32 noundef 2)
  %335 = load double, ptr %334, align 8, !tbaa !38
  %336 = load ptr, ptr %14, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.MPRegion, ptr %336, i32 0, i32 10
  %338 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %337, i32 noundef 1)
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %338, i32 noundef 0)
  %340 = load double, ptr %339, align 8, !tbaa !38
  %341 = load ptr, ptr %14, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.MPRegion, ptr %341, i32 0, i32 10
  %343 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %342, i32 noundef 1)
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %343, i32 noundef 1)
  %345 = load double, ptr %344, align 8, !tbaa !38
  %346 = load ptr, ptr %14, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.MPRegion, ptr %346, i32 0, i32 10
  %348 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %347, i32 noundef 1)
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %348, i32 noundef 2)
  %350 = load double, ptr %349, align 8, !tbaa !38
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %320, ptr noundef @.str.48, double noundef %325, double noundef %330, double noundef %335, double noundef %340, double noundef %345, double noundef %350) #6
  %352 = load ptr, ptr %6, align 8, !tbaa !5
  %353 = load ptr, ptr %14, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.MPRegion, ptr %353, i32 0, i32 9
  %355 = load double, ptr %354, align 8, !tbaa !46
  %356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef @.str.54, double noundef %355) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  store i32 0, ptr %15, align 4, !tbaa !31
  br label %357

357:                                              ; preds = %364, %306
  %358 = load i32, ptr %15, align 4, !tbaa !31
  %359 = icmp slt i32 %358, 4
  br i1 %359, label %361, label %360

360:                                              ; preds = %357
  store i32 17, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  br label %367

361:                                              ; preds = %357
  %362 = load ptr, ptr %6, align 8, !tbaa !5
  %363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str.47) #6
  br label %364

364:                                              ; preds = %361
  %365 = load i32, ptr %15, align 4, !tbaa !31
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr %15, align 4, !tbaa !31
  br label %357, !llvm.loop !47

367:                                              ; preds = %360
  %368 = load ptr, ptr %6, align 8, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  br label %370

370:                                              ; preds = %367
  %371 = load i32, ptr %13, align 4, !tbaa !31
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr %13, align 4, !tbaa !31
  br label %260, !llvm.loop !48

373:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  store i32 0, ptr %16, align 4, !tbaa !31
  br label %374

374:                                              ; preds = %479, %373
  %375 = load i32, ptr %16, align 4, !tbaa !31
  %376 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 8
  %377 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %376)
  %378 = icmp slt i32 %375, %377
  br i1 %378, label %380, label %379

379:                                              ; preds = %374
  store i32 20, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %482

380:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %381 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 8
  %382 = load i32, ptr %16, align 4, !tbaa !31
  %383 = call noundef ptr @_ZNK7RNArrayIP8MPPortalE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %381, i32 noundef %382)
  store ptr %383, ptr %17, align 8, !tbaa !5
  %384 = load ptr, ptr %6, align 8, !tbaa !5
  %385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef @.str.53) #6
  %386 = load ptr, ptr %6, align 8, !tbaa !5
  %387 = load ptr, ptr %17, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.MPPortal, ptr %387, i32 0, i32 1
  %389 = load i32, ptr %388, align 8, !tbaa !49
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef @.str.45, i32 noundef %389) #6
  %391 = load ptr, ptr %6, align 8, !tbaa !5
  %392 = load ptr, ptr %17, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.MPPortal, ptr %392, i32 0, i32 2
  %394 = getelementptr inbounds [2 x ptr], ptr %393, i64 0, i64 0
  %395 = load ptr, ptr %394, align 8, !tbaa !5
  %396 = icmp ne ptr %395, null
  br i1 %396, label %397, label %404

397:                                              ; preds = %380
  %398 = load ptr, ptr %17, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.MPPortal, ptr %398, i32 0, i32 2
  %400 = getelementptr inbounds [2 x ptr], ptr %399, i64 0, i64 0
  %401 = load ptr, ptr %400, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.MPRegion, ptr %401, i32 0, i32 1
  %403 = load i32, ptr %402, align 8, !tbaa !42
  br label %405

404:                                              ; preds = %380
  br label %405

405:                                              ; preds = %404, %397
  %406 = phi i32 [ %403, %397 ], [ -1, %404 ]
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef @.str.46, i32 noundef %406) #6
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = load ptr, ptr %17, align 8, !tbaa !5
  %410 = getelementptr inbounds %struct.MPPortal, ptr %409, i32 0, i32 2
  %411 = getelementptr inbounds [2 x ptr], ptr %410, i64 0, i64 1
  %412 = load ptr, ptr %411, align 8, !tbaa !5
  %413 = icmp ne ptr %412, null
  br i1 %413, label %414, label %421

414:                                              ; preds = %405
  %415 = load ptr, ptr %17, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.MPPortal, ptr %415, i32 0, i32 2
  %417 = getelementptr inbounds [2 x ptr], ptr %416, i64 0, i64 1
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.MPRegion, ptr %418, i32 0, i32 1
  %420 = load i32, ptr %419, align 8, !tbaa !42
  br label %422

421:                                              ; preds = %405
  br label %422

422:                                              ; preds = %421, %414
  %423 = phi i32 [ %420, %414 ], [ -1, %421 ]
  %424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %408, ptr noundef @.str.46, i32 noundef %423) #6
  %425 = load ptr, ptr %6, align 8, !tbaa !5
  %426 = load ptr, ptr %17, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.MPPortal, ptr %426, i32 0, i32 5
  %428 = load ptr, ptr %427, align 8, !tbaa !55
  %429 = icmp ne ptr %428, null
  br i1 %429, label %430, label %434

430:                                              ; preds = %422
  %431 = load ptr, ptr %17, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.MPPortal, ptr %431, i32 0, i32 5
  %433 = load ptr, ptr %432, align 8, !tbaa !55
  br label %435

434:                                              ; preds = %422
  br label %435

435:                                              ; preds = %434, %430
  %436 = phi ptr [ %433, %430 ], [ @.str.15, %434 ]
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %425, ptr noundef @.str.44, ptr noundef %436) #6
  %438 = load ptr, ptr %6, align 8, !tbaa !5
  %439 = load ptr, ptr %17, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.MPPortal, ptr %439, i32 0, i32 4
  %441 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %440, i32 noundef 0)
  %442 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %441, i32 noundef 0)
  %443 = load ptr, ptr %17, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.MPPortal, ptr %443, i32 0, i32 4
  %445 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %444, i32 noundef 0)
  %446 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %445, i32 noundef 1)
  %447 = load ptr, ptr %17, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.MPPortal, ptr %447, i32 0, i32 4
  %449 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %448, i32 noundef 0)
  %450 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %449, i32 noundef 2)
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %438, ptr noundef @.str.52, double noundef %442, double noundef %446, double noundef %450) #6
  %452 = load ptr, ptr %6, align 8, !tbaa !5
  %453 = load ptr, ptr %17, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.MPPortal, ptr %453, i32 0, i32 4
  %455 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %454, i32 noundef 1)
  %456 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %455, i32 noundef 0)
  %457 = load ptr, ptr %17, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.MPPortal, ptr %457, i32 0, i32 4
  %459 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %458, i32 noundef 1)
  %460 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %459, i32 noundef 1)
  %461 = load ptr, ptr %17, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.MPPortal, ptr %461, i32 0, i32 4
  %463 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %462, i32 noundef 1)
  %464 = call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %463, i32 noundef 2)
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %452, ptr noundef @.str.52, double noundef %456, double noundef %460, double noundef %464) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  store i32 0, ptr %18, align 4, !tbaa !31
  br label %466

466:                                              ; preds = %473, %435
  %467 = load i32, ptr %18, align 4, !tbaa !31
  %468 = icmp slt i32 %467, 4
  br i1 %468, label %470, label %469

469:                                              ; preds = %466
  store i32 23, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %476

470:                                              ; preds = %466
  %471 = load ptr, ptr %6, align 8, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.47) #6
  br label %473

473:                                              ; preds = %470
  %474 = load i32, ptr %18, align 4, !tbaa !31
  %475 = add nsw i32 %474, 1
  store i32 %475, ptr %18, align 4, !tbaa !31
  br label %466, !llvm.loop !56

476:                                              ; preds = %469
  %477 = load ptr, ptr %6, align 8, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %479

479:                                              ; preds = %476
  %480 = load i32, ptr %16, align 4, !tbaa !31
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %16, align 4, !tbaa !31
  br label %374, !llvm.loop !57

482:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  store i32 0, ptr %19, align 4, !tbaa !31
  br label %483

483:                                              ; preds = %595, %482
  %484 = load i32, ptr %19, align 4, !tbaa !31
  %485 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 6
  %486 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %485)
  %487 = icmp slt i32 %484, %486
  br i1 %487, label %489, label %488

488:                                              ; preds = %483
  store i32 26, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  br label %598

489:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %490 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 6
  %491 = load i32, ptr %19, align 4, !tbaa !31
  %492 = call noundef ptr @_ZNK7RNArrayIP9MPSurfaceE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %490, i32 noundef %491)
  store ptr %492, ptr %20, align 8, !tbaa !5
  %493 = load ptr, ptr %6, align 8, !tbaa !5
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %493, ptr noundef @.str.55) #6
  %495 = load ptr, ptr %6, align 8, !tbaa !5
  %496 = load ptr, ptr %20, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.MPSurface, ptr %496, i32 0, i32 1
  %498 = load i32, ptr %497, align 8, !tbaa !58
  %499 = load ptr, ptr %20, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.MPSurface, ptr %499, i32 0, i32 2
  %501 = load ptr, ptr %500, align 8, !tbaa !60
  %502 = icmp ne ptr %501, null
  br i1 %502, label %503, label %509

503:                                              ; preds = %489
  %504 = load ptr, ptr %20, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.MPSurface, ptr %504, i32 0, i32 2
  %506 = load ptr, ptr %505, align 8, !tbaa !60
  %507 = getelementptr inbounds %struct.MPRegion, ptr %506, i32 0, i32 1
  %508 = load i32, ptr %507, align 8, !tbaa !42
  br label %510

509:                                              ; preds = %489
  br label %510

510:                                              ; preds = %509, %503
  %511 = phi i32 [ %508, %503 ], [ -1, %509 ]
  %512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef @.str.56, i32 noundef %498, i32 noundef %511) #6
  %513 = load ptr, ptr %6, align 8, !tbaa !5
  %514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %513, ptr noundef @.str.51) #6
  %515 = load ptr, ptr %6, align 8, !tbaa !5
  %516 = load ptr, ptr %20, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.MPSurface, ptr %516, i32 0, i32 8
  %518 = load ptr, ptr %517, align 8, !tbaa !61
  %519 = icmp ne ptr %518, null
  br i1 %519, label %520, label %524

520:                                              ; preds = %510
  %521 = load ptr, ptr %20, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.MPSurface, ptr %521, i32 0, i32 8
  %523 = load ptr, ptr %522, align 8, !tbaa !61
  br label %525

524:                                              ; preds = %510
  br label %525

525:                                              ; preds = %524, %520
  %526 = phi ptr [ %523, %520 ], [ @.str.15, %524 ]
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef @.str.44, ptr noundef %526) #6
  %528 = load ptr, ptr %6, align 8, !tbaa !5
  %529 = load ptr, ptr %20, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.MPSurface, ptr %529, i32 0, i32 5
  %531 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %530)
  %532 = load ptr, ptr %20, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.MPSurface, ptr %532, i32 0, i32 5
  %534 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %533)
  %535 = load ptr, ptr %20, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.MPSurface, ptr %535, i32 0, i32 5
  %537 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %536)
  %538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef @.str.52, double noundef %531, double noundef %534, double noundef %537) #6
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  %540 = load ptr, ptr %20, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.MPSurface, ptr %540, i32 0, i32 6
  %542 = call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %541)
  %543 = load ptr, ptr %20, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.MPSurface, ptr %543, i32 0, i32 6
  %545 = call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %544)
  %546 = load ptr, ptr %20, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.MPSurface, ptr %546, i32 0, i32 6
  %548 = call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %547)
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef @.str.52, double noundef %542, double noundef %545, double noundef %548) #6
  %550 = load ptr, ptr %6, align 8, !tbaa !5
  %551 = load ptr, ptr %20, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.MPSurface, ptr %551, i32 0, i32 7
  %553 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %552, i32 noundef 0)
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %553, i32 noundef 0)
  %555 = load double, ptr %554, align 8, !tbaa !38
  %556 = load ptr, ptr %20, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.MPSurface, ptr %556, i32 0, i32 7
  %558 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %557, i32 noundef 0)
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %558, i32 noundef 1)
  %560 = load double, ptr %559, align 8, !tbaa !38
  %561 = load ptr, ptr %20, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.MPSurface, ptr %561, i32 0, i32 7
  %563 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %562, i32 noundef 0)
  %564 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %563, i32 noundef 2)
  %565 = load double, ptr %564, align 8, !tbaa !38
  %566 = load ptr, ptr %20, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.MPSurface, ptr %566, i32 0, i32 7
  %568 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %567, i32 noundef 1)
  %569 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %568, i32 noundef 0)
  %570 = load double, ptr %569, align 8, !tbaa !38
  %571 = load ptr, ptr %20, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.MPSurface, ptr %571, i32 0, i32 7
  %573 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %572, i32 noundef 1)
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %573, i32 noundef 1)
  %575 = load double, ptr %574, align 8, !tbaa !38
  %576 = load ptr, ptr %20, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.MPSurface, ptr %576, i32 0, i32 7
  %578 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %577, i32 noundef 1)
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %578, i32 noundef 2)
  %580 = load double, ptr %579, align 8, !tbaa !38
  %581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef @.str.48, double noundef %555, double noundef %560, double noundef %565, double noundef %570, double noundef %575, double noundef %580) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  store i32 0, ptr %21, align 4, !tbaa !31
  br label %582

582:                                              ; preds = %589, %525
  %583 = load i32, ptr %21, align 4, !tbaa !31
  %584 = icmp slt i32 %583, 5
  br i1 %584, label %586, label %585

585:                                              ; preds = %582
  store i32 29, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  br label %592

586:                                              ; preds = %582
  %587 = load ptr, ptr %6, align 8, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef @.str.47) #6
  br label %589

589:                                              ; preds = %586
  %590 = load i32, ptr %21, align 4, !tbaa !31
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr %21, align 4, !tbaa !31
  br label %582, !llvm.loop !62

592:                                              ; preds = %585
  %593 = load ptr, ptr %6, align 8, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %593, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %595

595:                                              ; preds = %592
  %596 = load i32, ptr %19, align 4, !tbaa !31
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr %19, align 4, !tbaa !31
  br label %483, !llvm.loop !63

598:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  store i32 0, ptr %22, align 4, !tbaa !31
  br label %599

599:                                              ; preds = %693, %598
  %600 = load i32, ptr %22, align 4, !tbaa !31
  %601 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 6
  %602 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %601)
  %603 = icmp slt i32 %600, %602
  br i1 %603, label %605, label %604

604:                                              ; preds = %599
  store i32 32, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br label %696

605:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %606 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 6
  %607 = load i32, ptr %22, align 4, !tbaa !31
  %608 = call noundef ptr @_ZNK7RNArrayIP9MPSurfaceE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %606, i32 noundef %607)
  store ptr %608, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 0, ptr %24, align 4, !tbaa !31
  br label %609

609:                                              ; preds = %689, %605
  %610 = load i32, ptr %24, align 4, !tbaa !31
  %611 = load ptr, ptr %23, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.MPSurface, ptr %611, i32 0, i32 4
  %613 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %612)
  %614 = icmp slt i32 %610, %613
  br i1 %614, label %616, label %615

615:                                              ; preds = %609
  store i32 35, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  br label %692

616:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %617 = load ptr, ptr %23, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.MPSurface, ptr %617, i32 0, i32 4
  %619 = load i32, ptr %24, align 4, !tbaa !31
  %620 = call noundef ptr @_ZNK7RNArrayIP8MPVertexE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %618, i32 noundef %619)
  store ptr %620, ptr %25, align 8, !tbaa !5
  %621 = load ptr, ptr %6, align 8, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef @.str.57) #6
  %623 = load ptr, ptr %6, align 8, !tbaa !5
  %624 = load ptr, ptr %25, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.MPVertex, ptr %624, i32 0, i32 1
  %626 = load i32, ptr %625, align 8, !tbaa !64
  %627 = load ptr, ptr %25, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.MPVertex, ptr %627, i32 0, i32 2
  %629 = load ptr, ptr %628, align 8, !tbaa !66
  %630 = icmp ne ptr %629, null
  br i1 %630, label %631, label %637

631:                                              ; preds = %616
  %632 = load ptr, ptr %25, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.MPVertex, ptr %632, i32 0, i32 2
  %634 = load ptr, ptr %633, align 8, !tbaa !66
  %635 = getelementptr inbounds %struct.MPSurface, ptr %634, i32 0, i32 1
  %636 = load i32, ptr %635, align 8, !tbaa !58
  br label %638

637:                                              ; preds = %616
  br label %638

638:                                              ; preds = %637, %631
  %639 = phi i32 [ %636, %631 ], [ -1, %637 ]
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef @.str.56, i32 noundef %626, i32 noundef %639) #6
  %641 = load ptr, ptr %6, align 8, !tbaa !5
  %642 = load ptr, ptr %25, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.MPVertex, ptr %642, i32 0, i32 6
  %644 = load ptr, ptr %643, align 8, !tbaa !67
  %645 = icmp ne ptr %644, null
  br i1 %645, label %646, label %650

646:                                              ; preds = %638
  %647 = load ptr, ptr %25, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.MPVertex, ptr %647, i32 0, i32 6
  %649 = load ptr, ptr %648, align 8, !tbaa !67
  br label %651

650:                                              ; preds = %638
  br label %651

651:                                              ; preds = %650, %646
  %652 = phi ptr [ %649, %646 ], [ @.str.15, %650 ]
  %653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef @.str.44, ptr noundef %652) #6
  %654 = load ptr, ptr %6, align 8, !tbaa !5
  %655 = load ptr, ptr %25, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.MPVertex, ptr %655, i32 0, i32 4
  %657 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %656)
  %658 = load ptr, ptr %25, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.MPVertex, ptr %658, i32 0, i32 4
  %660 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %659)
  %661 = load ptr, ptr %25, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.MPVertex, ptr %661, i32 0, i32 4
  %663 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %662)
  %664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef @.str.52, double noundef %657, double noundef %660, double noundef %663) #6
  %665 = load ptr, ptr %6, align 8, !tbaa !5
  %666 = load ptr, ptr %25, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.MPVertex, ptr %666, i32 0, i32 5
  %668 = call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %667)
  %669 = load ptr, ptr %25, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.MPVertex, ptr %669, i32 0, i32 5
  %671 = call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %670)
  %672 = load ptr, ptr %25, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.MPVertex, ptr %672, i32 0, i32 5
  %674 = call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %673)
  %675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef @.str.52, double noundef %668, double noundef %671, double noundef %674) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 0, ptr %26, align 4, !tbaa !31
  br label %676

676:                                              ; preds = %683, %651
  %677 = load i32, ptr %26, align 4, !tbaa !31
  %678 = icmp slt i32 %677, 3
  br i1 %678, label %680, label %679

679:                                              ; preds = %676
  store i32 38, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %686

680:                                              ; preds = %676
  %681 = load ptr, ptr %6, align 8, !tbaa !5
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %681, ptr noundef @.str.47) #6
  br label %683

683:                                              ; preds = %680
  %684 = load i32, ptr %26, align 4, !tbaa !31
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr %26, align 4, !tbaa !31
  br label %676, !llvm.loop !68

686:                                              ; preds = %679
  %687 = load ptr, ptr %6, align 8, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %687, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  br label %689

689:                                              ; preds = %686
  %690 = load i32, ptr %24, align 4, !tbaa !31
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr %24, align 4, !tbaa !31
  br label %609, !llvm.loop !69

692:                                              ; preds = %615
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %693

693:                                              ; preds = %692
  %694 = load i32, ptr %22, align 4, !tbaa !31
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr %22, align 4, !tbaa !31
  br label %599, !llvm.loop !70

696:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  store i32 0, ptr %27, align 4, !tbaa !31
  br label %697

697:                                              ; preds = %766, %696
  %698 = load i32, ptr %27, align 4, !tbaa !31
  %699 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 1
  %700 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %699)
  %701 = icmp slt i32 %698, %700
  br i1 %701, label %703, label %702

702:                                              ; preds = %697
  store i32 41, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %769

703:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  %704 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 1
  %705 = load i32, ptr %27, align 4, !tbaa !31
  %706 = call noundef ptr @_ZNK7RNArrayIP10MPPanoramaE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %704, i32 noundef %705)
  store ptr %706, ptr %28, align 8, !tbaa !5
  %707 = load ptr, ptr %6, align 8, !tbaa !5
  %708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef @.str.58) #6
  %709 = load ptr, ptr %6, align 8, !tbaa !5
  %710 = load ptr, ptr %28, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.MPPanorama, ptr %710, i32 0, i32 4
  %712 = load ptr, ptr %711, align 8, !tbaa !71
  %713 = icmp ne ptr %712, null
  br i1 %713, label %714, label %718

714:                                              ; preds = %703
  %715 = load ptr, ptr %28, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.MPPanorama, ptr %715, i32 0, i32 4
  %717 = load ptr, ptr %716, align 8, !tbaa !71
  br label %719

718:                                              ; preds = %703
  br label %719

719:                                              ; preds = %718, %714
  %720 = phi ptr [ %717, %714 ], [ @.str.15, %718 ]
  %721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef @.str.44, ptr noundef %720) #6
  %722 = load ptr, ptr %6, align 8, !tbaa !5
  %723 = load ptr, ptr %28, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.MPPanorama, ptr %723, i32 0, i32 1
  %725 = load i32, ptr %724, align 8, !tbaa !73
  %726 = load ptr, ptr %28, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.MPPanorama, ptr %726, i32 0, i32 2
  %728 = load ptr, ptr %727, align 8, !tbaa !74
  %729 = icmp ne ptr %728, null
  br i1 %729, label %730, label %736

730:                                              ; preds = %719
  %731 = load ptr, ptr %28, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.MPPanorama, ptr %731, i32 0, i32 2
  %733 = load ptr, ptr %732, align 8, !tbaa !74
  %734 = getelementptr inbounds %struct.MPRegion, ptr %733, i32 0, i32 1
  %735 = load i32, ptr %734, align 8, !tbaa !42
  br label %737

736:                                              ; preds = %719
  br label %737

737:                                              ; preds = %736, %730
  %738 = phi i32 [ %735, %730 ], [ -1, %736 ]
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef @.str.56, i32 noundef %725, i32 noundef %738) #6
  %740 = load ptr, ptr %6, align 8, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %740, ptr noundef @.str.51) #6
  %742 = load ptr, ptr %6, align 8, !tbaa !5
  %743 = load ptr, ptr %28, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.MPPanorama, ptr %743, i32 0, i32 6
  %745 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %744)
  %746 = load ptr, ptr %28, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.MPPanorama, ptr %746, i32 0, i32 6
  %748 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %747)
  %749 = load ptr, ptr %28, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.MPPanorama, ptr %749, i32 0, i32 6
  %751 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %750)
  %752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef @.str.52, double noundef %745, double noundef %748, double noundef %751) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  store i32 0, ptr %29, align 4, !tbaa !31
  br label %753

753:                                              ; preds = %760, %737
  %754 = load i32, ptr %29, align 4, !tbaa !31
  %755 = icmp slt i32 %754, 5
  br i1 %755, label %757, label %756

756:                                              ; preds = %753
  store i32 44, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %763

757:                                              ; preds = %753
  %758 = load ptr, ptr %6, align 8, !tbaa !5
  %759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %758, ptr noundef @.str.47) #6
  br label %760

760:                                              ; preds = %757
  %761 = load i32, ptr %29, align 4, !tbaa !31
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr %29, align 4, !tbaa !31
  br label %753, !llvm.loop !75

763:                                              ; preds = %756
  %764 = load ptr, ptr %6, align 8, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %764, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  br label %766

766:                                              ; preds = %763
  %767 = load i32, ptr %27, align 4, !tbaa !31
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr %27, align 4, !tbaa !31
  br label %697, !llvm.loop !76

769:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  store i32 0, ptr %30, align 4, !tbaa !31
  br label %770

770:                                              ; preds = %903, %769
  %771 = load i32, ptr %30, align 4, !tbaa !31
  %772 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 0
  %773 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %772)
  %774 = icmp slt i32 %771, %773
  br i1 %774, label %776, label %775

775:                                              ; preds = %770
  store i32 47, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  br label %906

776:                                              ; preds = %770
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  %777 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 0
  %778 = load i32, ptr %30, align 4, !tbaa !31
  %779 = call noundef ptr @_ZNK7RNArrayIP7MPImageE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %777, i32 noundef %778)
  store ptr %779, ptr %31, align 8, !tbaa !5
  %780 = load ptr, ptr %6, align 8, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef @.str.59) #6
  %782 = load ptr, ptr %6, align 8, !tbaa !5
  %783 = load ptr, ptr %31, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.MPImage, ptr %783, i32 0, i32 1
  %785 = load i32, ptr %784, align 8, !tbaa !77
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %782, ptr noundef @.str.45, i32 noundef %785) #6
  %787 = load ptr, ptr %6, align 8, !tbaa !5
  %788 = load ptr, ptr %31, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.MPImage, ptr %788, i32 0, i32 2
  %790 = load ptr, ptr %789, align 8, !tbaa !87
  %791 = icmp ne ptr %790, null
  br i1 %791, label %792, label %798

792:                                              ; preds = %776
  %793 = load ptr, ptr %31, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.MPImage, ptr %793, i32 0, i32 2
  %795 = load ptr, ptr %794, align 8, !tbaa !87
  %796 = getelementptr inbounds %struct.MPPanorama, ptr %795, i32 0, i32 1
  %797 = load i32, ptr %796, align 8, !tbaa !73
  br label %799

798:                                              ; preds = %776
  br label %799

799:                                              ; preds = %798, %792
  %800 = phi i32 [ %797, %792 ], [ -1, %798 ]
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef @.str.60, i32 noundef %800) #6
  %802 = load ptr, ptr %6, align 8, !tbaa !5
  %803 = load ptr, ptr %31, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.MPImage, ptr %803, i32 0, i32 4
  %805 = load ptr, ptr %804, align 8, !tbaa !88
  %806 = icmp ne ptr %805, null
  br i1 %806, label %807, label %811

807:                                              ; preds = %799
  %808 = load ptr, ptr %31, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.MPImage, ptr %808, i32 0, i32 4
  %810 = load ptr, ptr %809, align 8, !tbaa !88
  br label %812

811:                                              ; preds = %799
  br label %812

812:                                              ; preds = %811, %807
  %813 = phi ptr [ %810, %807 ], [ @.str.15, %811 ]
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %802, ptr noundef @.str.44, ptr noundef %813) #6
  %815 = load ptr, ptr %6, align 8, !tbaa !5
  %816 = load ptr, ptr %31, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.MPImage, ptr %816, i32 0, i32 5
  %818 = load i32, ptr %817, align 8, !tbaa !89
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef @.str.45, i32 noundef %818) #6
  %820 = load ptr, ptr %6, align 8, !tbaa !5
  %821 = load ptr, ptr %31, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.MPImage, ptr %821, i32 0, i32 6
  %823 = load i32, ptr %822, align 4, !tbaa !90
  %824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef @.str.46, i32 noundef %823) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  store i32 0, ptr %32, align 4, !tbaa !31
  br label %825

825:                                              ; preds = %842, %812
  %826 = load i32, ptr %32, align 4, !tbaa !31
  %827 = icmp slt i32 %826, 16
  br i1 %827, label %829, label %828

828:                                              ; preds = %825
  store i32 50, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  br label %845

829:                                              ; preds = %825
  %830 = load ptr, ptr %6, align 8, !tbaa !5
  %831 = load ptr, ptr %31, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.MPImage, ptr %831, i32 0, i32 8
  %833 = load i32, ptr %32, align 4, !tbaa !31
  %834 = sdiv i32 %833, 4
  %835 = call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %832, i32 noundef %834)
  %836 = load i32, ptr %32, align 4, !tbaa !31
  %837 = srem i32 %836, 4
  %838 = sext i32 %837 to i64
  %839 = getelementptr inbounds double, ptr %835, i64 %838
  %840 = load double, ptr %839, align 8, !tbaa !38
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef @.str.61, double noundef %840) #6
  br label %842

842:                                              ; preds = %829
  %843 = load i32, ptr %32, align 4, !tbaa !31
  %844 = add nsw i32 %843, 1
  store i32 %844, ptr %32, align 4, !tbaa !31
  br label %825, !llvm.loop !91

845:                                              ; preds = %828
  %846 = load ptr, ptr %6, align 8, !tbaa !5
  %847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef @.str.62) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  store i32 0, ptr %33, align 4, !tbaa !31
  br label %848

848:                                              ; preds = %865, %845
  %849 = load i32, ptr %33, align 4, !tbaa !31
  %850 = icmp slt i32 %849, 9
  br i1 %850, label %852, label %851

851:                                              ; preds = %848
  store i32 53, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  br label %868

852:                                              ; preds = %848
  %853 = load ptr, ptr %6, align 8, !tbaa !5
  %854 = load ptr, ptr %31, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.MPImage, ptr %854, i32 0, i32 9
  %856 = load i32, ptr %33, align 4, !tbaa !31
  %857 = sdiv i32 %856, 3
  %858 = call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %855, i32 noundef %857)
  %859 = load i32, ptr %33, align 4, !tbaa !31
  %860 = srem i32 %859, 3
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds double, ptr %858, i64 %861
  %863 = load double, ptr %862, align 8, !tbaa !38
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef @.str.61, double noundef %863) #6
  br label %865

865:                                              ; preds = %852
  %866 = load i32, ptr %33, align 4, !tbaa !31
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr %33, align 4, !tbaa !31
  br label %848, !llvm.loop !92

868:                                              ; preds = %851
  %869 = load ptr, ptr %6, align 8, !tbaa !5
  %870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef @.str.62) #6
  %871 = load ptr, ptr %6, align 8, !tbaa !5
  %872 = load ptr, ptr %31, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.MPImage, ptr %872, i32 0, i32 10
  %874 = load i32, ptr %873, align 8, !tbaa !93
  %875 = load ptr, ptr %31, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.MPImage, ptr %875, i32 0, i32 11
  %877 = load i32, ptr %876, align 4, !tbaa !94
  %878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef @.str.56, i32 noundef %874, i32 noundef %877) #6
  %879 = load ptr, ptr %6, align 8, !tbaa !5
  %880 = load ptr, ptr %31, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.MPImage, ptr %880, i32 0, i32 12
  %882 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %881)
  %883 = load ptr, ptr %31, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.MPImage, ptr %883, i32 0, i32 12
  %885 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %884)
  %886 = load ptr, ptr %31, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.MPImage, ptr %886, i32 0, i32 12
  %888 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %887)
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef @.str.52, double noundef %882, double noundef %885, double noundef %888) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  store i32 0, ptr %34, align 4, !tbaa !31
  br label %890

890:                                              ; preds = %897, %868
  %891 = load i32, ptr %34, align 4, !tbaa !31
  %892 = icmp slt i32 %891, 5
  br i1 %892, label %894, label %893

893:                                              ; preds = %890
  store i32 56, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %900

894:                                              ; preds = %890
  %895 = load ptr, ptr %6, align 8, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef @.str.47) #6
  br label %897

897:                                              ; preds = %894
  %898 = load i32, ptr %34, align 4, !tbaa !31
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr %34, align 4, !tbaa !31
  br label %890, !llvm.loop !95

900:                                              ; preds = %893
  %901 = load ptr, ptr %6, align 8, !tbaa !5
  %902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  br label %903

903:                                              ; preds = %900
  %904 = load i32, ptr %30, align 4, !tbaa !31
  %905 = add nsw i32 %904, 1
  store i32 %905, ptr %30, align 4, !tbaa !31
  br label %770, !llvm.loop !96

906:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  store i32 0, ptr %35, align 4, !tbaa !31
  br label %907

907:                                              ; preds = %1007, %906
  %908 = load i32, ptr %35, align 4, !tbaa !31
  %909 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 2
  %910 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %909)
  %911 = icmp slt i32 %908, %910
  br i1 %911, label %913, label %912

912:                                              ; preds = %907
  store i32 59, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %1010

913:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  %914 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 2
  %915 = load i32, ptr %35, align 4, !tbaa !31
  %916 = call noundef ptr @_ZNK7RNArrayIP10MPCategoryE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %914, i32 noundef %915)
  store ptr %916, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 1024, ptr %38) #6
  %917 = getelementptr inbounds [1024 x i8], ptr %37, i64 0, i64 0
  %918 = load ptr, ptr %36, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.MPCategory, ptr %918, i32 0, i32 4
  %920 = load ptr, ptr %919, align 8, !tbaa !97
  %921 = icmp ne ptr %920, null
  br i1 %921, label %922, label %926

922:                                              ; preds = %913
  %923 = load ptr, ptr %36, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.MPCategory, ptr %923, i32 0, i32 4
  %925 = load ptr, ptr %924, align 8, !tbaa !97
  br label %927

926:                                              ; preds = %913
  br label %927

927:                                              ; preds = %926, %922
  %928 = phi ptr [ %925, %922 ], [ @.str.15, %926 ]
  %929 = call ptr @strncpy(ptr noundef %917, ptr noundef %928, i64 noundef 1024) #6
  %930 = getelementptr inbounds [1024 x i8], ptr %38, i64 0, i64 0
  %931 = load ptr, ptr %36, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.MPCategory, ptr %931, i32 0, i32 6
  %933 = load ptr, ptr %932, align 8, !tbaa !99
  %934 = icmp ne ptr %933, null
  br i1 %934, label %935, label %939

935:                                              ; preds = %927
  %936 = load ptr, ptr %36, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.MPCategory, ptr %936, i32 0, i32 6
  %938 = load ptr, ptr %937, align 8, !tbaa !99
  br label %940

939:                                              ; preds = %927
  br label %940

940:                                              ; preds = %939, %935
  %941 = phi ptr [ %938, %935 ], [ @.str.15, %939 ]
  %942 = call ptr @strncpy(ptr noundef %930, ptr noundef %941, i64 noundef 1024) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %943 = getelementptr inbounds [1024 x i8], ptr %37, i64 0, i64 0
  store ptr %943, ptr %39, align 8, !tbaa !5
  br label %944

944:                                              ; preds = %955, %940
  %945 = load ptr, ptr %39, align 8, !tbaa !5
  %946 = load i8, ptr %945, align 1, !tbaa !100
  %947 = icmp ne i8 %946, 0
  br i1 %947, label %948, label %958

948:                                              ; preds = %944
  %949 = load ptr, ptr %39, align 8, !tbaa !5
  %950 = load i8, ptr %949, align 1, !tbaa !100
  %951 = sext i8 %950 to i32
  %952 = icmp eq i32 %951, 32
  br i1 %952, label %953, label %955

953:                                              ; preds = %948
  %954 = load ptr, ptr %39, align 8, !tbaa !5
  store i8 35, ptr %954, align 1, !tbaa !100
  br label %955

955:                                              ; preds = %953, %948
  %956 = load ptr, ptr %39, align 8, !tbaa !5
  %957 = getelementptr inbounds i8, ptr %956, i32 1
  store ptr %957, ptr %39, align 8, !tbaa !5
  br label %944, !llvm.loop !101

958:                                              ; preds = %944
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  %959 = getelementptr inbounds [1024 x i8], ptr %38, i64 0, i64 0
  store ptr %959, ptr %40, align 8, !tbaa !5
  br label %960

960:                                              ; preds = %971, %958
  %961 = load ptr, ptr %40, align 8, !tbaa !5
  %962 = load i8, ptr %961, align 1, !tbaa !100
  %963 = icmp ne i8 %962, 0
  br i1 %963, label %964, label %974

964:                                              ; preds = %960
  %965 = load ptr, ptr %40, align 8, !tbaa !5
  %966 = load i8, ptr %965, align 1, !tbaa !100
  %967 = sext i8 %966 to i32
  %968 = icmp eq i32 %967, 32
  br i1 %968, label %969, label %971

969:                                              ; preds = %964
  %970 = load ptr, ptr %40, align 8, !tbaa !5
  store i8 35, ptr %970, align 1, !tbaa !100
  br label %971

971:                                              ; preds = %969, %964
  %972 = load ptr, ptr %40, align 8, !tbaa !5
  %973 = getelementptr inbounds i8, ptr %972, i32 1
  store ptr %973, ptr %40, align 8, !tbaa !5
  br label %960, !llvm.loop !102

974:                                              ; preds = %960
  %975 = load ptr, ptr %6, align 8, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %975, ptr noundef @.str.63) #6
  %977 = load ptr, ptr %6, align 8, !tbaa !5
  %978 = load ptr, ptr %36, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.MPCategory, ptr %978, i32 0, i32 1
  %980 = load i32, ptr %979, align 8, !tbaa !103
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str.46, i32 noundef %980) #6
  %982 = load ptr, ptr %6, align 8, !tbaa !5
  %983 = load ptr, ptr %36, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.MPCategory, ptr %983, i32 0, i32 3
  %985 = load i32, ptr %984, align 8, !tbaa !104
  %986 = getelementptr inbounds [1024 x i8], ptr %37, i64 0, i64 0
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef @.str.64, i32 noundef %985, ptr noundef %986) #6
  %988 = load ptr, ptr %6, align 8, !tbaa !5
  %989 = load ptr, ptr %36, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.MPCategory, ptr %989, i32 0, i32 5
  %991 = load i32, ptr %990, align 8, !tbaa !105
  %992 = getelementptr inbounds [1024 x i8], ptr %38, i64 0, i64 0
  %993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef @.str.64, i32 noundef %991, ptr noundef %992) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  store i32 0, ptr %41, align 4, !tbaa !31
  br label %994

994:                                              ; preds = %1001, %974
  %995 = load i32, ptr %41, align 4, !tbaa !31
  %996 = icmp slt i32 %995, 5
  br i1 %996, label %998, label %997

997:                                              ; preds = %994
  store i32 66, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  br label %1004

998:                                              ; preds = %994
  %999 = load ptr, ptr %6, align 8, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef @.str.47) #6
  br label %1001

1001:                                             ; preds = %998
  %1002 = load i32, ptr %41, align 4, !tbaa !31
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr %41, align 4, !tbaa !31
  br label %994, !llvm.loop !106

1004:                                             ; preds = %997
  %1005 = load ptr, ptr %6, align 8, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1005, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 1024, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 1024, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  br label %1007

1007:                                             ; preds = %1004
  %1008 = load i32, ptr %35, align 4, !tbaa !31
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr %35, align 4, !tbaa !31
  br label %907, !llvm.loop !107

1010:                                             ; preds = %912
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  store i32 0, ptr %42, align 4, !tbaa !31
  br label %1011

1011:                                             ; preds = %1124, %1010
  %1012 = load i32, ptr %42, align 4, !tbaa !31
  %1013 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 4
  %1014 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %1013)
  %1015 = icmp slt i32 %1012, %1014
  br i1 %1015, label %1017, label %1016

1016:                                             ; preds = %1011
  store i32 69, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %1127

1017:                                             ; preds = %1011
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %1018 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 4
  %1019 = load i32, ptr %42, align 4, !tbaa !31
  %1020 = call noundef ptr @_ZNK7RNArrayIP8MPObjectE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %1018, i32 noundef %1019)
  store ptr %1020, ptr %43, align 8, !tbaa !5
  %1021 = load ptr, ptr %6, align 8, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef @.str.65) #6
  %1023 = load ptr, ptr %6, align 8, !tbaa !5
  %1024 = load ptr, ptr %43, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.MPObject, ptr %1024, i32 0, i32 1
  %1026 = load i32, ptr %1025, align 8, !tbaa !108
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.45, i32 noundef %1026) #6
  %1028 = load ptr, ptr %6, align 8, !tbaa !5
  %1029 = load ptr, ptr %43, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.MPObject, ptr %1029, i32 0, i32 2
  %1031 = load ptr, ptr %1030, align 8, !tbaa !113
  %1032 = icmp ne ptr %1031, null
  br i1 %1032, label %1033, label %1039

1033:                                             ; preds = %1017
  %1034 = load ptr, ptr %43, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.MPObject, ptr %1034, i32 0, i32 2
  %1036 = load ptr, ptr %1035, align 8, !tbaa !113
  %1037 = getelementptr inbounds %struct.MPRegion, ptr %1036, i32 0, i32 1
  %1038 = load i32, ptr %1037, align 8, !tbaa !42
  br label %1040

1039:                                             ; preds = %1017
  br label %1040

1040:                                             ; preds = %1039, %1033
  %1041 = phi i32 [ %1038, %1033 ], [ -1, %1039 ]
  %1042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1028, ptr noundef @.str.45, i32 noundef %1041) #6
  %1043 = load ptr, ptr %6, align 8, !tbaa !5
  %1044 = load ptr, ptr %43, align 8, !tbaa !5
  %1045 = getelementptr inbounds %struct.MPObject, ptr %1044, i32 0, i32 4
  %1046 = load ptr, ptr %1045, align 8, !tbaa !114
  %1047 = icmp ne ptr %1046, null
  br i1 %1047, label %1048, label %1054

1048:                                             ; preds = %1040
  %1049 = load ptr, ptr %43, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.MPObject, ptr %1049, i32 0, i32 4
  %1051 = load ptr, ptr %1050, align 8, !tbaa !114
  %1052 = getelementptr inbounds %struct.MPCategory, ptr %1051, i32 0, i32 1
  %1053 = load i32, ptr %1052, align 8, !tbaa !103
  br label %1055

1054:                                             ; preds = %1040
  br label %1055

1055:                                             ; preds = %1054, %1048
  %1056 = phi i32 [ %1053, %1048 ], [ -1, %1054 ]
  %1057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef @.str.46, i32 noundef %1056) #6
  %1058 = load ptr, ptr %6, align 8, !tbaa !5
  %1059 = load ptr, ptr %43, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.MPObject, ptr %1059, i32 0, i32 8
  %1061 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128) %1060)
  %1062 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %1061)
  %1063 = load ptr, ptr %43, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.MPObject, ptr %1063, i32 0, i32 8
  %1065 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128) %1064)
  %1066 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %1065)
  %1067 = load ptr, ptr %43, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.MPObject, ptr %1067, i32 0, i32 8
  %1069 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128) %1068)
  %1070 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %1069)
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1058, ptr noundef @.str.52, double noundef %1062, double noundef %1066, double noundef %1070) #6
  %1072 = load ptr, ptr %6, align 8, !tbaa !5
  %1073 = load ptr, ptr %43, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.MPObject, ptr %1073, i32 0, i32 8
  %1075 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %1074, i32 noundef 0)
  %1076 = call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %1075)
  %1077 = load ptr, ptr %43, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.MPObject, ptr %1077, i32 0, i32 8
  %1079 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %1078, i32 noundef 0)
  %1080 = call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %1079)
  %1081 = load ptr, ptr %43, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.MPObject, ptr %1081, i32 0, i32 8
  %1083 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %1082, i32 noundef 0)
  %1084 = call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %1083)
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef @.str.52, double noundef %1076, double noundef %1080, double noundef %1084) #6
  %1086 = load ptr, ptr %6, align 8, !tbaa !5
  %1087 = load ptr, ptr %43, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.MPObject, ptr %1087, i32 0, i32 8
  %1089 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %1088, i32 noundef 1)
  %1090 = call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %1089)
  %1091 = load ptr, ptr %43, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.MPObject, ptr %1091, i32 0, i32 8
  %1093 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %1092, i32 noundef 1)
  %1094 = call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %1093)
  %1095 = load ptr, ptr %43, align 8, !tbaa !5
  %1096 = getelementptr inbounds %struct.MPObject, ptr %1095, i32 0, i32 8
  %1097 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %1096, i32 noundef 1)
  %1098 = call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %1097)
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef @.str.52, double noundef %1090, double noundef %1094, double noundef %1098) #6
  %1100 = load ptr, ptr %6, align 8, !tbaa !5
  %1101 = load ptr, ptr %43, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.MPObject, ptr %1101, i32 0, i32 8
  %1103 = call noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128) %1102, i32 noundef 0)
  %1104 = load ptr, ptr %43, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.MPObject, ptr %1104, i32 0, i32 8
  %1106 = call noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128) %1105, i32 noundef 1)
  %1107 = load ptr, ptr %43, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.MPObject, ptr %1107, i32 0, i32 8
  %1109 = call noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128) %1108, i32 noundef 2)
  %1110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1100, ptr noundef @.str.52, double noundef %1103, double noundef %1106, double noundef %1109) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  store i32 0, ptr %44, align 4, !tbaa !31
  br label %1111

1111:                                             ; preds = %1118, %1055
  %1112 = load i32, ptr %44, align 4, !tbaa !31
  %1113 = icmp slt i32 %1112, 8
  br i1 %1113, label %1115, label %1114

1114:                                             ; preds = %1111
  store i32 72, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  br label %1121

1115:                                             ; preds = %1111
  %1116 = load ptr, ptr %6, align 8, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef @.str.47) #6
  br label %1118

1118:                                             ; preds = %1115
  %1119 = load i32, ptr %44, align 4, !tbaa !31
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr %44, align 4, !tbaa !31
  br label %1111, !llvm.loop !115

1121:                                             ; preds = %1114
  %1122 = load ptr, ptr %6, align 8, !tbaa !5
  %1123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  br label %1124

1124:                                             ; preds = %1121
  %1125 = load i32, ptr %42, align 4, !tbaa !31
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr %42, align 4, !tbaa !31
  br label %1011, !llvm.loop !116

1127:                                             ; preds = %1016
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #6
  store i32 0, ptr %45, align 4, !tbaa !31
  br label %1128

1128:                                             ; preds = %1226, %1127
  %1129 = load i32, ptr %45, align 4, !tbaa !31
  %1130 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 3
  %1131 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %1130)
  %1132 = icmp slt i32 %1129, %1131
  br i1 %1132, label %1134, label %1133

1133:                                             ; preds = %1128
  store i32 75, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  br label %1229

1134:                                             ; preds = %1128
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  %1135 = getelementptr inbounds %struct.MPHouse, ptr %48, i32 0, i32 3
  %1136 = load i32, ptr %45, align 4, !tbaa !31
  %1137 = call noundef ptr @_ZNK7RNArrayIP9MPSegmentE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %1135, i32 noundef %1136)
  store ptr %1137, ptr %46, align 8, !tbaa !5
  %1138 = load ptr, ptr %6, align 8, !tbaa !5
  %1139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef @.str.66) #6
  %1140 = load ptr, ptr %6, align 8, !tbaa !5
  %1141 = load ptr, ptr %46, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.MPSegment, ptr %1141, i32 0, i32 1
  %1143 = load i32, ptr %1142, align 8, !tbaa !117
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef @.str.45, i32 noundef %1143) #6
  %1145 = load ptr, ptr %6, align 8, !tbaa !5
  %1146 = load ptr, ptr %46, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.MPSegment, ptr %1146, i32 0, i32 3
  %1148 = load ptr, ptr %1147, align 8, !tbaa !120
  %1149 = icmp ne ptr %1148, null
  br i1 %1149, label %1150, label %1156

1150:                                             ; preds = %1134
  %1151 = load ptr, ptr %46, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.MPSegment, ptr %1151, i32 0, i32 3
  %1153 = load ptr, ptr %1152, align 8, !tbaa !120
  %1154 = getelementptr inbounds %struct.MPObject, ptr %1153, i32 0, i32 1
  %1155 = load i32, ptr %1154, align 8, !tbaa !108
  br label %1157

1156:                                             ; preds = %1134
  br label %1157

1157:                                             ; preds = %1156, %1150
  %1158 = phi i32 [ %1155, %1150 ], [ -1, %1156 ]
  %1159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.45, i32 noundef %1158) #6
  %1160 = load ptr, ptr %6, align 8, !tbaa !5
  %1161 = load ptr, ptr %46, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.MPSegment, ptr %1161, i32 0, i32 11
  %1163 = load i32, ptr %1162, align 8, !tbaa !121
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1160, ptr noundef @.str.46, i32 noundef %1163) #6
  %1165 = load ptr, ptr %6, align 8, !tbaa !5
  %1166 = load ptr, ptr %46, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.MPSegment, ptr %1166, i32 0, i32 8
  %1168 = load double, ptr %1167, align 8, !tbaa !122
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1165, ptr noundef @.str.54, double noundef %1168) #6
  %1170 = load ptr, ptr %6, align 8, !tbaa !5
  %1171 = load ptr, ptr %46, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.MPSegment, ptr %1171, i32 0, i32 9
  %1173 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %1172)
  %1174 = load ptr, ptr %46, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.MPSegment, ptr %1174, i32 0, i32 9
  %1176 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %1175)
  %1177 = load ptr, ptr %46, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.MPSegment, ptr %1177, i32 0, i32 9
  %1179 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %1178)
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.52, double noundef %1173, double noundef %1176, double noundef %1179) #6
  %1181 = load ptr, ptr %6, align 8, !tbaa !5
  %1182 = load ptr, ptr %46, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.MPSegment, ptr %1182, i32 0, i32 10
  %1184 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %1183, i32 noundef 0)
  %1185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %1184, i32 noundef 0)
  %1186 = load double, ptr %1185, align 8, !tbaa !38
  %1187 = load ptr, ptr %46, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.MPSegment, ptr %1187, i32 0, i32 10
  %1189 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %1188, i32 noundef 0)
  %1190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %1189, i32 noundef 1)
  %1191 = load double, ptr %1190, align 8, !tbaa !38
  %1192 = load ptr, ptr %46, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.MPSegment, ptr %1192, i32 0, i32 10
  %1194 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %1193, i32 noundef 0)
  %1195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %1194, i32 noundef 2)
  %1196 = load double, ptr %1195, align 8, !tbaa !38
  %1197 = load ptr, ptr %46, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.MPSegment, ptr %1197, i32 0, i32 10
  %1199 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %1198, i32 noundef 1)
  %1200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %1199, i32 noundef 0)
  %1201 = load double, ptr %1200, align 8, !tbaa !38
  %1202 = load ptr, ptr %46, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.MPSegment, ptr %1202, i32 0, i32 10
  %1204 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %1203, i32 noundef 1)
  %1205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %1204, i32 noundef 1)
  %1206 = load double, ptr %1205, align 8, !tbaa !38
  %1207 = load ptr, ptr %46, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.MPSegment, ptr %1207, i32 0, i32 10
  %1209 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %1208, i32 noundef 1)
  %1210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %1209, i32 noundef 2)
  %1211 = load double, ptr %1210, align 8, !tbaa !38
  %1212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1181, ptr noundef @.str.48, double noundef %1186, double noundef %1191, double noundef %1196, double noundef %1201, double noundef %1206, double noundef %1211) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  store i32 0, ptr %47, align 4, !tbaa !31
  br label %1213

1213:                                             ; preds = %1220, %1157
  %1214 = load i32, ptr %47, align 4, !tbaa !31
  %1215 = icmp slt i32 %1214, 5
  br i1 %1215, label %1217, label %1216

1216:                                             ; preds = %1213
  store i32 78, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br label %1223

1217:                                             ; preds = %1213
  %1218 = load ptr, ptr %6, align 8, !tbaa !5
  %1219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef @.str.47) #6
  br label %1220

1220:                                             ; preds = %1217
  %1221 = load i32, ptr %47, align 4, !tbaa !31
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr %47, align 4, !tbaa !31
  br label %1213, !llvm.loop !123

1223:                                             ; preds = %1216
  %1224 = load ptr, ptr %6, align 8, !tbaa !5
  %1225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef @.str.49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %1226

1226:                                             ; preds = %1223
  %1227 = load i32, ptr %45, align 4, !tbaa !31
  %1228 = add nsw i32 %1227, 1
  store i32 %1228, ptr %45, align 4, !tbaa !31
  br label %1128, !llvm.loop !124

1229:                                             ; preds = %1133
  %1230 = load ptr, ptr %6, align 8, !tbaa !5
  %1231 = call i32 @fclose(ptr noundef %1230)
  store i32 1, ptr %3, align 4
  store i32 1, ptr %7, align 4
  br label %1232

1232:                                             ; preds = %1229, %53
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  %1233 = load i32, ptr %3, align 4
  ret i32 %1233
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef) #3 align 2

; Function Attrs: nounwind
declare ptr @strncpy(ptr noundef, ptr noundef, i64 noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #0 align 2

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

!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, !6, i64 368}
!10 = !{!"_ZTS7MPHouse", !11, i64 0, !14, i64 16, !15, i64 32, !16, i64 48, !17, i64 64, !18, i64 80, !19, i64 96, !20, i64 112, !21, i64 128, !22, i64 144, !23, i64 160, !6, i64 288, !6, i64 296, !26, i64 304, !6, i64 360, !6, i64 368}
!11 = !{!"_ZTS7RNArrayIP7MPImageE", !12, i64 0}
!12 = !{!"_ZTS8RNVArray", !6, i64 0, !13, i64 8, !13, i64 12}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS7RNArrayIP10MPPanoramaE", !12, i64 0}
!15 = !{!"_ZTS7RNArrayIP10MPCategoryE", !12, i64 0}
!16 = !{!"_ZTS7RNArrayIP9MPSegmentE", !12, i64 0}
!17 = !{!"_ZTS7RNArrayIP8MPObjectE", !12, i64 0}
!18 = !{!"_ZTS7RNArrayIP8MPVertexE", !12, i64 0}
!19 = !{!"_ZTS7RNArrayIP9MPSurfaceE", !12, i64 0}
!20 = !{!"_ZTS7RNArrayIP8MPRegionE", !12, i64 0}
!21 = !{!"_ZTS7RNArrayIP8MPPortalE", !12, i64 0}
!22 = !{!"_ZTS7RNArrayIP7MPLevelE", !12, i64 0}
!23 = !{!"_ZTS17RGBDConfiguration", !24, i64 8, !25, i64 24, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !26, i64 72}
!24 = !{!"_ZTS7RNArrayIP9RGBDImageE", !12, i64 0}
!25 = !{!"_ZTS7RNArrayIP11RGBDSurfaceE", !12, i64 0}
!26 = !{!"_ZTS5R3Box", !27, i64 0, !29, i64 8, !29, i64 32}
!27 = !{!"_ZTS7R3Solid", !28, i64 0}
!28 = !{!"_ZTS7R3Shape"}
!29 = !{!"_ZTS7R3Point", !7, i64 0}
!30 = !{!10, !6, i64 360}
!31 = !{!13, !13, i64 0}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !33}
!35 = !{!36, !13, i64 8}
!36 = !{!"_ZTS7MPLevel", !6, i64 0, !13, i64 8, !20, i64 16, !29, i64 32, !26, i64 56, !6, i64 112}
!37 = !{!36, !6, i64 112}
!38 = !{!39, !39, i64 0}
!39 = !{!"double", !7, i64 0}
!40 = distinct !{!40, !33}
!41 = distinct !{!41, !33}
!42 = !{!43, !13, i64 8}
!43 = !{!"_ZTS8MPRegion", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !14, i64 32, !19, i64 48, !17, i64 64, !21, i64 80, !29, i64 96, !39, i64 120, !26, i64 128, !6, i64 184}
!44 = !{!43, !6, i64 16}
!45 = !{!43, !6, i64 184}
!46 = !{!43, !39, i64 120}
!47 = distinct !{!47, !33}
!48 = distinct !{!48, !33}
!49 = !{!50, !13, i64 8}
!50 = !{!"_ZTS8MPPortal", !6, i64 0, !13, i64 8, !7, i64 16, !7, i64 32, !51, i64 40, !6, i64 120}
!51 = !{!"_ZTS6R3Span", !52, i64 0, !29, i64 48, !39, i64 72}
!52 = !{!"_ZTS5R3Ray", !53, i64 0}
!53 = !{!"_ZTS6R3Line", !29, i64 0, !54, i64 24}
!54 = !{!"_ZTS8R3Vector", !7, i64 0}
!55 = !{!50, !6, i64 120}
!56 = distinct !{!56, !33}
!57 = distinct !{!57, !33}
!58 = !{!59, !13, i64 8}
!59 = !{!"_ZTS9MPSurface", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !18, i64 32, !29, i64 48, !54, i64 72, !26, i64 96, !6, i64 152}
!60 = !{!59, !6, i64 16}
!61 = !{!59, !6, i64 152}
!62 = distinct !{!62, !33}
!63 = distinct !{!63, !33}
!64 = !{!65, !13, i64 8}
!65 = !{!"_ZTS8MPVertex", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !29, i64 32, !54, i64 56, !6, i64 80}
!66 = !{!65, !6, i64 16}
!67 = !{!65, !6, i64 80}
!68 = distinct !{!68, !33}
!69 = distinct !{!69, !33}
!70 = distinct !{!70, !33}
!71 = !{!72, !6, i64 32}
!72 = !{!"_ZTS10MPPanorama", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !11, i64 40, !29, i64 56}
!73 = !{!72, !13, i64 8}
!74 = !{!72, !6, i64 16}
!75 = distinct !{!75, !33}
!76 = distinct !{!76, !33}
!77 = !{!78, !13, i64 8}
!78 = !{!"_ZTS7MPImage", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !79, i64 48, !83, i64 536, !86, i64 664, !13, i64 736, !13, i64 740, !29, i64 744}
!79 = !{!"_ZTS9RGBDImage", !6, i64 8, !13, i64 16, !80, i64 24, !13, i64 40, !13, i64 44, !81, i64 48, !86, i64 320, !26, i64 392, !13, i64 448, !6, i64 456, !6, i64 464, !6, i64 472, !13, i64 480, !13, i64 484}
!80 = !{!"_ZTS7RNArrayIP6R2GridE", !12, i64 0}
!81 = !{!"_ZTS8R3Affine", !82, i64 0, !83, i64 8, !83, i64 136, !84, i64 264}
!82 = !{!"_ZTS16R3Transformation"}
!83 = !{!"_ZTS8R4Matrix", !7, i64 0}
!84 = !{!"_ZTS7RNFlags", !85, i64 0}
!85 = !{!"long", !7, i64 0}
!86 = !{!"_ZTS8R3Matrix", !7, i64 0}
!87 = !{!78, !6, i64 16}
!88 = !{!78, !6, i64 32}
!89 = !{!78, !13, i64 40}
!90 = !{!78, !13, i64 44}
!91 = distinct !{!91, !33}
!92 = distinct !{!92, !33}
!93 = !{!78, !13, i64 736}
!94 = !{!78, !13, i64 740}
!95 = distinct !{!95, !33}
!96 = distinct !{!96, !33}
!97 = !{!98, !6, i64 40}
!98 = !{!"_ZTS10MPCategory", !6, i64 0, !13, i64 8, !17, i64 16, !13, i64 32, !6, i64 40, !13, i64 48, !6, i64 56}
!99 = !{!98, !6, i64 56}
!100 = !{!7, !7, i64 0}
!101 = distinct !{!101, !33}
!102 = distinct !{!102, !33}
!103 = !{!98, !13, i64 8}
!104 = !{!98, !13, i64 32}
!105 = !{!98, !13, i64 48}
!106 = distinct !{!106, !33}
!107 = distinct !{!107, !33}
!108 = !{!109, !13, i64 8}
!109 = !{!"_ZTS8MPObject", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !13, i64 40, !16, i64 48, !29, i64 64, !110, i64 88}
!110 = !{!"_ZTS13R3OrientedBox", !27, i64 0, !111, i64 8, !7, i64 104}
!111 = !{!"_ZTS13R3CoordSystem", !29, i64 0, !112, i64 24}
!112 = !{!"_ZTS7R3Triad", !7, i64 0}
!113 = !{!109, !6, i64 16}
!114 = !{!109, !6, i64 32}
!115 = distinct !{!115, !33}
!116 = distinct !{!116, !33}
!117 = !{!118, !13, i64 8}
!118 = !{!"_ZTS9MPSegment", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !119, i64 40, !39, i64 56, !29, i64 64, !26, i64 88, !13, i64 144}
!119 = !{!"_ZTS7RNArrayIP10R3MeshFaceE", !12, i64 0}
!120 = !{!118, !6, i64 16}
!121 = !{!118, !13, i64 144}
!122 = !{!118, !39, i64 56}
!123 = distinct !{!123, !33}
!124 = distinct !{!124, !33}


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

@stderr = external local_unnamed_addr global ptr, align 8
@.str.9 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 2) i32 @_ZNK7MPHouse14WriteAsciiFileEPKc(ptr noundef nonnull align 8 dereferenceable(376) %0, ptr noundef %1) local_unnamed_addr #2 align 2 {
  %3 = alloca [1024 x i8], align 16
  %4 = alloca [1024 x i8], align 16
  %5 = tail call noalias ptr @fopen(ptr noundef %1, ptr noundef nonnull @.str.41)
  %.not = icmp eq ptr %5, null
  br i1 %.not, label %6, label %9

6:                                                ; preds = %2
  %7 = load ptr, ptr @stderr, align 8, !tbaa !5
  %8 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7, ptr noundef nonnull @.str.9, ptr noundef %1) #6
  br label %649

9:                                                ; preds = %2
  %10 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.42) #7
  %11 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.43) #7
  %12 = getelementptr inbounds i8, ptr %0, i64 368
  %13 = load ptr, ptr %12, align 8, !tbaa !9
  %.not367 = icmp eq ptr %13, null
  %spec.select = select i1 %.not367, ptr @.str.15, ptr %13
  %14 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select) #7
  %15 = getelementptr inbounds i8, ptr %0, i64 360
  %16 = load ptr, ptr %15, align 8, !tbaa !30
  %.not368 = icmp eq ptr %16, null
  %17 = select i1 %.not368, ptr @.str.15, ptr %16
  %18 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %17) #7
  %19 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %20 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %19) #7
  %21 = getelementptr inbounds i8, ptr %0, i64 16
  %22 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
  %23 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %22) #7
  %24 = getelementptr inbounds i8, ptr %0, i64 80
  %25 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
  %26 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %25) #7
  %27 = getelementptr inbounds i8, ptr %0, i64 96
  %28 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
  %29 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %28) #7
  %30 = getelementptr inbounds i8, ptr %0, i64 48
  %31 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
  %32 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %31) #7
  %33 = getelementptr inbounds i8, ptr %0, i64 64
  %34 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
  %35 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %34) #7
  %36 = getelementptr inbounds i8, ptr %0, i64 32
  %37 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
  %38 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %37) #7
  %39 = getelementptr inbounds i8, ptr %0, i64 112
  %40 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  %41 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.45, i32 noundef %40) #7
  %42 = getelementptr inbounds i8, ptr %0, i64 128
  %43 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
  %44 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.46, i32 noundef %43) #7
  %45 = getelementptr inbounds i8, ptr %0, i64 144
  %46 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
  %47 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.46, i32 noundef %46) #7
  %48 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %49 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %50 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %51 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %52 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %53 = getelementptr inbounds i8, ptr %0, i64 304
  %54 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %53, i32 noundef 0)
  %55 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %54, i32 noundef 0)
  %56 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %53, i32 noundef 0)
  %57 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %56, i32 noundef 1)
  %58 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %53, i32 noundef 0)
  %59 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %58, i32 noundef 2)
  %60 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %53, i32 noundef 1)
  %61 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %60, i32 noundef 0)
  %62 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %53, i32 noundef 1)
  %63 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %62, i32 noundef 1)
  %64 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %53, i32 noundef 1)
  %65 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %64, i32 noundef 2)
  %66 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.48, double noundef %55, double noundef %57, double noundef %59, double noundef %61, double noundef %63, double noundef %65) #7
  %67 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %68 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %69 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %70 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %71 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.47) #7
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef nonnull %5, ptr noundef nonnull @.str.49) #7
  %73 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
  %74 = icmp sgt i32 %73, 0
  br i1 %74, label %.lr.ph, label %.preheader408

.preheader408:                                    ; preds = %.lr.ph, %9
  %75 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  %76 = icmp sgt i32 %75, 0
  br i1 %76, label %.lr.ph415, label %.preheader407

.lr.ph:                                           ; preds = %9, %.lr.ph
  %.0331412 = phi i32 [ %117, %.lr.ph ], [ 0, %9 ]
  %77 = tail call noundef ptr @_ZNK7RNArrayIP7MPLevelE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %45, i32 noundef %.0331412)
  %78 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.50) #7
  %79 = getelementptr inbounds i8, ptr %77, i64 8
  %80 = load i32, ptr %79, align 8, !tbaa !31
  %81 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %80) #7
  %82 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.51) #7
  %83 = getelementptr inbounds i8, ptr %77, i64 112
  %84 = load ptr, ptr %83, align 8, !tbaa !33
  %.not389 = icmp eq ptr %84, null
  %spec.select390 = select i1 %.not389, ptr @.str.15, ptr %84
  %85 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select390) #7
  %86 = getelementptr inbounds i8, ptr %77, i64 32
  %87 = tail call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %86)
  %88 = tail call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %86)
  %89 = tail call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %86)
  %90 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %87, double noundef %88, double noundef %89) #7
  %91 = getelementptr inbounds i8, ptr %77, i64 56
  %92 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef 0)
  %93 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %92, i32 noundef 0)
  %94 = load double, ptr %93, align 8, !tbaa !34
  %95 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef 0)
  %96 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %95, i32 noundef 1)
  %97 = load double, ptr %96, align 8, !tbaa !34
  %98 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef 0)
  %99 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %98, i32 noundef 2)
  %100 = load double, ptr %99, align 8, !tbaa !34
  %101 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef 1)
  %102 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %101, i32 noundef 0)
  %103 = load double, ptr %102, align 8, !tbaa !34
  %104 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef 1)
  %105 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %104, i32 noundef 1)
  %106 = load double, ptr %105, align 8, !tbaa !34
  %107 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef 1)
  %108 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %107, i32 noundef 2)
  %109 = load double, ptr %108, align 8, !tbaa !34
  %110 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.48, double noundef %94, double noundef %97, double noundef %100, double noundef %103, double noundef %106, double noundef %109) #7
  %111 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %112 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %113 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %114 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %115 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %116 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %117 = add nuw nsw i32 %.0331412, 1
  %118 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %45)
  %119 = icmp slt i32 %117, %118
  br i1 %119, label %.lr.ph, label %.preheader408, !llvm.loop !36

.preheader407:                                    ; preds = %132, %.preheader408
  %120 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
  %121 = icmp sgt i32 %120, 0
  br i1 %121, label %.lr.ph418, label %.preheader406

.lr.ph415:                                        ; preds = %.preheader408, %132
  %.0336414 = phi i32 [ %173, %132 ], [ 0, %.preheader408 ]
  %122 = tail call noundef ptr @_ZNK7RNArrayIP8MPRegionE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %39, i32 noundef %.0336414)
  %123 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.53) #7
  %124 = getelementptr inbounds i8, ptr %122, i64 8
  %125 = load i32, ptr %124, align 8, !tbaa !38
  %126 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %125) #7
  %127 = getelementptr inbounds i8, ptr %122, i64 16
  %128 = load ptr, ptr %127, align 8, !tbaa !40
  %.not387 = icmp eq ptr %128, null
  br i1 %.not387, label %132, label %129

129:                                              ; preds = %.lr.ph415
  %130 = getelementptr inbounds i8, ptr %128, i64 8
  %131 = load i32, ptr %130, align 8, !tbaa !31
  br label %132

132:                                              ; preds = %.lr.ph415, %129
  %133 = phi i32 [ %131, %129 ], [ -1, %.lr.ph415 ]
  %134 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %133) #7
  %135 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %136 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.51) #7
  %137 = getelementptr inbounds i8, ptr %122, i64 184
  %138 = load ptr, ptr %137, align 8, !tbaa !41
  %.not388 = icmp eq ptr %138, null
  %spec.select391 = select i1 %.not388, ptr @.str.15, ptr %138
  %139 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select391) #7
  %140 = getelementptr inbounds i8, ptr %122, i64 96
  %141 = tail call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %140)
  %142 = tail call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %140)
  %143 = tail call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %140)
  %144 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %141, double noundef %142, double noundef %143) #7
  %145 = getelementptr inbounds i8, ptr %122, i64 128
  %146 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 0)
  %147 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %146, i32 noundef 0)
  %148 = load double, ptr %147, align 8, !tbaa !34
  %149 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 0)
  %150 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %149, i32 noundef 1)
  %151 = load double, ptr %150, align 8, !tbaa !34
  %152 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 0)
  %153 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %152, i32 noundef 2)
  %154 = load double, ptr %153, align 8, !tbaa !34
  %155 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 1)
  %156 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %155, i32 noundef 0)
  %157 = load double, ptr %156, align 8, !tbaa !34
  %158 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 1)
  %159 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %158, i32 noundef 1)
  %160 = load double, ptr %159, align 8, !tbaa !34
  %161 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %145, i32 noundef 1)
  %162 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %161, i32 noundef 2)
  %163 = load double, ptr %162, align 8, !tbaa !34
  %164 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.48, double noundef %148, double noundef %151, double noundef %154, double noundef %157, double noundef %160, double noundef %163) #7
  %165 = getelementptr inbounds i8, ptr %122, i64 120
  %166 = load double, ptr %165, align 8, !tbaa !42
  %167 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.54, double noundef %166) #7
  %168 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %169 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %170 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %171 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %172 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %173 = add nuw nsw i32 %.0336414, 1
  %174 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %39)
  %175 = icmp slt i32 %173, %174
  br i1 %175, label %.lr.ph415, label %.preheader407, !llvm.loop !43

.preheader406:                                    ; preds = %196, %.preheader407
  %176 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
  %177 = icmp sgt i32 %176, 0
  br i1 %177, label %.lr.ph421, label %.preheader405

.lr.ph418:                                        ; preds = %.preheader407, %196
  %.0342417 = phi i32 [ %222, %196 ], [ 0, %.preheader407 ]
  %178 = tail call noundef ptr @_ZNK7RNArrayIP8MPPortalE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %42, i32 noundef %.0342417)
  %179 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.53) #7
  %180 = getelementptr inbounds i8, ptr %178, i64 8
  %181 = load i32, ptr %180, align 8, !tbaa !44
  %182 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %181) #7
  %183 = getelementptr inbounds i8, ptr %178, i64 16
  %184 = load ptr, ptr %183, align 8, !tbaa !5
  %.not384 = icmp eq ptr %184, null
  br i1 %.not384, label %188, label %185

185:                                              ; preds = %.lr.ph418
  %186 = getelementptr inbounds i8, ptr %184, i64 8
  %187 = load i32, ptr %186, align 8, !tbaa !38
  br label %188

188:                                              ; preds = %.lr.ph418, %185
  %189 = phi i32 [ %187, %185 ], [ -1, %.lr.ph418 ]
  %190 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %189) #7
  %191 = getelementptr inbounds i8, ptr %178, i64 24
  %192 = load ptr, ptr %191, align 8, !tbaa !5
  %.not385 = icmp eq ptr %192, null
  br i1 %.not385, label %196, label %193

193:                                              ; preds = %188
  %194 = getelementptr inbounds i8, ptr %192, i64 8
  %195 = load i32, ptr %194, align 8, !tbaa !38
  br label %196

196:                                              ; preds = %188, %193
  %197 = phi i32 [ %195, %193 ], [ -1, %188 ]
  %198 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %197) #7
  %199 = getelementptr inbounds i8, ptr %178, i64 120
  %200 = load ptr, ptr %199, align 8, !tbaa !50
  %.not386 = icmp eq ptr %200, null
  %spec.select392 = select i1 %.not386, ptr @.str.15, ptr %200
  %201 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select392) #7
  %202 = getelementptr inbounds i8, ptr %178, i64 40
  %203 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %202, i32 noundef 0)
  %204 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %203, i32 noundef 0)
  %205 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %202, i32 noundef 0)
  %206 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %205, i32 noundef 1)
  %207 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %202, i32 noundef 0)
  %208 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %207, i32 noundef 2)
  %209 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %204, double noundef %206, double noundef %208) #7
  %210 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %202, i32 noundef 1)
  %211 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %210, i32 noundef 0)
  %212 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %202, i32 noundef 1)
  %213 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %212, i32 noundef 1)
  %214 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80) %202, i32 noundef 1)
  %215 = tail call noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %214, i32 noundef 2)
  %216 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %211, double noundef %213, double noundef %215) #7
  %217 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %218 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %219 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %220 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %221 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %222 = add nuw nsw i32 %.0342417, 1
  %223 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %42)
  %224 = icmp slt i32 %222, %223
  br i1 %224, label %.lr.ph418, label %.preheader406, !llvm.loop !51

.preheader405:                                    ; preds = %236, %.preheader406
  %225 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
  %226 = icmp sgt i32 %225, 0
  br i1 %226, label %.lr.ph426, label %.preheader404

.lr.ph421:                                        ; preds = %.preheader406, %236
  %.0340420 = phi i32 [ %279, %236 ], [ 0, %.preheader406 ]
  %227 = tail call noundef ptr @_ZNK7RNArrayIP9MPSurfaceE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %.0340420)
  %228 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.55) #7
  %229 = getelementptr inbounds i8, ptr %227, i64 8
  %230 = load i32, ptr %229, align 8, !tbaa !52
  %231 = getelementptr inbounds i8, ptr %227, i64 16
  %232 = load ptr, ptr %231, align 8, !tbaa !54
  %.not382 = icmp eq ptr %232, null
  br i1 %.not382, label %236, label %233

233:                                              ; preds = %.lr.ph421
  %234 = getelementptr inbounds i8, ptr %232, i64 8
  %235 = load i32, ptr %234, align 8, !tbaa !38
  br label %236

236:                                              ; preds = %.lr.ph421, %233
  %237 = phi i32 [ %235, %233 ], [ -1, %.lr.ph421 ]
  %238 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.56, i32 noundef %230, i32 noundef %237) #7
  %239 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.51) #7
  %240 = getelementptr inbounds i8, ptr %227, i64 152
  %241 = load ptr, ptr %240, align 8, !tbaa !55
  %.not383 = icmp eq ptr %241, null
  %spec.select393 = select i1 %.not383, ptr @.str.15, ptr %241
  %242 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select393) #7
  %243 = getelementptr inbounds i8, ptr %227, i64 48
  %244 = tail call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %243)
  %245 = tail call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %243)
  %246 = tail call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %243)
  %247 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %244, double noundef %245, double noundef %246) #7
  %248 = getelementptr inbounds i8, ptr %227, i64 72
  %249 = tail call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %248)
  %250 = tail call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %248)
  %251 = tail call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %248)
  %252 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %249, double noundef %250, double noundef %251) #7
  %253 = getelementptr inbounds i8, ptr %227, i64 96
  %254 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %253, i32 noundef 0)
  %255 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %254, i32 noundef 0)
  %256 = load double, ptr %255, align 8, !tbaa !34
  %257 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %253, i32 noundef 0)
  %258 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %257, i32 noundef 1)
  %259 = load double, ptr %258, align 8, !tbaa !34
  %260 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %253, i32 noundef 0)
  %261 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %260, i32 noundef 2)
  %262 = load double, ptr %261, align 8, !tbaa !34
  %263 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %253, i32 noundef 1)
  %264 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %263, i32 noundef 0)
  %265 = load double, ptr %264, align 8, !tbaa !34
  %266 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %253, i32 noundef 1)
  %267 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %266, i32 noundef 1)
  %268 = load double, ptr %267, align 8, !tbaa !34
  %269 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %253, i32 noundef 1)
  %270 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %269, i32 noundef 2)
  %271 = load double, ptr %270, align 8, !tbaa !34
  %272 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.48, double noundef %256, double noundef %259, double noundef %262, double noundef %265, double noundef %268, double noundef %271) #7
  %273 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %274 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %275 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %276 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %277 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %278 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %279 = add nuw nsw i32 %.0340420, 1
  %280 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
  %281 = icmp slt i32 %279, %280
  br i1 %281, label %.lr.ph421, label %.preheader405, !llvm.loop !56

.preheader404:                                    ; preds = %._crit_edge, %.preheader405
  %282 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
  %283 = icmp sgt i32 %282, 0
  br i1 %283, label %.lr.ph429, label %.preheader403

.lr.ph426:                                        ; preds = %.preheader405, %._crit_edge
  %.0337425 = phi i32 [ %288, %._crit_edge ], [ 0, %.preheader405 ]
  %284 = tail call noundef ptr @_ZNK7RNArrayIP9MPSurfaceE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %.0337425)
  %285 = getelementptr inbounds i8, ptr %284, i64 32
  %286 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %285)
  %287 = icmp sgt i32 %286, 0
  br i1 %287, label %.lr.ph424, label %._crit_edge

._crit_edge:                                      ; preds = %300, %.lr.ph426
  %288 = add nuw nsw i32 %.0337425, 1
  %289 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
  %290 = icmp slt i32 %288, %289
  br i1 %290, label %.lr.ph426, label %.preheader404, !llvm.loop !57

.lr.ph424:                                        ; preds = %.lr.ph426, %300
  %.0335423 = phi i32 [ %320, %300 ], [ 0, %.lr.ph426 ]
  %291 = tail call noundef ptr @_ZNK7RNArrayIP8MPVertexE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %285, i32 noundef %.0335423)
  %292 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.57) #7
  %293 = getelementptr inbounds i8, ptr %291, i64 8
  %294 = load i32, ptr %293, align 8, !tbaa !58
  %295 = getelementptr inbounds i8, ptr %291, i64 16
  %296 = load ptr, ptr %295, align 8, !tbaa !60
  %.not380 = icmp eq ptr %296, null
  br i1 %.not380, label %300, label %297

297:                                              ; preds = %.lr.ph424
  %298 = getelementptr inbounds i8, ptr %296, i64 8
  %299 = load i32, ptr %298, align 8, !tbaa !52
  br label %300

300:                                              ; preds = %.lr.ph424, %297
  %301 = phi i32 [ %299, %297 ], [ -1, %.lr.ph424 ]
  %302 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.56, i32 noundef %294, i32 noundef %301) #7
  %303 = getelementptr inbounds i8, ptr %291, i64 80
  %304 = load ptr, ptr %303, align 8, !tbaa !61
  %.not381 = icmp eq ptr %304, null
  %spec.select394 = select i1 %.not381, ptr @.str.15, ptr %304
  %305 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select394) #7
  %306 = getelementptr inbounds i8, ptr %291, i64 32
  %307 = tail call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %306)
  %308 = tail call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %306)
  %309 = tail call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %306)
  %310 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %307, double noundef %308, double noundef %309) #7
  %311 = getelementptr inbounds i8, ptr %291, i64 56
  %312 = tail call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %311)
  %313 = tail call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %311)
  %314 = tail call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %311)
  %315 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %312, double noundef %313, double noundef %314) #7
  %316 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %317 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %318 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %319 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %320 = add nuw nsw i32 %.0335423, 1
  %321 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %285)
  %322 = icmp slt i32 %320, %321
  br i1 %322, label %.lr.ph424, label %._crit_edge, !llvm.loop !62

.preheader403:                                    ; preds = %337, %.preheader404
  %323 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %324 = icmp sgt i32 %323, 0
  br i1 %324, label %.lr.ph434, label %.preheader402

.lr.ph429:                                        ; preds = %.preheader404, %337
  %.0332428 = phi i32 [ %352, %337 ], [ 0, %.preheader404 ]
  %325 = tail call noundef ptr @_ZNK7RNArrayIP10MPPanoramaE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %21, i32 noundef %.0332428)
  %326 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.58) #7
  %327 = getelementptr inbounds i8, ptr %325, i64 32
  %328 = load ptr, ptr %327, align 8, !tbaa !63
  %.not378 = icmp eq ptr %328, null
  %spec.select395 = select i1 %.not378, ptr @.str.15, ptr %328
  %329 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select395) #7
  %330 = getelementptr inbounds i8, ptr %325, i64 8
  %331 = load i32, ptr %330, align 8, !tbaa !65
  %332 = getelementptr inbounds i8, ptr %325, i64 16
  %333 = load ptr, ptr %332, align 8, !tbaa !66
  %.not379 = icmp eq ptr %333, null
  br i1 %.not379, label %337, label %334

334:                                              ; preds = %.lr.ph429
  %335 = getelementptr inbounds i8, ptr %333, i64 8
  %336 = load i32, ptr %335, align 8, !tbaa !38
  br label %337

337:                                              ; preds = %.lr.ph429, %334
  %338 = phi i32 [ %336, %334 ], [ -1, %.lr.ph429 ]
  %339 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.56, i32 noundef %331, i32 noundef %338) #7
  %340 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.51) #7
  %341 = getelementptr inbounds i8, ptr %325, i64 56
  %342 = tail call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %341)
  %343 = tail call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %341)
  %344 = tail call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %341)
  %345 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %342, double noundef %343, double noundef %344) #7
  %346 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %347 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %348 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %349 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %350 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %351 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %352 = add nuw nsw i32 %.0332428, 1
  %353 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
  %354 = icmp slt i32 %352, %353
  br i1 %354, label %.lr.ph429, label %.preheader403, !llvm.loop !67

.preheader402:                                    ; preds = %367, %.preheader403
  %355 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
  %356 = icmp sgt i32 %355, 0
  br i1 %356, label %.lr.ph437, label %.preheader400

.lr.ph434:                                        ; preds = %.preheader403, %367
  %.0329433 = phi i32 [ %492, %367 ], [ 0, %.preheader403 ]
  %357 = tail call noundef ptr @_ZNK7RNArrayIP7MPImageE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %0, i32 noundef %.0329433)
  %358 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.59) #7
  %359 = getelementptr inbounds i8, ptr %357, i64 8
  %360 = load i32, ptr %359, align 8, !tbaa !68
  %361 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %360) #7
  %362 = getelementptr inbounds i8, ptr %357, i64 16
  %363 = load ptr, ptr %362, align 8, !tbaa !78
  %.not376 = icmp eq ptr %363, null
  br i1 %.not376, label %367, label %364

364:                                              ; preds = %.lr.ph434
  %365 = getelementptr inbounds i8, ptr %363, i64 8
  %366 = load i32, ptr %365, align 8, !tbaa !65
  br label %367

367:                                              ; preds = %.lr.ph434, %364
  %368 = phi i32 [ %366, %364 ], [ -1, %.lr.ph434 ]
  %369 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.60, i32 noundef %368) #7
  %370 = getelementptr inbounds i8, ptr %357, i64 32
  %371 = load ptr, ptr %370, align 8, !tbaa !79
  %.not377 = icmp eq ptr %371, null
  %spec.select396 = select i1 %.not377, ptr @.str.15, ptr %371
  %372 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.44, ptr noundef nonnull %spec.select396) #7
  %373 = getelementptr inbounds i8, ptr %357, i64 40
  %374 = load i32, ptr %373, align 8, !tbaa !80
  %375 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %374) #7
  %376 = getelementptr inbounds i8, ptr %357, i64 44
  %377 = load i32, ptr %376, align 4, !tbaa !81
  %378 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %377) #7
  %379 = getelementptr inbounds i8, ptr %357, i64 536
  %380 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 0)
  %381 = load double, ptr %380, align 8, !tbaa !34
  %382 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %381) #7
  %383 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 0)
  %384 = getelementptr inbounds i8, ptr %383, i64 8
  %385 = load double, ptr %384, align 8, !tbaa !34
  %386 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %385) #7
  %387 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 0)
  %388 = getelementptr inbounds i8, ptr %387, i64 16
  %389 = load double, ptr %388, align 8, !tbaa !34
  %390 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %389) #7
  %391 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 0)
  %392 = getelementptr inbounds i8, ptr %391, i64 24
  %393 = load double, ptr %392, align 8, !tbaa !34
  %394 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %393) #7
  %395 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 1)
  %396 = load double, ptr %395, align 8, !tbaa !34
  %397 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %396) #7
  %398 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 1)
  %399 = getelementptr inbounds i8, ptr %398, i64 8
  %400 = load double, ptr %399, align 8, !tbaa !34
  %401 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %400) #7
  %402 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 1)
  %403 = getelementptr inbounds i8, ptr %402, i64 16
  %404 = load double, ptr %403, align 8, !tbaa !34
  %405 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %404) #7
  %406 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 1)
  %407 = getelementptr inbounds i8, ptr %406, i64 24
  %408 = load double, ptr %407, align 8, !tbaa !34
  %409 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %408) #7
  %410 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 2)
  %411 = load double, ptr %410, align 8, !tbaa !34
  %412 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %411) #7
  %413 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 2)
  %414 = getelementptr inbounds i8, ptr %413, i64 8
  %415 = load double, ptr %414, align 8, !tbaa !34
  %416 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %415) #7
  %417 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 2)
  %418 = getelementptr inbounds i8, ptr %417, i64 16
  %419 = load double, ptr %418, align 8, !tbaa !34
  %420 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %419) #7
  %421 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 2)
  %422 = getelementptr inbounds i8, ptr %421, i64 24
  %423 = load double, ptr %422, align 8, !tbaa !34
  %424 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %423) #7
  %425 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 3)
  %426 = load double, ptr %425, align 8, !tbaa !34
  %427 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %426) #7
  %428 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 3)
  %429 = getelementptr inbounds i8, ptr %428, i64 8
  %430 = load double, ptr %429, align 8, !tbaa !34
  %431 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %430) #7
  %432 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 3)
  %433 = getelementptr inbounds i8, ptr %432, i64 16
  %434 = load double, ptr %433, align 8, !tbaa !34
  %435 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %434) #7
  %436 = tail call noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128) %379, i32 noundef 3)
  %437 = getelementptr inbounds i8, ptr %436, i64 24
  %438 = load double, ptr %437, align 8, !tbaa !34
  %439 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %438) #7
  %440 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.62) #7
  %441 = getelementptr inbounds i8, ptr %357, i64 664
  %442 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 0)
  %443 = load double, ptr %442, align 8, !tbaa !34
  %444 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %443) #7
  %445 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 0)
  %446 = getelementptr inbounds i8, ptr %445, i64 8
  %447 = load double, ptr %446, align 8, !tbaa !34
  %448 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %447) #7
  %449 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 0)
  %450 = getelementptr inbounds i8, ptr %449, i64 16
  %451 = load double, ptr %450, align 8, !tbaa !34
  %452 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %451) #7
  %453 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 1)
  %454 = load double, ptr %453, align 8, !tbaa !34
  %455 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %454) #7
  %456 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 1)
  %457 = getelementptr inbounds i8, ptr %456, i64 8
  %458 = load double, ptr %457, align 8, !tbaa !34
  %459 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %458) #7
  %460 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 1)
  %461 = getelementptr inbounds i8, ptr %460, i64 16
  %462 = load double, ptr %461, align 8, !tbaa !34
  %463 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %462) #7
  %464 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 2)
  %465 = load double, ptr %464, align 8, !tbaa !34
  %466 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %465) #7
  %467 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 2)
  %468 = getelementptr inbounds i8, ptr %467, i64 8
  %469 = load double, ptr %468, align 8, !tbaa !34
  %470 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %469) #7
  %471 = tail call noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72) %441, i32 noundef 2)
  %472 = getelementptr inbounds i8, ptr %471, i64 16
  %473 = load double, ptr %472, align 8, !tbaa !34
  %474 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.61, double noundef %473) #7
  %475 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.62) #7
  %476 = getelementptr inbounds i8, ptr %357, i64 736
  %477 = load i32, ptr %476, align 8, !tbaa !82
  %478 = getelementptr inbounds i8, ptr %357, i64 740
  %479 = load i32, ptr %478, align 4, !tbaa !83
  %480 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.56, i32 noundef %477, i32 noundef %479) #7
  %481 = getelementptr inbounds i8, ptr %357, i64 744
  %482 = tail call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %481)
  %483 = tail call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %481)
  %484 = tail call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %481)
  %485 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %482, double noundef %483, double noundef %484) #7
  %486 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %487 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %488 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %489 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %490 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %491 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %492 = add nuw nsw i32 %.0329433, 1
  %493 = tail call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %494 = icmp slt i32 %492, %493
  br i1 %494, label %.lr.ph434, label %.preheader402, !llvm.loop !84

.preheader400:                                    ; preds = %514, %.preheader402
  %495 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
  %496 = icmp sgt i32 %495, 0
  br i1 %496, label %.lr.ph440, label %.preheader

.lr.ph437:                                        ; preds = %.preheader402, %514
  %.0324436 = phi i32 [ %531, %514 ], [ 0, %.preheader402 ]
  %497 = call noundef ptr @_ZNK7RNArrayIP10MPCategoryE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %36, i32 noundef %.0324436)
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %4) #7
  %498 = getelementptr inbounds i8, ptr %497, i64 40
  %499 = load ptr, ptr %498, align 8, !tbaa !85
  %.not372 = icmp eq ptr %499, null
  %spec.select397 = select i1 %.not372, ptr @.str.15, ptr %499
  %500 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) %spec.select397, i64 noundef 1024) #7
  %501 = getelementptr inbounds i8, ptr %497, i64 56
  %502 = load ptr, ptr %501, align 8, !tbaa !87
  %.not373 = icmp eq ptr %502, null
  %503 = select i1 %.not373, ptr @.str.15, ptr %502
  %504 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) %503, i64 noundef 1024) #7
  br label %505

505:                                              ; preds = %508, %.lr.ph437
  %.0322 = phi ptr [ %3, %.lr.ph437 ], [ %509, %508 ]
  %506 = load i8, ptr %.0322, align 1, !tbaa !88
  switch i8 %506, label %508 [
    i8 0, label %.preheader401
    i8 32, label %507
  ]

507:                                              ; preds = %505
  store i8 35, ptr %.0322, align 1, !tbaa !88
  br label %508

508:                                              ; preds = %505, %507
  %509 = getelementptr inbounds i8, ptr %.0322, i64 1
  br label %505, !llvm.loop !89

.preheader401:                                    ; preds = %505, %512
  %.0321 = phi ptr [ %513, %512 ], [ %4, %505 ]
  %510 = load i8, ptr %.0321, align 1, !tbaa !88
  switch i8 %510, label %512 [
    i8 0, label %514
    i8 32, label %511
  ]

511:                                              ; preds = %.preheader401
  store i8 35, ptr %.0321, align 1, !tbaa !88
  br label %512

512:                                              ; preds = %.preheader401, %511
  %513 = getelementptr inbounds i8, ptr %.0321, i64 1
  br label %.preheader401, !llvm.loop !90

514:                                              ; preds = %.preheader401
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.63) #7
  %516 = getelementptr inbounds i8, ptr %497, i64 8
  %517 = load i32, ptr %516, align 8, !tbaa !91
  %518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %517) #7
  %519 = getelementptr inbounds i8, ptr %497, i64 32
  %520 = load i32, ptr %519, align 8, !tbaa !92
  %521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.64, i32 noundef %520, ptr noundef nonnull %3) #7
  %522 = getelementptr inbounds i8, ptr %497, i64 48
  %523 = load i32, ptr %522, align 8, !tbaa !93
  %524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.64, i32 noundef %523, ptr noundef nonnull %4) #7
  %525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %3) #7
  %531 = add nuw nsw i32 %.0324436, 1
  %532 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
  %533 = icmp slt i32 %531, %532
  br i1 %533, label %.lr.ph437, label %.preheader400, !llvm.loop !94

.preheader:                                       ; preds = %554, %.preheader400
  %534 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
  %535 = icmp sgt i32 %534, 0
  br i1 %535, label %.lr.ph443, label %._crit_edge444

.lr.ph440:                                        ; preds = %.preheader400, %554
  %.0319439 = phi i32 [ %592, %554 ], [ 0, %.preheader400 ]
  %536 = call noundef ptr @_ZNK7RNArrayIP8MPObjectE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %33, i32 noundef %.0319439)
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.65) #7
  %538 = getelementptr inbounds i8, ptr %536, i64 8
  %539 = load i32, ptr %538, align 8, !tbaa !95
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %539) #7
  %541 = getelementptr inbounds i8, ptr %536, i64 16
  %542 = load ptr, ptr %541, align 8, !tbaa !100
  %.not370 = icmp eq ptr %542, null
  br i1 %.not370, label %546, label %543

543:                                              ; preds = %.lr.ph440
  %544 = getelementptr inbounds i8, ptr %542, i64 8
  %545 = load i32, ptr %544, align 8, !tbaa !38
  br label %546

546:                                              ; preds = %.lr.ph440, %543
  %547 = phi i32 [ %545, %543 ], [ -1, %.lr.ph440 ]
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %547) #7
  %549 = getelementptr inbounds i8, ptr %536, i64 32
  %550 = load ptr, ptr %549, align 8, !tbaa !101
  %.not371 = icmp eq ptr %550, null
  br i1 %.not371, label %554, label %551

551:                                              ; preds = %546
  %552 = getelementptr inbounds i8, ptr %550, i64 8
  %553 = load i32, ptr %552, align 8, !tbaa !91
  br label %554

554:                                              ; preds = %546, %551
  %555 = phi i32 [ %553, %551 ], [ -1, %546 ]
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %555) #7
  %557 = getelementptr inbounds i8, ptr %536, i64 88
  %558 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128) %557)
  %559 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %558)
  %560 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128) %557)
  %561 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %560)
  %562 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128) %557)
  %563 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %562)
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %559, double noundef %561, double noundef %563) #7
  %565 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 0)
  %566 = call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %565)
  %567 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 0)
  %568 = call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %567)
  %569 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 0)
  %570 = call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %569)
  %571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %566, double noundef %568, double noundef %570) #7
  %572 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 1)
  %573 = call noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24) %572)
  %574 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 1)
  %575 = call noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24) %574)
  %576 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 1)
  %577 = call noundef double @_ZNK8R3Vector1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %576)
  %578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %573, double noundef %575, double noundef %577) #7
  %579 = call noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 0)
  %580 = call noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 1)
  %581 = call noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128) %557, i32 noundef 2)
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %579, double noundef %580, double noundef %581) #7
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %592 = add nuw nsw i32 %.0319439, 1
  %593 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
  %594 = icmp slt i32 %592, %593
  br i1 %594, label %.lr.ph440, label %.preheader, !llvm.loop !102

._crit_edge444:                                   ; preds = %606, %.preheader
  %595 = call i32 @fclose(ptr noundef %5)
  br label %649

.lr.ph443:                                        ; preds = %.preheader, %606
  %.0317442 = phi i32 [ %646, %606 ], [ 0, %.preheader ]
  %596 = call noundef ptr @_ZNK7RNArrayIP9MPSegmentE3KthEi(ptr noundef nonnull align 8 dereferenceable(16) %30, i32 noundef %.0317442)
  %597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.66) #7
  %598 = getelementptr inbounds i8, ptr %596, i64 8
  %599 = load i32, ptr %598, align 8, !tbaa !103
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %599) #7
  %601 = getelementptr inbounds i8, ptr %596, i64 16
  %602 = load ptr, ptr %601, align 8, !tbaa !106
  %.not369 = icmp eq ptr %602, null
  br i1 %.not369, label %606, label %603

603:                                              ; preds = %.lr.ph443
  %604 = getelementptr inbounds i8, ptr %602, i64 8
  %605 = load i32, ptr %604, align 8, !tbaa !95
  br label %606

606:                                              ; preds = %.lr.ph443, %603
  %607 = phi i32 [ %605, %603 ], [ -1, %.lr.ph443 ]
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.45, i32 noundef %607) #7
  %609 = getelementptr inbounds i8, ptr %596, i64 144
  %610 = load i32, ptr %609, align 8, !tbaa !107
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.46, i32 noundef %610) #7
  %612 = getelementptr inbounds i8, ptr %596, i64 56
  %613 = load double, ptr %612, align 8, !tbaa !108
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.54, double noundef %613) #7
  %615 = getelementptr inbounds i8, ptr %596, i64 64
  %616 = call noundef double @_ZNK7R3Point1XEv(ptr noundef nonnull align 8 dereferenceable(24) %615)
  %617 = call noundef double @_ZNK7R3Point1YEv(ptr noundef nonnull align 8 dereferenceable(24) %615)
  %618 = call noundef double @_ZNK7R3Point1ZEv(ptr noundef nonnull align 8 dereferenceable(24) %615)
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.52, double noundef %616, double noundef %617, double noundef %618) #7
  %620 = getelementptr inbounds i8, ptr %596, i64 88
  %621 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %620, i32 noundef 0)
  %622 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %621, i32 noundef 0)
  %623 = load double, ptr %622, align 8, !tbaa !34
  %624 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %620, i32 noundef 0)
  %625 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %624, i32 noundef 1)
  %626 = load double, ptr %625, align 8, !tbaa !34
  %627 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %620, i32 noundef 0)
  %628 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %627, i32 noundef 2)
  %629 = load double, ptr %628, align 8, !tbaa !34
  %630 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %620, i32 noundef 1)
  %631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %630, i32 noundef 0)
  %632 = load double, ptr %631, align 8, !tbaa !34
  %633 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %620, i32 noundef 1)
  %634 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %633, i32 noundef 1)
  %635 = load double, ptr %634, align 8, !tbaa !34
  %636 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56) %620, i32 noundef 1)
  %637 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24) %636, i32 noundef 2)
  %638 = load double, ptr %637, align 8, !tbaa !34
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.48, double noundef %623, double noundef %626, double noundef %629, double noundef %632, double noundef %635, double noundef %638) #7
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.47) #7
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str.49) #7
  %646 = add nuw nsw i32 %.0317442, 1
  %647 = call noundef i32 @_ZNK8RNVArray8NEntriesEv(ptr noundef nonnull align 8 dereferenceable(16) %30)
  %648 = icmp slt i32 %646, %647
  br i1 %648, label %.lr.ph443, label %._crit_edge444, !llvm.loop !109

649:                                              ; preds = %._crit_edge444, %6
  %.0316 = phi i32 [ 1, %._crit_edge444 ], [ 0, %6 ]
  ret i32 %.0316
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK5R3BoxixEi(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK7R3PointixEi(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6R3SpanixEi(ptr noundef nonnull align 8 dereferenceable(80), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK8R3Vector1XEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK8R3Vector1YEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN8R4MatrixixEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN8R3MatrixixEi(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strncpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly, i64 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox6CenterEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK13R3OrientedBox4AxisEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK13R3OrientedBox6RadiusEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #0 align 2

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) "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 = { cold nounwind }
attributes #7 = { 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, !6, i64 368}
!10 = !{!"_ZTS7MPHouse", !11, i64 0, !14, i64 16, !15, i64 32, !16, i64 48, !17, i64 64, !18, i64 80, !19, i64 96, !20, i64 112, !21, i64 128, !22, i64 144, !23, i64 160, !6, i64 288, !6, i64 296, !26, i64 304, !6, i64 360, !6, i64 368}
!11 = !{!"_ZTS7RNArrayIP7MPImageE", !12, i64 0}
!12 = !{!"_ZTS8RNVArray", !6, i64 0, !13, i64 8, !13, i64 12}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS7RNArrayIP10MPPanoramaE", !12, i64 0}
!15 = !{!"_ZTS7RNArrayIP10MPCategoryE", !12, i64 0}
!16 = !{!"_ZTS7RNArrayIP9MPSegmentE", !12, i64 0}
!17 = !{!"_ZTS7RNArrayIP8MPObjectE", !12, i64 0}
!18 = !{!"_ZTS7RNArrayIP8MPVertexE", !12, i64 0}
!19 = !{!"_ZTS7RNArrayIP9MPSurfaceE", !12, i64 0}
!20 = !{!"_ZTS7RNArrayIP8MPRegionE", !12, i64 0}
!21 = !{!"_ZTS7RNArrayIP8MPPortalE", !12, i64 0}
!22 = !{!"_ZTS7RNArrayIP7MPLevelE", !12, i64 0}
!23 = !{!"_ZTS17RGBDConfiguration", !24, i64 8, !25, i64 24, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !26, i64 72}
!24 = !{!"_ZTS7RNArrayIP9RGBDImageE", !12, i64 0}
!25 = !{!"_ZTS7RNArrayIP11RGBDSurfaceE", !12, i64 0}
!26 = !{!"_ZTS5R3Box", !27, i64 0, !29, i64 8, !29, i64 32}
!27 = !{!"_ZTS7R3Solid", !28, i64 0}
!28 = !{!"_ZTS7R3Shape"}
!29 = !{!"_ZTS7R3Point", !7, i64 0}
!30 = !{!10, !6, i64 360}
!31 = !{!32, !13, i64 8}
!32 = !{!"_ZTS7MPLevel", !6, i64 0, !13, i64 8, !20, i64 16, !29, i64 32, !26, i64 56, !6, i64 112}
!33 = !{!32, !6, i64 112}
!34 = !{!35, !35, i64 0}
!35 = !{!"double", !7, i64 0}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!39, !13, i64 8}
!39 = !{!"_ZTS8MPRegion", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !14, i64 32, !19, i64 48, !17, i64 64, !21, i64 80, !29, i64 96, !35, i64 120, !26, i64 128, !6, i64 184}
!40 = !{!39, !6, i64 16}
!41 = !{!39, !6, i64 184}
!42 = !{!39, !35, i64 120}
!43 = distinct !{!43, !37}
!44 = !{!45, !13, i64 8}
!45 = !{!"_ZTS8MPPortal", !6, i64 0, !13, i64 8, !7, i64 16, !7, i64 32, !46, i64 40, !6, i64 120}
!46 = !{!"_ZTS6R3Span", !47, i64 0, !29, i64 48, !35, i64 72}
!47 = !{!"_ZTS5R3Ray", !48, i64 0}
!48 = !{!"_ZTS6R3Line", !29, i64 0, !49, i64 24}
!49 = !{!"_ZTS8R3Vector", !7, i64 0}
!50 = !{!45, !6, i64 120}
!51 = distinct !{!51, !37}
!52 = !{!53, !13, i64 8}
!53 = !{!"_ZTS9MPSurface", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !18, i64 32, !29, i64 48, !49, i64 72, !26, i64 96, !6, i64 152}
!54 = !{!53, !6, i64 16}
!55 = !{!53, !6, i64 152}
!56 = distinct !{!56, !37}
!57 = distinct !{!57, !37}
!58 = !{!59, !13, i64 8}
!59 = !{!"_ZTS8MPVertex", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !29, i64 32, !49, i64 56, !6, i64 80}
!60 = !{!59, !6, i64 16}
!61 = !{!59, !6, i64 80}
!62 = distinct !{!62, !37}
!63 = !{!64, !6, i64 32}
!64 = !{!"_ZTS10MPPanorama", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !11, i64 40, !29, i64 56}
!65 = !{!64, !13, i64 8}
!66 = !{!64, !6, i64 16}
!67 = distinct !{!67, !37}
!68 = !{!69, !13, i64 8}
!69 = !{!"_ZTS7MPImage", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !70, i64 48, !74, i64 536, !77, i64 664, !13, i64 736, !13, i64 740, !29, i64 744}
!70 = !{!"_ZTS9RGBDImage", !6, i64 8, !13, i64 16, !71, i64 24, !13, i64 40, !13, i64 44, !72, i64 48, !77, i64 320, !26, i64 392, !13, i64 448, !6, i64 456, !6, i64 464, !6, i64 472, !13, i64 480, !13, i64 484}
!71 = !{!"_ZTS7RNArrayIP6R2GridE", !12, i64 0}
!72 = !{!"_ZTS8R3Affine", !73, i64 0, !74, i64 8, !74, i64 136, !75, i64 264}
!73 = !{!"_ZTS16R3Transformation"}
!74 = !{!"_ZTS8R4Matrix", !7, i64 0}
!75 = !{!"_ZTS7RNFlags", !76, i64 0}
!76 = !{!"long", !7, i64 0}
!77 = !{!"_ZTS8R3Matrix", !7, i64 0}
!78 = !{!69, !6, i64 16}
!79 = !{!69, !6, i64 32}
!80 = !{!69, !13, i64 40}
!81 = !{!69, !13, i64 44}
!82 = !{!69, !13, i64 736}
!83 = !{!69, !13, i64 740}
!84 = distinct !{!84, !37}
!85 = !{!86, !6, i64 40}
!86 = !{!"_ZTS10MPCategory", !6, i64 0, !13, i64 8, !17, i64 16, !13, i64 32, !6, i64 40, !13, i64 48, !6, i64 56}
!87 = !{!86, !6, i64 56}
!88 = !{!7, !7, i64 0}
!89 = distinct !{!89, !37}
!90 = distinct !{!90, !37}
!91 = !{!86, !13, i64 8}
!92 = !{!86, !13, i64 32}
!93 = !{!86, !13, i64 48}
!94 = distinct !{!94, !37}
!95 = !{!96, !13, i64 8}
!96 = !{!"_ZTS8MPObject", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !13, i64 40, !16, i64 48, !29, i64 64, !97, i64 88}
!97 = !{!"_ZTS13R3OrientedBox", !27, i64 0, !98, i64 8, !7, i64 104}
!98 = !{!"_ZTS13R3CoordSystem", !29, i64 0, !99, i64 24}
!99 = !{!"_ZTS7R3Triad", !7, i64 0}
!100 = !{!96, !6, i64 16}
!101 = !{!96, !6, i64 32}
!102 = distinct !{!102, !37}
!103 = !{!104, !13, i64 8}
!104 = !{!"_ZTS9MPSegment", !6, i64 0, !13, i64 8, !6, i64 16, !13, i64 24, !6, i64 32, !105, i64 40, !35, i64 56, !29, i64 64, !26, i64 88, !13, i64 144}
!105 = !{!"_ZTS7RNArrayIP10R3MeshFaceE", !12, i64 0}
!106 = !{!104, !6, i64 16}
!107 = !{!104, !13, i64 144}
!108 = !{!104, !35, i64 56}
!109 = distinct !{!109, !37}


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