; LLVM IR from ASDAlexander77/TypeScriptCompiler :: tsc/tsc-new-parser/scanner.ll (ZN2ts7Scanner18scanEscapeSequenceB5cxx11Eb)

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

%"struct.ts::DiagnosticMessageStore" = type { i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.ptr.100 = type { %"class.std::shared_ptr.101" }
%"class.std::shared_ptr.101" = type { %"class.std::__shared_ptr.102" }
%"class.std::__shared_ptr.102" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::DiagnosticMessage" = type <{ i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.104", %"class.std::vector.104", i8, [7 x i8] }>
%"class.std::vector.104" = type { %"struct.std::_Vector_base.105" }
%"struct.std::_Vector_base.105" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }
%"class.ts::Scanner" = type { i32, i32, i8, i32, %"struct.ts::safe_string", i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i32, %"class.std::vector.41", i32, i32, %"class.std::function" }
%"struct.ts::safe_string" = type { %"class.std::__cxx11::basic_string" }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }

@_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL22Unexpected_end_of_textE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL75An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusiveE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL36Unterminated_Unicode_escape_sequenceE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL55Octal_escape_sequences_are_not_allowed_Use_the_syntax_0E = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL32Escape_sequence_0_is_not_allowedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@.str.6452 = external hidden unnamed_addr constant [1 x i32], align 4
@.str.6456 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6457 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6458 = external hidden unnamed_addr constant [3 x i32], align 4
@.str.6459 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6460 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6461 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6462 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6463 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6464 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6465 = external hidden unnamed_addr constant [2 x i32], align 4

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2ts7Scanner7isDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2ts7Scanner10isHexDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2ts7Scanner11isCodePointEi(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2ts7Scanner12isOctalDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(121)) unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts7Scanner18scanEscapeSequenceB5cxx11Eb(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext %2) #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca i32, align 4
  %8 = alloca %struct.ptr.100, align 8
  %9 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.0", align 1
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %struct.ptr.100, align 8
  %20 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %struct.ptr.100, align 8
  %25 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.0", align 1
  %28 = alloca %"class.std::allocator.0", align 1
  %29 = alloca %"class.std::allocator.0", align 1
  %30 = alloca %"class.std::allocator.0", align 1
  %31 = alloca %"class.std::allocator.0", align 1
  %32 = alloca %"class.std::allocator.0", align 1
  %33 = alloca %"class.std::allocator.0", align 1
  %34 = alloca %"class.std::allocator.0", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i32, align 4
  %37 = alloca %struct.ptr.100, align 8
  %38 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.0", align 1
  %41 = alloca %struct.ptr.100, align 8
  %42 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.0", align 1
  %45 = alloca %struct.ptr.100, align 8
  %46 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.0", align 1
  %49 = alloca %struct.ptr.100, align 8
  %50 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.0", align 1
  %53 = alloca %struct.ptr.100, align 8
  %54 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator.0", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %struct.ptr.100, align 8
  %59 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator.0", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.0", align 1
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  %64 = zext i1 %2 to i8
  store i8 %64, ptr %6, align 1, !tbaa !9
  %65 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  %66 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %67 = load i32, ptr %66, align 8, !tbaa !11
  store i32 %67, ptr %7, align 4, !tbaa !30
  %68 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %69 = load i32, ptr %68, align 8, !tbaa !11
  %70 = add nsw i32 %69, 1
  store i32 %70, ptr %68, align 8, !tbaa !11
  %71 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %72 = load i32, ptr %71, align 8, !tbaa !11
  %73 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %74 = load i32, ptr %73, align 4, !tbaa !31
  %75 = icmp sge i32 %72, %74
  br i1 %75, label %76, label %94

76:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 128, ptr %9) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %9, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL22Unexpected_end_of_textE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(121) %9)
          to label %77 unwind label %80

77:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %78 unwind label %84

78:                                               ; preds = %77
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %8, i32 noundef -1, i32 noundef 0, ptr noundef %12)
          to label %79 unwind label %88

79:                                               ; preds = %78
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %9) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %9) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #5
  store i32 1, ptr %14, align 4
  br label %661

80:                                               ; preds = %76
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %10, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %11, align 4
  br label %93

84:                                               ; preds = %77
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %10, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %11, align 4
  br label %92

88:                                               ; preds = %78
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %10, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %92

92:                                               ; preds = %88, %84
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #5
  br label %93

93:                                               ; preds = %92, %80
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %9) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %9) #5
  br label %662

94:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %95 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %96 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %97 = load i32, ptr %96, align 8, !tbaa !11
  %98 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %95, i32 noundef %97)
  store i32 %98, ptr %15, align 4, !tbaa !32
  %99 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %100 = load i32, ptr %99, align 8, !tbaa !11
  %101 = add nsw i32 %100, 1
  store i32 %101, ptr %99, align 8, !tbaa !11
  %102 = load i32, ptr %15, align 4, !tbaa !32
  switch i32 %102, label %652 [
    i32 48, label %103
    i32 49, label %122
    i32 50, label %122
    i32 51, label %122
    i32 52, label %139
    i32 53, label %139
    i32 54, label %139
    i32 55, label %139
    i32 56, label %214
    i32 57, label %214
    i32 98, label %252
    i32 116, label %258
    i32 110, label %264
    i32 118, label %270
    i32 102, label %276
    i32 114, label %282
    i32 39, label %288
    i32 34, label %294
    i32 117, label %300
    i32 120, label %567
    i32 13, label %634
    i32 10, label %651
    i32 8232, label %651
    i32 8233, label %651
  ]

103:                                              ; preds = %94
  %104 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %105 = load i32, ptr %104, align 8, !tbaa !11
  %106 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %107 = load i32, ptr %106, align 4, !tbaa !31
  %108 = icmp sge i32 %105, %107
  br i1 %108, label %115, label %109

109:                                              ; preds = %103
  %110 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %111 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %112 = load i32, ptr %111, align 8, !tbaa !11
  %113 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %110, i32 noundef %112)
  %114 = call noundef zeroext i1 @_ZN2ts7Scanner7isDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %113)
  br i1 %114, label %121, label %115

115:                                              ; preds = %109, %103
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6457, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %116 unwind label %117

116:                                              ; preds = %115
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  store i32 1, ptr %14, align 4
  br label %659

117:                                              ; preds = %115
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %10, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  br label %660

121:                                              ; preds = %109
  br label %122

122:                                              ; preds = %121, %94, %94, %94
  %123 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %124 = load i32, ptr %123, align 8, !tbaa !11
  %125 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %126 = load i32, ptr %125, align 4, !tbaa !31
  %127 = icmp slt i32 %124, %126
  br i1 %127, label %128, label %138

128:                                              ; preds = %122
  %129 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %130 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %131 = load i32, ptr %130, align 8, !tbaa !11
  %132 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %129, i32 noundef %131)
  %133 = call noundef zeroext i1 @_ZN2ts7Scanner12isOctalDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %132)
  br i1 %133, label %134, label %138

134:                                              ; preds = %128
  %135 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %136 = load i32, ptr %135, align 8, !tbaa !11
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr %135, align 8, !tbaa !11
  br label %138

138:                                              ; preds = %134, %128, %122
  br label %139

139:                                              ; preds = %138, %94, %94, %94, %94
  %140 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %141 = load i32, ptr %140, align 8, !tbaa !11
  %142 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %143 = load i32, ptr %142, align 4, !tbaa !31
  %144 = icmp slt i32 %141, %143
  br i1 %144, label %145, label %155

145:                                              ; preds = %139
  %146 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %147 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %148 = load i32, ptr %147, align 8, !tbaa !11
  %149 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %146, i32 noundef %148)
  %150 = call noundef zeroext i1 @_ZN2ts7Scanner12isOctalDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %149)
  br i1 %150, label %151, label %155

