; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/psPrc/vtuWriter.ll (ZN9results3D7write3DEddb)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%class.results3D = type <{ ptr, ptr, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %"class.std::__cxx11::basic_string", double, i32, i8, [3 x i8] }>

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [10 x i8], align 1
@__FUNCTION__._ZN9results3D7write3DEddb = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [7 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9results3D7write3DEddb(ptr noundef nonnull align 8 dereferenceable(93) %0, double noundef %1, double noundef %2, i1 noundef zeroext %3) #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca i8, align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca i1, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i1, align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i1, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i1, align 1
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca i1, align 1
  %33 = alloca i1, align 1
  %34 = alloca i1, align 1
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca i1, align 1
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca i1, align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca i1, align 1
  %47 = alloca i32, align 4
  %48 = alloca i1, align 1
  %49 = alloca i1, align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca i1, align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca i1, align 1
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca i1, align 1
  %59 = alloca i1, align 1
  %60 = alloca i1, align 1
  %61 = alloca i1, align 1
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca i32, align 4
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca i1, align 1
  %68 = alloca i1, align 1
  %69 = alloca i32, align 4
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store double %1, ptr %6, align 8, !tbaa !9
  store double %2, ptr %7, align 8, !tbaa !9
  %80 = zext i1 %3 to i8
  store i8 %80, ptr %8, align 1, !tbaa !11
  %81 = load ptr, ptr %5, align 8
  %82 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 2
  %83 = load i32, ptr %82, align 8, !tbaa !13
  %84 = icmp sgt i32 %83, 0
  store i1 false, ptr %11, align 1
  store i1 false, ptr %13, align 1
  store i1 false, ptr %15, align 1
  store i1 false, ptr %17, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %21, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %46, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  store i1 false, ptr %48, align 1
  store i1 false, ptr %49, align 1
  store i1 false, ptr %52, align 1
  store i1 false, ptr %54, align 1
  store i1 false, ptr %56, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %59, align 1
  store i1 false, ptr %60, align 1
  store i1 false, ptr %61, align 1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %63, align 1
  br i1 %84, label %102, label %85

85:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  store i1 true, ptr %11, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #6
  store i1 true, ptr %13, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #6
  store i1 true, ptr %15, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #6
  store i1 true, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #6
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #6
  store i1 true, ptr %23, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  store i1 true, ptr %24, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %86 unwind label %236

86:                                               ; preds = %85
  store i1 true, ptr %27, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.3)
          to label %87 unwind label %240

87:                                               ; preds = %86
  store i1 true, ptr %28, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #6
  store i1 true, ptr %30, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #6
  store i1 true, ptr %32, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  store i1 true, ptr %33, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @__FUNCTION__._ZN9results3D7write3DEddb, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %88 unwind label %244

88:                                               ; preds = %87
  store i1 true, ptr %34, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %89 unwind label %248

89:                                               ; preds = %88
  store i1 true, ptr %35, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.4)
          to label %90 unwind label %252

90:                                               ; preds = %89
  store i1 true, ptr %36, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  store i1 true, ptr %38, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #6
  store i1 true, ptr %40, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  store i1 true, ptr %41, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %91 unwind label %256

91:                                               ; preds = %90
  store i1 true, ptr %42, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %92 unwind label %260

92:                                               ; preds = %91
  store i1 true, ptr %43, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.6)
          to label %93 unwind label %264

93:                                               ; preds = %92
  store i1 true, ptr %44, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #6
  store i1 true, ptr %46, align 1
  store i32 100, ptr %47, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %94 unwind label %268

94:                                               ; preds = %93
  store i1 true, ptr %48, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %95 unwind label %272

95:                                               ; preds = %94
  store i1 true, ptr %49, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  store i1 true, ptr %52, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #6
  store i1 true, ptr %56, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #6
  store i1 true, ptr %58, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #6
  store i1 true, ptr %59, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %96 unwind label %276

96:                                               ; preds = %95
  store i1 true, ptr %60, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.25)
          to label %97 unwind label %280

97:                                               ; preds = %96
  store i1 true, ptr %61, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.26)
          to label %98 unwind label %284

98:                                               ; preds = %97
  store i1 true, ptr %62, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.27)
          to label %99 unwind label %288

99:                                               ; preds = %98
  store i1 true, ptr %63, align 1
  %100 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %9, ptr noundef %50, i32 noundef 2)
          to label %101 unwind label %292

101:                                              ; preds = %99
  br label %102

102:                                              ; preds = %101, %4
  %103 = phi i1 [ true, %4 ], [ %100, %101 ]
  %104 = xor i1 %103, true
  %105 = load i1, ptr %63, align 1
  br i1 %105, label %106, label %107

106:                                              ; preds = %102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %107

107:                                              ; preds = %106, %102
  %108 = load i1, ptr %62, align 1
  br i1 %108, label %109, label %110

109:                                              ; preds = %107
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %110

110:                                              ; preds = %109, %107
  %111 = load i1, ptr %61, align 1
  br i1 %111, label %112, label %113

112:                                              ; preds = %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %113

113:                                              ; preds = %112, %110
  %114 = load i1, ptr %60, align 1
  br i1 %114, label %115, label %116

115:                                              ; preds = %113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %116

116:                                              ; preds = %115, %113
  %117 = load i1, ptr %59, align 1
  br i1 %117, label %118, label %119

118:                                              ; preds = %116
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #6
  br label %119

119:                                              ; preds = %118, %116
  %120 = load i1, ptr %58, align 1
  br i1 %120, label %121, label %122

121:                                              ; preds = %119
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #6
  br label %122

122:                                              ; preds = %121, %119
  %123 = load i1, ptr %56, align 1
  br i1 %123, label %124, label %125

124:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  br label %125

125:                                              ; preds = %124, %122
  %126 = load i1, ptr %54, align 1
  br i1 %126, label %127, label %128

127:                                              ; preds = %125
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %128

