; LLVM IR from junhyeokahn/PyPnC :: external_source/yaml/src (scanscalar)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.YAML::Mark" = type { i32, i32, i32 }
%"class.std::allocator" = type { i8 }
%"struct.YAML::ScanScalarParams" = type <{ ptr, i8, [3 x i8], i32, i8, i8, i8, i8, i32, i8, [3 x i8], i32, i32, i32, i8, [7 x i8] }>

@.str = external hidden unnamed_addr constant [37 x i8], align 1
@_ZTIN4YAML15ParserExceptionE = external constant ptr
@.str.1 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4YAML10ScanScalarB5cxx11ERNS_6StreamERNS_16ScanScalarParamsE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(128) %1, ptr noundef nonnull align 8 dereferenceable(41) %2) #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i8, align 1
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca i64, align 8
  %14 = alloca i1, align 1
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i64, align 8
  %18 = alloca i8, align 1
  %19 = alloca %"struct.YAML::Mark", align 4
  %20 = alloca { i64, i32 }, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca i1, align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i8, align 1
  %26 = alloca %"struct.YAML::Mark", align 4
  %27 = alloca { i64, i32 }, align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca i1, align 1
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %"struct.YAML::Mark", align 4
  %35 = alloca { i64, i32 }, align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca i1, align 1
  %39 = alloca i8, align 1
  %40 = alloca i8, align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #8
  store i8 0, ptr %7, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #8
  %46 = load ptr, ptr %6, align 8, !tbaa !5
  %47 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %46, i32 0, i32 8
  %48 = load i32, ptr %47, align 4, !tbaa !11
  %49 = icmp eq i32 %48, 2
  %50 = zext i1 %49 to i8
  store i8 %50, ptr %8, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #8
  store i8 0, ptr %9, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  store i8 0, ptr %10, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 0, ptr %11, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  store i8 0, ptr %12, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store i64 -1, ptr %13, align 8, !tbaa !18
  store i1 false, ptr %14, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %51 = load ptr, ptr %6, align 8, !tbaa !5
  %52 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %51, i32 0, i32 14
  store i8 0, ptr %52, align 8, !tbaa !20
  %53 = load ptr, ptr %6, align 8, !tbaa !5
  %54 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %53, i32 0, i32 0
  %55 = load ptr, ptr %54, align 8, !tbaa !21
  %56 = icmp ne ptr %55, null
  br i1 %56, label %66, label %57

57:                                               ; preds = %3
  %58 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5EmptyEv()
          to label %59 unwind label %62

59:                                               ; preds = %57
  %60 = load ptr, ptr %6, align 8, !tbaa !5
  %61 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %60, i32 0, i32 0
  store ptr %58, ptr %61, align 8, !tbaa !21
  br label %66

62:                                               ; preds = %67, %57
  %63 = landingpad { ptr, i32 }
          cleanup
  %64 = extractvalue { ptr, i32 } %63, 0
  store ptr %64, ptr %15, align 8
  %65 = extractvalue { ptr, i32 } %63, 1
  store i32 %65, ptr %16, align 4
  br label %709

66:                                               ; preds = %59, %3
  br label %67

67:                                               ; preds = %591, %66
  %68 = load ptr, ptr %5, align 8, !tbaa !5
  %69 = invoke noundef zeroext i1 @_ZNK4YAML6StreamcvbEv(ptr noundef nonnull align 8 dereferenceable(128) %68)
          to label %70 unwind label %62

70:                                               ; preds = %67
  br i1 %69, label %71, label %596

71:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %72 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  store i64 %72, ptr %17, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #8
  store i8 0, ptr %18, align 1, !tbaa !9
  br label %73

73:                                               ; preds = %210, %178, %71
  %74 = load ptr, ptr %6, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %74, i32 0, i32 0
  %76 = load ptr, ptr %75, align 8, !tbaa !21
  %77 = load ptr, ptr %5, align 8, !tbaa !5
  %78 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(128) %77)
          to label %79 unwind label %94

79:                                               ; preds = %73
  br i1 %78, label %87, label %80

80:                                               ; preds = %79
  %81 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %82 unwind label %94

82:                                               ; preds = %80
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(128) %83)
          to label %85 unwind label %94

85:                                               ; preds = %82
  %86 = xor i1 %84, true
  br label %87

87:                                               ; preds = %85, %79
  %88 = phi i1 [ false, %79 ], [ %86, %85 ]
  br i1 %88, label %89, label %211

89:                                               ; preds = %87
  %90 = load ptr, ptr %5, align 8, !tbaa !5
  %91 = invoke noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128) %90)
          to label %92 unwind label %94

92:                                               ; preds = %89
  br i1 %91, label %93, label %98

93:                                               ; preds = %92
  br label %211

94:                                               ; preds = %257, %255, %250, %211, %164, %158, %154, %152, %105, %103, %98, %89, %82, %80, %73
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %15, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %16, align 4
  br label %595

98:                                               ; preds = %92
  %99 = load ptr, ptr %5, align 8, !tbaa !5
  %100 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %99)
          to label %101 unwind label %94

101:                                              ; preds = %98
  %102 = icmp eq i32 %100, 0
  br i1 %102, label %103, label %146

103:                                              ; preds = %101
  %104 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp12DocIndicatorEv()
          to label %105 unwind label %94

105:                                              ; preds = %103
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  %107 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(128) %106)
          to label %108 unwind label %94

108:                                              ; preds = %105
  br i1 %107, label %109, label %146

109:                                              ; preds = %108
  %110 = load ptr, ptr %6, align 8, !tbaa !5
  %111 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %110, i32 0, i32 12
  %112 = load i32, ptr %111, align 8, !tbaa !22
  %113 = icmp eq i32 %112, 1
  br i1 %113, label %114, label %115

114:                                              ; preds = %109
  br label %211

115:                                              ; preds = %109
  %116 = load ptr, ptr %6, align 8, !tbaa !5
  %117 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %116, i32 0, i32 12
  %118 = load i32, ptr %117, align 8, !tbaa !22
  %119 = icmp eq i32 %118, 2
  br i1 %119, label %120, label %144

120:                                              ; preds = %115
  store i1 true, ptr %23, align 1
  %121 = call ptr @__cxa_allocate_exception(i64 64) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr %19) #8
  %122 = load ptr, ptr %5, align 8, !tbaa !5
  %123 = invoke { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128) %122)
          to label %124 unwind label %127

124:                                              ; preds = %120
  store { i64, i32 } %123, ptr %20, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %19, ptr align 8 %20, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %125 unwind label %131

125:                                              ; preds = %124
  invoke void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64) %121, ptr noundef nonnull align 4 dereferenceable(12) %19, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %126 unwind label %135

126:                                              ; preds = %125
  store i1 false, ptr %23, align 1
  invoke void @__cxa_throw(ptr %121, ptr @_ZTIN4YAML15ParserExceptionE, ptr @_ZN4YAML15ParserExceptionD1Ev) #9
          to label %715 unwind label %135

127:                                              ; preds = %120
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %15, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %16, align 4
  br label %140

131:                                              ; preds = %124
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %15, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %16, align 4
  br label %139

135:                                              ; preds = %126, %125
  %136 = landingpad { ptr, i32 }
          cleanup
  %137 = extractvalue { ptr, i32 } %136, 0
  store ptr %137, ptr %15, align 8
  %138 = extractvalue { ptr, i32 } %136, 1
  store i32 %138, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %139

139:                                              ; preds = %135, %131
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  br label %140

140:                                              ; preds = %139, %127
  call void @llvm.lifetime.end.p0(i64 12, ptr %19) #8
  %141 = load i1, ptr %23, align 1
  br i1 %141, label %142, label %143

142:                                              ; preds = %140
  call void @__cxa_free_exception(ptr %121) #8
  br label %143

143:                                              ; preds = %142, %140
  br label %595

144:                                              ; preds = %115
  br label %145

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145, %108, %101
  store i8 1, ptr %7, align 1, !tbaa !9
  store i8 1, ptr %8, align 1, !tbaa !9
  %147 = load ptr, ptr %6, align 8, !tbaa !5
  %148 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %147, i32 0, i32 6
  %149 = load i8, ptr %148, align 2, !tbaa !23
  %150 = sext i8 %149 to i32
  %151 = icmp eq i32 %150, 92
  br i1 %151, label %152, label %164

152:                                              ; preds = %146
  %153 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp8EscBreakEv()
          to label %154 unwind label %94

154:                                              ; preds = %152
  %155 = load ptr, ptr %5, align 8, !tbaa !5
  %156 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull align 8 dereferenceable(128) %155)
          to label %157 unwind label %94

157:                                              ; preds = %154
  br i1 %156, label %158, label %164

158:                                              ; preds = %157
  %159 = load ptr, ptr %5, align 8, !tbaa !5
  %160 = invoke noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128) %159)
          to label %161 unwind label %94

161:                                              ; preds = %158
  %162 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  store i64 %162, ptr %17, align 8, !tbaa !18
  %163 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  store i64 %163, ptr %13, align 8, !tbaa !18
  store i8 1, ptr %18, align 1, !tbaa !9
  br label %211

164:                                              ; preds = %157, %146
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  %166 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %165)
          to label %167 unwind label %94

167:                                              ; preds = %164
  %168 = sext i8 %166 to i32
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %169, i32 0, i32 6
  %171 = load i8, ptr %170, align 2, !tbaa !23
  %172 = sext i8 %171 to i32
  %173 = icmp eq i32 %168, %172
  br i1 %173, label %174, label %190

174:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  %175 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN4YAML3Exp6EscapeB5cxx11ERNS_6StreamE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(128) %175)
          to label %176 unwind label %181

176:                                              ; preds = %174
  %177 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %178 unwind label %185

178:                                              ; preds = %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  %179 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  store i64 %179, ptr %17, align 8, !tbaa !18
  %180 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  store i64 %180, ptr %13, align 8, !tbaa !18
  br label %73, !llvm.loop !24