151:                                              ; preds = %145
  %152 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %153 = load i32, ptr %152, align 8, !tbaa !11
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr %152, align 8, !tbaa !11
  br label %155

155:                                              ; preds = %151, %145, %139
  %156 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %157 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %156, i32 noundef 2048)
  %158 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %159 = trunc i8 %158 to i1
  br i1 %159, label %160, label %209

160:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #5
  %161 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %162 = load i32, ptr %7, align 4, !tbaa !30
  %163 = add nsw i32 %162, 1
  %164 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %165 = load i32, ptr %164, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %161, i32 noundef %163, i32 noundef %165)
  %166 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef null, i32 noundef 8)
          to label %167 unwind label %180

167:                                              ; preds = %160
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #5
  store i32 %166, ptr %17, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 128, ptr %20) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %20, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL55Octal_escape_sequences_are_not_allowed_Use_the_syntax_0E)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(121) %20)
          to label %168 unwind label %184

168:                                              ; preds = %167
  %169 = load i32, ptr %7, align 4, !tbaa !30
  %170 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %171 = load i32, ptr %170, align 8, !tbaa !11
  %172 = load i32, ptr %7, align 4, !tbaa !30
  %173 = sub nsw i32 %171, %172
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #5
  %174 = load i32, ptr %17, align 4, !tbaa !30
  invoke void @_ZNSt7__cxx1110to_wstringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, i32 noundef %174)
          to label %175 unwind label %188

175:                                              ; preds = %168
  invoke void @_ZN2ts8padStartENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEiw(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef %23, i32 noundef 2, i32 noundef signext 48)
          to label %176 unwind label %192

176:                                              ; preds = %175
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef @.str.6458, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %177 unwind label %196

177:                                              ; preds = %176
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %19, i32 noundef %169, i32 noundef %173, ptr noundef %21)
          to label %178 unwind label %200

178:                                              ; preds = %177
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %20) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %20) #5
  %179 = load i32, ptr %17, align 4, !tbaa !30
  call void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %179)
  store i32 1, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br label %659

180:                                              ; preds = %160
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %10, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #5
  br label %208

184:                                              ; preds = %167
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %10, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %11, align 4
  br label %207

188:                                              ; preds = %168
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %10, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %11, align 4
  br label %206

192:                                              ; preds = %175
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %10, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %11, align 4
  br label %205

196:                                              ; preds = %176
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %10, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %11, align 4
  br label %204

200:                                              ; preds = %177
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %10, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  br label %204

204:                                              ; preds = %200, %196
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %205

205:                                              ; preds = %204, %192
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br label %206

206:                                              ; preds = %205, %188
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #5
  br label %207

207:                                              ; preds = %206, %184
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %20) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %20) #5
  br label %208

208:                                              ; preds = %207, %180
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br label %660

209:                                              ; preds = %155
  %210 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %211 = load i32, ptr %7, align 4, !tbaa !30
  %212 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %213 = load i32, ptr %212, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %210, i32 noundef %211, i32 noundef %213)
  store i32 1, ptr %14, align 4
  br label %659

214:                                              ; preds = %94, %94
  %215 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %215, i32 noundef 2048)
  %217 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %218 = trunc i8 %217 to i1
  br i1 %218, label %219, label %247

219:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 128, ptr %25) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %25, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL32Escape_sequence_0_is_not_allowedE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(121) %25)
          to label %220 unwind label %233

220:                                              ; preds = %219
  %221 = load i32, ptr %7, align 4, !tbaa !30
  %222 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %223 = load i32, ptr %222, align 8, !tbaa !11
  %224 = load i32, ptr %7, align 4, !tbaa !30
  %225 = sub nsw i32 %223, %224
  %226 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %227 = load i32, ptr %7, align 4, !tbaa !30
  %228 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %229 = load i32, ptr %228, align 8, !tbaa !11
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %226, i32 noundef %227, i32 noundef %229)
          to label %230 unwind label %237

230:                                              ; preds = %220
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %24, i32 noundef %221, i32 noundef %225, ptr noundef %26)
          to label %231 unwind label %241

231:                                              ; preds = %230
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %25) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %25) #5
  %232 = load i32, ptr %15, align 4, !tbaa !32
  call void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %232)
  store i32 1, ptr %14, align 4
  br label %659

233:                                              ; preds = %219
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %10, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %11, align 4
  br label %246

237:                                              ; preds = %220
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %10, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %11, align 4
  br label %245

241:                                              ; preds = %230
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %10, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %245

245:                                              ; preds = %241, %237
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #5
  br label %246

246:                                              ; preds = %245, %233
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %25) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %25) #5
  br label %660

247:                                              ; preds = %214
  %248 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %249 = load i32, ptr %7, align 4, !tbaa !30
  %250 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %251 = load i32, ptr %250, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %248, i32 noundef %249, i32 noundef %251)
  store i32 1, ptr %14, align 4
  br label %659

252:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6459, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %253 unwind label %254

253:                                              ; preds = %252
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  store i32 1, ptr %14, align 4
  br label %659

254:                                              ; preds = %252
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %10, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  br label %660

258:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6460, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %259 unwind label %260

259:                                              ; preds = %258
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #5
  store i32 1, ptr %14, align 4
  br label %659

260:                                              ; preds = %258
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %10, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #5
  br label %660

264:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6456, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %265 unwind label %266

265:                                              ; preds = %264
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  store i32 1, ptr %14, align 4
  br label %659

266:                                              ; preds = %264
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %10, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  br label %660

270:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6461, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %271 unwind label %272

271:                                              ; preds = %270
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #5
  store i32 1, ptr %14, align 4
  br label %659

272:                                              ; preds = %270
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %10, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #5
  br label %660

276:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6462, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %277 unwind label %278

277:                                              ; preds = %276
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  store i32 1, ptr %14, align 4
  br label %659

278:                                              ; preds = %276
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %10, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  br label %660

282:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6463, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %283 unwind label %284

283:                                              ; preds = %282
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #5
  store i32 1, ptr %14, align 4
  br label %659

284:                                              ; preds = %282
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %10, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #5
  br label %660

288:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6464, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %289 unwind label %290

289:                                              ; preds = %288
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #5
  store i32 1, ptr %14, align 4
  br label %659

290:                                              ; preds = %288
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %10, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #5
  br label %660

294:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef @.str.6465, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %295 unwind label %296

295:                                              ; preds = %294
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  store i32 1, ptr %14, align 4
  br label %659

296:                                              ; preds = %294
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %10, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  br label %660

300:                                              ; preds = %94
  %301 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %302 = load i32, ptr %301, align 8, !tbaa !11
  %303 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %304 = load i32, ptr %303, align 4, !tbaa !31
  %305 = icmp slt i32 %302, %304
  br i1 %305, label %306, label %500

306:                                              ; preds = %300
  %307 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %308 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %309 = load i32, ptr %308, align 8, !tbaa !11
  %310 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %307, i32 noundef %309)
  %311 = icmp eq i32 %310, 123
  br i1 %311, label %312, label %500

312:                                              ; preds = %306
  %313 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %314 = load i32, ptr %313, align 8, !tbaa !11
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr %313, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #5
  call void @_ZN2ts7Scanner28scanMinimumNumberOfHexDigitsB5cxx11Eib(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef 1, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  %316 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  br i1 %316, label %320, label %317

317:                                              ; preds = %312
  %318 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef null, i32 noundef 16)
          to label %319 unwind label %336

319:                                              ; preds = %317
  br label %321

320:                                              ; preds = %312
  br label %321

321:                                              ; preds = %320, %319
  %322 = phi i32 [ %318, %319 ], [ -1, %320 ]
  store i32 %322, ptr %36, align 4, !tbaa !30
  %323 = load i32, ptr %36, align 4, !tbaa !30
  %324 = icmp slt i32 %323, 0
  br i1 %324, label %325, label %365