128:                                              ; preds = %127, %125
  %129 = load i1, ptr %52, align 1
  br i1 %129, label %130, label %131

130:                                              ; preds = %128
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  br label %131

131:                                              ; preds = %130, %128
  %132 = load i1, ptr %49, align 1
  br i1 %132, label %133, label %134

133:                                              ; preds = %131
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %134

134:                                              ; preds = %133, %131
  %135 = load i1, ptr %48, align 1
  br i1 %135, label %136, label %137

136:                                              ; preds = %134
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %137

137:                                              ; preds = %136, %134
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  %138 = load i1, ptr %46, align 1
  br i1 %138, label %139, label %140

139:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  br label %140

140:                                              ; preds = %139, %137
  %141 = load i1, ptr %44, align 1
  br i1 %141, label %142, label %143

142:                                              ; preds = %140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %143

143:                                              ; preds = %142, %140
  %144 = load i1, ptr %43, align 1
  br i1 %144, label %145, label %146

145:                                              ; preds = %143
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %146

146:                                              ; preds = %145, %143
  %147 = load i1, ptr %42, align 1
  br i1 %147, label %148, label %149

148:                                              ; preds = %146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %149

149:                                              ; preds = %148, %146
  %150 = load i1, ptr %41, align 1
  br i1 %150, label %151, label %152

151:                                              ; preds = %149
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  br label %152

152:                                              ; preds = %151, %149
  %153 = load i1, ptr %40, align 1
  br i1 %153, label %154, label %155

154:                                              ; preds = %152
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  br label %155

155:                                              ; preds = %154, %152
  %156 = load i1, ptr %38, align 1
  br i1 %156, label %157, label %158

157:                                              ; preds = %155
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  br label %158

158:                                              ; preds = %157, %155
  %159 = load i1, ptr %36, align 1
  br i1 %159, label %160, label %161

160:                                              ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %161

161:                                              ; preds = %160, %158
  %162 = load i1, ptr %35, align 1
  br i1 %162, label %163, label %164

163:                                              ; preds = %161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %164

164:                                              ; preds = %163, %161
  %165 = load i1, ptr %34, align 1
  br i1 %165, label %166, label %167

166:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %167

167:                                              ; preds = %166, %164
  %168 = load i1, ptr %33, align 1
  br i1 %168, label %169, label %170

169:                                              ; preds = %167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  br label %170

170:                                              ; preds = %169, %167
  %171 = load i1, ptr %32, align 1
  br i1 %171, label %172, label %173

172:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %173

173:                                              ; preds = %172, %170
  %174 = load i1, ptr %30, align 1
  br i1 %174, label %175, label %176

175:                                              ; preds = %173
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %176

176:                                              ; preds = %175, %173
  %177 = load i1, ptr %28, align 1
  br i1 %177, label %178, label %179

178:                                              ; preds = %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %179

179:                                              ; preds = %178, %176
  %180 = load i1, ptr %27, align 1
  br i1 %180, label %181, label %182

181:                                              ; preds = %179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %182

182:                                              ; preds = %181, %179
  %183 = load i1, ptr %24, align 1
  br i1 %183, label %184, label %185

184:                                              ; preds = %182
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  br label %185

185:                                              ; preds = %184, %182
  %186 = load i1, ptr %23, align 1
  br i1 %186, label %187, label %188

187:                                              ; preds = %185
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  br label %188

188:                                              ; preds = %187, %185
  %189 = load i1, ptr %21, align 1
  br i1 %189, label %190, label %191

190:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %191

191:                                              ; preds = %190, %188
  %192 = load i1, ptr %19, align 1
  br i1 %192, label %193, label %194

193:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %194

194:                                              ; preds = %193, %191
  %195 = load i1, ptr %17, align 1
  br i1 %195, label %196, label %197

196:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %197

197:                                              ; preds = %196, %194
  %198 = load i1, ptr %15, align 1
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %200

200:                                              ; preds = %199, %197
  %201 = load i1, ptr %13, align 1
  br i1 %201, label %202, label %203

202:                                              ; preds = %200
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %203

203:                                              ; preds = %202, %200
  %204 = load i1, ptr %11, align 1
  br i1 %204, label %205, label %206

205:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %206

206:                                              ; preds = %205, %203
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  %207 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 0
  %208 = load ptr, ptr %207, align 8, !tbaa !21
  %209 = call noundef i32 @_ZNK7GNMData9dispCycleEv(ptr noundef nonnull align 8 dereferenceable(984) %208)
  store i32 %209, ptr %64, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #6
  %210 = load i8, ptr %8, align 1, !tbaa !11, !range !22, !noundef !23
  %211 = trunc i8 %210 to i1
  store i1 false, ptr %67, align 1
  store i1 false, ptr %68, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #6
  br i1 %211, label %212, label %214

212:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #6
  store i1 true, ptr %67, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #6
  store i1 true, ptr %68, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %213 unwind label %412

213:                                              ; preds = %212
  br label %221

214:                                              ; preds = %206
  %215 = load i32, ptr %64, align 4, !tbaa !20
  %216 = mul nsw i32 100, %215
  %217 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 8
  %218 = load i32, ptr %217, align 8, !tbaa !24
  %219 = add i32 %216, %218
  store i32 %219, ptr %69, align 4, !tbaa !20
  invoke void @_Z2_sIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %220 unwind label %416

220:                                              ; preds = %214
  br label %221

221:                                              ; preds = %220, %213
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  %222 = load i1, ptr %68, align 1
  br i1 %222, label %223, label %224

223:                                              ; preds = %221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #6
  br label %224

224:                                              ; preds = %223, %221
  %225 = load i1, ptr %67, align 1
  br i1 %225, label %226, label %227

226:                                              ; preds = %224
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  br label %227

227:                                              ; preds = %226, %224
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #6
  %228 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #6
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 4 dereferenceable(4) %64)
          to label %229 unwind label %427