181:                                              ; preds = %174
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %15, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %16, align 4
  br label %189

185:                                              ; preds = %176
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %15, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %189

189:                                              ; preds = %185, %181
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  br label %595

190:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #8
  %191 = load ptr, ptr %5, align 8, !tbaa !5
  %192 = invoke noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128) %191)
          to label %193 unwind label %206

193:                                              ; preds = %190
  store i8 %192, ptr %25, align 1, !tbaa !26
  %194 = load i8, ptr %25, align 1, !tbaa !26
  %195 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext %194)
          to label %196 unwind label %206

196:                                              ; preds = %193
  %197 = load i8, ptr %25, align 1, !tbaa !26
  %198 = sext i8 %197 to i32
  %199 = icmp ne i32 %198, 32
  br i1 %199, label %200, label %210

200:                                              ; preds = %196
  %201 = load i8, ptr %25, align 1, !tbaa !26
  %202 = sext i8 %201 to i32
  %203 = icmp ne i32 %202, 9
  br i1 %203, label %204, label %210

204:                                              ; preds = %200
  %205 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  store i64 %205, ptr %17, align 8, !tbaa !18
  br label %210

206:                                              ; preds = %193, %190
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %15, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  br label %595

210:                                              ; preds = %204, %200, %196
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  br label %73, !llvm.loop !24

211:                                              ; preds = %161, %114, %93, %87
  %212 = load ptr, ptr %5, align 8, !tbaa !5
  %213 = invoke noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128) %212)
          to label %214 unwind label %94

214:                                              ; preds = %211
  br i1 %213, label %215, label %245

215:                                              ; preds = %214
  %216 = load ptr, ptr %6, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %216, i32 0, i32 1
  %218 = load i8, ptr %217, align 8, !tbaa !27, !range !28, !noundef !29
  %219 = trunc i8 %218 to i1
  br i1 %219, label %220, label %244

220:                                              ; preds = %215
  store i1 true, ptr %30, align 1
  %221 = call ptr @__cxa_allocate_exception(i64 64) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr %26) #8
  %222 = load ptr, ptr %5, align 8, !tbaa !5
  %223 = invoke { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128) %222)
          to label %224 unwind label %227

224:                                              ; preds = %220
  store { i64, i32 } %223, ptr %27, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %26, ptr align 8 %27, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %225 unwind label %231

225:                                              ; preds = %224
  invoke void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64) %221, ptr noundef nonnull align 4 dereferenceable(12) %26, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %226 unwind label %235

226:                                              ; preds = %225
  store i1 false, ptr %30, align 1
  invoke void @__cxa_throw(ptr %221, ptr @_ZTIN4YAML15ParserExceptionE, ptr @_ZN4YAML15ParserExceptionD1Ev) #9
          to label %715 unwind label %235

227:                                              ; preds = %220
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %15, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %16, align 4
  br label %240

231:                                              ; preds = %224
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %15, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %16, align 4
  br label %239

235:                                              ; preds = %226, %225
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %15, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %239

239:                                              ; preds = %235, %231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %240

240:                                              ; preds = %239, %227
  call void @llvm.lifetime.end.p0(i64 12, ptr %26) #8
  %241 = load i1, ptr %30, align 1
  br i1 %241, label %242, label %243

242:                                              ; preds = %240
  call void @__cxa_free_exception(ptr %221) #8
  br label %243

243:                                              ; preds = %242, %240
  br label %595

244:                                              ; preds = %215
  store i32 3, ptr %31, align 4
  br label %589

245:                                              ; preds = %214
  %246 = load ptr, ptr %6, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %246, i32 0, i32 12
  %248 = load i32, ptr %247, align 8, !tbaa !22
  %249 = icmp eq i32 %248, 1
  br i1 %249, label %250, label %262

250:                                              ; preds = %245
  %251 = load ptr, ptr %5, align 8, !tbaa !5
  %252 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %251)
          to label %253 unwind label %94

253:                                              ; preds = %250
  %254 = icmp eq i32 %252, 0
  br i1 %254, label %255, label %262

255:                                              ; preds = %253
  %256 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp12DocIndicatorEv()
          to label %257 unwind label %94

257:                                              ; preds = %255
  %258 = load ptr, ptr %5, align 8, !tbaa !5
  %259 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull align 8 dereferenceable(128) %258)
          to label %260 unwind label %94

260:                                              ; preds = %257
  br i1 %259, label %261, label %262

261:                                              ; preds = %260
  store i32 3, ptr %31, align 4
  br label %589

262:                                              ; preds = %260, %253, %245
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %263 = load ptr, ptr %6, align 8, !tbaa !5
  %264 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %263, i32 0, i32 0
  %265 = load ptr, ptr %264, align 8, !tbaa !21
  %266 = load ptr, ptr %5, align 8, !tbaa !5
  %267 = invoke noundef i32 @_ZNK4YAML5RegEx5MatchERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef nonnull align 8 dereferenceable(128) %266)
          to label %268 unwind label %280

268:                                              ; preds = %262
  store i32 %267, ptr %32, align 4, !tbaa !17
  %269 = load i32, ptr %32, align 4, !tbaa !17
  %270 = icmp sge i32 %269, 0
  br i1 %270, label %271, label %285

271:                                              ; preds = %268
  %272 = load ptr, ptr %6, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %272, i32 0, i32 1
  %274 = load i8, ptr %273, align 8, !tbaa !27, !range !28, !noundef !29
  %275 = trunc i8 %274 to i1
  br i1 %275, label %276, label %284

276:                                              ; preds = %271
  %277 = load ptr, ptr %5, align 8, !tbaa !5
  %278 = load i32, ptr %32, align 4, !tbaa !17
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %277, i32 noundef %278)
          to label %279 unwind label %280

279:                                              ; preds = %276
  br label %284

280:                                              ; preds = %425, %417, %374, %368, %364, %362, %335, %325, %309, %303, %299, %296, %294, %290, %276, %262
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %15, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %16, align 4
  br label %594

284:                                              ; preds = %279, %271
  store i32 3, ptr %31, align 4
  br label %588

285:                                              ; preds = %268
  %286 = load ptr, ptr %6, align 8, !tbaa !5
  %287 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %286, i32 0, i32 8
  %288 = load i32, ptr %287, align 4, !tbaa !11
  %289 = icmp eq i32 %288, 2
  br i1 %289, label %290, label %294

290:                                              ; preds = %285
  %291 = load i64, ptr %17, align 8, !tbaa !18
  %292 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %291, i64 noundef -1)
          to label %293 unwind label %280

293:                                              ; preds = %290
  br label %294

294:                                              ; preds = %293, %285
  %295 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %296 unwind label %280

296:                                              ; preds = %294
  %297 = load ptr, ptr %5, align 8, !tbaa !5
  %298 = invoke noundef i32 @_ZNK4YAML5RegEx5MatchERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %295, ptr noundef nonnull align 8 dereferenceable(128) %297)
          to label %299 unwind label %280

299:                                              ; preds = %296
  store i32 %298, ptr %32, align 4, !tbaa !17
  %300 = load ptr, ptr %5, align 8, !tbaa !5
  %301 = load i32, ptr %32, align 4, !tbaa !17
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %300, i32 noundef %301)
          to label %302 unwind label %280

302:                                              ; preds = %299
  br label %303

303:                                              ; preds = %337, %302
  %304 = load ptr, ptr %5, align 8, !tbaa !5
  %305 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %304)
          to label %306 unwind label %280

306:                                              ; preds = %303
  %307 = sext i8 %305 to i32
  %308 = icmp eq i32 %307, 32
  br i1 %308, label %309, label %333

309:                                              ; preds = %306
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %310)
          to label %312 unwind label %280

312:                                              ; preds = %309
  %313 = load ptr, ptr %6, align 8, !tbaa !5
  %314 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %313, i32 0, i32 3
  %315 = load i32, ptr %314, align 4, !tbaa !30
  %316 = icmp slt i32 %311, %315
  br i1 %316, label %325, label %317

317:                                              ; preds = %312
  %318 = load ptr, ptr %6, align 8, !tbaa !5
  %319 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %318, i32 0, i32 4
  %320 = load i8, ptr %319, align 8, !tbaa !31, !range !28, !noundef !29
  %321 = trunc i8 %320 to i1
  br i1 %321, label %322, label %333

322:                                              ; preds = %317
  %323 = load i8, ptr %7, align 1, !tbaa !9, !range !28, !noundef !29
  %324 = trunc i8 %323 to i1
  br i1 %324, label %333, label %325

325:                                              ; preds = %322, %312
  %326 = load ptr, ptr %6, align 8, !tbaa !5
  %327 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %326, i32 0, i32 0
  %328 = load ptr, ptr %327, align 8, !tbaa !21
  %329 = load ptr, ptr %5, align 8, !tbaa !5
  %330 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %328, ptr noundef nonnull align 8 dereferenceable(128) %329)
          to label %331 unwind label %280

331:                                              ; preds = %325
  %332 = xor i1 %330, true
  br label %333

333:                                              ; preds = %331, %322, %317, %306
  %334 = phi i1 [ false, %322 ], [ false, %317 ], [ false, %306 ], [ %332, %331 ]
  br i1 %334, label %335, label %338

335:                                              ; preds = %333
  %336 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %336, i32 noundef 1)
          to label %337 unwind label %280

337:                                              ; preds = %335
  br label %303, !llvm.loop !32

338:                                              ; preds = %333
  %339 = load ptr, ptr %6, align 8, !tbaa !5
  %340 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %339, i32 0, i32 4
  %341 = load i8, ptr %340, align 8, !tbaa !31, !range !28, !noundef !29
  %342 = trunc i8 %341 to i1
  br i1 %342, label %343, label %361

343:                                              ; preds = %338
  %344 = load i8, ptr %7, align 1, !tbaa !9, !range !28, !noundef !29
  %345 = trunc i8 %344 to i1
  br i1 %345, label %361, label %346