325:                                              ; preds = %321
  %326 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %327 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %326, i32 noundef 2048)
          to label %328 unwind label %336

328:                                              ; preds = %325
  %329 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %330 = trunc i8 %329 to i1
  br i1 %330, label %331, label %359

331:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 128, ptr %38) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %38, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE)
          to label %332 unwind label %340

332:                                              ; preds = %331
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(121) %38)
          to label %333 unwind label %344

333:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %334 unwind label %348

334:                                              ; preds = %333
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %37, i32 noundef -1, i32 noundef 0, ptr noundef %39)
          to label %335 unwind label %352

335:                                              ; preds = %334
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %38) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %38) #5
  br label %359

336:                                              ; preds = %495, %489, %483, %453, %446, %440, %410, %398, %368, %359, %325, %317
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %10, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %11, align 4
  br label %499

340:                                              ; preds = %331
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %10, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %11, align 4
  br label %358

344:                                              ; preds = %332
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %10, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %11, align 4
  br label %357

348:                                              ; preds = %333
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %10, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %11, align 4
  br label %356

352:                                              ; preds = %334
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %10, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  br label %356

356:                                              ; preds = %352, %348
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #5
  br label %357

357:                                              ; preds = %356, %344
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %38) #5
  br label %358

358:                                              ; preds = %357, %340
  call void @llvm.lifetime.end.p0(i64 128, ptr %38) #5
  br label %499

359:                                              ; preds = %335, %328
  %360 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %361 = load i32, ptr %7, align 4, !tbaa !30
  %362 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %363 = load i32, ptr %362, align 8, !tbaa !11
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %360, i32 noundef %361, i32 noundef %363)
          to label %364 unwind label %336

364:                                              ; preds = %359
  store i32 1, ptr %14, align 4
  br label %498

365:                                              ; preds = %321
  %366 = load i32, ptr %36, align 4, !tbaa !30
  %367 = call noundef zeroext i1 @_ZN2ts7Scanner11isCodePointEi(ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %366)
  br i1 %367, label %404, label %368

368:                                              ; preds = %365
  %369 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %370 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %369, i32 noundef 2048)
          to label %371 unwind label %336

371:                                              ; preds = %368
  %372 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %373 = trunc i8 %372 to i1
  br i1 %373, label %374, label %398

374:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 128, ptr %42) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %42, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL75An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusiveE)
          to label %375 unwind label %379

375:                                              ; preds = %374
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(121) %42)
          to label %376 unwind label %383

376:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %377 unwind label %387

377:                                              ; preds = %376
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %41, i32 noundef -1, i32 noundef 0, ptr noundef %43)
          to label %378 unwind label %391

378:                                              ; preds = %377
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %42) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %42) #5
  br label %398

379:                                              ; preds = %374
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %10, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %11, align 4
  br label %397

383:                                              ; preds = %375
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %10, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %11, align 4
  br label %396

387:                                              ; preds = %376
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %10, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %11, align 4
  br label %395

391:                                              ; preds = %377
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %10, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  br label %395

395:                                              ; preds = %391, %387
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #5
  br label %396

396:                                              ; preds = %395, %383
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %42) #5
  br label %397

397:                                              ; preds = %396, %379
  call void @llvm.lifetime.end.p0(i64 128, ptr %42) #5
  br label %499

398:                                              ; preds = %378, %371
  %399 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %400 = load i32, ptr %7, align 4, !tbaa !30
  %401 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %402 = load i32, ptr %401, align 8, !tbaa !11
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %399, i32 noundef %400, i32 noundef %402)
          to label %403 unwind label %336

403:                                              ; preds = %398
  store i32 1, ptr %14, align 4
  br label %498

404:                                              ; preds = %365
  %405 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %406 = load i32, ptr %405, align 8, !tbaa !11
  %407 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %408 = load i32, ptr %407, align 4, !tbaa !31
  %409 = icmp sge i32 %406, %408
  br i1 %409, label %410, label %446

410:                                              ; preds = %404
  %411 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %412 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %411, i32 noundef 2048)
          to label %413 unwind label %336

413:                                              ; preds = %410
  %414 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %415 = trunc i8 %414 to i1
  br i1 %415, label %416, label %440

416:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 128, ptr %46) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %46, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL22Unexpected_end_of_textE)
          to label %417 unwind label %421

417:                                              ; preds = %416
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull align 8 dereferenceable(121) %46)
          to label %418 unwind label %425

418:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %419 unwind label %429

419:                                              ; preds = %418
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %45, i32 noundef -1, i32 noundef 0, ptr noundef %47)
          to label %420 unwind label %433

420:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %46) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %46) #5
  br label %440

421:                                              ; preds = %416
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %10, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %11, align 4
  br label %439

425:                                              ; preds = %417
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %10, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %11, align 4
  br label %438

429:                                              ; preds = %418
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %10, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %11, align 4
  br label %437

433:                                              ; preds = %419
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %10, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  br label %437

437:                                              ; preds = %433, %429
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #5
  br label %438

438:                                              ; preds = %437, %425
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %46) #5
  br label %439

439:                                              ; preds = %438, %421
  call void @llvm.lifetime.end.p0(i64 128, ptr %46) #5
  br label %499

440:                                              ; preds = %420, %413
  %441 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %442 = load i32, ptr %7, align 4, !tbaa !30
  %443 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %444 = load i32, ptr %443, align 8, !tbaa !11
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %441, i32 noundef %442, i32 noundef %444)
          to label %445 unwind label %336

445:                                              ; preds = %440
  store i32 1, ptr %14, align 4
  br label %498

446:                                              ; preds = %404
  %447 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %448 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %449 = load i32, ptr %448, align 8, !tbaa !11
  %450 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %447, i32 noundef %449)
          to label %451 unwind label %336

451:                                              ; preds = %446
  %452 = icmp ne i32 %450, 125
  br i1 %452, label %453, label %489

453:                                              ; preds = %451
  %454 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %455 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %454, i32 noundef 2048)
          to label %456 unwind label %336

456:                                              ; preds = %453
  %457 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %458 = trunc i8 %457 to i1
  br i1 %458, label %459, label %483

459:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 128, ptr %50) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %50, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL36Unterminated_Unicode_escape_sequenceE)
          to label %460 unwind label %464

460:                                              ; preds = %459
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(121) %50)
          to label %461 unwind label %468

461:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %462 unwind label %472

462:                                              ; preds = %461
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %49, i32 noundef -1, i32 noundef 0, ptr noundef %51)
          to label %463 unwind label %476

463:                                              ; preds = %462
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %50) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %50) #5
  br label %483

464:                                              ; preds = %459
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %10, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %11, align 4
  br label %482

468:                                              ; preds = %460
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %10, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %11, align 4
  br label %481

472:                                              ; preds = %461
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %10, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %11, align 4
  br label %480

476:                                              ; preds = %462
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %10, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #5
  br label %480

480:                                              ; preds = %476, %472
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #5
  br label %481

481:                                              ; preds = %480, %468
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %50) #5
  br label %482

482:                                              ; preds = %481, %464
  call void @llvm.lifetime.end.p0(i64 128, ptr %50) #5
  br label %499

483:                                              ; preds = %463, %456
  %484 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %485 = load i32, ptr %7, align 4, !tbaa !30
  %486 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %487 = load i32, ptr %486, align 8, !tbaa !11
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %484, i32 noundef %485, i32 noundef %487)
          to label %488 unwind label %336

488:                                              ; preds = %483
  store i32 1, ptr %14, align 4
  br label %498

489:                                              ; preds = %451
  %490 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %491 = load i32, ptr %490, align 8, !tbaa !11
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr %490, align 8, !tbaa !11
  %493 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %494 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %493, i32 noundef 8)
          to label %495 unwind label %336