229:                                              ; preds = %227
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %230 unwind label %431

230:                                              ; preds = %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #6
  %231 = load i32, ptr %64, align 4, !tbaa !20
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %440, label %233

233:                                              ; preds = %230
  %234 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.29)
          to label %235 unwind label %436

235:                                              ; preds = %233
  br label %452

236:                                              ; preds = %85
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %25, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %26, align 4
  br label %387

240:                                              ; preds = %86
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %25, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %26, align 4
  br label %383

244:                                              ; preds = %87
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %25, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %26, align 4
  br label %370

248:                                              ; preds = %88
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %25, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %26, align 4
  br label %366

252:                                              ; preds = %89
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %25, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %26, align 4
  br label %362

256:                                              ; preds = %90
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %25, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %26, align 4
  br label %349

260:                                              ; preds = %91
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %25, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %26, align 4
  br label %345

264:                                              ; preds = %92
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %25, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %26, align 4
  br label %341

268:                                              ; preds = %93
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %25, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %26, align 4
  br label %334

272:                                              ; preds = %94
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %25, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %26, align 4
  br label %330

276:                                              ; preds = %95
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %25, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %26, align 4
  br label %311

280:                                              ; preds = %96
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %25, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %26, align 4
  br label %307

284:                                              ; preds = %97
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %25, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %26, align 4
  br label %303

288:                                              ; preds = %98
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %25, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %26, align 4
  br label %299

292:                                              ; preds = %99
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %25, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %26, align 4
  %296 = load i1, ptr %63, align 1
  br i1 %296, label %297, label %298

297:                                              ; preds = %292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %298

298:                                              ; preds = %297, %292
  br label %299

299:                                              ; preds = %298, %288
  %300 = load i1, ptr %62, align 1
  br i1 %300, label %301, label %302

301:                                              ; preds = %299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %302

302:                                              ; preds = %301, %299
  br label %303

303:                                              ; preds = %302, %284
  %304 = load i1, ptr %61, align 1
  br i1 %304, label %305, label %306

305:                                              ; preds = %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %306

306:                                              ; preds = %305, %303
  br label %307

307:                                              ; preds = %306, %280
  %308 = load i1, ptr %60, align 1
  br i1 %308, label %309, label %310

309:                                              ; preds = %307
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %310

310:                                              ; preds = %309, %307
  br label %311

311:                                              ; preds = %310, %276
  %312 = load i1, ptr %59, align 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %311
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #6
  br label %314

314:                                              ; preds = %313, %311
  %315 = load i1, ptr %58, align 1
  br i1 %315, label %316, label %317

316:                                              ; preds = %314
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #6
  br label %317

317:                                              ; preds = %316, %314
  %318 = load i1, ptr %56, align 1
  br i1 %318, label %319, label %320

319:                                              ; preds = %317
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  br label %320

320:                                              ; preds = %319, %317
  %321 = load i1, ptr %54, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %320
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %323

323:                                              ; preds = %322, %320
  %324 = load i1, ptr %52, align 1
  br i1 %324, label %325, label %326

325:                                              ; preds = %323
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  br label %326

326:                                              ; preds = %325, %323
  %327 = load i1, ptr %49, align 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %329

329:                                              ; preds = %328, %326
  br label %330

330:                                              ; preds = %329, %272
  %331 = load i1, ptr %48, align 1
  br i1 %331, label %332, label %333

332:                                              ; preds = %330
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %333

333:                                              ; preds = %332, %330
  br label %334

334:                                              ; preds = %333, %268
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  %335 = load i1, ptr %46, align 1
  br i1 %335, label %336, label %337

336:                                              ; preds = %334
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  br label %337

337:                                              ; preds = %336, %334
  %338 = load i1, ptr %44, align 1
  br i1 %338, label %339, label %340

339:                                              ; preds = %337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %340

340:                                              ; preds = %339, %337
  br label %341

341:                                              ; preds = %340, %264
  %342 = load i1, ptr %43, align 1
  br i1 %342, label %343, label %344

343:                                              ; preds = %341
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %344

344:                                              ; preds = %343, %341
  br label %345

345:                                              ; preds = %344, %260
  %346 = load i1, ptr %42, align 1
  br i1 %346, label %347, label %348

347:                                              ; preds = %345
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %348

348:                                              ; preds = %347, %345
  br label %349

349:                                              ; preds = %348, %256
  %350 = load i1, ptr %41, align 1
  br i1 %350, label %351, label %352

351:                                              ; preds = %349
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  br label %352

352:                                              ; preds = %351, %349
  %353 = load i1, ptr %40, align 1
  br i1 %353, label %354, label %355

354:                                              ; preds = %352
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  br label %355

355:                                              ; preds = %354, %352
  %356 = load i1, ptr %38, align 1
  br i1 %356, label %357, label %358

357:                                              ; preds = %355
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  br label %358

358:                                              ; preds = %357, %355
  %359 = load i1, ptr %36, align 1
  br i1 %359, label %360, label %361

360:                                              ; preds = %358
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %361

361:                                              ; preds = %360, %358
  br label %362

362:                                              ; preds = %361, %252
  %363 = load i1, ptr %35, align 1
  br i1 %363, label %364, label %365

364:                                              ; preds = %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %365

365:                                              ; preds = %364, %362
  br label %366

366:                                              ; preds = %365, %248
  %367 = load i1, ptr %34, align 1
  br i1 %367, label %368, label %369

368:                                              ; preds = %366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %369

369:                                              ; preds = %368, %366
  br label %370

370:                                              ; preds = %369, %244
  %371 = load i1, ptr %33, align 1
  br i1 %371, label %372, label %373

372:                                              ; preds = %370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  br label %373

373:                                              ; preds = %372, %370
  %374 = load i1, ptr %32, align 1
  br i1 %374, label %375, label %376

375:                                              ; preds = %373
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %376

376:                                              ; preds = %375, %373
  %377 = load i1, ptr %30, align 1
  br i1 %377, label %378, label %379

378:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %379

379:                                              ; preds = %378, %376
  %380 = load i1, ptr %28, align 1
  br i1 %380, label %381, label %382

381:                                              ; preds = %379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %382

382:                                              ; preds = %381, %379
  br label %383

383:                                              ; preds = %382, %240
  %384 = load i1, ptr %27, align 1
  br i1 %384, label %385, label %386

385:                                              ; preds = %383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %386

386:                                              ; preds = %385, %383
  br label %387

387:                                              ; preds = %386, %236
  %388 = load i1, ptr %24, align 1
  br i1 %388, label %389, label %390

389:                                              ; preds = %387
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  br label %390

390:                                              ; preds = %389, %387
  %391 = load i1, ptr %23, align 1
  br i1 %391, label %392, label %393

392:                                              ; preds = %390
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  br label %393

393:                                              ; preds = %392, %390
  %394 = load i1, ptr %21, align 1
  br i1 %394, label %395, label %396

395:                                              ; preds = %393
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %396

396:                                              ; preds = %395, %393
  %397 = load i1, ptr %19, align 1
  br i1 %397, label %398, label %399

398:                                              ; preds = %396
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %399

399:                                              ; preds = %398, %396
  %400 = load i1, ptr %17, align 1
  br i1 %400, label %401, label %402

401:                                              ; preds = %399
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %402

402:                                              ; preds = %401, %399
  %403 = load i1, ptr %15, align 1
  br i1 %403, label %404, label %405

404:                                              ; preds = %402
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %405

405:                                              ; preds = %404, %402
  %406 = load i1, ptr %13, align 1
  br i1 %406, label %407, label %408

407:                                              ; preds = %405
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %408

408:                                              ; preds = %407, %405
  %409 = load i1, ptr %11, align 1
  br i1 %409, label %410, label %411

410:                                              ; preds = %408
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %411

411:                                              ; preds = %410, %408
  br label %623

412:                                              ; preds = %212
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %25, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %26, align 4
  br label %420

416:                                              ; preds = %214
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %25, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  br label %420

420:                                              ; preds = %416, %412
  %421 = load i1, ptr %68, align 1
  br i1 %421, label %422, label %423

422:                                              ; preds = %420
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #6
  br label %423

423:                                              ; preds = %422, %420
  %424 = load i1, ptr %67, align 1
  br i1 %424, label %425, label %426

425:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  br label %426

426:                                              ; preds = %425, %423
  br label %622

427:                                              ; preds = %227
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %25, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %26, align 4
  br label %435

431:                                              ; preds = %229
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %25, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  br label %435

435:                                              ; preds = %431, %427
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #6
  br label %621

436:                                              ; preds = %569, %567, %559, %557, %549, %547, %539, %529, %509, %507, %495, %481, %479, %467, %457, %448, %445, %440, %233
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %25, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %26, align 4
  br label %620

440:                                              ; preds = %230
  %441 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 0
  %442 = load ptr, ptr %441, align 8, !tbaa !21
  %443 = invoke noundef zeroext i1 @_ZNK7GNMData10isDrainageEv(ptr noundef nonnull align 8 dereferenceable(984) %442)
          to label %444 unwind label %436

444:                                              ; preds = %440
  br i1 %443, label %445, label %448

445:                                              ; preds = %444
  %446 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.30)
          to label %447 unwind label %436

447:                                              ; preds = %445
  br label %451

448:                                              ; preds = %444
  %449 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.31)
          to label %450 unwind label %436

450:                                              ; preds = %448
  br label %451

451:                                              ; preds = %450, %447
  br label %452

452:                                              ; preds = %451, %235
  %453 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 4
  %454 = load i32, ptr %453, align 8, !tbaa !25
  %455 = and i32 %454, 1
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %529

457:                                              ; preds = %452
  %458 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 6
  %459 = load i32, ptr %458, align 8, !tbaa !26
  %460 = load i32, ptr %64, align 4, !tbaa !20
  %461 = mul nsw i32 %460, 4
  %462 = invoke noundef zeroext i1 @_Z4_1Atji(i32 noundef %459, i32 noundef %461)
          to label %463 unwind label %436

463:                                              ; preds = %457
  br i1 %462, label %475, label %464

464:                                              ; preds = %463
  %465 = load i8, ptr %8, align 1, !tbaa !11, !range !22, !noundef !23
  %466 = trunc i8 %465 to i1
  br i1 %466, label %467, label %528

467:                                              ; preds = %464
  %468 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 6
  %469 = load i32, ptr %468, align 8, !tbaa !26
  %470 = load i32, ptr %64, align 4, !tbaa !20
  %471 = mul nsw i32 %470, 4
  %472 = add nsw i32 %471, 1
  %473 = invoke noundef zeroext i1 @_Z4_1Atji(i32 noundef %469, i32 noundef %472)
          to label %474 unwind label %436

474:                                              ; preds = %467
  br i1 %473, label %475, label %528

475:                                              ; preds = %474, %463
  %476 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 13
  %477 = load i8, ptr %476, align 4, !tbaa !27, !range !22, !noundef !23
  %478 = trunc i8 %477 to i1
  br i1 %478, label %479, label %484

479:                                              ; preds = %475
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.32)
          to label %481 unwind label %436

481:                                              ; preds = %479
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %480)
          to label %483 unwind label %436

483:                                              ; preds = %481
  br label %484

484:                                              ; preds = %483, %475
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %485 unwind label %512

485:                                              ; preds = %484
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.33)
          to label %486 unwind label %516