346:                                              ; preds = %343
  %347 = load ptr, ptr %6, align 8, !tbaa !5
  %348 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %347, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %349 = load ptr, ptr %5, align 8, !tbaa !5
  %350 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %349)
          to label %351 unwind label %357

351:                                              ; preds = %346
  store i32 %350, ptr %33, align 4, !tbaa !17
  %352 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %348, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %353 unwind label %357

353:                                              ; preds = %351
  %354 = load i32, ptr %352, align 4, !tbaa !17
  %355 = load ptr, ptr %6, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %355, i32 0, i32 3
  store i32 %354, ptr %356, align 4, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %361

357:                                              ; preds = %351, %346
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %15, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %594

361:                                              ; preds = %353, %343, %338
  br label %362

362:                                              ; preds = %427, %361
  %363 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BlankEv()
          to label %364 unwind label %280

364:                                              ; preds = %362
  %365 = load ptr, ptr %5, align 8, !tbaa !5
  %366 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(128) %365)
          to label %367 unwind label %280

367:                                              ; preds = %364
  br i1 %366, label %368, label %428

368:                                              ; preds = %367
  %369 = load ptr, ptr %5, align 8, !tbaa !5
  %370 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %369)
          to label %371 unwind label %280

371:                                              ; preds = %368
  %372 = sext i8 %370 to i32
  %373 = icmp eq i32 %372, 9
  br i1 %373, label %374, label %411

374:                                              ; preds = %371
  %375 = load ptr, ptr %5, align 8, !tbaa !5
  %376 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %375)
          to label %377 unwind label %280

377:                                              ; preds = %374
  %378 = load ptr, ptr %6, align 8, !tbaa !5
  %379 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %378, i32 0, i32 3
  %380 = load i32, ptr %379, align 4, !tbaa !30
  %381 = icmp slt i32 %376, %380
  br i1 %381, label %382, label %411

382:                                              ; preds = %377
  %383 = load ptr, ptr %6, align 8, !tbaa !5
  %384 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %383, i32 0, i32 13
  %385 = load i32, ptr %384, align 4, !tbaa !33
  %386 = icmp eq i32 %385, 2
  br i1 %386, label %387, label %411

387:                                              ; preds = %382
  store i1 true, ptr %38, align 1
  %388 = call ptr @__cxa_allocate_exception(i64 64) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr %34) #8
  %389 = load ptr, ptr %5, align 8, !tbaa !5
  %390 = invoke { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128) %389)
          to label %391 unwind label %394

391:                                              ; preds = %387
  store { i64, i32 } %390, ptr %35, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %34, ptr align 8 %35, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %392 unwind label %398

392:                                              ; preds = %391
  invoke void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64) %388, ptr noundef nonnull align 4 dereferenceable(12) %34, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %393 unwind label %402

393:                                              ; preds = %392
  store i1 false, ptr %38, align 1
  invoke void @__cxa_throw(ptr %388, ptr @_ZTIN4YAML15ParserExceptionE, ptr @_ZN4YAML15ParserExceptionD1Ev) #9
          to label %715 unwind label %402

394:                                              ; preds = %387
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %15, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %16, align 4
  br label %407

398:                                              ; preds = %391
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %15, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %16, align 4
  br label %406

402:                                              ; preds = %393, %392
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %15, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %406

406:                                              ; preds = %402, %398
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %407

407:                                              ; preds = %406, %394
  call void @llvm.lifetime.end.p0(i64 12, ptr %34) #8
  %408 = load i1, ptr %38, align 1
  br i1 %408, label %409, label %410

409:                                              ; preds = %407
  call void @__cxa_free_exception(ptr %388) #8
  br label %410

410:                                              ; preds = %409, %407
  br label %594

411:                                              ; preds = %382, %377, %371
  %412 = load ptr, ptr %6, align 8, !tbaa !5
  %413 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %412, i32 0, i32 5
  %414 = load i8, ptr %413, align 1, !tbaa !34, !range !28, !noundef !29
  %415 = trunc i8 %414 to i1
  br i1 %415, label %417, label %416

416:                                              ; preds = %411
  br label %428

417:                                              ; preds = %411
  %418 = load ptr, ptr %6, align 8, !tbaa !5
  %419 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %418, i32 0, i32 0
  %420 = load ptr, ptr %419, align 8, !tbaa !21
  %421 = load ptr, ptr %5, align 8, !tbaa !5
  %422 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull align 8 dereferenceable(128) %421)
          to label %423 unwind label %280

423:                                              ; preds = %417
  br i1 %422, label %424, label %425

424:                                              ; preds = %423
  br label %428

425:                                              ; preds = %423
  %426 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %426, i32 noundef 1)
          to label %427 unwind label %280

427:                                              ; preds = %425
  br label %362, !llvm.loop !35

428:                                              ; preds = %424, %416, %367
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  %429 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %430 unwind label %455

430:                                              ; preds = %428
  %431 = load ptr, ptr %5, align 8, !tbaa !5
  %432 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull align 8 dereferenceable(128) %431)
          to label %433 unwind label %455

433:                                              ; preds = %430
  %434 = zext i1 %432 to i8
  store i8 %434, ptr %39, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  %435 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BlankEv()
          to label %436 unwind label %459

436:                                              ; preds = %433
  %437 = load ptr, ptr %5, align 8, !tbaa !5
  %438 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef nonnull align 8 dereferenceable(128) %437)
          to label %439 unwind label %459

439:                                              ; preds = %436
  %440 = zext i1 %438 to i8
  store i8 %440, ptr %40, align 1, !tbaa !9
  %441 = load ptr, ptr %6, align 8, !tbaa !5
  %442 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %441, i32 0, i32 8
  %443 = load i32, ptr %442, align 4, !tbaa !11
  %444 = icmp eq i32 %443, 1
  br i1 %444, label %445, label %463

445:                                              ; preds = %439
  %446 = load i32, ptr %11, align 4, !tbaa !17
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %463

448:                                              ; preds = %445
  %449 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %450 = trunc i8 %449 to i1
  br i1 %450, label %451, label %463

451:                                              ; preds = %448
  %452 = load i8, ptr %10, align 1, !tbaa !9, !range !28, !noundef !29
  %453 = trunc i8 %452 to i1
  %454 = zext i1 %453 to i8
  store i8 %454, ptr %12, align 1, !tbaa !9
  br label %463

455:                                              ; preds = %430, %428
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %15, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %16, align 4
  br label %593

459:                                              ; preds = %575, %560, %548, %531, %502, %493, %485, %470, %436, %433
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %15, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %16, align 4
  br label %592

463:                                              ; preds = %451, %448, %445, %439
  %464 = load i8, ptr %8, align 1, !tbaa !9, !range !28, !noundef !29
  %465 = trunc i8 %464 to i1
  br i1 %465, label %466, label %566

466:                                              ; preds = %463
  %467 = load ptr, ptr %6, align 8, !tbaa !5
  %468 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %467, i32 0, i32 8
  %469 = load i32, ptr %468, align 4, !tbaa !11
  switch i32 %469, label %565 [
    i32 0, label %470
    i32 1, label %473
    i32 2, label %545
  ]

470:                                              ; preds = %466
  %471 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.3)
          to label %472 unwind label %459

472:                                              ; preds = %470
  br label %565

473:                                              ; preds = %466
  %474 = load i8, ptr %9, align 1, !tbaa !9, !range !28, !noundef !29
  %475 = trunc i8 %474 to i1
  br i1 %475, label %496, label %476

476:                                              ; preds = %473
  %477 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %478 = trunc i8 %477 to i1
  br i1 %478, label %496, label %479

479:                                              ; preds = %476
  %480 = load i8, ptr %10, align 1, !tbaa !9, !range !28, !noundef !29
  %481 = trunc i8 %480 to i1
  br i1 %481, label %496, label %482

482:                                              ; preds = %479
  %483 = load i8, ptr %40, align 1, !tbaa !9, !range !28, !noundef !29
  %484 = trunc i8 %483 to i1
  br i1 %484, label %496, label %485

485:                                              ; preds = %482
  %486 = load ptr, ptr %5, align 8, !tbaa !5
  %487 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %486)
          to label %488 unwind label %459

488:                                              ; preds = %485
  %489 = load ptr, ptr %6, align 8, !tbaa !5
  %490 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %489, i32 0, i32 3
  %491 = load i32, ptr %490, align 4, !tbaa !30
  %492 = icmp sge i32 %487, %491
  br i1 %492, label %493, label %496

493:                                              ; preds = %488
  %494 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.4)
          to label %495 unwind label %459

495:                                              ; preds = %493
  br label %506

496:                                              ; preds = %488, %482, %479, %476, %473
  %497 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %498 = trunc i8 %497 to i1
  br i1 %498, label %499, label %502

499:                                              ; preds = %496
  %500 = load i32, ptr %11, align 4, !tbaa !17
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr %11, align 4, !tbaa !17
  br label %505

502:                                              ; preds = %496
  %503 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.3)
          to label %504 unwind label %459

504:                                              ; preds = %502
  br label %505

505:                                              ; preds = %504, %499
  br label %506

506:                                              ; preds = %505, %495
  %507 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %508 = trunc i8 %507 to i1
  br i1 %508, label %544, label %509

509:                                              ; preds = %506
  %510 = load i32, ptr %11, align 4, !tbaa !17
  %511 = icmp sgt i32 %510, 0
  br i1 %511, label %512, label %544

512:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  %513 = load i32, ptr %11, align 4, !tbaa !17
  %514 = sub nsw i32 %513, 1
  %515 = sext i32 %514 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, i64 noundef %515, i8 noundef signext 10, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %516 unwind label %534

516:                                              ; preds = %512
  %517 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %518 unwind label %538

518:                                              ; preds = %516
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  %519 = load i8, ptr %12, align 1, !tbaa !9, !range !28, !noundef !29
  %520 = trunc i8 %519 to i1
  br i1 %520, label %531, label %521