495:                                              ; preds = %489
  %496 = load i32, ptr %36, align 4, !tbaa !30
  invoke void @_ZN2ts7Scanner19utf16EncodeAsStringB5cxx11E14CharacterCodes(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %496)
          to label %497 unwind label %336

497:                                              ; preds = %495
  store i32 1, ptr %14, align 4
  br label %498

498:                                              ; preds = %497, %488, %445, %403, %364
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #5
  br label %659

499:                                              ; preds = %482, %439, %397, %358, %336
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #5
  br label %660

500:                                              ; preds = %306, %300
  br label %501

501:                                              ; preds = %548, %500
  %502 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %503 = load i32, ptr %502, align 8, !tbaa !11
  %504 = load i32, ptr %7, align 4, !tbaa !30
  %505 = add nsw i32 %504, 6
  %506 = icmp slt i32 %503, %505
  br i1 %506, label %507, label %552

507:                                              ; preds = %501
  %508 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %509 = load i32, ptr %508, align 8, !tbaa !11
  %510 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %511 = load i32, ptr %510, align 4, !tbaa !31
  %512 = icmp slt i32 %509, %511
  br i1 %512, label %513, label %519

513:                                              ; preds = %507
  %514 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %515 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %516 = load i32, ptr %515, align 8, !tbaa !11
  %517 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %514, i32 noundef %516)
  %518 = call noundef zeroext i1 @_ZN2ts7Scanner10isHexDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %517)
  br i1 %518, label %547, label %519

519:                                              ; preds = %513, %507
  %520 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %521 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %520, i32 noundef 2048)
  %522 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %523 = trunc i8 %522 to i1
  br i1 %523, label %524, label %542

524:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 128, ptr %54) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %54, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(121) %54)
          to label %525 unwind label %528

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %526 unwind label %532

526:                                              ; preds = %525
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %53, i32 noundef -1, i32 noundef 0, ptr noundef %55)
          to label %527 unwind label %536

527:                                              ; preds = %526
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %54) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %54) #5
  br label %542

528:                                              ; preds = %524
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %10, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %11, align 4
  br label %541

532:                                              ; preds = %525
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %10, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %11, align 4
  br label %540

536:                                              ; preds = %526
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %10, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  br label %540

540:                                              ; preds = %536, %532
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #5
  br label %541

541:                                              ; preds = %540, %528
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %54) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %54) #5
  br label %660

542:                                              ; preds = %527, %519
  %543 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %544 = load i32, ptr %7, align 4, !tbaa !30
  %545 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %546 = load i32, ptr %545, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %543, i32 noundef %544, i32 noundef %546)
  store i32 1, ptr %14, align 4
  br label %659

547:                                              ; preds = %513
  br label %548

548:                                              ; preds = %547
  %549 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %550 = load i32, ptr %549, align 8, !tbaa !11
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr %549, align 8, !tbaa !11
  br label %501, !llvm.loop !36

552:                                              ; preds = %501
  %553 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %554 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %553, i32 noundef 1024)
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #5
  %555 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %556 = load i32, ptr %7, align 4, !tbaa !30
  %557 = add nsw i32 %556, 2
  %558 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %559 = load i32, ptr %558, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %555, i32 noundef %557, i32 noundef %559)
  %560 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef null, i32 noundef 16)
          to label %561 unwind label %563

561:                                              ; preds = %552
  invoke void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %560)
          to label %562 unwind label %563

562:                                              ; preds = %561
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #5
  store i32 1, ptr %14, align 4
  br label %659

563:                                              ; preds = %561, %552
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %10, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #5
  br label %660

567:                                              ; preds = %94
  br label %568

568:                                              ; preds = %615, %567
  %569 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %570 = load i32, ptr %569, align 8, !tbaa !11
  %571 = load i32, ptr %7, align 4, !tbaa !30
  %572 = add nsw i32 %571, 4
  %573 = icmp slt i32 %570, %572
  br i1 %573, label %574, label %619

574:                                              ; preds = %568
  %575 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %576 = load i32, ptr %575, align 8, !tbaa !11
  %577 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %578 = load i32, ptr %577, align 4, !tbaa !31
  %579 = icmp slt i32 %576, %578
  br i1 %579, label %580, label %586

580:                                              ; preds = %574
  %581 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %582 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %583 = load i32, ptr %582, align 8, !tbaa !11
  %584 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %581, i32 noundef %583)
  %585 = call noundef zeroext i1 @_ZN2ts7Scanner10isHexDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %65, i32 noundef %584)
  br i1 %585, label %614, label %586

586:                                              ; preds = %580, %574
  %587 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %588 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %587, i32 noundef 2048)
  %589 = load i8, ptr %6, align 1, !tbaa !9, !range !34, !noundef !35
  %590 = trunc i8 %589 to i1
  br i1 %590, label %591, label %609

591:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 128, ptr %59) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %59, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(121) %59)
          to label %592 unwind label %595

592:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %593 unwind label %599

593:                                              ; preds = %592
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %65, ptr noundef %58, i32 noundef -1, i32 noundef 0, ptr noundef %60)
          to label %594 unwind label %603

594:                                              ; preds = %593
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %59) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %59) #5
  br label %609

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

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

603:                                              ; preds = %593
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %10, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  br label %607

607:                                              ; preds = %603, %599
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #5
  br label %608

608:                                              ; preds = %607, %595
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %59) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %59) #5
  br label %660

609:                                              ; preds = %594, %586
  %610 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %611 = load i32, ptr %7, align 4, !tbaa !30
  %612 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %613 = load i32, ptr %612, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %610, i32 noundef %611, i32 noundef %613)
  store i32 1, ptr %14, align 4
  br label %659

614:                                              ; preds = %580
  br label %615

615:                                              ; preds = %614
  %616 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %617 = load i32, ptr %616, align 8, !tbaa !11
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr %616, align 8, !tbaa !11
  br label %568, !llvm.loop !38

619:                                              ; preds = %568
  %620 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 11
  %621 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %620, i32 noundef 4096)
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #5
  %622 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %623 = load i32, ptr %7, align 4, !tbaa !30
  %624 = add nsw i32 %623, 2
  %625 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %626 = load i32, ptr %625, align 8, !tbaa !11
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %622, i32 noundef %624, i32 noundef %626)
  %627 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef null, i32 noundef 16)
          to label %628 unwind label %630

628:                                              ; preds = %619
  invoke void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %627)
          to label %629 unwind label %630

629:                                              ; preds = %628
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #5
  store i32 1, ptr %14, align 4
  br label %659

630:                                              ; preds = %628, %619
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %10, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #5
  br label %660

634:                                              ; preds = %94
  %635 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %636 = load i32, ptr %635, align 8, !tbaa !11
  %637 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 6
  %638 = load i32, ptr %637, align 4, !tbaa !31
  %639 = icmp slt i32 %636, %638
  br i1 %639, label %640, label %650

640:                                              ; preds = %634
  %641 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 4
  %642 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %643 = load i32, ptr %642, align 8, !tbaa !11
  %644 = call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %641, i32 noundef %643)
  %645 = icmp eq i32 %644, 10
  br i1 %645, label %646, label %650

646:                                              ; preds = %640
  %647 = getelementptr inbounds %"class.ts::Scanner", ptr %65, i32 0, i32 5
  %648 = load i32, ptr %647, align 8, !tbaa !11
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr %647, align 8, !tbaa !11
  br label %650

650:                                              ; preds = %646, %640, %634
  br label %651

651:                                              ; preds = %650, %94, %94, %94
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #5
  store i32 1, ptr %14, align 4
  br label %659