486:                                              ; preds = %485
  %487 = load double, ptr %6, align 8, !tbaa !9
  %488 = load double, ptr %7, align 8, !tbaa !9
  %489 = load i32, ptr %64, align 4, !tbaa !20
  %490 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 8
  %491 = load i32, ptr %490, align 8, !tbaa !24
  %492 = uitofp i32 %491 to double
  %493 = load i8, ptr %8, align 1, !tbaa !11, !range !22, !noundef !23
  %494 = trunc i8 %493 to i1
  invoke void @_ZN9results3D16writeThroatLinesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddidb(ptr noundef nonnull align 8 dereferenceable(93) %81, ptr noundef %72, double noundef %487, double noundef %488, i32 noundef %489, double noundef %492, i1 noundef zeroext %494)
          to label %495 unwind label %520

495:                                              ; preds = %486
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  %496 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 6
  %497 = load i32, ptr %496, align 8, !tbaa !26
  %498 = load i32, ptr %64, align 4, !tbaa !20
  %499 = mul nsw i32 %498, 4
  %500 = add nsw i32 %499, 2
  %501 = invoke noundef zeroext i1 @_Z4_1Atji(i32 noundef %497, i32 noundef %500)
          to label %502 unwind label %436

502:                                              ; preds = %495
  br i1 %501, label %503, label %527

503:                                              ; preds = %502
  %504 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 13
  %505 = load i8, ptr %504, align 4, !tbaa !27, !range !22, !noundef !23
  %506 = trunc i8 %505 to i1
  br i1 %506, label %507, label %526

507:                                              ; preds = %503
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %509 unwind label %436

509:                                              ; preds = %507
  %510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %508)
          to label %511 unwind label %436

511:                                              ; preds = %509
  br label %526

512:                                              ; preds = %484
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %25, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %26, align 4
  br label %525

516:                                              ; preds = %485
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %25, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %26, align 4
  br label %524

520:                                              ; preds = %486
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %25, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %524

524:                                              ; preds = %520, %516
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %525

525:                                              ; preds = %524, %512
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  br label %620

526:                                              ; preds = %511, %503
  br label %527

527:                                              ; preds = %526, %502
  br label %528

528:                                              ; preds = %527, %474, %464
  br label %529

529:                                              ; preds = %528, %452
  %530 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 7
  %531 = load i32, ptr %530, align 4, !tbaa !28
  %532 = load i32, ptr %64, align 4, !tbaa !20
  %533 = mul nsw i32 %532, 4
  %534 = invoke noundef zeroext i1 @_Z4_1Atji(i32 noundef %531, i32 noundef %533)
          to label %535 unwind label %436

535:                                              ; preds = %529
  br i1 %534, label %547, label %536

536:                                              ; preds = %535
  %537 = load i8, ptr %8, align 1, !tbaa !11, !range !22, !noundef !23
  %538 = trunc i8 %537 to i1
  br i1 %538, label %539, label %610

539:                                              ; preds = %536
  %540 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 7
  %541 = load i32, ptr %540, align 4, !tbaa !28
  %542 = load i32, ptr %64, align 4, !tbaa !20
  %543 = mul nsw i32 %542, 4
  %544 = add nsw i32 %543, 1
  %545 = invoke noundef zeroext i1 @_Z4_1Atji(i32 noundef %541, i32 noundef %544)
          to label %546 unwind label %436

546:                                              ; preds = %539
  br i1 %545, label %547, label %610

547:                                              ; preds = %546, %535
  %548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
          to label %549 unwind label %436

549:                                              ; preds = %547
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %548)
          to label %551 unwind label %436

551:                                              ; preds = %549
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.36)
          to label %552 unwind label %572

552:                                              ; preds = %551
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %553 unwind label %576

553:                                              ; preds = %552
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.33)
          to label %554 unwind label %580

554:                                              ; preds = %553
  %555 = load double, ptr %6, align 8, !tbaa !9
  %556 = load double, ptr %7, align 8, !tbaa !9
  invoke void @_ZN9results3D13vtuWritePoresENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93) %81, ptr noundef %74, double noundef %555, double noundef %556)
          to label %557 unwind label %584

557:                                              ; preds = %554
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #6
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
          to label %559 unwind label %436

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %558)
          to label %561 unwind label %436

561:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.38)
          to label %562 unwind label %591

562:                                              ; preds = %561
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %563 unwind label %595

563:                                              ; preds = %562
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.33)
          to label %564 unwind label %599

564:                                              ; preds = %563
  %565 = load double, ptr %6, align 8, !tbaa !9
  %566 = load double, ptr %7, align 8, !tbaa !9
  invoke void @_ZN9results3D15vtuWriteThroatsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93) %81, ptr noundef %77, double noundef %565, double noundef %566)
          to label %567 unwind label %603

567:                                              ; preds = %564
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  %568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.39)
          to label %569 unwind label %436

569:                                              ; preds = %567
  %570 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %568)
          to label %571 unwind label %436

571:                                              ; preds = %569
  br label %610

572:                                              ; preds = %551
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %25, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %26, align 4
  br label %590

576:                                              ; preds = %552
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %25, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %26, align 4
  br label %589

580:                                              ; preds = %553
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %25, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %26, align 4
  br label %588

584:                                              ; preds = %554
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %25, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %588

588:                                              ; preds = %584, %580
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %589

589:                                              ; preds = %588, %576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %590

590:                                              ; preds = %589, %572
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #6
  br label %620

591:                                              ; preds = %561
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %25, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %26, align 4
  br label %609

595:                                              ; preds = %562
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %25, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %26, align 4
  br label %608

599:                                              ; preds = %563
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %25, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %26, align 4
  br label %607

603:                                              ; preds = %564
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %25, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %26, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %607

607:                                              ; preds = %603, %599
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %608

608:                                              ; preds = %607, %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %609

609:                                              ; preds = %608, %591
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  br label %620

610:                                              ; preds = %571, %546, %536
  %611 = load i8, ptr %8, align 1, !tbaa !11, !range !22, !noundef !23
  %612 = trunc i8 %611 to i1
  br i1 %612, label %613, label %615

613:                                              ; preds = %610
  %614 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 8
  store i32 1, ptr %614, align 8, !tbaa !24
  br label %619