521:                                              ; preds = %518
  %522 = load i8, ptr %40, align 1, !tbaa !9, !range !28, !noundef !29
  %523 = trunc i8 %522 to i1
  %524 = zext i1 %523 to i32
  %525 = load i8, ptr %7, align 1, !tbaa !9, !range !28, !noundef !29
  %526 = trunc i8 %525 to i1
  %527 = xor i1 %526, true
  %528 = zext i1 %527 to i32
  %529 = or i32 %524, %528
  %530 = icmp ne i32 %529, 0
  br i1 %530, label %531, label %543

531:                                              ; preds = %521, %518
  %532 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.3)
          to label %533 unwind label %459

533:                                              ; preds = %531
  br label %543

534:                                              ; preds = %512
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %15, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %16, align 4
  br label %542

538:                                              ; preds = %516
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %15, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %16, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %542

542:                                              ; preds = %538, %534
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %592

543:                                              ; preds = %533, %521
  store i32 0, ptr %11, align 4, !tbaa !17
  br label %544

544:                                              ; preds = %543, %509, %506
  br label %565

545:                                              ; preds = %466
  %546 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %547 = trunc i8 %546 to i1
  br i1 %547, label %548, label %551

548:                                              ; preds = %545
  %549 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.3)
          to label %550 unwind label %459

550:                                              ; preds = %548
  br label %564

551:                                              ; preds = %545
  %552 = load i8, ptr %9, align 1, !tbaa !9, !range !28, !noundef !29
  %553 = trunc i8 %552 to i1
  br i1 %553, label %563, label %554

554:                                              ; preds = %551
  %555 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %556 = trunc i8 %555 to i1
  br i1 %556, label %563, label %557

557:                                              ; preds = %554
  %558 = load i8, ptr %18, align 1, !tbaa !9, !range !28, !noundef !29
  %559 = trunc i8 %558 to i1
  br i1 %559, label %563, label %560

560:                                              ; preds = %557
  %561 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.4)
          to label %562 unwind label %459

562:                                              ; preds = %560
  br label %563

563:                                              ; preds = %562, %557, %554, %551
  br label %564

564:                                              ; preds = %563, %550
  br label %565

565:                                              ; preds = %564, %544, %472, %466
  br label %566

566:                                              ; preds = %565, %463
  %567 = load i8, ptr %39, align 1, !tbaa !9, !range !28, !noundef !29
  %568 = trunc i8 %567 to i1
  %569 = zext i1 %568 to i8
  store i8 %569, ptr %9, align 1, !tbaa !9
  %570 = load i8, ptr %40, align 1, !tbaa !9, !range !28, !noundef !29
  %571 = trunc i8 %570 to i1
  %572 = zext i1 %571 to i8
  store i8 %572, ptr %10, align 1, !tbaa !9
  store i8 1, ptr %8, align 1, !tbaa !9
  %573 = load i8, ptr %9, align 1, !tbaa !9, !range !28, !noundef !29
  %574 = trunc i8 %573 to i1
  br i1 %574, label %586, label %575

575:                                              ; preds = %566
  %576 = load ptr, ptr %5, align 8, !tbaa !5
  %577 = invoke noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %576)
          to label %578 unwind label %459

578:                                              ; preds = %575
  %579 = load ptr, ptr %6, align 8, !tbaa !5
  %580 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %579, i32 0, i32 3
  %581 = load i32, ptr %580, align 4, !tbaa !30
  %582 = icmp slt i32 %577, %581
  br i1 %582, label %583, label %586

583:                                              ; preds = %578
  %584 = load ptr, ptr %6, align 8, !tbaa !5
  %585 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %584, i32 0, i32 14
  store i8 1, ptr %585, align 8, !tbaa !20
  store i32 3, ptr %31, align 4
  br label %587

586:                                              ; preds = %578, %566
  store i32 0, ptr %31, align 4
  br label %587

587:                                              ; preds = %586, %583
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  br label %588

588:                                              ; preds = %587, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %589

589:                                              ; preds = %588, %261, %244
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  %590 = load i32, ptr %31, align 4
  switch i32 %590, label %715 [
    i32 0, label %591
    i32 3, label %596
  ]

591:                                              ; preds = %589
  br label %67, !llvm.loop !36

592:                                              ; preds = %542, %459
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %593

593:                                              ; preds = %592, %455
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  br label %594

594:                                              ; preds = %593, %410, %357, %280
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %595

595:                                              ; preds = %594, %243, %206, %189, %143, %94
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %709

596:                                              ; preds = %589, %70
  %597 = load ptr, ptr %6, align 8, !tbaa !5
  %598 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %597, i32 0, i32 9
  %599 = load i8, ptr %598, align 8, !tbaa !37, !range !28, !noundef !29
  %600 = trunc i8 %599 to i1
  br i1 %600, label %601, label %629

601:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %602 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext 32, i64 noundef -1) #8
  store i64 %602, ptr %43, align 8, !tbaa !18
  %603 = load i64, ptr %13, align 8, !tbaa !18
  %604 = icmp ne i64 %603, -1
  br i1 %604, label %605, label %615

605:                                              ; preds = %601
  %606 = load i64, ptr %43, align 8, !tbaa !18
  %607 = load i64, ptr %13, align 8, !tbaa !18
  %608 = icmp ult i64 %606, %607
  br i1 %608, label %612, label %609

609:                                              ; preds = %605
  %610 = load i64, ptr %43, align 8, !tbaa !18
  %611 = icmp eq i64 %610, -1
  br i1 %611, label %612, label %614

612:                                              ; preds = %609, %605
  %613 = load i64, ptr %13, align 8, !tbaa !18
  store i64 %613, ptr %43, align 8, !tbaa !18
  br label %614

614:                                              ; preds = %612, %609
  br label %615

615:                                              ; preds = %614, %601
  %616 = load i64, ptr %43, align 8, !tbaa !18
  %617 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %618 = icmp ult i64 %616, %617
  br i1 %618, label %619, label %628

619:                                              ; preds = %615
  %620 = load i64, ptr %43, align 8, !tbaa !18
  %621 = add i64 %620, 1
  %622 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %621, i64 noundef -1)
          to label %623 unwind label %624

623:                                              ; preds = %619
  br label %628

624:                                              ; preds = %619
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %15, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %709

628:                                              ; preds = %623, %615
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %629

629:                                              ; preds = %628, %596
  %630 = load ptr, ptr %6, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.YAML::ScanScalarParams", ptr %630, i32 0, i32 11
  %632 = load i32, ptr %631, align 4, !tbaa !38
  switch i32 %632, label %704 [
    i32 0, label %633
    i32 -1, label %669
  ]

633:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %634 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext 10, i64 noundef -1) #8
  store i64 %634, ptr %44, align 8, !tbaa !18
  %635 = load i64, ptr %13, align 8, !tbaa !18
  %636 = icmp ne i64 %635, -1
  br i1 %636, label %637, label %647

637:                                              ; preds = %633
  %638 = load i64, ptr %44, align 8, !tbaa !18
  %639 = load i64, ptr %13, align 8, !tbaa !18
  %640 = icmp ult i64 %638, %639
  br i1 %640, label %644, label %641

641:                                              ; preds = %637
  %642 = load i64, ptr %44, align 8, !tbaa !18
  %643 = icmp eq i64 %642, -1
  br i1 %643, label %644, label %646

644:                                              ; preds = %641, %637
  %645 = load i64, ptr %13, align 8, !tbaa !18
  store i64 %645, ptr %44, align 8, !tbaa !18
  br label %646

646:                                              ; preds = %644, %641
  br label %647

647:                                              ; preds = %646, %633
  %648 = load i64, ptr %44, align 8, !tbaa !18
  %649 = icmp eq i64 %648, -1
  br i1 %649, label %650, label %657

650:                                              ; preds = %647
  %651 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0, i64 noundef -1)
          to label %652 unwind label %653

652:                                              ; preds = %650
  br label %668

653:                                              ; preds = %662, %650
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %15, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %709

657:                                              ; preds = %647
  %658 = load i64, ptr %44, align 8, !tbaa !18
  %659 = add i64 %658, 1
  %660 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %661 = icmp ult i64 %659, %660
  br i1 %661, label %662, label %667

662:                                              ; preds = %657
  %663 = load i64, ptr %44, align 8, !tbaa !18
  %664 = add i64 %663, 2
  %665 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %664, i64 noundef -1)
          to label %666 unwind label %653

666:                                              ; preds = %662
  br label %667

667:                                              ; preds = %666, %657
  br label %668

668:                                              ; preds = %667, %652
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %705

669:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %670 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext 10, i64 noundef -1) #8
  store i64 %670, ptr %45, align 8, !tbaa !18
  %671 = load i64, ptr %13, align 8, !tbaa !18
  %672 = icmp ne i64 %671, -1
  br i1 %672, label %673, label %683

673:                                              ; preds = %669
  %674 = load i64, ptr %45, align 8, !tbaa !18
  %675 = load i64, ptr %13, align 8, !tbaa !18
  %676 = icmp ult i64 %674, %675
  br i1 %676, label %680, label %677

677:                                              ; preds = %673
  %678 = load i64, ptr %45, align 8, !tbaa !18
  %679 = icmp eq i64 %678, -1
  br i1 %679, label %680, label %682

680:                                              ; preds = %677, %673
  %681 = load i64, ptr %13, align 8, !tbaa !18
  store i64 %681, ptr %45, align 8, !tbaa !18
  br label %682

682:                                              ; preds = %680, %677
  br label %683

683:                                              ; preds = %682, %669
  %684 = load i64, ptr %45, align 8, !tbaa !18
  %685 = icmp eq i64 %684, -1
  br i1 %685, label %686, label %693

686:                                              ; preds = %683
  %687 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 0, i64 noundef -1)
          to label %688 unwind label %689

688:                                              ; preds = %686
  br label %703

689:                                              ; preds = %697, %686
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %15, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %709