652:                                              ; preds = %94
  %653 = load i32, ptr %15, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEmwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 1, i32 noundef signext %653, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %654 unwind label %655

654:                                              ; preds = %652
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #5
  store i32 1, ptr %14, align 4
  br label %659

655:                                              ; preds = %652
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %10, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %11, align 4
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #5
  br label %660

659:                                              ; preds = %654, %651, %629, %609, %562, %542, %498, %295, %289, %283, %277, %271, %265, %259, %253, %247, %231, %209, %178, %116
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %661

660:                                              ; preds = %655, %630, %608, %563, %541, %499, %296, %290, %284, %278, %272, %266, %260, %254, %246, %208, %117
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %662

661:                                              ; preds = %659, %79
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  ret void

662:                                              ; preds = %660, %93
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %663

663:                                              ; preds = %662
  %664 = load ptr, ptr %10, align 8
  %665 = load i32, ptr %11, align 4
  %666 = insertvalue { ptr, i32 } poison, ptr %664, 0
  %667 = insertvalue { ptr, i32 } %666, i32 %665, 1
  resume { ptr, i32 } %667
}

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !20, i64 48}
!12 = !{!"_ZTSN2ts7ScannerE", !13, i64 0, !14, i64 4, !10, i64 8, !15, i64 12, !16, i64 16, !20, i64 48, !20, i64 52, !20, i64 56, !20, i64 60, !21, i64 64, !17, i64 72, !22, i64 104, !23, i64 112, !20, i64 136, !27, i64 140, !28, i64 144}
!13 = !{!"_ZTSN2ts10ScriptKindE", !7, i64 0}
!14 = !{!"_ZTSN2ts12ScriptTargetE", !7, i64 0}
!15 = !{!"_ZTSN2ts15LanguageVariantE", !7, i64 0}
!16 = !{!"_ZTSN2ts11safe_stringE", !17, i64 0}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE", !18, i64 0, !19, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderE", !6, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = !{!"_ZTS10SyntaxKind", !7, i64 0}
!22 = !{!"_ZTSN2ts10TokenFlagsE", !7, i64 0}
!23 = !{!"_ZTSSt6vectorI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSN2ts16JSDocParsingModeE", !7, i64 0}
!28 = !{!"_ZTSSt8functionIFv3ptrIN2ts4data17DiagnosticMessageEEiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEE", !29, i64 0, !6, i64 24}
!29 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!30 = !{!20, !20, i64 0}
!31 = !{!12, !20, i64 52}
!32 = !{!33, !33, i64 0}
!33 = !{!"_ZTS14CharacterCodes", !7, i64 0}
!34 = !{i8 0, i8 2}
!35 = !{}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = distinct !{!38, !37}


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

%"struct.ts::DiagnosticMessageStore" = type { i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.ptr.100 = type { %"class.std::shared_ptr.101" }
%"class.std::shared_ptr.101" = type { %"class.std::__shared_ptr.102" }
%"class.std::__shared_ptr.102" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::DiagnosticMessage" = type <{ i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.104", %"class.std::vector.104", i8, [7 x i8] }>
%"class.std::vector.104" = type { %"struct.std::_Vector_base.105" }
%"struct.std::_Vector_base.105" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }

@_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL22Unexpected_end_of_textE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL75An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusiveE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL36Unterminated_Unicode_escape_sequenceE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL55Octal_escape_sequences_are_not_allowed_Use_the_syntax_0E = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL32Escape_sequence_0_is_not_allowedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@.str.6452 = external hidden unnamed_addr constant [1 x i32], align 4
@.str.6456 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6457 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6458 = external hidden unnamed_addr constant [3 x i32], align 4
@.str.6459 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6460 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6461 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6462 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6463 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6464 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6465 = external hidden unnamed_addr constant [2 x i32], align 4

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(121)) unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts7Scanner18scanEscapeSequenceB5cxx11Eb(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext %2) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %struct.ptr.100, align 8
  %5 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.0", align 1
  %8 = alloca %"class.std::allocator.0", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %struct.ptr.100, align 8
  %11 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %struct.ptr.100, align 8
  %16 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.0", align 1
  %19 = alloca %"class.std::allocator.0", align 1
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca %"class.std::allocator.0", align 1
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca %"class.std::allocator.0", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %struct.ptr.100, align 8
  %28 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.0", align 1
  %31 = alloca %struct.ptr.100, align 8
  %32 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.0", align 1
  %35 = alloca %struct.ptr.100, align 8
  %36 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.0", align 1
  %39 = alloca %struct.ptr.100, align 8
  %40 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.0", align 1
  %43 = alloca %struct.ptr.100, align 8
  %44 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.0", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %struct.ptr.100, align 8
  %49 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator.0", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator.0", align 1
  %54 = getelementptr inbounds i8, ptr %1, i64 48
  %55 = load i32, ptr %54, align 8, !tbaa !5
  %56 = add nsw i32 %55, 1
  store i32 %56, ptr %54, align 8, !tbaa !5
  %57 = getelementptr inbounds i8, ptr %1, i64 52
  %58 = load i32, ptr %57, align 4, !tbaa !28
  %.not = icmp slt i32 %56, %58
  br i1 %.not, label %71, label %59

59:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %5) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %5, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL22Unexpected_end_of_textE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(121) %5)
          to label %60 unwind label %63

60:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %61 unwind label %65

61:                                               ; preds = %60
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %4, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %6)
          to label %62 unwind label %67

62:                                               ; preds = %61
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %5) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #5
  br label %385

63:                                               ; preds = %59
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %70

65:                                               ; preds = %60
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %69

67:                                               ; preds = %61
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %69

69:                                               ; preds = %67, %65
  %.pn111 = phi { ptr, i32 } [ %68, %67 ], [ %66, %65 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #5
  br label %70

70:                                               ; preds = %69, %63
  %.pn111.pn = phi { ptr, i32 } [ %.pn111, %69 ], [ %64, %63 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %5) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %5) #5
  br label %386

71:                                               ; preds = %3
  %72 = getelementptr inbounds i8, ptr %1, i64 16
  %73 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %56)
  %74 = load i32, ptr %54, align 8, !tbaa !5
  %75 = add nsw i32 %74, 1
  store i32 %75, ptr %54, align 8, !tbaa !5
  switch i32 %73, label %381 [
    i32 48, label %78
    i32 49, label %87
    i32 50, label %87
    i32 51, label %87
    i32 52, label %96
    i32 53, label %96
    i32 54, label %96
    i32 55, label %96
    i32 56, label %138
    i32 57, label %138
    i32 98, label %157
    i32 116, label %161
    i32 110, label %165
    i32 118, label %169
    i32 102, label %173
    i32 114, label %177
    i32 39, label %181
    i32 34, label %185
    i32 117, label %189
    i32 120, label %.preheader
    i32 13, label %371
    i32 10, label %380
    i32 8232, label %380
    i32 8233, label %380
  ]

.preheader:                                       ; preds = %71
  %76 = add nsw i32 %55, 4
  %77 = icmp slt i32 %75, %76
  br i1 %77, label %.lr.ph, label %._crit_edge

78:                                               ; preds = %71
  %79 = load i32, ptr %57, align 4, !tbaa !28
  %.not102 = icmp slt i32 %75, %79
  br i1 %.not102, label %80, label %83

80:                                               ; preds = %78
  %81 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %75)
  %82 = tail call noundef zeroext i1 @_ZN2ts7Scanner7isDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %81)
  br i1 %82, label %._crit_edge118, label %83

._crit_edge118:                                   ; preds = %80
  %.pre119 = load i32, ptr %54, align 8, !tbaa !5
  br label %87

83:                                               ; preds = %80, %78
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6457, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %84 unwind label %85

84:                                               ; preds = %83
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  br label %385

85:                                               ; preds = %83
  %86 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  br label %386