615:                                              ; preds = %610
  %616 = getelementptr inbounds %class.results3D, ptr %81, i32 0, i32 8
  %617 = load i32, ptr %616, align 8, !tbaa !24
  %618 = add i32 %617, 1
  store i32 %618, ptr %616, align 8, !tbaa !24
  br label %619

619:                                              ; preds = %615, %613
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  ret void

620:                                              ; preds = %609, %590, %525, %436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %621

621:                                              ; preds = %620, %435
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %622

622:                                              ; preds = %621, %426
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br label %623

623:                                              ; preds = %622, %411
  %624 = load ptr, ptr %25, align 8
  %625 = load i32, ptr %26, align 4
  %626 = insertvalue { ptr, i32 } poison, ptr %624, 0
  %627 = insertvalue { ptr, i32 } %626, i32 %625, 1
  resume { ptr, i32 } %627
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7GNMData9dispCycleEv(ptr noundef nonnull align 8 dereferenceable(984)) #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_Z4_1Atji(i32 noundef, i32 noundef) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9results3D16writeThroatLinesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddidb(ptr noundef nonnull align 8 dereferenceable(93), ptr noundef, double noundef, double noundef, i32 noundef, double noundef, i1 noundef zeroext) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9results3D13vtuWritePoresENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93), ptr noundef, double noundef, double noundef) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9results3D15vtuWriteThroatsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93), ptr noundef, double noundef, double noundef) #2 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !15, i64 16}
!14 = !{!"_ZTS9results3D", !6, i64 0, !6, i64 8, !15, i64 16, !15, i64 20, !16, i64 24, !15, i64 28, !15, i64 32, !15, i64 36, !15, i64 40, !17, i64 48, !10, i64 80, !15, i64 88, !12, i64 92}
!15 = !{!"int", !7, i64 0}
!16 = !{!"_ZTSN9results3D6FormatE", !7, i64 0}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !18, i64 0, !19, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!15, !15, i64 0}
!21 = !{!14, !6, i64 0}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!14, !15, i64 40}
!25 = !{!14, !16, i64 24}
!26 = !{!14, !15, i64 32}
!27 = !{!14, !12, i64 92}
!28 = !{!14, !15, i64 36}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [10 x i8], align 1
@__FUNCTION__._ZN9results3D7write3DEddb = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [7 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9results3D7write3DEddb(ptr noundef nonnull align 8 dereferenceable(93) %0, double noundef %1, double noundef %2, i1 noundef zeroext %3) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = getelementptr inbounds i8, ptr %0, i64 16
  %39 = load i32, ptr %38, align 8, !tbaa !5
  %40 = icmp slt i32 %39, 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  br i1 %40, label %41, label %57

41:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %42 unwind label %72

42:                                               ; preds = %41
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.3)
          to label %43 unwind label %74

43:                                               ; preds = %42
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @__FUNCTION__._ZN9results3D7write3DEddb, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %44 unwind label %76

44:                                               ; preds = %43
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %45 unwind label %78

45:                                               ; preds = %44
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.4)
          to label %46 unwind label %80

46:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %47 unwind label %82

47:                                               ; preds = %46
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %48 unwind label %84

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

49:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #6
  store i32 100, ptr %18, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %50 unwind label %88

50:                                               ; preds = %49
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %51 unwind label %90

51:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %52 unwind label %92

52:                                               ; preds = %51
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.25)
          to label %53 unwind label %94

53:                                               ; preds = %52
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.26)
          to label %54 unwind label %96

54:                                               ; preds = %53
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.27)
          to label %55 unwind label %98

55:                                               ; preds = %54
  %56 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %5, ptr noundef nonnull %19, i32 noundef 2)
          to label %.critedge198 unwind label %100

57:                                               ; preds = %4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  br label %.critedge219

.critedge198:                                     ; preds = %55
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  br label %.critedge219

.critedge219:                                     ; preds = %57, %.critedge198
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  %58 = load ptr, ptr %0, align 8, !tbaa !18
  %59 = call noundef i32 @_ZNK7GNMData9dispCycleEv(ptr noundef nonnull align 8 dereferenceable(984) %58)
  store i32 %59, ptr %24, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  br i1 %3, label %60, label %61

60:                                               ; preds = %.critedge219
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %67 unwind label %118

61:                                               ; preds = %.critedge219
  %62 = mul nsw i32 %59, 100
  %63 = getelementptr inbounds i8, ptr %0, i64 40
  %64 = load i32, ptr %63, align 8, !tbaa !19
  %65 = add i32 %64, %62
  store i32 %65, ptr %27, align 4, !tbaa !17
  invoke void @_Z2_sIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %66 unwind label %116

66:                                               ; preds = %61
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br label %.critedge221

67:                                               ; preds = %60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  br label %.critedge221

.critedge221:                                     ; preds = %66, %67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #6
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %68 unwind label %120

68:                                               ; preds = %.critedge221
  %69 = getelementptr inbounds i8, ptr %0, i64 48
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %70 unwind label %122

70:                                               ; preds = %68
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  %71 = load i32, ptr %24, align 4, !tbaa !17
  %.not = icmp eq i32 %71, 0
  br i1 %.not, label %.invoke, label %127

72:                                               ; preds = %41
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %115

74:                                               ; preds = %42
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %114

76:                                               ; preds = %43
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %113

78:                                               ; preds = %44
  %79 = landingpad { ptr, i32 }
          cleanup
  br label %112

80:                                               ; preds = %45
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %111

82:                                               ; preds = %46
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %110

84:                                               ; preds = %47
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %109

86:                                               ; preds = %48
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %108

88:                                               ; preds = %49
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %107

90:                                               ; preds = %50
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %106

92:                                               ; preds = %51
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %105

94:                                               ; preds = %52
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %104

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

98:                                               ; preds = %54
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %102

100:                                              ; preds = %55
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %102