693:                                              ; preds = %683
  %694 = load i64, ptr %45, align 8, !tbaa !18
  %695 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %696 = icmp ult i64 %694, %695
  br i1 %696, label %697, label %702

697:                                              ; preds = %693
  %698 = load i64, ptr %45, align 8, !tbaa !18
  %699 = add i64 %698, 1
  %700 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %699, i64 noundef -1)
          to label %701 unwind label %689

701:                                              ; preds = %697
  br label %702

702:                                              ; preds = %701, %693
  br label %703

703:                                              ; preds = %702, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %705

704:                                              ; preds = %629
  br label %705

705:                                              ; preds = %704, %703, %668
  store i1 true, ptr %14, align 1
  store i32 1, ptr %31, align 4
  %706 = load i1, ptr %14, align 1
  br i1 %706, label %708, label %707

707:                                              ; preds = %705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %708

708:                                              ; preds = %707, %705
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #8
  ret void

709:                                              ; preds = %689, %653, %624, %595, %62
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #8
  br label %710

710:                                              ; preds = %709
  %711 = load ptr, ptr %15, align 8
  %712 = load i32, ptr %16, align 4
  %713 = insertvalue { ptr, i32 } poison, ptr %711, 0
  %714 = insertvalue { ptr, i32 } %713, i32 %712, 1
  resume { ptr, i32 } %714

715:                                              ; preds = %589, %393, %226, %126
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5EmptyEv() #3

declare i32 @__gxx_personality_v0(...)

declare noundef zeroext i1 @_ZNK4YAML6StreamcvbEv(ptr noundef nonnull align 8 dereferenceable(128)) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv() #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128)) #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp12DocIndicatorEv() #3

declare ptr @__cxa_allocate_exception(i64)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128)) #2 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

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

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) 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 #2 align 2

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

declare void @__cxa_free_exception(ptr)

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp8EscBreakEv() #3

declare noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128)) #4

declare noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128)) #4

declare void @_ZN4YAML3Exp6EscapeB5cxx11ERNS_6StreamE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) #4

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

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

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

declare void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BlankEv() #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) #0 align 2

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) #6

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

!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 = !{!"bool", !7, i64 0}
!11 = !{!12, !14, i64 20}
!12 = !{!"_ZTSN4YAML16ScanScalarParamsE", !6, i64 0, !10, i64 8, !13, i64 12, !10, i64 16, !10, i64 17, !7, i64 18, !14, i64 20, !10, i64 24, !15, i64 28, !16, i64 32, !16, i64 36, !10, i64 40}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTSN4YAML4FOLDE", !7, i64 0}
!15 = !{!"_ZTSN4YAML5CHOMPE", !7, i64 0}
!16 = !{!"_ZTSN4YAML6ACTIONE", !7, i64 0}
!17 = !{!13, !13, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!12, !10, i64 40}
!21 = !{!12, !6, i64 0}
!22 = !{!12, !16, i64 32}
!23 = !{!12, !7, i64 18}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = !{!7, !7, i64 0}
!27 = !{!12, !10, i64 8}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!12, !13, i64 12}
!31 = !{!12, !10, i64 16}
!32 = distinct !{!32, !25}
!33 = !{!12, !16, i64 36}
!34 = !{!12, !10, i64 17}
!35 = distinct !{!35, !25}
!36 = distinct !{!36, !25}
!37 = !{!12, !10, i64 24}
!38 = !{!12, !15, i64 28}


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

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

@.str = external hidden unnamed_addr constant [37 x i8], align 1
@_ZTIN4YAML15ParserExceptionE = external constant ptr
@.str.1 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4YAML10ScanScalarB5cxx11ERNS_6StreamERNS_16ScanScalarParamsE(ptr dead_on_unwind noalias nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(128) %1, ptr noundef nonnull align 8 dereferenceable(41) %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"struct.YAML::Mark", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"struct.YAML::Mark", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca i32, align 4
  %12 = alloca %"struct.YAML::Mark", align 8
  %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 = getelementptr inbounds i8, ptr %2, i64 20
  %18 = load i32, ptr %17, align 4, !tbaa !5
  %19 = icmp eq i32 %18, 2
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %20 = getelementptr inbounds i8, ptr %2, i64 40
  store i8 0, ptr %20, align 8, !tbaa !15
  %21 = load ptr, ptr %2, align 8, !tbaa !16
  %.not208 = icmp eq ptr %21, null
  br i1 %.not208, label %22, label %25

22:                                               ; preds = %3
  %23 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5EmptyEv()
          to label %24 unwind label %.loopexit.split-lp275

24:                                               ; preds = %22
  store ptr %23, ptr %2, align 8, !tbaa !16
  br label %25

.loopexit274:                                     ; preds = %.thread252
  %lpad.loopexit276 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp275:                            ; preds = %22
  %lpad.loopexit.split-lp277 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

25:                                               ; preds = %24, %3
  %26 = getelementptr inbounds i8, ptr %2, i64 32
  %27 = getelementptr inbounds i8, ptr %2, i64 18
  %28 = getelementptr inbounds i8, ptr %2, i64 12
  %29 = getelementptr inbounds i8, ptr %2, i64 16
  %30 = getelementptr inbounds i8, ptr %2, i64 36
  %31 = getelementptr inbounds i8, ptr %2, i64 17
  br label %.thread252.outer

.thread252.outer:                                 ; preds = %.thread252.outer.backedge, %25
  %.0177.ph = phi i64 [ -1, %25 ], [ %.2179, %.thread252.outer.backedge ]
  %.0173.ph = phi i8 [ 0, %25 ], [ %.1174, %.thread252.outer.backedge ]
  %.0168.ph = phi i32 [ 0, %25 ], [ %.0168.ph.be, %.thread252.outer.backedge ]
  %.0160.ph = phi i8 [ 0, %25 ], [ %248, %.thread252.outer.backedge ]
  %.0157.ph = phi i1 [ false, %25 ], [ %.0157.ph.be, %.thread252.outer.backedge ]
  %.0152.ph = phi i1 [ %19, %25 ], [ true, %.thread252.outer.backedge ]
  %.0151.ph = phi i8 [ 0, %25 ], [ %.2, %.thread252.outer.backedge ]
  %32 = icmp eq i32 %.0168.ph, 0
  br label %.thread252

.thread252:                                       ; preds = %.thread252.outer, %287
  %.0177 = phi i64 [ %.2179, %287 ], [ %.0177.ph, %.thread252.outer ]
  %.0173 = phi i8 [ %.1174, %287 ], [ %.0173.ph, %.thread252.outer ]
  %.0160 = phi i8 [ %248, %287 ], [ %.0160.ph, %.thread252.outer ]
  %.0157 = phi i1 [ true, %287 ], [ %.0157.ph, %.thread252.outer ]
  %.0152 = phi i1 [ true, %287 ], [ %.0152.ph, %.thread252.outer ]
  %.0151 = phi i8 [ %.2, %287 ], [ %.0151.ph, %.thread252.outer ]
  %33 = invoke noundef zeroext i1 @_ZNK4YAML6StreamcvbEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %34 unwind label %.loopexit274

34:                                               ; preds = %.thread252
  br i1 %33, label %35, label %.thread259

35:                                               ; preds = %34
  %36 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %.outer

.outer:                                           ; preds = %125, %35
  %.0189.ph = phi i64 [ %126, %125 ], [ %36, %35 ]
  %.1178.ph = phi i64 [ %127, %125 ], [ %.0177, %35 ]
  %.1153.ph = phi i1 [ true, %125 ], [ %.0152, %35 ]
  %.1.ph = phi i8 [ 1, %125 ], [ %.0151, %35 ]
  %37 = load ptr, ptr %2, align 8, !tbaa !16
  %38 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %39 unwind label %.loopexit270.loopexit.split-lp

39:                                               ; preds = %.outer
  br i1 %38, label %.critedge, label %40

40:                                               ; preds = %39
  %41 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %42 unwind label %.loopexit270.loopexit.split-lp

42:                                               ; preds = %40
  %43 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %44 unwind label %.loopexit270.loopexit.split-lp

44:                                               ; preds = %42
  br i1 %43, label %.critedge, label %45

45:                                               ; preds = %44
  %46 = invoke noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %47 unwind label %.loopexit270.loopexit.split-lp

47:                                               ; preds = %45
  br i1 %46, label %.critedge, label %48

48:                                               ; preds = %47
  %49 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %50 = icmp eq i32 %49, 0
  br i1 %50, label %51, label %58

51:                                               ; preds = %48
  %52 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp12DocIndicatorEv()
          to label %53 unwind label %.loopexit270.loopexit.split-lp

53:                                               ; preds = %51
  %54 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %55 unwind label %.loopexit270.loopexit.split-lp

55:                                               ; preds = %53
  br i1 %54, label %56, label %58

56:                                               ; preds = %55
  %57 = load i32, ptr %26, align 8, !tbaa !17
  switch i32 %57, label %58 [
    i32 1, label %.critedge
    i32 2, label %.loopexit365
  ]

58:                                               ; preds = %56, %55, %48
  %59 = load i8, ptr %27, align 2, !tbaa !18
  %60 = icmp eq i8 %59, 92
  br i1 %60, label %61, label %66

61:                                               ; preds = %58
  %62 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp8EscBreakEv()
          to label %63 unwind label %.loopexit270.loopexit.split-lp

63:                                               ; preds = %61
  %64 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %65 unwind label %.loopexit270.loopexit.split-lp

65:                                               ; preds = %63
  br i1 %64, label %.loopexit366, label %66

66:                                               ; preds = %65, %58
  %67 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %68 unwind label %.loopexit270.loopexit.split-lp

68:                                               ; preds = %66
  %69 = load i8, ptr %27, align 2, !tbaa !18
  %70 = icmp eq i8 %67, %69
  br i1 %70, label %.loopexit367, label %71

71:                                               ; preds = %68
  %72 = invoke noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %73 unwind label %.loopexit.split-lp369

73:                                               ; preds = %71
  %74 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext %72)
          to label %75 unwind label %.loopexit.split-lp369