87:                                               ; preds = %._crit_edge118, %71, %71, %71
  %88 = phi i32 [ %.pre119, %._crit_edge118 ], [ %75, %71 ], [ %75, %71 ], [ %75, %71 ]
  %89 = load i32, ptr %57, align 4, !tbaa !28
  %90 = icmp slt i32 %88, %89
  br i1 %90, label %91, label %96

91:                                               ; preds = %87
  %92 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %88)
  %93 = tail call noundef zeroext i1 @_ZN2ts7Scanner12isOctalDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %92)
  %.pre120 = load i32, ptr %54, align 8, !tbaa !5
  br i1 %93, label %94, label %96

94:                                               ; preds = %91
  %95 = add nsw i32 %.pre120, 1
  store i32 %95, ptr %54, align 8, !tbaa !5
  br label %96

96:                                               ; preds = %87, %91, %94, %71, %71, %71, %71
  %97 = phi i32 [ %88, %87 ], [ %.pre120, %91 ], [ %95, %94 ], [ %75, %71 ], [ %75, %71 ], [ %75, %71 ], [ %75, %71 ]
  %98 = load i32, ptr %57, align 4, !tbaa !28
  %99 = icmp slt i32 %97, %98
  br i1 %99, label %100, label %106

100:                                              ; preds = %96
  %101 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %97)
  %102 = tail call noundef zeroext i1 @_ZN2ts7Scanner12isOctalDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %101)
  br i1 %102, label %103, label %106

103:                                              ; preds = %100
  %104 = load i32, ptr %54, align 8, !tbaa !5
  %105 = add nsw i32 %104, 1
  store i32 %105, ptr %54, align 8, !tbaa !5
  br label %106

106:                                              ; preds = %103, %100, %96
  %107 = getelementptr inbounds i8, ptr %1, i64 104
  %108 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %107, i32 noundef 2048)
  br i1 %2, label %109, label %136

109:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #5
  %110 = load i32, ptr %54, align 8, !tbaa !5
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %56, i32 noundef %110)
  %111 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef null, i32 noundef 8)
          to label %112 unwind label %120

112:                                              ; preds = %109
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %11) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %11, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL55Octal_escape_sequences_are_not_allowed_Use_the_syntax_0E)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(121) %11)
          to label %113 unwind label %122

113:                                              ; preds = %112
  %114 = load i32, ptr %54, align 8, !tbaa !5
  %115 = sub nsw i32 %114, %55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #5
  invoke void @_ZNSt7__cxx1110to_wstringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, i32 noundef %111)
          to label %116 unwind label %124

116:                                              ; preds = %113
  invoke void @_ZN2ts8padStartENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEiw(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull %14, i32 noundef 2, i32 noundef signext 48)
          to label %117 unwind label %126

117:                                              ; preds = %116
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull @.str.6458, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %118 unwind label %128

118:                                              ; preds = %117
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %10, i32 noundef %55, i32 noundef %115, ptr noundef nonnull %12)
          to label %119 unwind label %130

119:                                              ; preds = %118
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %11) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #5
  call void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %111)
  br label %385

120:                                              ; preds = %109
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  br label %386

122:                                              ; preds = %112
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %135

124:                                              ; preds = %113
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %134

126:                                              ; preds = %116
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %133

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

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

132:                                              ; preds = %130, %128
  %.pn103 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %133

133:                                              ; preds = %132, %126
  %.pn103.pn = phi { ptr, i32 } [ %.pn103, %132 ], [ %127, %126 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %134

134:                                              ; preds = %133, %124
  %.pn103.pn.pn = phi { ptr, i32 } [ %.pn103.pn, %133 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #5
  br label %135

135:                                              ; preds = %134, %122
  %.pn103.pn.pn.pn = phi { ptr, i32 } [ %.pn103.pn.pn, %134 ], [ %123, %122 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %11) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #5
  br label %386

136:                                              ; preds = %106
  %137 = load i32, ptr %54, align 8, !tbaa !5
  tail call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %55, i32 noundef %137)
  br label %385

138:                                              ; preds = %71, %71
  %139 = getelementptr inbounds i8, ptr %1, i64 104
  %140 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %139, i32 noundef 2048)
  br i1 %2, label %141, label %155

141:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %16) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %16, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL32Escape_sequence_0_is_not_allowedE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(121) %16)
          to label %142 unwind label %147

142:                                              ; preds = %141
  %143 = load i32, ptr %54, align 8, !tbaa !5
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %55, i32 noundef %143)
          to label %144 unwind label %149

144:                                              ; preds = %142
  %145 = sub nsw i32 %143, %55
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %15, i32 noundef %55, i32 noundef %145, ptr noundef nonnull %17)
          to label %146 unwind label %151

146:                                              ; preds = %144
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %16) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %16) #5
  call void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %73)
  br label %385

147:                                              ; preds = %141
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %154

149:                                              ; preds = %142
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %153

151:                                              ; preds = %144
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  br label %153

153:                                              ; preds = %151, %149
  %.pn99 = phi { ptr, i32 } [ %152, %151 ], [ %150, %149 ]
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #5
  br label %154

154:                                              ; preds = %153, %147
  %.pn99.pn = phi { ptr, i32 } [ %.pn99, %153 ], [ %148, %147 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %16) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %16) #5
  br label %386

155:                                              ; preds = %138
  %156 = load i32, ptr %54, align 8, !tbaa !5
  tail call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %55, i32 noundef %156)
  br label %385

157:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6459, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %158 unwind label %159

158:                                              ; preds = %157
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  br label %385

159:                                              ; preds = %157
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  br label %386

161:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6460, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %162 unwind label %163

162:                                              ; preds = %161
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  br label %385

163:                                              ; preds = %161
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  br label %386

165:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6456, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %166 unwind label %167

166:                                              ; preds = %165
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #5
  br label %385

167:                                              ; preds = %165
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #5
  br label %386

169:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6461, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %170 unwind label %171

170:                                              ; preds = %169
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  br label %385

171:                                              ; preds = %169
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  br label %386

173:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6462, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %174 unwind label %175

174:                                              ; preds = %173
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  br label %385

175:                                              ; preds = %173
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  br label %386

177:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6463, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %178 unwind label %179

178:                                              ; preds = %177
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  br label %385

179:                                              ; preds = %177
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  br label %386

181:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6464, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %182 unwind label %183

182:                                              ; preds = %181
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #5
  br label %385

183:                                              ; preds = %181
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #5
  br label %386

185:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull @.str.6465, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %186 unwind label %187

186:                                              ; preds = %185
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  br label %385

187:                                              ; preds = %185
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  br label %386

189:                                              ; preds = %71
  %190 = load i32, ptr %57, align 4, !tbaa !28
  %191 = icmp slt i32 %75, %190
  br i1 %191, label %192, label %295

192:                                              ; preds = %189
  %193 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %75)
  %194 = icmp eq i32 %193, 123
  %.pre = load i32, ptr %54, align 8, !tbaa !5
  br i1 %194, label %195, label %295

195:                                              ; preds = %192
  %196 = add nsw i32 %.pre, 1
  store i32 %196, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  call void @_ZN2ts7Scanner28scanMinimumNumberOfHexDigitsB5cxx11Eib(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 1, i1 noundef zeroext false)
  %197 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br i1 %197, label %.thread, label %198

198:                                              ; preds = %195
  %199 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef null, i32 noundef 16)
          to label %200 unwind label %209

200:                                              ; preds = %198
  %201 = icmp slt i32 %199, 0
  br i1 %201, label %.thread, label %222

.thread:                                          ; preds = %195, %200
  %202 = getelementptr inbounds i8, ptr %1, i64 104
  %203 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %202, i32 noundef 2048)
  br i1 %2, label %204, label %.invoke