102:                                              ; preds = %98, %100
  %.pn = phi { ptr, i32 } [ %101, %100 ], [ %99, %98 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %103

103:                                              ; preds = %96, %102
  %.pn.pn = phi { ptr, i32 } [ %.pn, %102 ], [ %97, %96 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %104

104:                                              ; preds = %94, %103
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %103 ], [ %95, %94 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %105

105:                                              ; preds = %92, %104
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %104 ], [ %93, %92 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %106

106:                                              ; preds = %90, %105
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %105 ], [ %91, %90 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %107

107:                                              ; preds = %106, %88
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %106 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %108

108:                                              ; preds = %86, %107
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %107 ], [ %87, %86 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %109

109:                                              ; preds = %84, %108
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %108 ], [ %85, %84 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %110

110:                                              ; preds = %82, %109
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %109 ], [ %83, %82 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %111

111:                                              ; preds = %80, %110
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %110 ], [ %81, %80 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %112

112:                                              ; preds = %78, %111
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %111 ], [ %79, %78 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %113

113:                                              ; preds = %76, %112
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %112 ], [ %77, %76 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %114

114:                                              ; preds = %74, %113
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %113 ], [ %75, %74 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %115

115:                                              ; preds = %72, %114
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %114 ], [ %73, %72 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  br label %248

116:                                              ; preds = %61
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br label %.critedge223

118:                                              ; preds = %60
  %119 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  br label %.critedge223

120:                                              ; preds = %.critedge221
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %124

122:                                              ; preds = %68
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %124

124:                                              ; preds = %122, %120
  %.pn167 = phi { ptr, i32 } [ %123, %122 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  br label %247

125:                                              ; preds = %.invoke, %216, %214, %208, %206, %200, %198, %175, %173, %155, %153
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %246

127:                                              ; preds = %70
  %128 = load ptr, ptr %0, align 8, !tbaa !18
  %129 = call noundef zeroext i1 @_ZNK7GNMData10isDrainageEv(ptr noundef nonnull align 8 dereferenceable(984) %128)
  %.str.30..str.31 = select i1 %129, ptr @.str.30, ptr @.str.31
  br label %.invoke

.invoke:                                          ; preds = %70, %127
  %130 = phi ptr [ %.str.30..str.31, %127 ], [ @.str.29, %70 ]
  %131 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull %130)
          to label %132 unwind label %125

132:                                              ; preds = %.invoke
  %133 = getelementptr inbounds i8, ptr %0, i64 24
  %134 = load i32, ptr %133, align 8, !tbaa !20
  %135 = and i32 %134, 1
  %.not169 = icmp eq i32 %135, 0
  br i1 %.not169, label %185, label %136

136:                                              ; preds = %132
  %137 = getelementptr inbounds i8, ptr %0, i64 32
  %138 = load i32, ptr %137, align 8, !tbaa !21
  %139 = load i32, ptr %24, align 4, !tbaa !17
  %140 = shl nsw i32 %139, 2
  %141 = call noundef zeroext i1 @_Z4_1Atji(i32 noundef %138, i32 noundef %140)
  br i1 %141, label %149, label %142

142:                                              ; preds = %136
  br i1 %3, label %143, label %185

143:                                              ; preds = %142
  %144 = load i32, ptr %137, align 8, !tbaa !21
  %145 = load i32, ptr %24, align 4, !tbaa !17
  %146 = shl nsw i32 %145, 2
  %147 = or disjoint i32 %146, 1
  %148 = call noundef zeroext i1 @_Z4_1Atji(i32 noundef %144, i32 noundef %147)
  br i1 %148, label %149, label %185

149:                                              ; preds = %143, %136
  %150 = getelementptr inbounds i8, ptr %0, i64 92
  %151 = load i8, ptr %150, align 4, !tbaa !22, !range !23, !noundef !24
  %152 = trunc nuw i8 %151 to i1
  br i1 %152, label %153, label %157

153:                                              ; preds = %149
  %154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.32)
          to label %155 unwind label %125

155:                                              ; preds = %153
  %156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %154)
          to label %157 unwind label %125

157:                                              ; preds = %155, %149
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %158 unwind label %177

158:                                              ; preds = %157
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.33)
          to label %159 unwind label %179

159:                                              ; preds = %158
  %160 = load i32, ptr %24, align 4, !tbaa !17
  %161 = getelementptr inbounds i8, ptr %0, i64 40
  %162 = load i32, ptr %161, align 8, !tbaa !19
  %163 = uitofp i32 %162 to double
  invoke void @_ZN9results3D16writeThroatLinesENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddidb(ptr noundef nonnull align 8 dereferenceable(93) %0, ptr noundef nonnull %30, double noundef %1, double noundef %2, i32 noundef %160, double noundef %163, i1 noundef zeroext %3)
          to label %164 unwind label %181

164:                                              ; preds = %159
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  %165 = load i32, ptr %137, align 8, !tbaa !21
  %166 = load i32, ptr %24, align 4, !tbaa !17
  %167 = shl nsw i32 %166, 2
  %168 = or disjoint i32 %167, 2
  %169 = call noundef zeroext i1 @_Z4_1Atji(i32 noundef %165, i32 noundef %168)
  br i1 %169, label %170, label %185

170:                                              ; preds = %164
  %171 = load i8, ptr %150, align 4, !tbaa !22, !range !23, !noundef !24
  %172 = trunc nuw i8 %171 to i1
  br i1 %172, label %173, label %185

173:                                              ; preds = %170
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %175 unwind label %125

175:                                              ; preds = %173
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %174)
          to label %185 unwind label %125

177:                                              ; preds = %157
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %184

179:                                              ; preds = %158
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %183

181:                                              ; preds = %159
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %183