75:                                               ; preds = %73
  switch i8 %72, label %.peel.next.sink.split [
    i8 32, label %.peel.next.preheader
    i8 9, label %.peel.next.preheader
  ]

.peel.next.sink.split:                            ; preds = %137, %75
  %76 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %.peel.next.preheader

.peel.next.preheader:                             ; preds = %75, %75, %.peel.next.sink.split
  %.0189.ph527 = phi i64 [ %76, %.peel.next.sink.split ], [ %.0189.ph, %75 ], [ %.0189.ph, %75 ]
  br label %.peel.next

.peel.next:                                       ; preds = %.peel.next.backedge, %.peel.next.preheader
  %77 = load ptr, ptr %2, align 8, !tbaa !16
  %78 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %79 unwind label %.loopexit270.loopexit

79:                                               ; preds = %.peel.next
  br i1 %78, label %.critedge, label %80

80:                                               ; preds = %79
  %81 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %82 unwind label %.loopexit270.loopexit

82:                                               ; preds = %80
  %83 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %84 unwind label %.loopexit270.loopexit

84:                                               ; preds = %82
  br i1 %83, label %.critedge, label %85

85:                                               ; preds = %84
  %86 = invoke noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %87 unwind label %.loopexit270.loopexit

87:                                               ; preds = %85
  br i1 %86, label %.critedge, label %88

.loopexit270.loopexit:                            ; preds = %118, %111, %109, %93, %91, %85, %82, %80, %.peel.next
  %lpad.loopexit363 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit270.loopexit.split-lp:                   ; preds = %.outer, %40, %42, %45, %51, %53, %61, %63, %66
  %lpad.loopexit.split-lp364 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp271:                            ; preds = %.loopexit366, %.critedge, %159, %161
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

88:                                               ; preds = %87
  %89 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %90 = icmp eq i32 %89, 0
  br i1 %90, label %91, label %106

91:                                               ; preds = %88
  %92 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp12DocIndicatorEv()
          to label %93 unwind label %.loopexit270.loopexit

93:                                               ; preds = %91
  %94 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %95 unwind label %.loopexit270.loopexit

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

96:                                               ; preds = %95
  %97 = load i32, ptr %26, align 8, !tbaa !17
  switch i32 %97, label %106 [
    i32 1, label %.critedge
    i32 2, label %.loopexit365
  ]

.loopexit365:                                     ; preds = %56, %96
  %98 = call ptr @__cxa_allocate_exception(i64 64) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %4) #8
  %99 = call { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %.fca.0.extract51 = extractvalue { i64, i32 } %99, 0
  %.fca.1.extract52 = extractvalue { i64, i32 } %99, 1
  store i64 %.fca.0.extract51, ptr %4, align 8
  %.sroa.254.0..sroa_idx = getelementptr inbounds i8, ptr %4, i64 8
  store i32 %.fca.1.extract52, ptr %.sroa.254.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %100 unwind label %.thread

100:                                              ; preds = %.loopexit365
  invoke void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64) %98, ptr noundef nonnull align 4 dereferenceable(12) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %101 unwind label %103

101:                                              ; preds = %100
  invoke void @__cxa_throw(ptr nonnull %98, ptr nonnull @_ZTIN4YAML15ParserExceptionE, ptr nonnull @_ZN4YAML15ParserExceptionD1Ev) #9
          to label %343 unwind label %103

.thread:                                          ; preds = %.loopexit365
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) #8
  br label %105

103:                                              ; preds = %100, %101
  %.0181 = phi i1 [ false, %101 ], [ true, %100 ]
  %104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) #8
  br i1 %.0181, label %105, label %.loopexit.split-lp

105:                                              ; preds = %.thread, %103
  %.pn210240 = phi { ptr, i32 } [ %102, %.thread ], [ %104, %103 ]
  call void @__cxa_free_exception(ptr %98) #8
  br label %.loopexit.split-lp

106:                                              ; preds = %96, %95, %88
  %107 = load i8, ptr %27, align 2, !tbaa !18
  %108 = icmp eq i8 %107, 92
  br i1 %108, label %109, label %118

109:                                              ; preds = %106
  %110 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp8EscBreakEv()
          to label %111 unwind label %.loopexit270.loopexit

111:                                              ; preds = %109
  %112 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %113 unwind label %.loopexit270.loopexit

113:                                              ; preds = %111
  br i1 %112, label %.loopexit366, label %118

.loopexit366:                                     ; preds = %65, %113
  %114 = invoke noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %115 unwind label %.loopexit.split-lp271

115:                                              ; preds = %.loopexit366
  %116 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %117 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %.critedge

118:                                              ; preds = %113, %106
  %119 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %120 unwind label %.loopexit270.loopexit

120:                                              ; preds = %118
  %121 = load i8, ptr %27, align 2, !tbaa !18
  %122 = icmp eq i8 %119, %121
  br i1 %122, label %.loopexit367, label %133

.loopexit367:                                     ; preds = %120, %68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  invoke void @_ZN4YAML3Exp6EscapeB5cxx11ERNS_6StreamE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %123 unwind label %128

123:                                              ; preds = %.loopexit367
  %124 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %125 unwind label %130

125:                                              ; preds = %123
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  %126 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %127 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %.outer, !llvm.loop !19

128:                                              ; preds = %.loopexit367
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %123
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %132

132:                                              ; preds = %130, %128
  %.pn = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  br label %.loopexit.split-lp

133:                                              ; preds = %120
  %134 = invoke noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %135 unwind label %.loopexit368

135:                                              ; preds = %133
  %136 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext %134)
          to label %137 unwind label %.loopexit368

137:                                              ; preds = %135
  switch i8 %134, label %.peel.next.sink.split [
    i8 32, label %.peel.next.backedge
    i8 9, label %.peel.next.backedge
  ], !llvm.loop !21

.peel.next.backedge:                              ; preds = %137, %137
  br label %.peel.next, !llvm.loop !21

.loopexit368:                                     ; preds = %133, %135
  %lpad.loopexit370 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp369:                            ; preds = %71, %73
  %lpad.loopexit.split-lp371 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.critedge:                                        ; preds = %39, %44, %47, %56, %96, %79, %87, %84, %115
  %.2191 = phi i64 [ %116, %115 ], [ %.0189.ph527, %84 ], [ %.0189.ph527, %87 ], [ %.0189.ph527, %79 ], [ %.0189.ph527, %96 ], [ %.0189.ph, %56 ], [ %.0189.ph, %47 ], [ %.0189.ph, %44 ], [ %.0189.ph, %39 ]
  %.0188 = phi i1 [ true, %115 ], [ false, %84 ], [ false, %87 ], [ false, %79 ], [ false, %96 ], [ false, %56 ], [ false, %47 ], [ false, %44 ], [ false, %39 ]
  %.2179 = phi i64 [ %117, %115 ], [ %.1178.ph, %84 ], [ %.1178.ph, %87 ], [ %.1178.ph, %79 ], [ %.1178.ph, %96 ], [ %.1178.ph, %56 ], [ %.1178.ph, %47 ], [ %.1178.ph, %44 ], [ %.1178.ph, %39 ]
  %.2154 = phi i1 [ true, %115 ], [ true, %84 ], [ true, %87 ], [ true, %79 ], [ true, %96 ], [ %.1153.ph, %56 ], [ %.1153.ph, %47 ], [ %.1153.ph, %44 ], [ %.1153.ph, %39 ]
  %.2 = phi i8 [ 1, %115 ], [ 1, %84 ], [ 1, %87 ], [ 1, %79 ], [ 1, %96 ], [ %.1.ph, %56 ], [ %.1.ph, %47 ], [ %.1.ph, %44 ], [ %.1.ph, %39 ]
  %138 = invoke noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %139 unwind label %.loopexit.split-lp271

139:                                              ; preds = %.critedge
  br i1 %138, label %140, label %153

140:                                              ; preds = %139
  %141 = getelementptr inbounds i8, ptr %2, i64 8
  %142 = load i8, ptr %141, align 8, !tbaa !23, !range !24, !noundef !25
  %143 = trunc nuw i8 %142 to i1
  br i1 %143, label %144, label %.thread259

144:                                              ; preds = %140
  %145 = call ptr @__cxa_allocate_exception(i64 64) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %8) #8
  %146 = call { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %.fca.0.extract43 = extractvalue { i64, i32 } %146, 0
  %.fca.1.extract44 = extractvalue { i64, i32 } %146, 1
  store i64 %.fca.0.extract43, ptr %8, align 8
  %.sroa.246.0..sroa_idx = getelementptr inbounds i8, ptr %8, i64 8
  store i32 %.fca.1.extract44, ptr %.sroa.246.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %147 unwind label %.thread241

147:                                              ; preds = %144
  invoke void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64) %145, ptr noundef nonnull align 4 dereferenceable(12) %8, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %148 unwind label %150

148:                                              ; preds = %147
  invoke void @__cxa_throw(ptr nonnull %145, ptr nonnull @_ZTIN4YAML15ParserExceptionE, ptr nonnull @_ZN4YAML15ParserExceptionD1Ev) #9
          to label %343 unwind label %150

.thread241:                                       ; preds = %144
  %149 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %8) #8
  br label %152

150:                                              ; preds = %147, %148
  %.0166 = phi i1 [ false, %148 ], [ true, %147 ]
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %8) #8
  br i1 %.0166, label %152, label %.loopexit.split-lp

152:                                              ; preds = %.thread241, %150
  %.pn226244 = phi { ptr, i32 } [ %149, %.thread241 ], [ %151, %150 ]
  call void @__cxa_free_exception(ptr %145) #8
  br label %.loopexit.split-lp

153:                                              ; preds = %139
  %154 = load i32, ptr %26, align 8, !tbaa !17
  %155 = icmp eq i32 %154, 1
  br i1 %155, label %156, label %164