204:                                              ; preds = %.thread
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %28) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %28, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE)
          to label %205 unwind label %211

205:                                              ; preds = %204
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(121) %28)
          to label %206 unwind label %213

206:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %207 unwind label %215

207:                                              ; preds = %206
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %27, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %29)
          to label %208 unwind label %217

208:                                              ; preds = %207
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %28) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %28) #5
  br label %.invoke

209:                                              ; preds = %.invoke, %288, %265, %198
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %294

211:                                              ; preds = %204
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %221

213:                                              ; preds = %205
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %220

215:                                              ; preds = %206
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %219

217:                                              ; preds = %207
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %219

219:                                              ; preds = %217, %215
  %.pn93 = phi { ptr, i32 } [ %218, %217 ], [ %216, %215 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #5
  br label %220

220:                                              ; preds = %219, %213
  %.pn93.pn = phi { ptr, i32 } [ %.pn93, %219 ], [ %214, %213 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %28) #5
  br label %221

221:                                              ; preds = %220, %211
  %.pn93.pn.pn = phi { ptr, i32 } [ %.pn93.pn, %220 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %28) #5
  br label %294

222:                                              ; preds = %200
  %223 = call noundef zeroext i1 @_ZN2ts7Scanner11isCodePointEi(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %199)
  br i1 %223, label %243, label %224

224:                                              ; preds = %222
  %225 = getelementptr inbounds i8, ptr %1, i64 104
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %225, i32 noundef 2048)
  br i1 %2, label %227, label %.invoke

227:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %32) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %32, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL75An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusiveE)
          to label %228 unwind label %232

228:                                              ; preds = %227
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(121) %32)
          to label %229 unwind label %234

229:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %230 unwind label %236

230:                                              ; preds = %229
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %31, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %33)
          to label %231 unwind label %238

231:                                              ; preds = %230
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %32) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %32) #5
  br label %.invoke

232:                                              ; preds = %227
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %242

234:                                              ; preds = %228
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %241

236:                                              ; preds = %229
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %240

238:                                              ; preds = %230
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %240

240:                                              ; preds = %238, %236
  %.pn79 = phi { ptr, i32 } [ %239, %238 ], [ %237, %236 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #5
  br label %241

241:                                              ; preds = %240, %234
  %.pn79.pn = phi { ptr, i32 } [ %.pn79, %240 ], [ %235, %234 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %32) #5
  br label %242

242:                                              ; preds = %241, %232
  %.pn79.pn.pn = phi { ptr, i32 } [ %.pn79.pn, %241 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %32) #5
  br label %294

243:                                              ; preds = %222
  %244 = load i32, ptr %54, align 8, !tbaa !5
  %245 = load i32, ptr %57, align 4, !tbaa !28
  %.not83 = icmp slt i32 %244, %245
  br i1 %.not83, label %265, label %246

246:                                              ; preds = %243
  %247 = getelementptr inbounds i8, ptr %1, i64 104
  %248 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %247, i32 noundef 2048)
  br i1 %2, label %249, label %.invoke

249:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %36) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %36, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL22Unexpected_end_of_textE)
          to label %250 unwind label %254

250:                                              ; preds = %249
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(121) %36)
          to label %251 unwind label %256

251:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %252 unwind label %258

252:                                              ; preds = %251
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %35, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %37)
          to label %253 unwind label %260

253:                                              ; preds = %252
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %36) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %36) #5
  br label %.invoke

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

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

258:                                              ; preds = %251
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %262

260:                                              ; preds = %252
  %261 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  br label %262

262:                                              ; preds = %260, %258
  %.pn89 = phi { ptr, i32 } [ %261, %260 ], [ %259, %258 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #5
  br label %263

263:                                              ; preds = %262, %256
  %.pn89.pn = phi { ptr, i32 } [ %.pn89, %262 ], [ %257, %256 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %36) #5
  br label %264

264:                                              ; preds = %263, %254
  %.pn89.pn.pn = phi { ptr, i32 } [ %.pn89.pn, %263 ], [ %255, %254 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %36) #5
  br label %294

265:                                              ; preds = %243
  %266 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %244)
          to label %267 unwind label %209

267:                                              ; preds = %265
  %.not84 = icmp eq i32 %266, 125
  br i1 %.not84, label %288, label %268

268:                                              ; preds = %267
  %269 = getelementptr inbounds i8, ptr %1, i64 104
  %270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %269, i32 noundef 2048)
  br i1 %2, label %271, label %.invoke

271:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %40) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %40, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL36Unterminated_Unicode_escape_sequenceE)
          to label %272 unwind label %276

272:                                              ; preds = %271
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(121) %40)
          to label %273 unwind label %278

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %274 unwind label %280

274:                                              ; preds = %273
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %39, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %41)
          to label %275 unwind label %282

275:                                              ; preds = %274
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %40) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %40) #5
  br label %.invoke

276:                                              ; preds = %271
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %286

278:                                              ; preds = %272
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %285

280:                                              ; preds = %273
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %284

282:                                              ; preds = %274
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  br label %284

284:                                              ; preds = %282, %280
  %.pn85 = phi { ptr, i32 } [ %283, %282 ], [ %281, %280 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #5
  br label %285

285:                                              ; preds = %284, %278
  %.pn85.pn = phi { ptr, i32 } [ %.pn85, %284 ], [ %279, %278 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %40) #5
  br label %286

286:                                              ; preds = %285, %276
  %.pn85.pn.pn = phi { ptr, i32 } [ %.pn85.pn, %285 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %40) #5
  br label %294

.invoke:                                          ; preds = %268, %275, %246, %253, %224, %231, %.thread, %208
  %287 = load i32, ptr %54, align 8, !tbaa !5
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %55, i32 noundef %287)
          to label %293 unwind label %209

288:                                              ; preds = %267
  %289 = load i32, ptr %54, align 8, !tbaa !5
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr %54, align 8, !tbaa !5
  %291 = getelementptr inbounds i8, ptr %1, i64 104
  %292 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %291, i32 noundef 8)
  invoke void @_ZN2ts7Scanner19utf16EncodeAsStringB5cxx11E14CharacterCodes(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %199)
          to label %293 unwind label %209

293:                                              ; preds = %.invoke, %288
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  br label %385

294:                                              ; preds = %286, %264, %242, %221, %209
  %.pn97 = phi { ptr, i32 } [ %210, %209 ], [ %.pn93.pn.pn, %221 ], [ %.pn89.pn.pn, %264 ], [ %.pn85.pn.pn, %286 ], [ %.pn79.pn.pn, %242 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  br label %386

295:                                              ; preds = %192, %189
  %296 = phi i32 [ %.pre, %192 ], [ %75, %189 ]
  %297 = add nsw i32 %55, 6
  %298 = icmp slt i32 %296, %297
  br i1 %298, label %.lr.ph116, label %._crit_edge117

.lr.ph116:                                        ; preds = %295, %322
  %299 = phi i32 [ %324, %322 ], [ %296, %295 ]
  %300 = load i32, ptr %57, align 4, !tbaa !28
  %301 = icmp slt i32 %299, %300
  br i1 %301, label %302, label %305

302:                                              ; preds = %.lr.ph116
  %303 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %299)
  %304 = tail call noundef zeroext i1 @_ZN2ts7Scanner10isHexDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %303)
  br i1 %304, label %322, label %305

305:                                              ; preds = %302, %.lr.ph116
  %306 = getelementptr inbounds i8, ptr %1, i64 104
  %307 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %306, i32 noundef 2048)
  br i1 %2, label %308, label %320

308:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %44) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %44, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(121) %44)
          to label %309 unwind label %312

309:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %310 unwind label %314

310:                                              ; preds = %309
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %43, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %45)
          to label %311 unwind label %316

311:                                              ; preds = %310
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %44) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %44) #5
  br label %320

312:                                              ; preds = %308
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %319

314:                                              ; preds = %309
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %318

316:                                              ; preds = %310
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #5
  br label %318

318:                                              ; preds = %316, %314
  %.pn76 = phi { ptr, i32 } [ %317, %316 ], [ %315, %314 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #5
  br label %319

319:                                              ; preds = %318, %312
  %.pn76.pn = phi { ptr, i32 } [ %.pn76, %318 ], [ %313, %312 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %44) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %44) #5
  br label %386

320:                                              ; preds = %311, %305
  %321 = load i32, ptr %54, align 8, !tbaa !5
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %55, i32 noundef %321)
  br label %385

322:                                              ; preds = %302
  %323 = load i32, ptr %54, align 8, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr %54, align 8, !tbaa !5
  %325 = icmp slt i32 %324, %297
  br i1 %325, label %.lr.ph116, label %._crit_edge117, !llvm.loop !29

._crit_edge117:                                   ; preds = %322, %295
  %326 = getelementptr inbounds i8, ptr %1, i64 104
  %327 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %326, i32 noundef 1024)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #5
  %328 = add nsw i32 %55, 2
  %329 = load i32, ptr %54, align 8, !tbaa !5
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %328, i32 noundef %329)
  %330 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef null, i32 noundef 16)
          to label %331 unwind label %333

331:                                              ; preds = %._crit_edge117
  invoke void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %330)
          to label %332 unwind label %333

332:                                              ; preds = %331
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #5
  br label %385

333:                                              ; preds = %331, %._crit_edge117
  %334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #5
  br label %386

.lr.ph:                                           ; preds = %.preheader, %358
  %335 = phi i32 [ %360, %358 ], [ %75, %.preheader ]
  %336 = load i32, ptr %57, align 4, !tbaa !28
  %337 = icmp slt i32 %335, %336
  br i1 %337, label %338, label %341

338:                                              ; preds = %.lr.ph
  %339 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %335)
  %340 = tail call noundef zeroext i1 @_ZN2ts7Scanner10isHexDigitE14CharacterCodes(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef %339)
  br i1 %340, label %358, label %341

341:                                              ; preds = %338, %.lr.ph
  %342 = getelementptr inbounds i8, ptr %1, i64 104
  %343 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %342, i32 noundef 2048)
  br i1 %2, label %344, label %356

344:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %49) #5
  call void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %49, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL26Hexadecimal_digit_expectedE)
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(121) %49)
          to label %345 unwind label %348

345:                                              ; preds = %344
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %346 unwind label %350

346:                                              ; preds = %345
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %48, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %50)
          to label %347 unwind label %352

347:                                              ; preds = %346
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %49) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %49) #5
  br label %356

348:                                              ; preds = %344
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %355

350:                                              ; preds = %345
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %354

352:                                              ; preds = %346
  %353 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #5
  br label %354

354:                                              ; preds = %352, %350
  %.pn = phi { ptr, i32 } [ %353, %352 ], [ %351, %350 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #5
  br label %355

355:                                              ; preds = %354, %348
  %.pn.pn = phi { ptr, i32 } [ %.pn, %354 ], [ %349, %348 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %49) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %49) #5
  br label %386

356:                                              ; preds = %347, %341
  %357 = load i32, ptr %54, align 8, !tbaa !5
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %55, i32 noundef %357)
  br label %385

358:                                              ; preds = %338
  %359 = load i32, ptr %54, align 8, !tbaa !5
  %360 = add nsw i32 %359, 1
  store i32 %360, ptr %54, align 8, !tbaa !5
  %361 = icmp slt i32 %360, %76
  br i1 %361, label %.lr.ph, label %._crit_edge, !llvm.loop !31

._crit_edge:                                      ; preds = %358, %.preheader
  %362 = getelementptr inbounds i8, ptr %1, i64 104
  %363 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %362, i32 noundef 4096)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #5
  %364 = add nsw i32 %55, 2
  %365 = load i32, ptr %54, align 8, !tbaa !5
  call void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %364, i32 noundef %365)
  %366 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef null, i32 noundef 16)
          to label %367 unwind label %369

367:                                              ; preds = %._crit_edge
  invoke void @_ZN2ts12fromCharCodeB5cxx11Ew(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, i32 noundef signext %366)
          to label %368 unwind label %369

368:                                              ; preds = %367
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #5
  br label %385

369:                                              ; preds = %367, %._crit_edge
  %370 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #5
  br label %386

371:                                              ; preds = %71
  %372 = load i32, ptr %57, align 4, !tbaa !28
  %373 = icmp slt i32 %75, %372
  br i1 %373, label %374, label %380

374:                                              ; preds = %371
  %375 = tail call noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef %75)
  %376 = icmp eq i32 %375, 10
  br i1 %376, label %377, label %380

377:                                              ; preds = %374
  %378 = load i32, ptr %54, align 8, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %54, align 8, !tbaa !5
  br label %380

380:                                              ; preds = %371, %374, %377, %71, %71, %71
  tail call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #5
  br label %385

381:                                              ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEmwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 1, i32 noundef signext %73, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %382 unwind label %383

382:                                              ; preds = %381
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #5
  br label %385

383:                                              ; preds = %381
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #5
  br label %386

385:                                              ; preds = %84, %119, %136, %146, %155, %158, %162, %166, %170, %174, %178, %182, %186, %293, %320, %332, %356, %368, %380, %382, %62
  ret void

386:                                              ; preds = %85, %154, %159, %163, %167, %171, %175, %179, %183, %187, %294, %319, %333, %355, %369, %383, %135, %120, %70
  %.pn111.pn.pn = phi { ptr, i32 } [ %.pn111.pn, %70 ], [ %384, %383 ], [ %.pn.pn, %355 ], [ %370, %369 ], [ %.pn97, %294 ], [ %.pn76.pn, %319 ], [ %334, %333 ], [ %188, %187 ], [ %184, %183 ], [ %180, %179 ], [ %176, %175 ], [ %172, %171 ], [ %168, %167 ], [ %164, %163 ], [ %160, %159 ], [ %.pn99.pn, %154 ], [ %86, %85 ], [ %.pn103.pn.pn.pn, %135 ], [ %121, %120 ]
  resume { ptr, i32 } %.pn111.pn.pn
}

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !18, i64 48}
!6 = !{!"_ZTSN2ts7ScannerE", !7, i64 0, !10, i64 4, !11, i64 8, !12, i64 12, !13, i64 16, !18, i64 48, !18, i64 52, !18, i64 56, !18, i64 60, !19, i64 64, !14, i64 72, !20, i64 104, !21, i64 112, !18, i64 136, !25, i64 140, !26, i64 144}
!7 = !{!"_ZTSN2ts10ScriptKindE", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN2ts12ScriptTargetE", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN2ts15LanguageVariantE", !8, i64 0}
!13 = !{!"_ZTSN2ts11safe_stringE", !14, i64 0}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE", !15, i64 0, !17, i64 8, !8, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderE", !16, i64 0}
!16 = !{!"any pointer", !8, i64 0}
!17 = !{!"long", !8, i64 0}
!18 = !{!"int", !8, i64 0}
!19 = !{!"_ZTS10SyntaxKind", !8, i64 0}
!20 = !{!"_ZTSN2ts10TokenFlagsE", !8, i64 0}
!21 = !{!"_ZTSSt6vectorI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!25 = !{!"_ZTSN2ts16JSDocParsingModeE", !8, i64 0}
!26 = !{!"_ZTSSt8functionIFv3ptrIN2ts4data17DiagnosticMessageEEiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEE", !27, i64 0, !16, i64 24}
!27 = !{!"_ZTSSt14_Function_base", !8, i64 0, !16, i64 16}
!28 = !{!6, !18, i64 52}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}


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