183:                                              ; preds = %181, %179
  %.pn170 = phi { ptr, i32 } [ %182, %181 ], [ %180, %179 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %184

184:                                              ; preds = %183, %177
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %183 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  br label %246

185:                                              ; preds = %142, %143, %170, %175, %164, %132
  %186 = getelementptr inbounds i8, ptr %0, i64 36
  %187 = load i32, ptr %186, align 4, !tbaa !25
  %188 = load i32, ptr %24, align 4, !tbaa !17
  %189 = shl nsw i32 %188, 2
  %190 = call noundef zeroext i1 @_Z4_1Atji(i32 noundef %187, i32 noundef %189)
  br i1 %190, label %198, label %191

191:                                              ; preds = %185
  br i1 %3, label %192, label %.critedge225

192:                                              ; preds = %191
  %193 = load i32, ptr %186, align 4, !tbaa !25
  %194 = load i32, ptr %24, align 4, !tbaa !17
  %195 = shl nsw i32 %194, 2
  %196 = or disjoint i32 %195, 1
  %197 = call noundef zeroext i1 @_Z4_1Atji(i32 noundef %193, i32 noundef %196)
  br i1 %197, label %198, label %.thread230

198:                                              ; preds = %192, %185
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.35)
          to label %200 unwind label %125

200:                                              ; preds = %198
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %199)
          to label %202 unwind label %125

202:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.36)
          to label %203 unwind label %218

203:                                              ; preds = %202
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %204 unwind label %220

204:                                              ; preds = %203
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.33)
          to label %205 unwind label %222

205:                                              ; preds = %204
  invoke void @_ZN9results3D13vtuWritePoresENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93) %0, ptr noundef nonnull %32, double noundef %1, double noundef %2)
          to label %206 unwind label %224

206:                                              ; preds = %205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  %207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.37)
          to label %208 unwind label %125

208:                                              ; preds = %206
  %209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %207)
          to label %210 unwind label %125

210:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.38)
          to label %211 unwind label %229

211:                                              ; preds = %210
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %212 unwind label %231

212:                                              ; preds = %211
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.33)
          to label %213 unwind label %233

213:                                              ; preds = %212
  invoke void @_ZN9results3D15vtuWriteThroatsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93) %0, ptr noundef nonnull %35, double noundef %1, double noundef %2)
          to label %214 unwind label %235

214:                                              ; preds = %213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.39)
          to label %216 unwind label %125

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %215)
          to label %240 unwind label %125

218:                                              ; preds = %202
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %228

220:                                              ; preds = %203
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %227

222:                                              ; preds = %204
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %226

224:                                              ; preds = %205
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %226

226:                                              ; preds = %224, %222
  %.pn173 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %227

227:                                              ; preds = %226, %220
  %.pn173.pn = phi { ptr, i32 } [ %.pn173, %226 ], [ %221, %220 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %228

228:                                              ; preds = %227, %218
  %.pn173.pn.pn = phi { ptr, i32 } [ %.pn173.pn, %227 ], [ %219, %218 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  br label %246

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

231:                                              ; preds = %211
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %238

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

235:                                              ; preds = %213
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %237

237:                                              ; preds = %235, %233
  %.pn177 = phi { ptr, i32 } [ %236, %235 ], [ %234, %233 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %238

238:                                              ; preds = %237, %231
  %.pn177.pn = phi { ptr, i32 } [ %.pn177, %237 ], [ %232, %231 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %239

239:                                              ; preds = %238, %229
  %.pn177.pn.pn = phi { ptr, i32 } [ %.pn177.pn, %238 ], [ %230, %229 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  br label %246

240:                                              ; preds = %216
  br i1 %3, label %.thread230, label %.critedge225

.thread230:                                       ; preds = %192, %240
  %241 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 1, ptr %241, align 8, !tbaa !19
  br label %245

.critedge225:                                     ; preds = %191, %240
  %242 = getelementptr inbounds i8, ptr %0, i64 40
  %243 = load i32, ptr %242, align 8, !tbaa !19
  %244 = add i32 %243, 1
  store i32 %244, ptr %242, align 8, !tbaa !19
  br label %245

245:                                              ; preds = %.critedge225, %.thread230
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  ret void

246:                                              ; preds = %239, %228, %184, %125
  %.pn181 = phi { ptr, i32 } [ %126, %125 ], [ %.pn177.pn.pn, %239 ], [ %.pn173.pn.pn, %228 ], [ %.pn170.pn, %184 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %247

247:                                              ; preds = %246, %124
  %.pn181.pn = phi { ptr, i32 } [ %.pn181, %246 ], [ %.pn167, %124 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %.critedge223

.critedge223:                                     ; preds = %116, %118, %247
  %.pn181.pn.pn = phi { ptr, i32 } [ %.pn181.pn, %247 ], [ %119, %118 ], [ %117, %116 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %248

248:                                              ; preds = %115, %.critedge223
  %.pn181.pn.pn.pn = phi { ptr, i32 } [ %.pn181.pn.pn, %.critedge223 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %115 ]
  resume { ptr, i32 } %.pn181.pn.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7GNMData9dispCycleEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_Z4_1Atji(i32 noundef, i32 noundef) local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9results3D13vtuWritePoresENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93), ptr noundef, double noundef, double noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN9results3D15vtuWriteThroatsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(93), ptr noundef, double noundef, double noundef) local_unnamed_addr #2 align 2

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

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

!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, !10, i64 16}
!6 = !{!"_ZTS9results3D", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !11, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !12, i64 48, !15, i64 80, !10, i64 88, !16, i64 92}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTSN9results3D6FormatE", !8, i64 0}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !14, i64 8, !8, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!14 = !{!"long", !8, i64 0}
!15 = !{!"double", !8, i64 0}
!16 = !{!"bool", !8, i64 0}
!17 = !{!10, !10, i64 0}
!18 = !{!6, !7, i64 0}
!19 = !{!6, !10, i64 40}
!20 = !{!6, !11, i64 24}
!21 = !{!6, !10, i64 32}
!22 = !{!6, !16, i64 92}
!23 = !{i8 0, i8 2}
!24 = !{}
!25 = !{!6, !10, i64 36}


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