156:                                              ; preds = %153
  %157 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %158 = icmp eq i32 %157, 0
  br i1 %158, label %159, label %164

159:                                              ; preds = %156
  %160 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp12DocIndicatorEv()
          to label %161 unwind label %.loopexit.split-lp271

161:                                              ; preds = %159
  %162 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %163 unwind label %.loopexit.split-lp271

163:                                              ; preds = %161
  br i1 %162, label %.thread259, label %164

164:                                              ; preds = %163, %156, %153
  %165 = load ptr, ptr %2, align 8, !tbaa !16
  %166 = invoke noundef i32 @_ZNK4YAML5RegEx5MatchERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %167 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

167:                                              ; preds = %164
  %168 = icmp sgt i32 %166, -1
  br i1 %168, label %169, label %174

169:                                              ; preds = %167
  %170 = getelementptr inbounds i8, ptr %2, i64 8
  %171 = load i8, ptr %170, align 8, !tbaa !23, !range !24, !noundef !25
  %172 = trunc nuw i8 %171 to i1
  br i1 %172, label %173, label %.thread259

173:                                              ; preds = %169
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %1, i32 noundef %166)
          to label %.thread259 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

.loopexit:                                        ; preds = %207, %209, %212, %234, %238
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %200, %196, %185
  %lpad.loopexit267 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit:    ; preds = %164, %177, %179, %181, %183
  %lpad.loopexit279 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %173
  %lpad.loopexit.split-lp280 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

174:                                              ; preds = %167
  %175 = load i32, ptr %17, align 4, !tbaa !5
  %176 = icmp eq i32 %175, 2
  br i1 %176, label %177, label %179

177:                                              ; preds = %174
  %178 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %.2191, i64 noundef -1)
          to label %179 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

179:                                              ; preds = %177, %174
  %180 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %181 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

181:                                              ; preds = %179
  %182 = invoke noundef i32 @_ZNK4YAML5RegEx5MatchERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %183 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

183:                                              ; preds = %181
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %1, i32 noundef %182)
          to label %.preheader unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

.preheader:                                       ; preds = %183
  %184 = trunc nuw i8 %.2 to i1
  br label %185

185:                                              ; preds = %.preheader, %200
  %186 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %187 unwind label %.loopexit.split-lp.loopexit

187:                                              ; preds = %185
  %188 = icmp eq i8 %186, 32
  br i1 %188, label %189, label %.critedge4

189:                                              ; preds = %187
  %190 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %191 = load i32, ptr %28, align 4, !tbaa !26
  %192 = icmp slt i32 %190, %191
  br i1 %192, label %196, label %193

193:                                              ; preds = %189
  %194 = load i8, ptr %29, align 8, !tbaa !27, !range !24, !noundef !25
  %195 = trunc nuw i8 %194 to i1
  %.not321 = xor i1 %195, true
  %brmerge322 = select i1 %.not321, i1 true, i1 %184
  br i1 %brmerge322, label %.critedge4, label %196

196:                                              ; preds = %193, %189
  %197 = load ptr, ptr %2, align 8, !tbaa !16
  %198 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %199 unwind label %.loopexit.split-lp.loopexit

199:                                              ; preds = %196
  br i1 %198, label %.critedge4, label %200

200:                                              ; preds = %199
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %1, i32 noundef 1)
          to label %185 unwind label %.loopexit.split-lp.loopexit, !llvm.loop !28

.critedge4:                                       ; preds = %193, %187, %199
  %201 = load i8, ptr %29, align 8, !tbaa !27, !range !24, !noundef !25
  %202 = trunc nuw i8 %201 to i1
  %.not450 = xor i1 %202, true
  %brmerge451 = select i1 %.not450, i1 true, i1 %184
  br i1 %brmerge451, label %.preheader528, label %203

203:                                              ; preds = %.critedge4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  %204 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  store i32 %204, ptr %11, align 4, !tbaa !29
  %205 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %206 = load i32, ptr %205, align 4, !tbaa !29
  store i32 %206, ptr %28, align 4, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  br label %.preheader528

.preheader528:                                    ; preds = %.critedge4, %203
  br label %207

207:                                              ; preds = %.preheader528, %238
  %208 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BlankEv()
          to label %209 unwind label %.loopexit

209:                                              ; preds = %207
  %210 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %211 unwind label %.loopexit

211:                                              ; preds = %209
  br i1 %210, label %212, label %239

212:                                              ; preds = %211
  %213 = invoke noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %214 unwind label %.loopexit

214:                                              ; preds = %212
  %215 = icmp eq i8 %213, 9
  br i1 %215, label %216, label %231

216:                                              ; preds = %214
  %217 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %218 = load i32, ptr %28, align 4, !tbaa !26
  %219 = icmp slt i32 %217, %218
  %220 = load i32, ptr %30, align 4
  %221 = icmp eq i32 %220, 2
  %or.cond = select i1 %219, i1 %221, i1 false
  br i1 %or.cond, label %222, label %231

222:                                              ; preds = %216
  %223 = call ptr @__cxa_allocate_exception(i64 64) #8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #8
  %224 = call { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %.fca.0.extract = extractvalue { i64, i32 } %224, 0
  %.fca.1.extract = extractvalue { i64, i32 } %224, 1
  store i64 %.fca.0.extract, ptr %12, align 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 8
  store i32 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %225 unwind label %.thread245

225:                                              ; preds = %222
  invoke void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64) %223, ptr noundef nonnull align 4 dereferenceable(12) %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %226 unwind label %228

226:                                              ; preds = %225
  invoke void @__cxa_throw(ptr nonnull %223, ptr nonnull @_ZTIN4YAML15ParserExceptionE, ptr nonnull @_ZN4YAML15ParserExceptionD1Ev) #9
          to label %343 unwind label %228

.thread245:                                       ; preds = %222
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #8
  br label %230

228:                                              ; preds = %225, %226
  %.0155 = phi i1 [ false, %226 ], [ true, %225 ]
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #8
  br i1 %.0155, label %230, label %.loopexit.split-lp

230:                                              ; preds = %.thread245, %228
  %.pn219248 = phi { ptr, i32 } [ %227, %.thread245 ], [ %229, %228 ]
  call void @__cxa_free_exception(ptr %223) #8
  br label %.loopexit.split-lp

231:                                              ; preds = %216, %214
  %232 = load i8, ptr %31, align 1, !tbaa !30, !range !24, !noundef !25
  %233 = trunc nuw i8 %232 to i1
  br i1 %233, label %234, label %239

234:                                              ; preds = %231
  %235 = load ptr, ptr %2, align 8, !tbaa !16
  %236 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %237 unwind label %.loopexit

237:                                              ; preds = %234
  br i1 %236, label %239, label %238

238:                                              ; preds = %237
  invoke void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128) %1, i32 noundef 1)
          to label %207 unwind label %.loopexit, !llvm.loop !31

239:                                              ; preds = %237, %231, %211
  %240 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BreakEv()
          to label %241 unwind label %252

241:                                              ; preds = %239
  %242 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %243 unwind label %252

243:                                              ; preds = %241
  %244 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BlankEv()
          to label %245 unwind label %.loopexit532

245:                                              ; preds = %243
  %246 = invoke noundef zeroext i1 @_ZNK4YAML5RegEx7MatchesERKNS_6StreamE(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull align 8 dereferenceable(128) %1)
          to label %247 unwind label %.loopexit532

247:                                              ; preds = %245
  %248 = zext i1 %246 to i8
  %249 = load i32, ptr %17, align 4, !tbaa !5
  %250 = icmp eq i32 %249, 1
  %or.cond6 = select i1 %250, i1 %32, i1 false
  %251 = and i1 %242, %or.cond6
  %.1174 = select i1 %251, i8 %.0160, i8 %.0173
  br i1 %.2154, label %254, label %.loopexit536

252:                                              ; preds = %241, %239
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit532:                                     ; preds = %243, %245, %287
  %lpad.loopexit534 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp533:                            ; preds = %255, %279, %290, %.invoke
  %lpad.loopexit.split-lp535 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

254:                                              ; preds = %247
  switch i32 %249, label %.loopexit536 [
    i32 0, label %255
    i32 1, label %257
    i32 2, label %286
  ]

255:                                              ; preds = %254
  %256 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.3)
          to label %.loopexit536 unwind label %.loopexit.split-lp533

257:                                              ; preds = %254
  %brmerge = or i1 %242, %.0157
  %258 = trunc nuw i8 %.0160 to i1
  %brmerge232 = or i1 %246, %258
  %or.cond237 = select i1 %brmerge, i1 true, i1 %brmerge232
  br i1 %or.cond237, label %262, label %259

259:                                              ; preds = %257
  %260 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %261 = load i32, ptr %28, align 4, !tbaa !26
  %.not212 = icmp slt i32 %260, %261
  %brmerge455.not = and i1 %.not212, %242
  %.str.4.mux = select i1 %.not212, ptr @.str.3, ptr @.str.4
  br i1 %brmerge455.not, label %.thread249, label %.invoke

262:                                              ; preds = %257
  br i1 %242, label %.thread249, label %.invoke

.thread249:                                       ; preds = %259, %262
  %263 = add nsw i32 %.0168.ph, 1
  br label %.thread252.outer.backedge

.thread252.outer.backedge:                        ; preds = %.thread249, %.loopexit536, %.thread255
  %.0168.ph.be = phi i32 [ %.2170257, %.thread255 ], [ %.2170, %.loopexit536 ], [ %263, %.thread249 ]
  %.0157.ph.be = phi i1 [ false, %.thread255 ], [ true, %.loopexit536 ], [ true, %.thread249 ]
  br label %.thread252.outer

.invoke:                                          ; preds = %259, %262
  %264 = phi ptr [ %.str.4.mux, %259 ], [ @.str.3, %262 ]
  %265 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull %264)
          to label %266 unwind label %.loopexit.split-lp533

266:                                              ; preds = %.invoke
  %267 = icmp slt i32 %.0168.ph, 1
  %or.cond8.not = select i1 %242, i1 true, i1 %267
  br i1 %or.cond8.not, label %.loopexit536, label %268

268:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  %269 = add nsw i32 %.0168.ph, -1
  %270 = zext nneg i32 %269 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, i64 noundef %270, i8 noundef signext 10, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %271 unwind label %281

271:                                              ; preds = %268
  %272 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %273 unwind label %283

273:                                              ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  %274 = trunc nuw i8 %.1174 to i1
  br i1 %274, label %279, label %275

275:                                              ; preds = %273
  %276 = and i8 %.2, 1
  %277 = xor i8 %276, 1
  %278 = or i8 %277, %248
  %.not = icmp eq i8 %278, 0
  br i1 %.not, label %.loopexit536, label %279

279:                                              ; preds = %275, %273
  %280 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.3)
          to label %.loopexit536 unwind label %.loopexit.split-lp533

281:                                              ; preds = %268
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %285

283:                                              ; preds = %271
  %284 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %285

285:                                              ; preds = %283, %281
  %.pn214 = phi { ptr, i32 } [ %284, %283 ], [ %282, %281 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  br label %.loopexit.split-lp

286:                                              ; preds = %254
  br i1 %242, label %287, label %289

287:                                              ; preds = %286
  %288 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.3)
          to label %.thread252 unwind label %.loopexit532

289:                                              ; preds = %286
  %brmerge233 = or i1 %.0188, %.0157
  br i1 %brmerge233, label %.thread255, label %290

290:                                              ; preds = %289
  %291 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.4)
          to label %.thread255 unwind label %.loopexit.split-lp533

.loopexit536:                                     ; preds = %254, %247, %275, %279, %255, %266
  %.2170 = phi i32 [ %.0168.ph, %266 ], [ %.0168.ph, %255 ], [ 0, %279 ], [ 0, %275 ], [ %.0168.ph, %247 ], [ %.0168.ph, %254 ]
  br i1 %242, label %.thread252.outer.backedge, label %.thread255

.thread255:                                       ; preds = %290, %289, %.loopexit536
  %.2170257 = phi i32 [ %.2170, %.loopexit536 ], [ %.0168.ph, %289 ], [ %.0168.ph, %290 ]
  %292 = call noundef i32 @_ZNK4YAML6Stream6columnEv(ptr noundef nonnull align 8 dereferenceable(128) %1)
  %293 = load i32, ptr %28, align 4, !tbaa !26
  %294 = icmp slt i32 %292, %293
  br i1 %294, label %295, label %.thread252.outer.backedge

295:                                              ; preds = %.thread255
  store i8 1, ptr %20, align 8, !tbaa !15
  br label %.thread259

.thread259:                                       ; preds = %163, %34, %295, %169, %173, %140
  %.3180 = phi i64 [ %.2179, %140 ], [ %.2179, %173 ], [ %.2179, %169 ], [ %.2179, %295 ], [ %.2179, %163 ], [ %.0177, %34 ]
  %296 = getelementptr inbounds i8, ptr %2, i64 24
  %297 = load i8, ptr %296, align 8, !tbaa !32, !range !24, !noundef !25
  %298 = trunc nuw i8 %297 to i1
  br i1 %298, label %299, label %310

299:                                              ; preds = %.thread259
  %300 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext 32, i64 noundef -1) #8
  %.not223 = icmp eq i64 %.3180, -1
  %301 = icmp eq i64 %300, -1
  %302 = call i64 @llvm.umax.i64(i64 %300, i64 %.3180)
  %spec.select234 = select i1 %301, i64 %.3180, i64 %302
  %.0150 = select i1 %.not223, i64 %300, i64 %spec.select234
  %303 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %304 = icmp ult i64 %.0150, %303
  br i1 %304, label %305, label %310

305:                                              ; preds = %299
  %306 = add nuw i64 %.0150, 1
  %307 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %306, i64 noundef -1)
          to label %310 unwind label %308

308:                                              ; preds = %305
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

310:                                              ; preds = %299, %305, %.thread259
  %311 = getelementptr inbounds i8, ptr %2, i64 28
  %312 = load i32, ptr %311, align 4, !tbaa !33
  switch i32 %312, label %342 [
    i32 0, label %313
    i32 -1, label %328
  ]

313:                                              ; preds = %310
  %314 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext 10, i64 noundef -1) #8
  %.not225 = icmp eq i64 %.3180, -1
  %315 = icmp eq i64 %314, -1
  %316 = call i64 @llvm.umax.i64(i64 %314, i64 %.3180)
  %spec.select235 = select i1 %315, i64 %.3180, i64 %316
  %.0149 = select i1 %.not225, i64 %314, i64 %spec.select235
  %317 = icmp eq i64 %.0149, -1
  br i1 %317, label %.invoke452, label %320

318:                                              ; preds = %.invoke452
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

320:                                              ; preds = %313
  %321 = add nuw i64 %.0149, 1
  %322 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %323 = icmp ult i64 %321, %322
  br i1 %323, label %324, label %342

324:                                              ; preds = %320
  %325 = add nuw i64 %.0149, 2
  br label %.invoke452

.invoke452:                                       ; preds = %313, %324
  %326 = phi i64 [ %325, %324 ], [ 0, %313 ]
  %327 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %326, i64 noundef -1)
          to label %342 unwind label %318

328:                                              ; preds = %310
  %329 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i8 noundef signext 10, i64 noundef -1) #8
  %.not224 = icmp eq i64 %.3180, -1
  %330 = icmp eq i64 %329, -1
  %331 = call i64 @llvm.umax.i64(i64 %329, i64 %.3180)
  %spec.select236 = select i1 %330, i64 %.3180, i64 %331
  %.0 = select i1 %.not224, i64 %329, i64 %spec.select236
  %332 = icmp eq i64 %.0, -1
  br i1 %332, label %.invoke453, label %335

333:                                              ; preds = %.invoke453
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

335:                                              ; preds = %328
  %336 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  %337 = icmp ult i64 %.0, %336
  br i1 %337, label %338, label %342

338:                                              ; preds = %335
  %339 = add nuw i64 %.0, 1
  br label %.invoke453

.invoke453:                                       ; preds = %328, %338
  %340 = phi i64 [ %339, %338 ], [ 0, %328 ]
  %341 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %340, i64 noundef -1)
          to label %342 unwind label %333

342:                                              ; preds = %.invoke453, %.invoke452, %310, %320, %335
  ret void

.loopexit.split-lp:                               ; preds = %.loopexit532, %.loopexit.split-lp533, %.loopexit368, %.loopexit.split-lp369, %.loopexit270.loopexit, %.loopexit270.loopexit.split-lp, %.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %.loopexit.split-lp271, %.loopexit274, %.loopexit.split-lp275, %132, %105, %103, %152, %150, %252, %285, %228, %230, %333, %318, %308
  %.pn226.pn.pn = phi { ptr, i32 } [ %334, %333 ], [ %319, %318 ], [ %309, %308 ], [ %.pn226244, %152 ], [ %151, %150 ], [ %.pn210240, %105 ], [ %104, %103 ], [ %.pn, %132 ], [ %.pn219248, %230 ], [ %229, %228 ], [ %253, %252 ], [ %.pn214, %285 ], [ %lpad.loopexit276, %.loopexit274 ], [ %lpad.loopexit.split-lp277, %.loopexit.split-lp275 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp271 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit267, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit279, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp280, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit363, %.loopexit270.loopexit ], [ %lpad.loopexit.split-lp364, %.loopexit270.loopexit.split-lp ], [ %lpad.loopexit370, %.loopexit368 ], [ %lpad.loopexit.split-lp371, %.loopexit.split-lp369 ], [ %lpad.loopexit534, %.loopexit532 ], [ %lpad.loopexit.split-lp535, %.loopexit.split-lp533 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  resume { ptr, i32 } %.pn226.pn.pn

343:                                              ; preds = %226, %148, %101
  unreachable
}

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

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

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

declare i32 @__gxx_personality_v0(...)

declare noundef zeroext i1 @_ZNK4YAML6StreamcvbEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4YAML6StreamntEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #0 align 2

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, i32 } @_ZNK4YAML6Stream4markEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4YAML15ParserExceptionC2ERKNS_4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: nounwind
declare void @_ZN4YAML15ParserExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) 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 #2 align 2

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

declare noundef signext i8 @_ZN4YAML6Stream3getEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #4

declare noundef signext i8 @_ZNK4YAML6Stream4peekEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #4

declare void @_ZN4YAML3Exp6EscapeB5cxx11ERNS_6StreamE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #4

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

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

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

declare void @_ZN4YAML6Stream3eatEi(ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN4YAML3Exp5BlankEv() 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 #0 align 2

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) local_unnamed_addr #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #7

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

!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, !12, i64 20}
!6 = !{!"_ZTSN4YAML16ScanScalarParamsE", !7, i64 0, !10, i64 8, !11, i64 12, !10, i64 16, !10, i64 17, !8, i64 18, !12, i64 20, !10, i64 24, !13, i64 28, !14, i64 32, !14, i64 36, !10, i64 40}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_ZTSN4YAML4FOLDE", !8, i64 0}
!13 = !{!"_ZTSN4YAML5CHOMPE", !8, i64 0}
!14 = !{!"_ZTSN4YAML6ACTIONE", !8, i64 0}
!15 = !{!6, !10, i64 40}
!16 = !{!6, !7, i64 0}
!17 = !{!6, !14, i64 32}
!18 = !{!6, !8, i64 18}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20, !22}
!22 = !{!"llvm.loop.peeled.count", i32 1}
!23 = !{!6, !10, i64 8}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = !{!6, !11, i64 12}
!27 = !{!6, !10, i64 16}
!28 = distinct !{!28, !20}
!29 = !{!11, !11, i64 0}
!30 = !{!6, !10, i64 17}
!31 = distinct !{!31, !20}
!32 = !{!6, !10, i64 24}
!33 = !{!6, !13, i64 28}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass