; LLVM IR from vczh/herodb :: Kernel/UnitTest/TestUtility_Log.ll (Z51TestFunction_Utility_Log_OpenTransactionsSequencialv)

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

%"class.vl::ObjectString" = type { %"class.vl::Object", ptr, ptr, i64, i64, i64 }
%"class.vl::Object" = type { ptr }
%"class.vl::Ptr" = type { ptr, ptr, ptr, ptr }
%"class.vl::Ptr.36" = type { ptr, ptr, ptr, ptr }
%"class.vl::database::BufferManager" = type { i64, i64, i64, i64, %"class.vl::SpinLock", i64, %"class.vl::collections::Dictionary" }
%"class.vl::SpinLock" = type { %"class.vl::Object", i64 }
%"class.vl::collections::Dictionary" = type { %"class.vl::Object", %"class.vl::collections::SortedList", %"class.vl::collections::List", %"class.vl::collections::IEnumerable.6" }
%"class.vl::collections::SortedList" = type { %"class.vl::collections::ListBase.base", %"class.vl::collections::IEnumerable" }
%"class.vl::collections::ListBase.base" = type <{ %"class.vl::collections::ArrayBase.base", i64, i8 }>
%"class.vl::collections::ArrayBase.base" = type { %"class.vl::collections::ListStore", ptr, i64 }
%"class.vl::collections::ListStore" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable" = type { %"class.vl::Interface" }
%"class.vl::Interface" = type { ptr }
%"class.vl::collections::List" = type { %"class.vl::collections::ListBase.base.5", %"class.vl::collections::IEnumerable.3" }
%"class.vl::collections::ListBase.base.5" = type <{ %"class.vl::collections::ArrayBase.base.4", i64, i8 }>
%"class.vl::collections::ArrayBase.base.4" = type { %"class.vl::collections::ListStore.2", ptr, i64 }
%"class.vl::collections::ListStore.2" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.3" = type { %"class.vl::Interface" }
%"class.vl::collections::IEnumerable.6" = type { %"class.vl::Interface" }
%"class.vl::collections::List.37" = type { %"class.vl::collections::ListBase.base.23", %"class.vl::collections::IEnumerable.21" }
%"class.vl::collections::ListBase.base.23" = type <{ %"class.vl::collections::ArrayBase.base.22", i64, i8 }>
%"class.vl::collections::ArrayBase.base.22" = type { %"class.vl::collections::ListStore.20", ptr, i64 }
%"class.vl::collections::ListStore.20" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.21" = type { %"class.vl::Interface" }
%"class.vl::collections::List.39" = type { %"class.vl::collections::ListBase.base.45", %"class.vl::collections::IEnumerable.43" }
%"class.vl::collections::ListBase.base.45" = type <{ %"class.vl::collections::ArrayBase.base.44", i64, i8 }>
%"class.vl::collections::ArrayBase.base.44" = type { %"class.vl::collections::ListStore.42", ptr, i64 }
%"class.vl::collections::ListStore.42" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.43" = type { %"class.vl::Interface" }
%"struct.vl::database::IdObject" = type { i32 }
%"class.vl::database::LogManager" = type { %"class.vl::Object", ptr, %"struct.vl::database::IdObject", i8, %"class.vl::database::log_internal::LogAddressItem", %"class.vl::database::log_internal::LogBlocks", %"class.vl::database::log_internal::LogTransactions", %"class.vl::SpinLock" }
%"class.vl::database::log_internal::LogAddressItem" = type { %"class.vl::Object", ptr, %"struct.vl::database::IdObject", i64, i64, %"class.vl::collections::List.7" }
%"class.vl::collections::List.7" = type { %"class.vl::collections::ListBase.base.13", %"class.vl::collections::IEnumerable.11" }
%"class.vl::collections::ListBase.base.13" = type <{ %"class.vl::collections::ArrayBase.base.12", i64, i8 }>
%"class.vl::collections::ArrayBase.base.12" = type { %"class.vl::collections::ListStore.10", ptr, i64 }
%"class.vl::collections::ListStore.10" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.11" = type { %"class.vl::Interface" }
%"class.vl::database::log_internal::LogBlocks" = type { %"class.vl::Object", ptr, %"struct.vl::database::IdObject", i64, %"struct.vl::database::IdObject.15" }
%"struct.vl::database::IdObject.15" = type { i64 }
%"class.vl::database::log_internal::LogTransactions" = type { %"class.vl::Object", i64, %"class.vl::collections::Dictionary.16", ptr }
%"class.vl::collections::Dictionary.16" = type { %"class.vl::Object", %"class.vl::collections::SortedList.17", %"class.vl::collections::List.25", %"class.vl::collections::IEnumerable.33" }
%"class.vl::collections::SortedList.17" = type { %"class.vl::collections::ListBase.base.23", %"class.vl::collections::IEnumerable.21" }
%"class.vl::collections::List.25" = type { %"class.vl::collections::ListBase.base.31", %"class.vl::collections::IEnumerable.29" }
%"class.vl::collections::ListBase.base.31" = type <{ %"class.vl::collections::ArrayBase.base.30", i64, i8 }>
%"class.vl::collections::ArrayBase.base.30" = type { %"class.vl::collections::ListStore.28", ptr, i64 }
%"class.vl::collections::ListStore.28" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.29" = type { %"class.vl::Interface" }
%"class.vl::collections::IEnumerable.33" = type { %"class.vl::Interface" }
%"struct.vl::database::IdObject.35" = type { i64 }

@.str = external hidden unnamed_addr constant [7 x i32], align 4
@.str.2 = external hidden unnamed_addr constant [11 x i32], align 4
@.str.3 = external hidden unnamed_addr constant [11 x i32], align 4
@_ZTIi = external constant ptr
@.str.19 = external hidden unnamed_addr constant [31 x i32], align 4
@.str.33 = external hidden unnamed_addr constant [39 x i32], align 4
@.str.34 = external hidden unnamed_addr constant [58 x i32], align 4
@.str.35 = external hidden unnamed_addr constant [43 x i32], align 4
@.str.36 = external hidden unnamed_addr constant [35 x i32], align 4
@.str.37 = external hidden unnamed_addr constant [13 x i32], align 4
@.str.38 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.39 = external hidden unnamed_addr constant [13 x i32], align 4
@.str.40 = external hidden unnamed_addr constant [13 x i32], align 4
@.str.41 = external hidden unnamed_addr constant [3 x i32], align 4
@.str.42 = external hidden unnamed_addr constant [14 x i32], align 4
@.str.43 = external hidden unnamed_addr constant [3 x i32], align 4
@.str.44 = external hidden unnamed_addr constant [14 x i32], align 4
@.str.45 = external hidden unnamed_addr constant [39 x i32], align 4
@.str.46 = external hidden unnamed_addr constant [51 x i32], align 4
@.str.47 = external hidden unnamed_addr constant [22 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

declare void @_ZN2vl8database13BufferManagerC1Emm(ptr noundef nonnull align 8 dereferenceable(168), i64 noundef, i64 noundef) unnamed_addr #1

declare i32 @_ZN2vl8database13BufferManager14LoadFileSourceERKNS_12ObjectStringIwEEb(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 8 dereferenceable(48), i1 noundef zeroext) #1

declare void @_Z13GetTempFolderv(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8) #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i1 noundef zeroext) unnamed_addr #2 align 2

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

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

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

declare void @_ZN2vl8database10LogManagerC1EPNS0_13BufferManagerENS0_8IdObjectIiLl0EEEbb(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef, i32, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

declare i64 @_ZN2vl8database10LogManager15OpenTransactionEv(ptr noundef nonnull align 8 dereferenceable(304)) #1

declare void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48)) #1

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @_ZN2vl8database10LogManager11EnumLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr") align 8, ptr noundef nonnull align 8 dereferenceable(304), i64) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl8database8IdObjectImLl3EEeqES2_(ptr noundef nonnull align 8 dereferenceable(8), i64) #3 align 2

declare void @_ZN2vl8database10LogManager19EnumInactiveLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr") align 8, ptr noundef nonnull align 8 dereferenceable(304), i64) #1

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

declare noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304), i64) #1

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

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

declare void @_ZN2vl8database10LogManager11OpenLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr.36") align 8, ptr noundef nonnull align 8 dereferenceable(304), i64) #1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

; Function Attrs: mustprogress uwtable
define dso_local void @_Z51TestFunction_Utility_Log_OpenTransactionsSequencialv() #2 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.vl::database::BufferManager", align 8
  %2 = alloca %"class.vl::collections::List.37", align 8
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca %"class.vl::collections::List.39", align 8
  %6 = alloca %"class.vl::collections::List.39", align 8
  %7 = alloca %"struct.vl::database::IdObject", align 4
  %8 = alloca %"class.vl::ObjectString", align 8
  %9 = alloca %"class.vl::ObjectString", align 8
  %10 = alloca %"class.vl::ObjectString", align 8
  %11 = alloca %"class.vl::database::LogManager", align 8
  %12 = alloca %"struct.vl::database::IdObject", align 4
  %13 = alloca %"class.vl::ObjectString", align 8
  %14 = alloca %"class.vl::ObjectString", align 8
  %15 = alloca %"class.vl::ObjectString", align 8
  %16 = alloca %"class.vl::ObjectString", align 8
  %17 = alloca %"struct.vl::database::IdObject.35", align 8
  %18 = alloca %"struct.vl::database::IdObject.35", align 8
  %19 = alloca %"class.vl::ObjectString", align 8
  %20 = alloca %"class.vl::ObjectString", align 8
  %21 = alloca i64, align 8
  %22 = alloca %"struct.vl::database::IdObject.35", align 8
  %23 = alloca %"class.vl::ObjectString", align 8
  %24 = alloca %"class.vl::ObjectString", align 8
  %25 = alloca %"class.vl::ObjectString", align 8
  %26 = alloca %"class.vl::ObjectString", align 8
  %27 = alloca %"struct.vl::database::IdObject.35", align 8
  %28 = alloca %"struct.vl::database::IdObject.35", align 8
  %29 = alloca %"class.vl::ObjectString", align 8
  %30 = alloca %"class.vl::ObjectString", align 8
  %31 = alloca %"class.vl::ObjectString", align 8
  %32 = alloca %"class.vl::ObjectString", align 8
  %33 = alloca %"class.vl::ObjectString", align 8
  %34 = alloca %"class.vl::ObjectString", align 8
  %35 = alloca i64, align 8
  %36 = alloca %"class.vl::ObjectString", align 8
  %37 = alloca %"class.vl::ObjectString", align 8
  %38 = alloca %"class.vl::ObjectString", align 8
  %39 = alloca %"class.vl::ObjectString", align 8
  %40 = alloca i64, align 8
  %41 = alloca i32, align 4
  %42 = alloca i64, align 8
  %43 = alloca %"class.vl::ObjectString", align 8
  %44 = alloca %"class.vl::ObjectString", align 8
  %45 = alloca %"class.vl::ObjectString", align 8
  %46 = alloca %"class.vl::ObjectString", align 8
  %47 = alloca %"class.vl::ObjectString", align 8
  %48 = alloca %"class.vl::ObjectString", align 8
  %49 = alloca %"class.vl::Ptr.36", align 8
  %50 = alloca %"struct.vl::database::IdObject.35", align 8
  %51 = alloca i64, align 8
  %52 = alloca %"class.vl::Ptr", align 8
  %53 = alloca %"struct.vl::database::IdObject.35", align 8
  %54 = alloca i64, align 8
  %55 = alloca %"class.vl::ObjectString", align 8
  %56 = alloca %"class.vl::ObjectString", align 8
  %57 = alloca %"class.vl::ObjectString", align 8
  %58 = alloca %"class.vl::ObjectString", align 8
  %59 = alloca %"class.vl::ObjectString", align 8
  %60 = alloca %"class.vl::ObjectString", align 8
  %61 = alloca [1024 x i32], align 16
  %62 = alloca i64, align 8
  %63 = alloca %"class.vl::ObjectString", align 8
  %64 = alloca %"class.vl::ObjectString", align 8
  %65 = alloca %"class.vl::ObjectString", align 8
  %66 = alloca %"class.vl::ObjectString", align 8
  %67 = alloca %"class.vl::ObjectString", align 8
  %68 = alloca %"class.vl::ObjectString", align 8
  %69 = alloca %"class.vl::ObjectString", align 8
  %70 = alloca %"class.vl::ObjectString", align 8
  %71 = alloca %"class.vl::ObjectString", align 8
  %72 = alloca %"class.vl::ObjectString", align 8
  %73 = alloca %"class.vl::ObjectString", align 8
  %74 = alloca %"class.vl::ObjectString", align 8
  %75 = alloca i64, align 8
  %76 = alloca %"struct.vl::database::IdObject.35", align 8
  %77 = alloca i64, align 8
  %78 = alloca %"class.vl::Ptr", align 8
  %79 = alloca %"struct.vl::database::IdObject.35", align 8
  %80 = alloca i64, align 8
  %81 = alloca %"class.vl::ObjectString", align 8
  %82 = alloca %"class.vl::ObjectString", align 8
  %83 = alloca %"class.vl::ObjectString", align 8
  %84 = alloca %"class.vl::ObjectString", align 8
  %85 = alloca %"class.vl::ObjectString", align 8
  %86 = alloca %"class.vl::ObjectString", align 8
  %87 = alloca [1024 x i32], align 16
  %88 = alloca i64, align 8
  %89 = alloca %"class.vl::ObjectString", align 8
  %90 = alloca %"class.vl::ObjectString", align 8
  %91 = alloca %"class.vl::ObjectString", align 8
  %92 = alloca %"class.vl::ObjectString", align 8
  %93 = alloca %"class.vl::ObjectString", align 8
  %94 = alloca %"class.vl::ObjectString", align 8
  %95 = alloca %"class.vl::ObjectString", align 8
  %96 = alloca %"class.vl::ObjectString", align 8
  %97 = alloca %"class.vl::ObjectString", align 8
  %98 = alloca %"class.vl::ObjectString", align 8
  %99 = alloca %"class.vl::ObjectString", align 8
  %100 = alloca %"class.vl::ObjectString", align 8
  call void @llvm.lifetime.start.p0(i64 168, ptr %1) #8
  call void @_ZN2vl8database13BufferManagerC1Emm(ptr noundef nonnull align 8 dereferenceable(168) %1, i64 noundef 4096, i64 noundef 16)
  call void @llvm.lifetime.start.p0(i64 48, ptr %2) #8
  invoke void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %101 unwind label %122

101:                                              ; preds = %0
  call void @llvm.lifetime.start.p0(i64 48, ptr %5) #8
  invoke void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %5)
          to label %102 unwind label %126

102:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 48, ptr %6) #8
  invoke void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %6)
          to label %103 unwind label %130

103:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %9) #8
  invoke void @_Z13GetTempFolderv(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %9)
          to label %104 unwind label %134

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 48, ptr %10) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %10, ptr noundef @.str, i1 noundef zeroext true)
          to label %105 unwind label %138

105:                                              ; preds = %104
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %8, ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(48) %10)
          to label %106 unwind label %142

106:                                              ; preds = %105
  %107 = invoke i32 @_ZN2vl8database13BufferManager14LoadFileSourceERKNS_12ObjectStringIwEEb(ptr noundef nonnull align 8 dereferenceable(168) %1, ptr noundef nonnull align 8 dereferenceable(48) %8, i1 noundef zeroext true)
          to label %108 unwind label %146

108:                                              ; preds = %106
  %109 = getelementptr inbounds %"struct.vl::database::IdObject", ptr %7, i32 0, i32 0
  store i32 %107, ptr %109, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %10) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 304, ptr %11) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 4 %7, i64 4, i1 false), !tbaa.struct !5
  %110 = getelementptr inbounds %"struct.vl::database::IdObject", ptr %12, i32 0, i32 0
  %111 = load i32, ptr %110, align 4
  invoke void @_ZN2vl8database10LogManagerC1EPNS0_13BufferManagerENS0_8IdObjectIiLl0EEEbb(ptr noundef nonnull align 8 dereferenceable(304) %11, ptr noundef %1, i32 %111, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %112 unwind label %153

112:                                              ; preds = %108
  br label %113

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 48, ptr %13) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %13, ptr noundef @.str.33, i1 noundef zeroext true)
          to label %114 unwind label %157

114:                                              ; preds = %113
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %13)
          to label %115 unwind label %161

115:                                              ; preds = %114
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %13) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %13) #8
  %116 = invoke noundef i64 @_ZN2vl8database10LogManager23GetUsedTransactionCountEv(ptr noundef nonnull align 8 dereferenceable(304) %11)
          to label %117 unwind label %166

117:                                              ; preds = %115
  %118 = icmp eq i64 %116, 0
  br i1 %118, label %119, label %179

119:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 48, ptr %14) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %120 unwind label %170

120:                                              ; preds = %119
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %14)
          to label %121 unwind label %174

121:                                              ; preds = %120
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #8
  br label %192

122:                                              ; preds = %0
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %3, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %4, align 4
  br label %1219

126:                                              ; preds = %101
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %3, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %4, align 4
  br label %1218

130:                                              ; preds = %102
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %3, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %4, align 4
  br label %1217

134:                                              ; preds = %103
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %3, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %4, align 4
  br label %152

138:                                              ; preds = %104
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %3, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %4, align 4
  br label %151

142:                                              ; preds = %105
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %3, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %4, align 4
  br label %150

146:                                              ; preds = %106
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %3, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %8) #8
  br label %150

150:                                              ; preds = %146, %142
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #8
  br label %151

151:                                              ; preds = %150, %138
  call void @llvm.lifetime.end.p0(i64 48, ptr %10) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #8
  br label %152

152:                                              ; preds = %151, %134
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %8) #8
  br label %1216

153:                                              ; preds = %108
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %3, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %4, align 4
  br label %1215

157:                                              ; preds = %113
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %3, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %4, align 4
  br label %165

161:                                              ; preds = %114
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %3, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %13) #8
  br label %165

165:                                              ; preds = %161, %157
  call void @llvm.lifetime.end.p0(i64 48, ptr %13) #8
  br label %1214

166:                                              ; preds = %235, %181, %115
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %3, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %4, align 4
  br label %1214

170:                                              ; preds = %119
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %3, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %4, align 4
  br label %178

174:                                              ; preds = %120
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %3, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #8
  br label %178

178:                                              ; preds = %174, %170
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #8
  br label %1214

179:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 48, ptr %15) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %15, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %180 unwind label %183

180:                                              ; preds = %179
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %15)
          to label %181 unwind label %187

181:                                              ; preds = %180
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #8
  %182 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %182, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %182, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %166

183:                                              ; preds = %179
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %3, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %4, align 4
  br label %191

187:                                              ; preds = %180
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %3, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #8
  br label %191

191:                                              ; preds = %187, %183
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #8
  br label %1214

192:                                              ; preds = %121
  br label %193

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 48, ptr %16) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %16, ptr noundef @.str.34, i1 noundef zeroext true)
          to label %196 unwind label %211

196:                                              ; preds = %195
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %16)
          to label %197 unwind label %215

197:                                              ; preds = %196
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %198 = invoke i64 @_ZN2vl8database10LogManager14GetTransactionEm(ptr noundef nonnull align 8 dereferenceable(304) %11, i64 noundef 0)
          to label %199 unwind label %220

199:                                              ; preds = %197
  %200 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %17, i32 0, i32 0
  store i64 %198, ptr %200, align 8
  %201 = invoke i64 @_ZN2vl8database8IdObjectImLl3EE7InvalidEv()
          to label %202 unwind label %220

202:                                              ; preds = %199
  %203 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %18, i32 0, i32 0
  store i64 %201, ptr %203, align 8
  %204 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %18, i32 0, i32 0
  %205 = load i64, ptr %204, align 8
  %206 = invoke noundef zeroext i1 @_ZNK2vl8database8IdObjectImLl3EEeqES2_(ptr noundef nonnull align 8 dereferenceable(8) %17, i64 %205)
          to label %207 unwind label %220

207:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br i1 %206, label %208, label %233

208:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 48, ptr %19) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %19, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %209 unwind label %224

209:                                              ; preds = %208
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %19)
          to label %210 unwind label %228

210:                                              ; preds = %209
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %19) #8
  br label %246

211:                                              ; preds = %195
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %3, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %4, align 4
  br label %219

215:                                              ; preds = %196
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %3, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #8
  br label %219

219:                                              ; preds = %215, %211
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #8
  br label %1214

220:                                              ; preds = %202, %199, %197
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %3, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %1214

224:                                              ; preds = %208
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %3, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %4, align 4
  br label %232

228:                                              ; preds = %209
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %3, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  br label %232

232:                                              ; preds = %228, %224
  call void @llvm.lifetime.end.p0(i64 48, ptr %19) #8
  br label %1214

233:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 48, ptr %20) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %234 unwind label %237

234:                                              ; preds = %233
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %20)
          to label %235 unwind label %241

235:                                              ; preds = %234
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #8
  %236 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %236, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %236, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %166

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

241:                                              ; preds = %234
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %3, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #8
  br label %245

245:                                              ; preds = %241, %237
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #8
  br label %1214

246:                                              ; preds = %210
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  store i64 0, ptr %21, align 8, !tbaa !10
  br label %249

249:                                              ; preds = %368, %248
  %250 = load i64, ptr %21, align 8, !tbaa !10
  %251 = icmp slt i64 %250, 20
  br i1 %251, label %253, label %252

252:                                              ; preds = %249
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %396

253:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %254 = invoke i64 @_ZN2vl8database10LogManager15OpenTransactionEv(ptr noundef nonnull align 8 dereferenceable(304) %11)
          to label %255 unwind label %268

255:                                              ; preds = %253
  %256 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %22, i32 0, i32 0
  store i64 %254, ptr %256, align 8
  br label %257

257:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 48, ptr %23) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef @.str.35, i1 noundef zeroext true)
          to label %258 unwind label %272

258:                                              ; preds = %257
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %23)
          to label %259 unwind label %276

259:                                              ; preds = %258
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %23) #8
  %260 = invoke noundef i64 @_ZN2vl8database10LogManager23GetUsedTransactionCountEv(ptr noundef nonnull align 8 dereferenceable(304) %11)
          to label %261 unwind label %268

261:                                              ; preds = %259
  %262 = load i64, ptr %21, align 8, !tbaa !10
  %263 = add nsw i64 %262, 1
  %264 = icmp eq i64 %260, %263
  br i1 %264, label %265, label %290

265:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 48, ptr %24) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %24, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %266 unwind label %281

266:                                              ; preds = %265
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %24)
          to label %267 unwind label %285

267:                                              ; preds = %266
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %24) #8
  br label %303

268:                                              ; preds = %357, %344, %292, %259, %253
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %3, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %4, align 4
  br label %395

272:                                              ; preds = %257
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %3, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %4, align 4
  br label %280

276:                                              ; preds = %258
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %3, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #8
  br label %280

280:                                              ; preds = %276, %272
  call void @llvm.lifetime.end.p0(i64 48, ptr %23) #8
  br label %395

281:                                              ; preds = %265
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %3, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %4, align 4
  br label %289

285:                                              ; preds = %266
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %3, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #8
  br label %289

289:                                              ; preds = %285, %281
  call void @llvm.lifetime.end.p0(i64 48, ptr %24) #8
  br label %395

290:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 48, ptr %25) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %291 unwind label %294

291:                                              ; preds = %290
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %25)
          to label %292 unwind label %298

292:                                              ; preds = %291
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %25) #8
  %293 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %293, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %293, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %268

294:                                              ; preds = %290
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %3, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %4, align 4
  br label %302

298:                                              ; preds = %291
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %3, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #8
  br label %302

302:                                              ; preds = %298, %294
  call void @llvm.lifetime.end.p0(i64 48, ptr %25) #8
  br label %395

303:                                              ; preds = %267
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 48, ptr %26) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef @.str.36, i1 noundef zeroext true)
          to label %307 unwind label %320

307:                                              ; preds = %306
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %26)
          to label %308 unwind label %324

308:                                              ; preds = %307
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %309 = load i64, ptr %21, align 8, !tbaa !10
  %310 = invoke i64 @_ZN2vl8database10LogManager14GetTransactionEm(ptr noundef nonnull align 8 dereferenceable(304) %11, i64 noundef %309)
          to label %311 unwind label %329

311:                                              ; preds = %308
  %312 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %27, i32 0, i32 0
  store i64 %310, ptr %312, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %28, ptr align 8 %22, i64 8, i1 false), !tbaa.struct !12
  %313 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %28, i32 0, i32 0
  %314 = load i64, ptr %313, align 8
  %315 = invoke noundef zeroext i1 @_ZNK2vl8database8IdObjectImLl3EEeqES2_(ptr noundef nonnull align 8 dereferenceable(8) %27, i64 %314)
          to label %316 unwind label %329

316:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br i1 %315, label %317, label %342

317:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 48, ptr %29) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %29, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %318 unwind label %333

318:                                              ; preds = %317
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %29)
          to label %319 unwind label %337

319:                                              ; preds = %318
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %29) #8
  br label %355

320:                                              ; preds = %306
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %3, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %4, align 4
  br label %328

324:                                              ; preds = %307
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %3, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  br label %328

328:                                              ; preds = %324, %320
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #8
  br label %395

329:                                              ; preds = %311, %308
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %3, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %395

333:                                              ; preds = %317
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %3, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %4, align 4
  br label %341

337:                                              ; preds = %318
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %3, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #8
  br label %341

341:                                              ; preds = %337, %333
  call void @llvm.lifetime.end.p0(i64 48, ptr %29) #8
  br label %395

342:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 48, ptr %30) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %30, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %343 unwind label %346

343:                                              ; preds = %342
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %30)
          to label %344 unwind label %350

344:                                              ; preds = %343
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #8
  %345 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %345, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %345, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %268

346:                                              ; preds = %342
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %3, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %4, align 4
  br label %354

350:                                              ; preds = %343
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %3, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #8
  br label %354

354:                                              ; preds = %350, %346
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #8
  br label %395

355:                                              ; preds = %319
  br label %356

356:                                              ; preds = %355
  br label %357

357:                                              ; preds = %356
  %358 = invoke noundef i64 @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_E3AddERKS4_(ptr noundef nonnull align 8 dereferenceable(33) %2, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %359 unwind label %268

359:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 48, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %33) #8
  %360 = load i64, ptr %21, align 8, !tbaa !10
  %361 = add nsw i64 %360, 1
  invoke void @_ZN2vl4itowEl(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %33, i64 noundef %361)
          to label %362 unwind label %371

362:                                              ; preds = %359
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %32, ptr noundef @.str.37, ptr noundef nonnull align 8 dereferenceable(48) %33)
          to label %363 unwind label %375

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 48, ptr %34) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %34, ptr noundef @.str.38, i1 noundef zeroext true)
          to label %364 unwind label %379

364:                                              ; preds = %363
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %31, ptr noundef nonnull align 8 dereferenceable(48) %32, ptr noundef nonnull align 8 dereferenceable(48) %34)
          to label %365 unwind label %383

365:                                              ; preds = %364
  %366 = invoke noundef i64 @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_E3AddERKS3_(ptr noundef nonnull align 8 dereferenceable(33) %5, ptr noundef nonnull align 8 dereferenceable(48) %31)
          to label %367 unwind label %387

367:                                              ; preds = %365
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %32) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %368

368:                                              ; preds = %367
  %369 = load i64, ptr %21, align 8, !tbaa !10
  %370 = add nsw i64 %369, 1
  store i64 %370, ptr %21, align 8, !tbaa !10
  br label %249, !llvm.loop !13

371:                                              ; preds = %359
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %3, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %4, align 4
  br label %394

375:                                              ; preds = %362
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %3, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %4, align 4
  br label %393

379:                                              ; preds = %363
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %3, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %4, align 4
  br label %392

383:                                              ; preds = %364
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %3, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %4, align 4
  br label %391

387:                                              ; preds = %365
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %3, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #8
  br label %391

391:                                              ; preds = %387, %383
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #8
  br label %392

392:                                              ; preds = %391, %379
  call void @llvm.lifetime.end.p0(i64 48, ptr %34) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %32) #8
  br label %393

393:                                              ; preds = %392, %375
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #8
  br label %394

394:                                              ; preds = %393, %371
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #8
  br label %395

395:                                              ; preds = %394, %354, %341, %329, %328, %302, %289, %280, %268
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %1214

396:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store i64 0, ptr %35, align 8, !tbaa !10
  br label %397

397:                                              ; preds = %410, %396
  %398 = load i64, ptr %35, align 8, !tbaa !10
  %399 = icmp slt i64 %398, 20
  br i1 %399, label %401, label %400

400:                                              ; preds = %397
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %437

401:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 48, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %38) #8
  %402 = load i64, ptr %35, align 8, !tbaa !10
  %403 = add nsw i64 %402, 1
  invoke void @_ZN2vl4itowEl(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %38, i64 noundef %403)
          to label %404 unwind label %413

404:                                              ; preds = %401
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %37, ptr noundef @.str.39, ptr noundef nonnull align 8 dereferenceable(48) %38)
          to label %405 unwind label %417

405:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 48, ptr %39) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef @.str.40, i1 noundef zeroext true)
          to label %406 unwind label %421

406:                                              ; preds = %405
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %36, ptr noundef nonnull align 8 dereferenceable(48) %37, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %407 unwind label %425

407:                                              ; preds = %406
  %408 = invoke noundef i64 @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_E3AddERKS3_(ptr noundef nonnull align 8 dereferenceable(33) %6, ptr noundef nonnull align 8 dereferenceable(48) %36)
          to label %409 unwind label %429

409:                                              ; preds = %407
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #8
  br label %410

410:                                              ; preds = %409
  %411 = load i64, ptr %35, align 8, !tbaa !10
  %412 = add nsw i64 %411, 1
  store i64 %412, ptr %35, align 8, !tbaa !10
  br label %397, !llvm.loop !15

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

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

421:                                              ; preds = %405
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %3, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %4, align 4
  br label %434

425:                                              ; preds = %406
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %3, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %4, align 4
  br label %433

429:                                              ; preds = %407
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %3, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #8
  br label %433

433:                                              ; preds = %429, %425
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #8
  br label %434

434:                                              ; preds = %433, %421
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #8
  br label %435

435:                                              ; preds = %434, %417
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #8
  br label %436

436:                                              ; preds = %435, %413
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %1214

437:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  store i64 0, ptr %40, align 8, !tbaa !10
  br label %438

438:                                              ; preds = %561, %437
  %439 = load i64, ptr %40, align 8, !tbaa !10
  %440 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %441 unwind label %444

441:                                              ; preds = %438
  %442 = icmp slt i64 %439, %440
  br i1 %442, label %448, label %443

443:                                              ; preds = %441
  store i32 16, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %565

444:                                              ; preds = %438
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %3, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %4, align 4
  br label %564

448:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store i64 0, ptr %42, align 8, !tbaa !10
  br label %449

449:                                              ; preds = %507, %448
  %450 = load i64, ptr %42, align 8, !tbaa !10
  %451 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %452 unwind label %455

452:                                              ; preds = %449
  %453 = icmp slt i64 %450, %451
  br i1 %453, label %459, label %454

454:                                              ; preds = %452
  store i32 19, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %560

455:                                              ; preds = %449
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %3, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %4, align 4
  br label %559

459:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 48, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %44) #8
  %460 = load i64, ptr %40, align 8, !tbaa !10
  %461 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %5, i64 noundef %460)
          to label %462 unwind label %510

462:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 48, ptr %45) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %45, ptr noundef @.str.41, i1 noundef zeroext true)
          to label %463 unwind label %514

463:                                              ; preds = %462
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %44, ptr noundef nonnull align 8 dereferenceable(48) %461, ptr noundef nonnull align 8 dereferenceable(48) %45)
          to label %464 unwind label %518

464:                                              ; preds = %463
  %465 = load i64, ptr %42, align 8, !tbaa !10
  %466 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %6, i64 noundef %465)
          to label %467 unwind label %522

467:                                              ; preds = %464
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %43, ptr noundef nonnull align 8 dereferenceable(48) %44, ptr noundef nonnull align 8 dereferenceable(48) %466)
          to label %468 unwind label %522

468:                                              ; preds = %467
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %45) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %47) #8
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %47, ptr noundef @.str.42, ptr noundef nonnull align 8 dereferenceable(48) %43)
          to label %469 unwind label %529

469:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 48, ptr %48) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %48, ptr noundef @.str.43, i1 noundef zeroext true)
          to label %470 unwind label %533

470:                                              ; preds = %469
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %46, ptr noundef nonnull align 8 dereferenceable(48) %47, ptr noundef nonnull align 8 dereferenceable(48) %48)
          to label %471 unwind label %537

471:                                              ; preds = %470
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %46)
          to label %472 unwind label %541

472:                                              ; preds = %471
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %46) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  %473 = load i64, ptr %40, align 8, !tbaa !10
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %473)
          to label %475 unwind label %548

475:                                              ; preds = %472
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %50, ptr align 8 %474, i64 8, i1 false), !tbaa.struct !12
  %476 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %50, i32 0, i32 0
  %477 = load i64, ptr %476, align 8
  invoke void @_ZN2vl8database10LogManager11OpenLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr.36") align 8 %49, ptr noundef nonnull align 8 dereferenceable(304) %11, i64 %477)
          to label %478 unwind label %548

478:                                              ; preds = %475
  %479 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogWriterEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %480 unwind label %552

480:                                              ; preds = %478
  %481 = load ptr, ptr %479, align 8, !tbaa !16
  %482 = getelementptr i8, ptr %481, i64 -56
  %483 = load i64, ptr %482, align 8
  %484 = getelementptr inbounds i8, ptr %479, i64 %483
  %485 = load ptr, ptr %484, align 8, !tbaa !16
  %486 = getelementptr inbounds ptr, ptr %485, i64 3
  %487 = load ptr, ptr %486, align 8
  %488 = invoke noundef nonnull align 8 dereferenceable(8) ptr %487(ptr noundef nonnull align 8 dereferenceable(8) %484)
          to label %489 unwind label %552

489:                                              ; preds = %480
  %490 = invoke noundef ptr @_ZNK2vl12ObjectStringIwE6BufferEv(ptr noundef nonnull align 8 dereferenceable(48) %43)
          to label %491 unwind label %552

491:                                              ; preds = %489
  %492 = invoke noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48) %43)
          to label %493 unwind label %552

493:                                              ; preds = %491
  %494 = mul i64 %492, 4
  %495 = load ptr, ptr %488, align 8, !tbaa !16
  %496 = getelementptr inbounds ptr, ptr %495, i64 15
  %497 = load ptr, ptr %496, align 8
  %498 = invoke noundef i64 %497(ptr noundef nonnull align 8 dereferenceable(8) %488, ptr noundef %490, i64 noundef %494)
          to label %499 unwind label %552

499:                                              ; preds = %493
  %500 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogWriterEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %501 unwind label %552

501:                                              ; preds = %499
  %502 = load ptr, ptr %500, align 8, !tbaa !16
  %503 = getelementptr inbounds ptr, ptr %502, i64 5
  %504 = load ptr, ptr %503, align 8
  %505 = invoke noundef zeroext i1 %504(ptr noundef nonnull align 8 dereferenceable(8) %500)
          to label %506 unwind label %552

506:                                              ; preds = %501
  call void @_ZN2vl3PtrINS_8database10ILogWriterEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #8
  br label %507

507:                                              ; preds = %506
  %508 = load i64, ptr %42, align 8, !tbaa !10
  %509 = add nsw i64 %508, 1
  store i64 %509, ptr %42, align 8, !tbaa !10
  br label %449, !llvm.loop !18

510:                                              ; preds = %459
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %3, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %4, align 4
  br label %528

514:                                              ; preds = %462
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %3, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %4, align 4
  br label %527

518:                                              ; preds = %463
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %3, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %4, align 4
  br label %526

522:                                              ; preds = %467, %464
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %3, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #8
  br label %526

526:                                              ; preds = %522, %518
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %45) #8
  br label %527

527:                                              ; preds = %526, %514
  call void @llvm.lifetime.end.p0(i64 48, ptr %45) #8
  br label %528

528:                                              ; preds = %527, %510
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #8
  br label %558

529:                                              ; preds = %468
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %3, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %4, align 4
  br label %547

533:                                              ; preds = %469
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %3, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %4, align 4
  br label %546

537:                                              ; preds = %470
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %3, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %4, align 4
  br label %545

541:                                              ; preds = %471
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %3, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %46) #8
  br label %545

545:                                              ; preds = %541, %537
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #8
  br label %546

546:                                              ; preds = %545, %533
  call void @llvm.lifetime.end.p0(i64 48, ptr %48) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #8
  br label %547

547:                                              ; preds = %546, %529
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %46) #8
  br label %557

548:                                              ; preds = %475, %472
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %3, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %4, align 4
  br label %556

552:                                              ; preds = %501, %499, %493, %491, %489, %480, %478
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %3, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %4, align 4
  call void @_ZN2vl3PtrINS_8database10ILogWriterEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %556

556:                                              ; preds = %552, %548
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  br label %557

557:                                              ; preds = %556, %547
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #8
  br label %558

558:                                              ; preds = %557, %528
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #8
  br label %559

559:                                              ; preds = %558, %455
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %564

560:                                              ; preds = %454
  br label %561

561:                                              ; preds = %560
  %562 = load i64, ptr %40, align 8, !tbaa !10
  %563 = add nsw i64 %562, 1
  store i64 %563, ptr %40, align 8, !tbaa !10
  br label %438, !llvm.loop !19

564:                                              ; preds = %559, %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %1214

565:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  store i64 0, ptr %51, align 8, !tbaa !10
  br label %566

566:                                              ; preds = %874, %565
  %567 = load i64, ptr %51, align 8, !tbaa !10
  %568 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %569 unwind label %572

569:                                              ; preds = %566
  %570 = icmp slt i64 %567, %568
  br i1 %570, label %576, label %571

571:                                              ; preds = %569
  store i32 22, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %879

572:                                              ; preds = %566
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %3, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %4, align 4
  br label %878

576:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  %577 = load i64, ptr %51, align 8, !tbaa !10
  %578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %577)
          to label %579 unwind label %589

579:                                              ; preds = %576
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %53, ptr align 8 %578, i64 8, i1 false), !tbaa.struct !12
  %580 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %53, i32 0, i32 0
  %581 = load i64, ptr %580, align 8
  invoke void @_ZN2vl8database10LogManager11EnumLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr") align 8 %52, ptr noundef nonnull align 8 dereferenceable(304) %11, i64 %581)
          to label %582 unwind label %589

582:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  store i64 0, ptr %54, align 8, !tbaa !10
  br label %583

583:                                              ; preds = %866, %582
  %584 = load i64, ptr %54, align 8, !tbaa !10
  %585 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %586 unwind label %593

586:                                              ; preds = %583
  %587 = icmp slt i64 %584, %585
  br i1 %587, label %597, label %588

588:                                              ; preds = %586
  store i32 25, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %873

589:                                              ; preds = %579, %576
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %3, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %4, align 4
  br label %877

593:                                              ; preds = %583
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %3, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %4, align 4
  br label %872

597:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 48, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %56) #8
  %598 = load i64, ptr %51, align 8, !tbaa !10
  %599 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %5, i64 noundef %598)
          to label %600 unwind label %629

600:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 48, ptr %57) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %57, ptr noundef @.str.41, i1 noundef zeroext true)
          to label %601 unwind label %633

601:                                              ; preds = %600
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %56, ptr noundef nonnull align 8 dereferenceable(48) %599, ptr noundef nonnull align 8 dereferenceable(48) %57)
          to label %602 unwind label %637

602:                                              ; preds = %601
  %603 = load i64, ptr %54, align 8, !tbaa !10
  %604 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %6, i64 noundef %603)
          to label %605 unwind label %641

605:                                              ; preds = %602
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %55, ptr noundef nonnull align 8 dereferenceable(48) %56, ptr noundef nonnull align 8 dereferenceable(48) %604)
          to label %606 unwind label %641

606:                                              ; preds = %605
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %56) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %57) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %59) #8
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %59, ptr noundef @.str.44, ptr noundef nonnull align 8 dereferenceable(48) %55)
          to label %607 unwind label %648

607:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 48, ptr %60) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef @.str.43, i1 noundef zeroext true)
          to label %608 unwind label %652

608:                                              ; preds = %607
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %58, ptr noundef nonnull align 8 dereferenceable(48) %59, ptr noundef nonnull align 8 dereferenceable(48) %60)
          to label %609 unwind label %656

609:                                              ; preds = %608
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %58)
          to label %610 unwind label %660

610:                                              ; preds = %609
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %60) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %59) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 4096, ptr %61) #8
  call void @llvm.memset.p0.i64(ptr align 16 %61, i8 0, i64 4096, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  %611 = invoke noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48) %55)
          to label %612 unwind label %667

612:                                              ; preds = %610
  %613 = mul i64 %611, 4
  store i64 %613, ptr %62, align 8, !tbaa !10
  br label %614

614:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 48, ptr %63) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %63, ptr noundef @.str.19, i1 noundef zeroext true)
          to label %615 unwind label %671

615:                                              ; preds = %614
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %63)
          to label %616 unwind label %675

616:                                              ; preds = %615
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %63) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %63) #8
  %617 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %618 unwind label %667

618:                                              ; preds = %616
  %619 = load ptr, ptr %617, align 8, !tbaa !16
  %620 = getelementptr inbounds ptr, ptr %619, i64 4
  %621 = load ptr, ptr %620, align 8
  %622 = invoke noundef zeroext i1 %621(ptr noundef nonnull align 8 dereferenceable(8) %617)
          to label %623 unwind label %667

623:                                              ; preds = %618
  %624 = zext i1 %622 to i32
  %625 = icmp eq i32 %624, 1
  br i1 %625, label %626, label %689

626:                                              ; preds = %623
  call void @llvm.lifetime.start.p0(i64 48, ptr %64) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %64, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %627 unwind label %680

627:                                              ; preds = %626
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %64)
          to label %628 unwind label %684

628:                                              ; preds = %627
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %64) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %64) #8
  br label %702

629:                                              ; preds = %597
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %3, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %4, align 4
  br label %647

633:                                              ; preds = %600
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %3, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %4, align 4
  br label %646

637:                                              ; preds = %601
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %3, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %4, align 4
  br label %645

641:                                              ; preds = %605, %602
  %642 = landingpad { ptr, i32 }
          cleanup
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %3, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %56) #8
  br label %645

645:                                              ; preds = %641, %637
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %57) #8
  br label %646

646:                                              ; preds = %645, %633
  call void @llvm.lifetime.end.p0(i64 48, ptr %57) #8
  br label %647

647:                                              ; preds = %646, %629
  call void @llvm.lifetime.end.p0(i64 48, ptr %56) #8
  br label %871

648:                                              ; preds = %606
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %3, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %4, align 4
  br label %666

652:                                              ; preds = %607
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %3, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %4, align 4
  br label %665

656:                                              ; preds = %608
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %3, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %4, align 4
  br label %664

660:                                              ; preds = %609
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %3, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #8
  br label %664

664:                                              ; preds = %660, %656
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #8
  br label %665

665:                                              ; preds = %664, %652
  call void @llvm.lifetime.end.p0(i64 48, ptr %60) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %59) #8
  br label %666

666:                                              ; preds = %665, %648
  call void @llvm.lifetime.end.p0(i64 48, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %58) #8
  br label %870

667:                                              ; preds = %852, %825, %809, %776, %767, %765, %749, %718, %709, %707, %691, %618, %616, %610
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %3, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %4, align 4
  br label %869

671:                                              ; preds = %614
  %672 = landingpad { ptr, i32 }
          cleanup
  %673 = extractvalue { ptr, i32 } %672, 0
  store ptr %673, ptr %3, align 8
  %674 = extractvalue { ptr, i32 } %672, 1
  store i32 %674, ptr %4, align 4
  br label %679

675:                                              ; preds = %615
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %3, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %63) #8
  br label %679

679:                                              ; preds = %675, %671
  call void @llvm.lifetime.end.p0(i64 48, ptr %63) #8
  br label %869

680:                                              ; preds = %626
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %3, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %4, align 4
  br label %688

684:                                              ; preds = %627
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %3, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %64) #8
  br label %688

688:                                              ; preds = %684, %680
  call void @llvm.lifetime.end.p0(i64 48, ptr %64) #8
  br label %869

689:                                              ; preds = %623
  call void @llvm.lifetime.start.p0(i64 48, ptr %65) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %65, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %690 unwind label %693

690:                                              ; preds = %689
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %65)
          to label %691 unwind label %697

691:                                              ; preds = %690
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %65) #8
  %692 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %692, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %692, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %667

693:                                              ; preds = %689
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %3, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %4, align 4
  br label %701

697:                                              ; preds = %690
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %3, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #8
  br label %701

701:                                              ; preds = %697, %693
  call void @llvm.lifetime.end.p0(i64 48, ptr %65) #8
  br label %869

702:                                              ; preds = %628
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 48, ptr %66) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %66, ptr noundef @.str.45, i1 noundef zeroext true)
          to label %706 unwind label %729

706:                                              ; preds = %705
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %66)
          to label %707 unwind label %733

707:                                              ; preds = %706
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %66) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %66) #8
  %708 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %709 unwind label %667

709:                                              ; preds = %707
  %710 = load ptr, ptr %708, align 8, !tbaa !16
  %711 = getelementptr i8, ptr %710, i64 -56
  %712 = load i64, ptr %711, align 8
  %713 = getelementptr inbounds i8, ptr %708, i64 %712
  %714 = load ptr, ptr %713, align 8, !tbaa !16
  %715 = getelementptr inbounds ptr, ptr %714, i64 3
  %716 = load ptr, ptr %715, align 8
  %717 = invoke noundef nonnull align 8 dereferenceable(8) ptr %716(ptr noundef nonnull align 8 dereferenceable(8) %713)
          to label %718 unwind label %667

718:                                              ; preds = %709
  %719 = load ptr, ptr %717, align 8, !tbaa !16
  %720 = getelementptr inbounds ptr, ptr %719, i64 10
  %721 = load ptr, ptr %720, align 8
  %722 = invoke noundef i64 %721(ptr noundef nonnull align 8 dereferenceable(8) %717)
          to label %723 unwind label %667

723:                                              ; preds = %718
  %724 = load i64, ptr %62, align 8, !tbaa !10
  %725 = icmp eq i64 %722, %724
  br i1 %725, label %726, label %747

726:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 48, ptr %67) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %67, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %727 unwind label %738

727:                                              ; preds = %726
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %67)
          to label %728 unwind label %742

728:                                              ; preds = %727
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %67) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %67) #8
  br label %760

729:                                              ; preds = %705
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %3, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %4, align 4
  br label %737

733:                                              ; preds = %706
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %3, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %66) #8
  br label %737

737:                                              ; preds = %733, %729
  call void @llvm.lifetime.end.p0(i64 48, ptr %66) #8
  br label %869

738:                                              ; preds = %726
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %3, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %4, align 4
  br label %746

742:                                              ; preds = %727
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %3, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %67) #8
  br label %746

746:                                              ; preds = %742, %738
  call void @llvm.lifetime.end.p0(i64 48, ptr %67) #8
  br label %869

747:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 48, ptr %68) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %68, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %748 unwind label %751

748:                                              ; preds = %747
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %68)
          to label %749 unwind label %755

749:                                              ; preds = %748
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %68) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %68) #8
  %750 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %750, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %750, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %667

751:                                              ; preds = %747
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %3, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %4, align 4
  br label %759

755:                                              ; preds = %748
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %3, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %68) #8
  br label %759

759:                                              ; preds = %755, %751
  call void @llvm.lifetime.end.p0(i64 48, ptr %68) #8
  br label %869

760:                                              ; preds = %728
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 48, ptr %69) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %69, ptr noundef @.str.46, i1 noundef zeroext true)
          to label %764 unwind label %789

764:                                              ; preds = %763
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %69)
          to label %765 unwind label %793

765:                                              ; preds = %764
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %69) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %69) #8
  %766 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %767 unwind label %667

767:                                              ; preds = %765
  %768 = load ptr, ptr %766, align 8, !tbaa !16
  %769 = getelementptr i8, ptr %768, i64 -56
  %770 = load i64, ptr %769, align 8
  %771 = getelementptr inbounds i8, ptr %766, i64 %770
  %772 = load ptr, ptr %771, align 8, !tbaa !16
  %773 = getelementptr inbounds ptr, ptr %772, i64 3
  %774 = load ptr, ptr %773, align 8
  %775 = invoke noundef nonnull align 8 dereferenceable(8) ptr %774(ptr noundef nonnull align 8 dereferenceable(8) %771)
          to label %776 unwind label %667

776:                                              ; preds = %767
  %777 = getelementptr inbounds [1024 x i32], ptr %61, i64 0, i64 0
  %778 = load i64, ptr %62, align 8, !tbaa !10
  %779 = load ptr, ptr %775, align 8, !tbaa !16
  %780 = getelementptr inbounds ptr, ptr %779, i64 14
  %781 = load ptr, ptr %780, align 8
  %782 = invoke noundef i64 %781(ptr noundef nonnull align 8 dereferenceable(8) %775, ptr noundef %777, i64 noundef %778)
          to label %783 unwind label %667

783:                                              ; preds = %776
  %784 = load i64, ptr %62, align 8, !tbaa !10
  %785 = icmp eq i64 %782, %784
  br i1 %785, label %786, label %807

786:                                              ; preds = %783
  call void @llvm.lifetime.start.p0(i64 48, ptr %70) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %70, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %787 unwind label %798

787:                                              ; preds = %786
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %70)
          to label %788 unwind label %802

788:                                              ; preds = %787
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #8
  br label %820

789:                                              ; preds = %763
  %790 = landingpad { ptr, i32 }
          cleanup
  %791 = extractvalue { ptr, i32 } %790, 0
  store ptr %791, ptr %3, align 8
  %792 = extractvalue { ptr, i32 } %790, 1
  store i32 %792, ptr %4, align 4
  br label %797

793:                                              ; preds = %764
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %3, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %69) #8
  br label %797

797:                                              ; preds = %793, %789
  call void @llvm.lifetime.end.p0(i64 48, ptr %69) #8
  br label %869

798:                                              ; preds = %786
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %3, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %4, align 4
  br label %806

802:                                              ; preds = %787
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %3, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #8
  br label %806

806:                                              ; preds = %802, %798
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #8
  br label %869

807:                                              ; preds = %783
  call void @llvm.lifetime.start.p0(i64 48, ptr %71) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %71, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %808 unwind label %811

808:                                              ; preds = %807
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %71)
          to label %809 unwind label %815

809:                                              ; preds = %808
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %71) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %71) #8
  %810 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %810, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %810, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %667

811:                                              ; preds = %807
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %3, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %4, align 4
  br label %819

815:                                              ; preds = %808
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %3, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %71) #8
  br label %819

819:                                              ; preds = %815, %811
  call void @llvm.lifetime.end.p0(i64 48, ptr %71) #8
  br label %869

820:                                              ; preds = %788
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 48, ptr %72) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %72, ptr noundef @.str.47, i1 noundef zeroext true)
          to label %824 unwind label %832

824:                                              ; preds = %823
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %72)
          to label %825 unwind label %836

825:                                              ; preds = %824
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %72) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %72) #8
  %826 = getelementptr inbounds [1024 x i32], ptr %61, i64 0, i64 0
  %827 = invoke noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48) %55, ptr noundef %826)
          to label %828 unwind label %667

828:                                              ; preds = %825
  br i1 %827, label %829, label %850

829:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 48, ptr %73) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %830 unwind label %841

830:                                              ; preds = %829
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %73)
          to label %831 unwind label %845

831:                                              ; preds = %830
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %73) #8
  br label %863

832:                                              ; preds = %823
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %3, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %4, align 4
  br label %840

836:                                              ; preds = %824
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %3, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %72) #8
  br label %840

840:                                              ; preds = %836, %832
  call void @llvm.lifetime.end.p0(i64 48, ptr %72) #8
  br label %869

841:                                              ; preds = %829
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %3, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %4, align 4
  br label %849

845:                                              ; preds = %830
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %3, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #8
  br label %849

849:                                              ; preds = %845, %841
  call void @llvm.lifetime.end.p0(i64 48, ptr %73) #8
  br label %869

850:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 48, ptr %74) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %74, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %851 unwind label %854

851:                                              ; preds = %850
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %74)
          to label %852 unwind label %858

852:                                              ; preds = %851
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %74) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %74) #8
  %853 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %853, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %853, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %667

854:                                              ; preds = %850
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %3, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %4, align 4
  br label %862

858:                                              ; preds = %851
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %3, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %74) #8
  br label %862

862:                                              ; preds = %858, %854
  call void @llvm.lifetime.end.p0(i64 48, ptr %74) #8
  br label %869

863:                                              ; preds = %831
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4096, ptr %61) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %55) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %55) #8
  br label %866

866:                                              ; preds = %865
  %867 = load i64, ptr %54, align 8, !tbaa !10
  %868 = add nsw i64 %867, 1
  store i64 %868, ptr %54, align 8, !tbaa !10
  br label %583, !llvm.loop !20

869:                                              ; preds = %862, %849, %840, %819, %806, %797, %759, %746, %737, %701, %688, %679, %667
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4096, ptr %61) #8
  br label %870

870:                                              ; preds = %869, %666
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %55) #8
  br label %871

871:                                              ; preds = %870, %647
  call void @llvm.lifetime.end.p0(i64 48, ptr %55) #8
  br label %872

872:                                              ; preds = %871, %593
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %877

873:                                              ; preds = %588
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %874

874:                                              ; preds = %873
  %875 = load i64, ptr %51, align 8, !tbaa !10
  %876 = add nsw i64 %875, 1
  store i64 %876, ptr %51, align 8, !tbaa !10
  br label %566, !llvm.loop !21

877:                                              ; preds = %872, %589
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %878

878:                                              ; preds = %877, %572
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %1214

879:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  store i64 0, ptr %75, align 8, !tbaa !10
  br label %880

880:                                              ; preds = %892, %879
  %881 = load i64, ptr %75, align 8, !tbaa !10
  %882 = icmp slt i64 %881, 20
  br i1 %882, label %884, label %883

883:                                              ; preds = %880
  store i32 36, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %899

884:                                              ; preds = %880
  %885 = load i64, ptr %75, align 8, !tbaa !10
  %886 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %885)
          to label %887 unwind label %895

887:                                              ; preds = %884
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %76, ptr align 8 %886, i64 8, i1 false), !tbaa.struct !12
  %888 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %76, i32 0, i32 0
  %889 = load i64, ptr %888, align 8
  %890 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %11, i64 %889)
          to label %891 unwind label %895

891:                                              ; preds = %887
  br label %892

892:                                              ; preds = %891
  %893 = load i64, ptr %75, align 8, !tbaa !10
  %894 = add nsw i64 %893, 1
  store i64 %894, ptr %75, align 8, !tbaa !10
  br label %880, !llvm.loop !22

895:                                              ; preds = %887, %884
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %3, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  br label %1214

899:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  store i64 0, ptr %77, align 8, !tbaa !10
  br label %900

900:                                              ; preds = %1208, %899
  %901 = load i64, ptr %77, align 8, !tbaa !10
  %902 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %903 unwind label %906

903:                                              ; preds = %900
  %904 = icmp slt i64 %901, %902
  br i1 %904, label %910, label %905

905:                                              ; preds = %903
  store i32 39, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %1213

906:                                              ; preds = %900
  %907 = landingpad { ptr, i32 }
          cleanup
  %908 = extractvalue { ptr, i32 } %907, 0
  store ptr %908, ptr %3, align 8
  %909 = extractvalue { ptr, i32 } %907, 1
  store i32 %909, ptr %4, align 4
  br label %1212

910:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  %911 = load i64, ptr %77, align 8, !tbaa !10
  %912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %911)
          to label %913 unwind label %923

913:                                              ; preds = %910
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %79, ptr align 8 %912, i64 8, i1 false), !tbaa.struct !12
  %914 = getelementptr inbounds %"struct.vl::database::IdObject.35", ptr %79, i32 0, i32 0
  %915 = load i64, ptr %914, align 8
  invoke void @_ZN2vl8database10LogManager19EnumInactiveLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr") align 8 %78, ptr noundef nonnull align 8 dereferenceable(304) %11, i64 %915)
          to label %916 unwind label %923

916:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  store i64 0, ptr %80, align 8, !tbaa !10
  br label %917

917:                                              ; preds = %1200, %916
  %918 = load i64, ptr %80, align 8, !tbaa !10
  %919 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %920 unwind label %927

920:                                              ; preds = %917
  %921 = icmp slt i64 %918, %919
  br i1 %921, label %931, label %922

922:                                              ; preds = %920
  store i32 42, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  br label %1207

923:                                              ; preds = %913, %910
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %3, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %4, align 4
  br label %1211

927:                                              ; preds = %917
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %3, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %4, align 4
  br label %1206

931:                                              ; preds = %920
  call void @llvm.lifetime.start.p0(i64 48, ptr %81) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %82) #8
  %932 = load i64, ptr %77, align 8, !tbaa !10
  %933 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %5, i64 noundef %932)
          to label %934 unwind label %963

934:                                              ; preds = %931
  call void @llvm.lifetime.start.p0(i64 48, ptr %83) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef @.str.41, i1 noundef zeroext true)
          to label %935 unwind label %967

935:                                              ; preds = %934
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %82, ptr noundef nonnull align 8 dereferenceable(48) %933, ptr noundef nonnull align 8 dereferenceable(48) %83)
          to label %936 unwind label %971

936:                                              ; preds = %935
  %937 = load i64, ptr %80, align 8, !tbaa !10
  %938 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %6, i64 noundef %937)
          to label %939 unwind label %975

939:                                              ; preds = %936
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %81, ptr noundef nonnull align 8 dereferenceable(48) %82, ptr noundef nonnull align 8 dereferenceable(48) %938)
          to label %940 unwind label %975

940:                                              ; preds = %939
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %82) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %83) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %82) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %85) #8
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %85, ptr noundef @.str.44, ptr noundef nonnull align 8 dereferenceable(48) %81)
          to label %941 unwind label %982

941:                                              ; preds = %940
  call void @llvm.lifetime.start.p0(i64 48, ptr %86) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %86, ptr noundef @.str.43, i1 noundef zeroext true)
          to label %942 unwind label %986

942:                                              ; preds = %941
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %84, ptr noundef nonnull align 8 dereferenceable(48) %85, ptr noundef nonnull align 8 dereferenceable(48) %86)
          to label %943 unwind label %990

943:                                              ; preds = %942
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %84)
          to label %944 unwind label %994

944:                                              ; preds = %943
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %84) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %86) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %86) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %85) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 4096, ptr %87) #8
  call void @llvm.memset.p0.i64(ptr align 16 %87, i8 0, i64 4096, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  %945 = invoke noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48) %81)
          to label %946 unwind label %1001

946:                                              ; preds = %944
  %947 = mul i64 %945, 4
  store i64 %947, ptr %88, align 8, !tbaa !10
  br label %948

948:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 48, ptr %89) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %89, ptr noundef @.str.19, i1 noundef zeroext true)
          to label %949 unwind label %1005

949:                                              ; preds = %948
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %89)
          to label %950 unwind label %1009

950:                                              ; preds = %949
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %89) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %89) #8
  %951 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %952 unwind label %1001

952:                                              ; preds = %950
  %953 = load ptr, ptr %951, align 8, !tbaa !16
  %954 = getelementptr inbounds ptr, ptr %953, i64 4
  %955 = load ptr, ptr %954, align 8
  %956 = invoke noundef zeroext i1 %955(ptr noundef nonnull align 8 dereferenceable(8) %951)
          to label %957 unwind label %1001

957:                                              ; preds = %952
  %958 = zext i1 %956 to i32
  %959 = icmp eq i32 %958, 1
  br i1 %959, label %960, label %1023

960:                                              ; preds = %957
  call void @llvm.lifetime.start.p0(i64 48, ptr %90) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %90, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %961 unwind label %1014

961:                                              ; preds = %960
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %90)
          to label %962 unwind label %1018

962:                                              ; preds = %961
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %90) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %90) #8
  br label %1036

963:                                              ; preds = %931
  %964 = landingpad { ptr, i32 }
          cleanup
  %965 = extractvalue { ptr, i32 } %964, 0
  store ptr %965, ptr %3, align 8
  %966 = extractvalue { ptr, i32 } %964, 1
  store i32 %966, ptr %4, align 4
  br label %981

967:                                              ; preds = %934
  %968 = landingpad { ptr, i32 }
          cleanup
  %969 = extractvalue { ptr, i32 } %968, 0
  store ptr %969, ptr %3, align 8
  %970 = extractvalue { ptr, i32 } %968, 1
  store i32 %970, ptr %4, align 4
  br label %980

971:                                              ; preds = %935
  %972 = landingpad { ptr, i32 }
          cleanup
  %973 = extractvalue { ptr, i32 } %972, 0
  store ptr %973, ptr %3, align 8
  %974 = extractvalue { ptr, i32 } %972, 1
  store i32 %974, ptr %4, align 4
  br label %979

975:                                              ; preds = %939, %936
  %976 = landingpad { ptr, i32 }
          cleanup
  %977 = extractvalue { ptr, i32 } %976, 0
  store ptr %977, ptr %3, align 8
  %978 = extractvalue { ptr, i32 } %976, 1
  store i32 %978, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %82) #8
  br label %979

979:                                              ; preds = %975, %971
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %83) #8
  br label %980

980:                                              ; preds = %979, %967
  call void @llvm.lifetime.end.p0(i64 48, ptr %83) #8
  br label %981

981:                                              ; preds = %980, %963
  call void @llvm.lifetime.end.p0(i64 48, ptr %82) #8
  br label %1205

982:                                              ; preds = %940
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %3, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %4, align 4
  br label %1000

986:                                              ; preds = %941
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %3, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %4, align 4
  br label %999

990:                                              ; preds = %942
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %3, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %4, align 4
  br label %998

994:                                              ; preds = %943
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %3, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %84) #8
  br label %998

998:                                              ; preds = %994, %990
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %86) #8
  br label %999

999:                                              ; preds = %998, %986
  call void @llvm.lifetime.end.p0(i64 48, ptr %86) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %85) #8
  br label %1000

1000:                                             ; preds = %999, %982
  call void @llvm.lifetime.end.p0(i64 48, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %84) #8
  br label %1204

1001:                                             ; preds = %1186, %1159, %1143, %1110, %1101, %1099, %1083, %1052, %1043, %1041, %1025, %952, %950, %944
  %1002 = landingpad { ptr, i32 }
          cleanup
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %3, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %4, align 4
  br label %1203

1005:                                             ; preds = %948
  %1006 = landingpad { ptr, i32 }
          cleanup
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %3, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %4, align 4
  br label %1013

1009:                                             ; preds = %949
  %1010 = landingpad { ptr, i32 }
          cleanup
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %3, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %89) #8
  br label %1013

1013:                                             ; preds = %1009, %1005
  call void @llvm.lifetime.end.p0(i64 48, ptr %89) #8
  br label %1203

1014:                                             ; preds = %960
  %1015 = landingpad { ptr, i32 }
          cleanup
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %3, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %4, align 4
  br label %1022

1018:                                             ; preds = %961
  %1019 = landingpad { ptr, i32 }
          cleanup
  %1020 = extractvalue { ptr, i32 } %1019, 0
  store ptr %1020, ptr %3, align 8
  %1021 = extractvalue { ptr, i32 } %1019, 1
  store i32 %1021, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %90) #8
  br label %1022

1022:                                             ; preds = %1018, %1014
  call void @llvm.lifetime.end.p0(i64 48, ptr %90) #8
  br label %1203

1023:                                             ; preds = %957
  call void @llvm.lifetime.start.p0(i64 48, ptr %91) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %91, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %1024 unwind label %1027

1024:                                             ; preds = %1023
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %91)
          to label %1025 unwind label %1031

1025:                                             ; preds = %1024
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %91) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %91) #8
  %1026 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %1026, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %1026, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %1001

1027:                                             ; preds = %1023
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %3, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %4, align 4
  br label %1035

1031:                                             ; preds = %1024
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %3, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %91) #8
  br label %1035

1035:                                             ; preds = %1031, %1027
  call void @llvm.lifetime.end.p0(i64 48, ptr %91) #8
  br label %1203

1036:                                             ; preds = %962
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  call void @llvm.lifetime.start.p0(i64 48, ptr %92) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %92, ptr noundef @.str.45, i1 noundef zeroext true)
          to label %1040 unwind label %1063

1040:                                             ; preds = %1039
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %92)
          to label %1041 unwind label %1067

1041:                                             ; preds = %1040
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %92) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %92) #8
  %1042 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1043 unwind label %1001

1043:                                             ; preds = %1041
  %1044 = load ptr, ptr %1042, align 8, !tbaa !16
  %1045 = getelementptr i8, ptr %1044, i64 -56
  %1046 = load i64, ptr %1045, align 8
  %1047 = getelementptr inbounds i8, ptr %1042, i64 %1046
  %1048 = load ptr, ptr %1047, align 8, !tbaa !16
  %1049 = getelementptr inbounds ptr, ptr %1048, i64 3
  %1050 = load ptr, ptr %1049, align 8
  %1051 = invoke noundef nonnull align 8 dereferenceable(8) ptr %1050(ptr noundef nonnull align 8 dereferenceable(8) %1047)
          to label %1052 unwind label %1001

1052:                                             ; preds = %1043
  %1053 = load ptr, ptr %1051, align 8, !tbaa !16
  %1054 = getelementptr inbounds ptr, ptr %1053, i64 10
  %1055 = load ptr, ptr %1054, align 8
  %1056 = invoke noundef i64 %1055(ptr noundef nonnull align 8 dereferenceable(8) %1051)
          to label %1057 unwind label %1001

1057:                                             ; preds = %1052
  %1058 = load i64, ptr %88, align 8, !tbaa !10
  %1059 = icmp eq i64 %1056, %1058
  br i1 %1059, label %1060, label %1081

1060:                                             ; preds = %1057
  call void @llvm.lifetime.start.p0(i64 48, ptr %93) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %93, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %1061 unwind label %1072

1061:                                             ; preds = %1060
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %93)
          to label %1062 unwind label %1076

1062:                                             ; preds = %1061
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %93) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %93) #8
  br label %1094

1063:                                             ; preds = %1039
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %3, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %4, align 4
  br label %1071

1067:                                             ; preds = %1040
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %3, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %92) #8
  br label %1071

1071:                                             ; preds = %1067, %1063
  call void @llvm.lifetime.end.p0(i64 48, ptr %92) #8
  br label %1203

1072:                                             ; preds = %1060
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %3, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %4, align 4
  br label %1080

1076:                                             ; preds = %1061
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %3, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %93) #8
  br label %1080

1080:                                             ; preds = %1076, %1072
  call void @llvm.lifetime.end.p0(i64 48, ptr %93) #8
  br label %1203

1081:                                             ; preds = %1057
  call void @llvm.lifetime.start.p0(i64 48, ptr %94) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %94, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %1082 unwind label %1085

1082:                                             ; preds = %1081
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %94)
          to label %1083 unwind label %1089

1083:                                             ; preds = %1082
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %94) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %94) #8
  %1084 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %1084, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %1084, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %1001

1085:                                             ; preds = %1081
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %3, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %4, align 4
  br label %1093

1089:                                             ; preds = %1082
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %3, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %94) #8
  br label %1093

1093:                                             ; preds = %1089, %1085
  call void @llvm.lifetime.end.p0(i64 48, ptr %94) #8
  br label %1203

1094:                                             ; preds = %1062
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  call void @llvm.lifetime.start.p0(i64 48, ptr %95) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %95, ptr noundef @.str.46, i1 noundef zeroext true)
          to label %1098 unwind label %1123

1098:                                             ; preds = %1097
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %95)
          to label %1099 unwind label %1127

1099:                                             ; preds = %1098
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %95) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %95) #8
  %1100 = invoke noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1101 unwind label %1001

1101:                                             ; preds = %1099
  %1102 = load ptr, ptr %1100, align 8, !tbaa !16
  %1103 = getelementptr i8, ptr %1102, i64 -56
  %1104 = load i64, ptr %1103, align 8
  %1105 = getelementptr inbounds i8, ptr %1100, i64 %1104
  %1106 = load ptr, ptr %1105, align 8, !tbaa !16
  %1107 = getelementptr inbounds ptr, ptr %1106, i64 3
  %1108 = load ptr, ptr %1107, align 8
  %1109 = invoke noundef nonnull align 8 dereferenceable(8) ptr %1108(ptr noundef nonnull align 8 dereferenceable(8) %1105)
          to label %1110 unwind label %1001

1110:                                             ; preds = %1101
  %1111 = getelementptr inbounds [1024 x i32], ptr %87, i64 0, i64 0
  %1112 = load i64, ptr %88, align 8, !tbaa !10
  %1113 = load ptr, ptr %1109, align 8, !tbaa !16
  %1114 = getelementptr inbounds ptr, ptr %1113, i64 14
  %1115 = load ptr, ptr %1114, align 8
  %1116 = invoke noundef i64 %1115(ptr noundef nonnull align 8 dereferenceable(8) %1109, ptr noundef %1111, i64 noundef %1112)
          to label %1117 unwind label %1001

1117:                                             ; preds = %1110
  %1118 = load i64, ptr %88, align 8, !tbaa !10
  %1119 = icmp eq i64 %1116, %1118
  br i1 %1119, label %1120, label %1141

1120:                                             ; preds = %1117
  call void @llvm.lifetime.start.p0(i64 48, ptr %96) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %96, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %1121 unwind label %1132

1121:                                             ; preds = %1120
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %96)
          to label %1122 unwind label %1136

1122:                                             ; preds = %1121
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %96) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %96) #8
  br label %1154

1123:                                             ; preds = %1097
  %1124 = landingpad { ptr, i32 }
          cleanup
  %1125 = extractvalue { ptr, i32 } %1124, 0
  store ptr %1125, ptr %3, align 8
  %1126 = extractvalue { ptr, i32 } %1124, 1
  store i32 %1126, ptr %4, align 4
  br label %1131

1127:                                             ; preds = %1098
  %1128 = landingpad { ptr, i32 }
          cleanup
  %1129 = extractvalue { ptr, i32 } %1128, 0
  store ptr %1129, ptr %3, align 8
  %1130 = extractvalue { ptr, i32 } %1128, 1
  store i32 %1130, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %95) #8
  br label %1131

1131:                                             ; preds = %1127, %1123
  call void @llvm.lifetime.end.p0(i64 48, ptr %95) #8
  br label %1203

1132:                                             ; preds = %1120
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %3, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %4, align 4
  br label %1140

1136:                                             ; preds = %1121
  %1137 = landingpad { ptr, i32 }
          cleanup
  %1138 = extractvalue { ptr, i32 } %1137, 0
  store ptr %1138, ptr %3, align 8
  %1139 = extractvalue { ptr, i32 } %1137, 1
  store i32 %1139, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %96) #8
  br label %1140

1140:                                             ; preds = %1136, %1132
  call void @llvm.lifetime.end.p0(i64 48, ptr %96) #8
  br label %1203

1141:                                             ; preds = %1117
  call void @llvm.lifetime.start.p0(i64 48, ptr %97) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %97, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %1142 unwind label %1145

1142:                                             ; preds = %1141
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %97)
          to label %1143 unwind label %1149

1143:                                             ; preds = %1142
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %97) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %97) #8
  %1144 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %1144, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %1144, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %1001

1145:                                             ; preds = %1141
  %1146 = landingpad { ptr, i32 }
          cleanup
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %3, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %4, align 4
  br label %1153

1149:                                             ; preds = %1142
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %3, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %97) #8
  br label %1153

1153:                                             ; preds = %1149, %1145
  call void @llvm.lifetime.end.p0(i64 48, ptr %97) #8
  br label %1203

1154:                                             ; preds = %1122
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

1157:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 48, ptr %98) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %98, ptr noundef @.str.47, i1 noundef zeroext true)
          to label %1158 unwind label %1166

1158:                                             ; preds = %1157
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %98)
          to label %1159 unwind label %1170

1159:                                             ; preds = %1158
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %98) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %98) #8
  %1160 = getelementptr inbounds [1024 x i32], ptr %87, i64 0, i64 0
  %1161 = invoke noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48) %81, ptr noundef %1160)
          to label %1162 unwind label %1001

1162:                                             ; preds = %1159
  br i1 %1161, label %1163, label %1184

1163:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 48, ptr %99) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %99, ptr noundef @.str.2, i1 noundef zeroext true)
          to label %1164 unwind label %1175

1164:                                             ; preds = %1163
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %99)
          to label %1165 unwind label %1179

1165:                                             ; preds = %1164
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %99) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %99) #8
  br label %1197

1166:                                             ; preds = %1157
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %3, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %4, align 4
  br label %1174

1170:                                             ; preds = %1158
  %1171 = landingpad { ptr, i32 }
          cleanup
  %1172 = extractvalue { ptr, i32 } %1171, 0
  store ptr %1172, ptr %3, align 8
  %1173 = extractvalue { ptr, i32 } %1171, 1
  store i32 %1173, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %98) #8
  br label %1174

1174:                                             ; preds = %1170, %1166
  call void @llvm.lifetime.end.p0(i64 48, ptr %98) #8
  br label %1203

1175:                                             ; preds = %1163
  %1176 = landingpad { ptr, i32 }
          cleanup
  %1177 = extractvalue { ptr, i32 } %1176, 0
  store ptr %1177, ptr %3, align 8
  %1178 = extractvalue { ptr, i32 } %1176, 1
  store i32 %1178, ptr %4, align 4
  br label %1183

1179:                                             ; preds = %1164
  %1180 = landingpad { ptr, i32 }
          cleanup
  %1181 = extractvalue { ptr, i32 } %1180, 0
  store ptr %1181, ptr %3, align 8
  %1182 = extractvalue { ptr, i32 } %1180, 1
  store i32 %1182, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %99) #8
  br label %1183

1183:                                             ; preds = %1179, %1175
  call void @llvm.lifetime.end.p0(i64 48, ptr %99) #8
  br label %1203

1184:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 48, ptr %100) #8
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %100, ptr noundef @.str.3, i1 noundef zeroext true)
          to label %1185 unwind label %1188

1185:                                             ; preds = %1184
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %100)
          to label %1186 unwind label %1192

1186:                                             ; preds = %1185
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %100) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %100) #8
  %1187 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 0, ptr %1187, align 16, !tbaa !6
  invoke void @__cxa_throw(ptr %1187, ptr @_ZTIi, ptr null) #9
          to label %1225 unwind label %1001

1188:                                             ; preds = %1184
  %1189 = landingpad { ptr, i32 }
          cleanup
  %1190 = extractvalue { ptr, i32 } %1189, 0
  store ptr %1190, ptr %3, align 8
  %1191 = extractvalue { ptr, i32 } %1189, 1
  store i32 %1191, ptr %4, align 4
  br label %1196

1192:                                             ; preds = %1185
  %1193 = landingpad { ptr, i32 }
          cleanup
  %1194 = extractvalue { ptr, i32 } %1193, 0
  store ptr %1194, ptr %3, align 8
  %1195 = extractvalue { ptr, i32 } %1193, 1
  store i32 %1195, ptr %4, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %100) #8
  br label %1196

1196:                                             ; preds = %1192, %1188
  call void @llvm.lifetime.end.p0(i64 48, ptr %100) #8
  br label %1203

1197:                                             ; preds = %1165
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

1199:                                             ; preds = %1198
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4096, ptr %87) #8
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %81) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %81) #8
  br label %1200

1200:                                             ; preds = %1199
  %1201 = load i64, ptr %80, align 8, !tbaa !10
  %1202 = add nsw i64 %1201, 1
  store i64 %1202, ptr %80, align 8, !tbaa !10
  br label %917, !llvm.loop !23

1203:                                             ; preds = %1196, %1183, %1174, %1153, %1140, %1131, %1093, %1080, %1071, %1035, %1022, %1013, %1001
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4096, ptr %87) #8
  br label %1204

1204:                                             ; preds = %1203, %1000
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %81) #8
  br label %1205

1205:                                             ; preds = %1204, %981
  call void @llvm.lifetime.end.p0(i64 48, ptr %81) #8
  br label %1206

1206:                                             ; preds = %1205, %927
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %1211

1207:                                             ; preds = %922
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %1208

1208:                                             ; preds = %1207
  %1209 = load i64, ptr %77, align 8, !tbaa !10
  %1210 = add nsw i64 %1209, 1
  store i64 %1210, ptr %77, align 8, !tbaa !10
  br label %900, !llvm.loop !24

1211:                                             ; preds = %1206, %923
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %1212

1212:                                             ; preds = %1211, %906
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %1214

1213:                                             ; preds = %905
  call void @_ZN2vl8database10LogManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(304) %11) #8
  call void @llvm.lifetime.end.p0(i64 304, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %6) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %6) #8
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %5) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %5) #8
  call void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %2) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %2) #8
  call void @_ZN2vl8database13BufferManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(168) %1) #8
  call void @llvm.lifetime.end.p0(i64 168, ptr %1) #8
  ret void

1214:                                             ; preds = %1212, %895, %878, %564, %436, %395, %245, %232, %220, %219, %191, %178, %166, %165
  call void @_ZN2vl8database10LogManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(304) %11) #8
  br label %1215

1215:                                             ; preds = %1214, %153
  call void @llvm.lifetime.end.p0(i64 304, ptr %11) #8
  br label %1216

1216:                                             ; preds = %1215, %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %6) #8
  br label %1217

1217:                                             ; preds = %1216, %130
  call void @llvm.lifetime.end.p0(i64 48, ptr %6) #8
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %5) #8
  br label %1218

1218:                                             ; preds = %1217, %126
  call void @llvm.lifetime.end.p0(i64 48, ptr %5) #8
  call void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %2) #8
  br label %1219

1219:                                             ; preds = %1218, %122
  call void @llvm.lifetime.end.p0(i64 48, ptr %2) #8
  call void @_ZN2vl8database13BufferManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(168) %1) #8
  call void @llvm.lifetime.end.p0(i64 168, ptr %1) #8
  br label %1220

1220:                                             ; preds = %1219
  %1221 = load ptr, ptr %3, align 8
  %1222 = load i32, ptr %4, align 4
  %1223 = insertvalue { ptr, i32 } poison, ptr %1221, 0
  %1224 = insertvalue { ptr, i32 } %1223, i32 %1222, 1
  resume { ptr, i32 } %1224

1225:                                             ; preds = %1186, %1143, %1083, %1025, %852, %809, %749, %691, %344, %292, %235, %181
  unreachable
}

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

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

declare noundef i64 @_ZN2vl8database10LogManager23GetUsedTransactionCountEv(ptr noundef nonnull align 8 dereferenceable(304)) #1

declare i64 @_ZN2vl8database10LogManager14GetTransactionEm(ptr noundef nonnull align 8 dereferenceable(304), i64 noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN2vl8database8IdObjectImLl3EE7InvalidEv() #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_E3AddERKS4_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_E3AddERKS3_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(48)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(48)) #2

declare void @_ZN2vl4itowEl(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8, i64 noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK2vl12ObjectStringIwE6BufferEv(ptr noundef nonnull align 8 dereferenceable(48)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #7 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{i64 0, i64 4, !6}
!6 = !{!7, !7, i64 0}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"long", !8, i64 0}
!12 = !{i64 0, i64 8, !10}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = !{!17, !17, i64 0}
!17 = !{!"vtable pointer", !9, i64 0}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}


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

%"class.vl::ObjectString" = type { %"class.vl::Object", ptr, ptr, i64, i64, i64 }
%"class.vl::Object" = type { ptr }
%"class.vl::Ptr" = type { ptr, ptr, ptr, ptr }
%"class.vl::Ptr.36" = type { ptr, ptr, ptr, ptr }
%"class.vl::database::BufferManager" = type { i64, i64, i64, i64, %"class.vl::SpinLock", i64, %"class.vl::collections::Dictionary" }
%"class.vl::SpinLock" = type { %"class.vl::Object", i64 }
%"class.vl::collections::Dictionary" = type { %"class.vl::Object", %"class.vl::collections::SortedList", %"class.vl::collections::List", %"class.vl::collections::IEnumerable.6" }
%"class.vl::collections::SortedList" = type { %"class.vl::collections::ListBase.base", %"class.vl::collections::IEnumerable" }
%"class.vl::collections::ListBase.base" = type <{ %"class.vl::collections::ArrayBase.base", i64, i8 }>
%"class.vl::collections::ArrayBase.base" = type { %"class.vl::collections::ListStore", ptr, i64 }
%"class.vl::collections::ListStore" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable" = type { %"class.vl::Interface" }
%"class.vl::Interface" = type { ptr }
%"class.vl::collections::List" = type { %"class.vl::collections::ListBase.base.5", %"class.vl::collections::IEnumerable.3" }
%"class.vl::collections::ListBase.base.5" = type <{ %"class.vl::collections::ArrayBase.base.4", i64, i8 }>
%"class.vl::collections::ArrayBase.base.4" = type { %"class.vl::collections::ListStore.2", ptr, i64 }
%"class.vl::collections::ListStore.2" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.3" = type { %"class.vl::Interface" }
%"class.vl::collections::IEnumerable.6" = type { %"class.vl::Interface" }
%"class.vl::collections::List.37" = type { %"class.vl::collections::ListBase.base.23", %"class.vl::collections::IEnumerable.21" }
%"class.vl::collections::ListBase.base.23" = type <{ %"class.vl::collections::ArrayBase.base.22", i64, i8 }>
%"class.vl::collections::ArrayBase.base.22" = type { %"class.vl::collections::ListStore.20", ptr, i64 }
%"class.vl::collections::ListStore.20" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.21" = type { %"class.vl::Interface" }
%"class.vl::collections::List.39" = type { %"class.vl::collections::ListBase.base.45", %"class.vl::collections::IEnumerable.43" }
%"class.vl::collections::ListBase.base.45" = type <{ %"class.vl::collections::ArrayBase.base.44", i64, i8 }>
%"class.vl::collections::ArrayBase.base.44" = type { %"class.vl::collections::ListStore.42", ptr, i64 }
%"class.vl::collections::ListStore.42" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.43" = type { %"class.vl::Interface" }
%"class.vl::database::LogManager" = type { %"class.vl::Object", ptr, %"struct.vl::database::IdObject", i8, %"class.vl::database::log_internal::LogAddressItem", %"class.vl::database::log_internal::LogBlocks", %"class.vl::database::log_internal::LogTransactions", %"class.vl::SpinLock" }
%"struct.vl::database::IdObject" = type { i32 }
%"class.vl::database::log_internal::LogAddressItem" = type { %"class.vl::Object", ptr, %"struct.vl::database::IdObject", i64, i64, %"class.vl::collections::List.7" }
%"class.vl::collections::List.7" = type { %"class.vl::collections::ListBase.base.13", %"class.vl::collections::IEnumerable.11" }
%"class.vl::collections::ListBase.base.13" = type <{ %"class.vl::collections::ArrayBase.base.12", i64, i8 }>
%"class.vl::collections::ArrayBase.base.12" = type { %"class.vl::collections::ListStore.10", ptr, i64 }
%"class.vl::collections::ListStore.10" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.11" = type { %"class.vl::Interface" }
%"class.vl::database::log_internal::LogBlocks" = type { %"class.vl::Object", ptr, %"struct.vl::database::IdObject", i64, %"struct.vl::database::IdObject.15" }
%"struct.vl::database::IdObject.15" = type { i64 }
%"class.vl::database::log_internal::LogTransactions" = type { %"class.vl::Object", i64, %"class.vl::collections::Dictionary.16", ptr }
%"class.vl::collections::Dictionary.16" = type { %"class.vl::Object", %"class.vl::collections::SortedList.17", %"class.vl::collections::List.25", %"class.vl::collections::IEnumerable.33" }
%"class.vl::collections::SortedList.17" = type { %"class.vl::collections::ListBase.base.23", %"class.vl::collections::IEnumerable.21" }
%"class.vl::collections::List.25" = type { %"class.vl::collections::ListBase.base.31", %"class.vl::collections::IEnumerable.29" }
%"class.vl::collections::ListBase.base.31" = type <{ %"class.vl::collections::ArrayBase.base.30", i64, i8 }>
%"class.vl::collections::ArrayBase.base.30" = type { %"class.vl::collections::ListStore.28", ptr, i64 }
%"class.vl::collections::ListStore.28" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.29" = type { %"class.vl::Interface" }
%"class.vl::collections::IEnumerable.33" = type { %"class.vl::Interface" }
%"struct.vl::database::IdObject.35" = type { i64 }

@.str = external hidden unnamed_addr constant [7 x i32], align 4
@.str.2 = external hidden unnamed_addr constant [11 x i32], align 4
@.str.3 = external hidden unnamed_addr constant [11 x i32], align 4
@_ZTIi = external constant ptr
@.str.19 = external hidden unnamed_addr constant [31 x i32], align 4
@.str.33 = external hidden unnamed_addr constant [39 x i32], align 4
@.str.34 = external hidden unnamed_addr constant [58 x i32], align 4
@.str.35 = external hidden unnamed_addr constant [43 x i32], align 4
@.str.36 = external hidden unnamed_addr constant [35 x i32], align 4
@.str.37 = external hidden unnamed_addr constant [13 x i32], align 4
@.str.38 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.39 = external hidden unnamed_addr constant [13 x i32], align 4
@.str.40 = external hidden unnamed_addr constant [13 x i32], align 4
@.str.41 = external hidden unnamed_addr constant [3 x i32], align 4
@.str.42 = external hidden unnamed_addr constant [14 x i32], align 4
@.str.43 = external hidden unnamed_addr constant [3 x i32], align 4
@.str.44 = external hidden unnamed_addr constant [14 x i32], align 4
@.str.45 = external hidden unnamed_addr constant [39 x i32], align 4
@.str.46 = external hidden unnamed_addr constant [51 x i32], align 4
@.str.47 = external hidden unnamed_addr constant [22 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

declare void @_ZN2vl8database13BufferManagerC1Emm(ptr noundef nonnull align 8 dereferenceable(168), i64 noundef, i64 noundef) unnamed_addr #1

declare i32 @_ZN2vl8database13BufferManager14LoadFileSourceERKNS_12ObjectStringIwEEb(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 8 dereferenceable(48), i1 noundef zeroext) local_unnamed_addr #1

declare void @_Z13GetTempFolderv(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8) local_unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i1 noundef zeroext) unnamed_addr #2 align 2

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

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

declare void @_ZN2vl8database10LogManagerC1EPNS0_13BufferManagerENS0_8IdObjectIiLl0EEEbb(ptr noundef nonnull align 8 dereferenceable(304), ptr noundef, i32, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

declare i64 @_ZN2vl8database10LogManager15OpenTransactionEv(ptr noundef nonnull align 8 dereferenceable(304)) local_unnamed_addr #1

declare void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @_ZN2vl8database10LogManager11EnumLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr") align 8, ptr noundef nonnull align 8 dereferenceable(304), i64) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl8database8IdObjectImLl3EEeqES2_(ptr noundef nonnull align 8 dereferenceable(8), i64) local_unnamed_addr #3 align 2

declare void @_ZN2vl8database10LogManager19EnumInactiveLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr") align 8, ptr noundef nonnull align 8 dereferenceable(304), i64) local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304), i64) local_unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN2vl8database10LogManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(304)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN2vl8database13BufferManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(168)) unnamed_addr #4

declare void @_ZN2vl8database10LogManager11OpenLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind writable sret(%"class.vl::Ptr.36") align 8, ptr noundef nonnull align 8 dereferenceable(304), i64) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

; Function Attrs: mustprogress uwtable
define dso_local void @_Z51TestFunction_Utility_Log_OpenTransactionsSequencialv() local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.vl::database::BufferManager", align 8
  %2 = alloca %"class.vl::collections::List.37", align 8
  %3 = alloca %"class.vl::collections::List.39", align 8
  %4 = alloca %"class.vl::collections::List.39", align 8
  %5 = alloca %"class.vl::ObjectString", align 8
  %6 = alloca %"class.vl::ObjectString", align 8
  %7 = alloca %"class.vl::ObjectString", align 8
  %8 = alloca %"class.vl::database::LogManager", align 8
  %9 = alloca %"class.vl::ObjectString", align 8
  %10 = alloca %"class.vl::ObjectString", align 8
  %11 = alloca %"class.vl::ObjectString", align 8
  %12 = alloca %"class.vl::ObjectString", align 8
  %13 = alloca %"struct.vl::database::IdObject.35", align 8
  %14 = alloca %"class.vl::ObjectString", align 8
  %15 = alloca %"class.vl::ObjectString", align 8
  %16 = alloca %"struct.vl::database::IdObject.35", align 8
  %17 = alloca %"class.vl::ObjectString", align 8
  %18 = alloca %"class.vl::ObjectString", align 8
  %19 = alloca %"class.vl::ObjectString", align 8
  %20 = alloca %"class.vl::ObjectString", align 8
  %21 = alloca %"struct.vl::database::IdObject.35", align 8
  %22 = alloca %"class.vl::ObjectString", align 8
  %23 = alloca %"class.vl::ObjectString", align 8
  %24 = alloca %"class.vl::ObjectString", align 8
  %25 = alloca %"class.vl::ObjectString", align 8
  %26 = alloca %"class.vl::ObjectString", align 8
  %27 = alloca %"class.vl::ObjectString", align 8
  %28 = alloca %"class.vl::ObjectString", align 8
  %29 = alloca %"class.vl::ObjectString", align 8
  %30 = alloca %"class.vl::ObjectString", align 8
  %31 = alloca %"class.vl::ObjectString", align 8
  %32 = alloca %"class.vl::ObjectString", align 8
  %33 = alloca %"class.vl::ObjectString", align 8
  %34 = alloca %"class.vl::ObjectString", align 8
  %35 = alloca %"class.vl::ObjectString", align 8
  %36 = alloca %"class.vl::ObjectString", align 8
  %37 = alloca %"class.vl::ObjectString", align 8
  %38 = alloca %"class.vl::Ptr.36", align 8
  %39 = alloca %"class.vl::Ptr", align 8
  %40 = alloca %"class.vl::ObjectString", align 8
  %41 = alloca %"class.vl::ObjectString", align 8
  %42 = alloca %"class.vl::ObjectString", align 8
  %43 = alloca %"class.vl::ObjectString", align 8
  %44 = alloca %"class.vl::ObjectString", align 8
  %45 = alloca %"class.vl::ObjectString", align 8
  %46 = alloca [1024 x i32], align 16
  %47 = alloca %"class.vl::ObjectString", align 8
  %48 = alloca %"class.vl::ObjectString", align 8
  %49 = alloca %"class.vl::ObjectString", align 8
  %50 = alloca %"class.vl::ObjectString", align 8
  %51 = alloca %"class.vl::ObjectString", align 8
  %52 = alloca %"class.vl::ObjectString", align 8
  %53 = alloca %"class.vl::ObjectString", align 8
  %54 = alloca %"class.vl::ObjectString", align 8
  %55 = alloca %"class.vl::ObjectString", align 8
  %56 = alloca %"class.vl::ObjectString", align 8
  %57 = alloca %"class.vl::ObjectString", align 8
  %58 = alloca %"class.vl::ObjectString", align 8
  %59 = alloca %"class.vl::Ptr", align 8
  %60 = alloca %"class.vl::ObjectString", align 8
  %61 = alloca %"class.vl::ObjectString", align 8
  %62 = alloca %"class.vl::ObjectString", align 8
  %63 = alloca %"class.vl::ObjectString", align 8
  %64 = alloca %"class.vl::ObjectString", align 8
  %65 = alloca %"class.vl::ObjectString", align 8
  %66 = alloca [1024 x i32], align 16
  %67 = alloca %"class.vl::ObjectString", align 8
  %68 = alloca %"class.vl::ObjectString", align 8
  %69 = alloca %"class.vl::ObjectString", align 8
  %70 = alloca %"class.vl::ObjectString", align 8
  %71 = alloca %"class.vl::ObjectString", align 8
  %72 = alloca %"class.vl::ObjectString", align 8
  %73 = alloca %"class.vl::ObjectString", align 8
  %74 = alloca %"class.vl::ObjectString", align 8
  %75 = alloca %"class.vl::ObjectString", align 8
  %76 = alloca %"class.vl::ObjectString", align 8
  %77 = alloca %"class.vl::ObjectString", align 8
  %78 = alloca %"class.vl::ObjectString", align 8
  call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %1) #7
  call void @_ZN2vl8database13BufferManagerC1Emm(ptr noundef nonnull align 8 dereferenceable(168) %1, i64 noundef 4096, i64 noundef 16)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %2) #7
  invoke void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %2)
          to label %79 unwind label %96

79:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) #7
  invoke void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %3)
          to label %80 unwind label %98

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %4) #7
  invoke void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %4)
          to label %81 unwind label %100

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #7
  invoke void @_Z13GetTempFolderv(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %6)
          to label %82 unwind label %102

82:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str, i1 noundef zeroext true)
          to label %83 unwind label %104

83:                                               ; preds = %82
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %5, ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(48) %7)
          to label %84 unwind label %106

84:                                               ; preds = %83
  %85 = invoke i32 @_ZN2vl8database13BufferManager14LoadFileSourceERKNS_12ObjectStringIwEEb(ptr noundef nonnull align 8 dereferenceable(168) %1, ptr noundef nonnull align 8 dereferenceable(48) %5, i1 noundef zeroext true)
          to label %86 unwind label %108

86:                                               ; preds = %84
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %6) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %8) #7
  invoke void @_ZN2vl8database10LogManagerC1EPNS0_13BufferManagerENS0_8IdObjectIiLl0EEEbb(ptr noundef nonnull align 8 dereferenceable(304) %8, ptr noundef nonnull %1, i32 %85, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %87 unwind label %113

87:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull @.str.33, i1 noundef zeroext true)
          to label %88 unwind label %115

88:                                               ; preds = %87
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %9)
          to label %89 unwind label %117

89:                                               ; preds = %88
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #7
  %90 = invoke noundef i64 @_ZN2vl8database10LogManager23GetUsedTransactionCountEv(ptr noundef nonnull align 8 dereferenceable(304) %8)
          to label %91 unwind label %120

91:                                               ; preds = %89
  %92 = icmp eq i64 %90, 0
  br i1 %92, label %93, label %127

93:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %10, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %94 unwind label %122

94:                                               ; preds = %93
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %10)
          to label %95 unwind label %124

95:                                               ; preds = %94
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %12, ptr noundef nonnull @.str.34, i1 noundef zeroext true)
          to label %135 unwind label %145

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

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

100:                                              ; preds = %80
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %803

102:                                              ; preds = %81
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %112

104:                                              ; preds = %82
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %111

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

108:                                              ; preds = %84
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #7
  br label %110

110:                                              ; preds = %108, %106
  %.pn = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #7
  br label %111

111:                                              ; preds = %110, %104
  %.pn.pn = phi { ptr, i32 } [ %.pn, %110 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %6) #7
  br label %112

112:                                              ; preds = %111, %102
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %111 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #7
  br label %802

113:                                              ; preds = %86
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %801

115:                                              ; preds = %87
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %119

117:                                              ; preds = %88
  %118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #7
  br label %119

119:                                              ; preds = %117, %115
  %.pn144 = phi { ptr, i32 } [ %118, %117 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #7
  br label %800

120:                                              ; preds = %.invoke, %89
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %800

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

124:                                              ; preds = %94
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  br label %126

126:                                              ; preds = %124, %122
  %.pn148 = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #7
  br label %800

127:                                              ; preds = %91
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %128 unwind label %130

128:                                              ; preds = %127
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %11)
          to label %129 unwind label %132

129:                                              ; preds = %128
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #7
  br label %.invoke

130:                                              ; preds = %127
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %134

132:                                              ; preds = %128
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #7
  br label %134

134:                                              ; preds = %132, %130
  %.pn146 = phi { ptr, i32 } [ %133, %132 ], [ %131, %130 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #7
  br label %800

135:                                              ; preds = %95
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %12)
          to label %136 unwind label %147

136:                                              ; preds = %135
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %137 = invoke i64 @_ZN2vl8database10LogManager14GetTransactionEm(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 noundef 0)
          to label %138 unwind label %150

138:                                              ; preds = %136
  store i64 %137, ptr %13, align 8
  %139 = invoke i64 @_ZN2vl8database8IdObjectImLl3EE7InvalidEv()
          to label %140 unwind label %150

140:                                              ; preds = %138
  %141 = call noundef zeroext i1 @_ZNK2vl8database8IdObjectImLl3EEeqES2_(ptr noundef nonnull align 8 dereferenceable(8) %13, i64 %139)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br i1 %141, label %142, label %157

142:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %143 unwind label %152

143:                                              ; preds = %142
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %14)
          to label %144 unwind label %154

144:                                              ; preds = %143
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #7
  br label %166

145:                                              ; preds = %95
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %135
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %12) #7
  br label %149

149:                                              ; preds = %147, %145
  %.pn150 = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #7
  br label %800

150:                                              ; preds = %138, %136
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %800

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

154:                                              ; preds = %143
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #7
  br label %156

156:                                              ; preds = %154, %152
  %.pn154 = phi { ptr, i32 } [ %155, %154 ], [ %153, %152 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #7
  br label %800

157:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %15) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %15, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %158 unwind label %161

158:                                              ; preds = %157
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %15)
          to label %159 unwind label %163

159:                                              ; preds = %158
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #7
  br label %.invoke

.invoke:                                          ; preds = %129, %159
  %160 = call ptr @__cxa_allocate_exception(i64 4) #7
  store i32 0, ptr %160, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr nonnull %160, ptr nonnull @_ZTIi, ptr null) #8
          to label %.cont unwind label %120

.cont:                                            ; preds = %.invoke
  unreachable

161:                                              ; preds = %157
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %165

163:                                              ; preds = %158
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #7
  br label %165

165:                                              ; preds = %163, %161
  %.pn152 = phi { ptr, i32 } [ %164, %163 ], [ %162, %161 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #7
  br label %800

166:                                              ; preds = %144, %232
  %.0131286 = phi i64 [ 0, %144 ], [ %171, %232 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %167 = invoke i64 @_ZN2vl8database10LogManager15OpenTransactionEv(ptr noundef nonnull align 8 dereferenceable(304) %8)
          to label %168 unwind label %.loopexit281

168:                                              ; preds = %166
  store i64 %167, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %17) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %17, ptr noundef nonnull @.str.35, i1 noundef zeroext true)
          to label %169 unwind label %178

169:                                              ; preds = %168
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %17)
          to label %170 unwind label %180

170:                                              ; preds = %169
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #7
  %171 = invoke noundef i64 @_ZN2vl8database10LogManager23GetUsedTransactionCountEv(ptr noundef nonnull align 8 dereferenceable(304) %8)
          to label %172 unwind label %.loopexit281

172:                                              ; preds = %170
  %173 = add nuw nsw i64 %.0131286, 1
  %174 = icmp eq i64 %171, %173
  br i1 %174, label %175, label %188

175:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %18) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %18, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %176 unwind label %183

176:                                              ; preds = %175
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %18)
          to label %177 unwind label %185

177:                                              ; preds = %176
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %18) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull @.str.36, i1 noundef zeroext true)
          to label %197 unwind label %206

.loopexit281:                                     ; preds = %166, %170, %204
  %lpad.loopexit283 = landingpad { ptr, i32 }
          cleanup
  br label %247

.loopexit.split-lp282:                            ; preds = %.invoke304
  %lpad.loopexit.split-lp284 = landingpad { ptr, i32 }
          cleanup
  br label %247

178:                                              ; preds = %168
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %182

180:                                              ; preds = %169
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #7
  br label %182

182:                                              ; preds = %180, %178
  %.pn245 = phi { ptr, i32 } [ %181, %180 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #7
  br label %247

183:                                              ; preds = %175
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %187

185:                                              ; preds = %176
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %18) #7
  br label %187

187:                                              ; preds = %185, %183
  %.pn249 = phi { ptr, i32 } [ %186, %185 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %18) #7
  br label %247

188:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %19) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %19, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %189 unwind label %192

189:                                              ; preds = %188
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %19)
          to label %190 unwind label %194

190:                                              ; preds = %189
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %19) #7
  br label %.invoke304

.invoke304:                                       ; preds = %220, %190
  %191 = call ptr @__cxa_allocate_exception(i64 4) #7
  store i32 0, ptr %191, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr nonnull %191, ptr nonnull @_ZTIi, ptr null) #8
          to label %.cont305 unwind label %.loopexit.split-lp282

.cont305:                                         ; preds = %.invoke304
  unreachable

192:                                              ; preds = %188
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %196

194:                                              ; preds = %189
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #7
  br label %196

196:                                              ; preds = %194, %192
  %.pn247 = phi { ptr, i32 } [ %195, %194 ], [ %193, %192 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %19) #7
  br label %247

197:                                              ; preds = %177
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %20)
          to label %198 unwind label %208

198:                                              ; preds = %197
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %199 = invoke i64 @_ZN2vl8database10LogManager14GetTransactionEm(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 noundef %.0131286)
          to label %200 unwind label %211

200:                                              ; preds = %198
  store i64 %199, ptr %21, align 8
  %.sroa.036.0.copyload = load i64, ptr %16, align 8, !tbaa !9
  %201 = call noundef zeroext i1 @_ZNK2vl8database8IdObjectImLl3EEeqES2_(ptr noundef nonnull align 8 dereferenceable(8) %21, i64 %.sroa.036.0.copyload)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br i1 %201, label %202, label %218

202:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %203 unwind label %213

203:                                              ; preds = %202
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %22)
          to label %204 unwind label %215

204:                                              ; preds = %203
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #7
  %205 = invoke noundef i64 @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_E3AddERKS4_(ptr noundef nonnull align 8 dereferenceable(33) %2, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %226 unwind label %.loopexit281

206:                                              ; preds = %177
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %197
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #7
  br label %210

210:                                              ; preds = %208, %206
  %.pn251 = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  br label %247

211:                                              ; preds = %198
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br label %247

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

215:                                              ; preds = %203
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #7
  br label %217

217:                                              ; preds = %215, %213
  %.pn255 = phi { ptr, i32 } [ %216, %215 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #7
  br label %247

218:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %23) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %219 unwind label %221

219:                                              ; preds = %218
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %23)
          to label %220 unwind label %223

220:                                              ; preds = %219
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #7
  br label %.invoke304

221:                                              ; preds = %218
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %225

223:                                              ; preds = %219
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  br label %225

225:                                              ; preds = %223, %221
  %.pn253 = phi { ptr, i32 } [ %224, %223 ], [ %222, %221 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #7
  br label %247

226:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %26) #7
  invoke void @_ZN2vl4itowEl(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %26, i64 noundef %171)
          to label %227 unwind label %233

227:                                              ; preds = %226
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %25, ptr noundef nonnull @.str.37, ptr noundef nonnull align 8 dereferenceable(48) %26)
          to label %228 unwind label %235

228:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %27) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull @.str.38, i1 noundef zeroext true)
          to label %229 unwind label %237

229:                                              ; preds = %228
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %24, ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 8 dereferenceable(48) %27)
          to label %230 unwind label %239

230:                                              ; preds = %229
  %231 = invoke noundef i64 @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_E3AddERKS3_(ptr noundef nonnull align 8 dereferenceable(33) %3, ptr noundef nonnull align 8 dereferenceable(48) %24)
          to label %232 unwind label %241

232:                                              ; preds = %230
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %27) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  %exitcond.not = icmp eq i64 %171, 20
  br i1 %exitcond.not, label %.preheader280, label %166, !llvm.loop !11

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

235:                                              ; preds = %227
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %245

237:                                              ; preds = %228
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %244

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

241:                                              ; preds = %230
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #7
  br label %243

243:                                              ; preds = %241, %239
  %.pn257 = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #7
  br label %244

244:                                              ; preds = %243, %237
  %.pn257.pn = phi { ptr, i32 } [ %.pn257, %243 ], [ %238, %237 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %27) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #7
  br label %245

245:                                              ; preds = %244, %235
  %.pn257.pn.pn = phi { ptr, i32 } [ %.pn257.pn, %244 ], [ %236, %235 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #7
  br label %246

246:                                              ; preds = %245, %233
  %.pn257.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn, %245 ], [ %234, %233 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  br label %247

247:                                              ; preds = %.loopexit281, %.loopexit.split-lp282, %246, %225, %217, %211, %210, %196, %187, %182
  %.pn257.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn, %246 ], [ %.pn255, %217 ], [ %.pn253, %225 ], [ %212, %211 ], [ %.pn251, %210 ], [ %.pn249, %187 ], [ %.pn247, %196 ], [ %.pn245, %182 ], [ %lpad.loopexit283, %.loopexit281 ], [ %lpad.loopexit.split-lp284, %.loopexit.split-lp282 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %800

.preheader279:                                    ; preds = %256
  %248 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %249 = icmp sgt i64 %248, 0
  br i1 %249, label %.preheader278, label %.preheader277

.preheader280:                                    ; preds = %232, %256
  %.0133287 = phi i64 [ %250, %256 ], [ 0, %232 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %30) #7
  %250 = add nuw nsw i64 %.0133287, 1
  invoke void @_ZN2vl4itowEl(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %30, i64 noundef %250)
          to label %251 unwind label %257

251:                                              ; preds = %.preheader280
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %29, ptr noundef nonnull @.str.39, ptr noundef nonnull align 8 dereferenceable(48) %30)
          to label %252 unwind label %259

252:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %31) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull @.str.40, i1 noundef zeroext true)
          to label %253 unwind label %261

253:                                              ; preds = %252
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %28, ptr noundef nonnull align 8 dereferenceable(48) %29, ptr noundef nonnull align 8 dereferenceable(48) %31)
          to label %254 unwind label %263

254:                                              ; preds = %253
  %255 = invoke noundef i64 @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_E3AddERKS3_(ptr noundef nonnull align 8 dereferenceable(33) %4, ptr noundef nonnull align 8 dereferenceable(48) %28)
          to label %256 unwind label %265

256:                                              ; preds = %254
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #7
  %exitcond302.not = icmp eq i64 %250, 20
  br i1 %exitcond302.not, label %.preheader279, label %.preheader280, !llvm.loop !13

257:                                              ; preds = %.preheader280
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %270

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

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

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

265:                                              ; preds = %254
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #7
  br label %267

267:                                              ; preds = %265, %263
  %.pn240 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #7
  br label %268

268:                                              ; preds = %267, %261
  %.pn240.pn = phi { ptr, i32 } [ %.pn240, %267 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %29) #7
  br label %269

269:                                              ; preds = %268, %259
  %.pn240.pn.pn = phi { ptr, i32 } [ %.pn240.pn, %268 ], [ %260, %259 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #7
  br label %270

270:                                              ; preds = %269, %257
  %.pn240.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn, %269 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #7
  br label %800

.preheader278:                                    ; preds = %.preheader279, %._crit_edge
  %.0135289 = phi i64 [ %275, %._crit_edge ], [ 0, %.preheader279 ]
  %271 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
  %272 = icmp sgt i64 %271, 0
  br i1 %272, label %.lr.ph, label %._crit_edge

.preheader277:                                    ; preds = %._crit_edge, %.preheader279
  %273 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %274 = icmp sgt i64 %273, 0
  br i1 %274, label %.lr.ph294, label %.preheader270

._crit_edge:                                      ; preds = %316, %.preheader278
  %275 = add nuw nsw i64 %.0135289, 1
  %276 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %277 = icmp slt i64 %275, %276
  br i1 %277, label %.preheader278, label %.preheader277, !llvm.loop !14

.lr.ph:                                           ; preds = %.preheader278, %316
  %.0137288 = phi i64 [ %317, %316 ], [ 0, %.preheader278 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %33) #7
  %278 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %3, i64 noundef %.0135289)
          to label %279 unwind label %320

279:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %34) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %34, ptr noundef nonnull @.str.41, i1 noundef zeroext true)
          to label %280 unwind label %322

280:                                              ; preds = %279
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %33, ptr noundef nonnull align 8 dereferenceable(48) %278, ptr noundef nonnull align 8 dereferenceable(48) %34)
          to label %281 unwind label %324

281:                                              ; preds = %280
  %282 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %4, i64 noundef %.0137288)
          to label %283 unwind label %326

283:                                              ; preds = %281
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %32, ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef nonnull align 8 dereferenceable(48) %282)
          to label %284 unwind label %326

284:                                              ; preds = %283
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %36) #7
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %36, ptr noundef nonnull @.str.42, ptr noundef nonnull align 8 dereferenceable(48) %32)
          to label %285 unwind label %331

285:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %37) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %37, ptr noundef nonnull @.str.43, i1 noundef zeroext true)
          to label %286 unwind label %333

286:                                              ; preds = %285
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %35, ptr noundef nonnull align 8 dereferenceable(48) %36, ptr noundef nonnull align 8 dereferenceable(48) %37)
          to label %287 unwind label %335

287:                                              ; preds = %286
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %35)
          to label %288 unwind label %337

288:                                              ; preds = %287
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %35) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %37) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %.0135289)
          to label %290 unwind label %342

290:                                              ; preds = %288
  %.sroa.025.0.copyload = load i64, ptr %289, align 8, !tbaa !9
  invoke void @_ZN2vl8database10LogManager11OpenLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr.36") align 8 %38, ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.025.0.copyload)
          to label %291 unwind label %342

291:                                              ; preds = %290
  %292 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogWriterEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %38)
  %293 = load ptr, ptr %292, align 8, !tbaa !15
  %294 = getelementptr i8, ptr %293, i64 -56
  %295 = load i64, ptr %294, align 8
  %296 = getelementptr inbounds i8, ptr %292, i64 %295
  %297 = load ptr, ptr %296, align 8, !tbaa !15
  %298 = getelementptr inbounds i8, ptr %297, i64 24
  %299 = load ptr, ptr %298, align 8
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr %299(ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %301 unwind label %344

301:                                              ; preds = %291
  %302 = invoke noundef ptr @_ZNK2vl12ObjectStringIwE6BufferEv(ptr noundef nonnull align 8 dereferenceable(48) %32)
          to label %303 unwind label %344

303:                                              ; preds = %301
  %304 = call noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48) %32)
  %305 = shl i64 %304, 2
  %306 = load ptr, ptr %300, align 8, !tbaa !15
  %307 = getelementptr inbounds i8, ptr %306, i64 120
  %308 = load ptr, ptr %307, align 8
  %309 = invoke noundef i64 %308(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef %302, i64 noundef %305)
          to label %310 unwind label %344

310:                                              ; preds = %303
  %311 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogWriterEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %38)
  %312 = load ptr, ptr %311, align 8, !tbaa !15
  %313 = getelementptr inbounds i8, ptr %312, i64 40
  %314 = load ptr, ptr %313, align 8
  %315 = invoke noundef zeroext i1 %314(ptr noundef nonnull align 8 dereferenceable(8) %311)
          to label %316 unwind label %344

316:                                              ; preds = %310
  call void @_ZN2vl3PtrINS_8database10ILogWriterEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %32) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %32) #7
  %317 = add nuw nsw i64 %.0137288, 1
  %318 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
  %319 = icmp slt i64 %317, %318
  br i1 %319, label %.lr.ph, label %._crit_edge, !llvm.loop !17

320:                                              ; preds = %.lr.ph
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %330

322:                                              ; preds = %279
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %329

324:                                              ; preds = %280
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %328

326:                                              ; preds = %283, %281
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  br label %328

328:                                              ; preds = %326, %324
  %.pn228 = phi { ptr, i32 } [ %327, %326 ], [ %325, %324 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %34) #7
  br label %329

329:                                              ; preds = %328, %322
  %.pn228.pn = phi { ptr, i32 } [ %.pn228, %328 ], [ %323, %322 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %34) #7
  br label %330

330:                                              ; preds = %329, %320
  %.pn228.pn.pn = phi { ptr, i32 } [ %.pn228.pn, %329 ], [ %321, %320 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #7
  br label %348

331:                                              ; preds = %284
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %341

333:                                              ; preds = %285
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %340

335:                                              ; preds = %286
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %339

337:                                              ; preds = %287
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %35) #7
  br label %339

339:                                              ; preds = %337, %335
  %.pn232 = phi { ptr, i32 } [ %338, %337 ], [ %336, %335 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #7
  br label %340

340:                                              ; preds = %339, %333
  %.pn232.pn = phi { ptr, i32 } [ %.pn232, %339 ], [ %334, %333 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %37) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #7
  br label %341

341:                                              ; preds = %340, %331
  %.pn232.pn.pn = phi { ptr, i32 } [ %.pn232.pn, %340 ], [ %332, %331 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %35) #7
  br label %347

342:                                              ; preds = %290, %288
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %346

344:                                              ; preds = %310, %303, %301, %291
  %345 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl3PtrINS_8database10ILogWriterEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %346

346:                                              ; preds = %344, %342
  %.pn236 = phi { ptr, i32 } [ %345, %344 ], [ %343, %342 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %347

347:                                              ; preds = %346, %341
  %.pn236.pn = phi { ptr, i32 } [ %.pn236, %346 ], [ %.pn232.pn.pn, %341 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %32) #7
  br label %348

348:                                              ; preds = %347, %330
  %.pn236.pn.pn = phi { ptr, i32 } [ %.pn236.pn, %347 ], [ %.pn228.pn.pn, %330 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %32) #7
  br label %800

.preheader270:                                    ; preds = %._crit_edge292, %.preheader277
  %349 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 0)
          to label %534 unwind label %614

.lr.ph294:                                        ; preds = %.preheader277, %._crit_edge292
  %.0136293 = phi i64 [ %354, %._crit_edge292 ], [ 0, %.preheader277 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %.0136293)
          to label %351 unwind label %357

351:                                              ; preds = %.lr.ph294
  %.sroa.020.0.copyload = load i64, ptr %350, align 8, !tbaa !9
  invoke void @_ZN2vl8database10LogManager11EnumLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr") align 8 %39, ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.020.0.copyload)
          to label %.preheader271 unwind label %357

.preheader271:                                    ; preds = %351
  %352 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
  %353 = icmp sgt i64 %352, 0
  br i1 %353, label %.lr.ph291, label %._crit_edge292

._crit_edge292:                                   ; preds = %508, %.preheader271
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  %354 = add nuw nsw i64 %.0136293, 1
  %355 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %356 = icmp slt i64 %354, %355
  br i1 %356, label %.lr.ph294, label %.preheader270, !llvm.loop !18

357:                                              ; preds = %351, %.lr.ph294
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %533

.lr.ph291:                                        ; preds = %.preheader271, %508
  %.0134290 = phi i64 [ %509, %508 ], [ 0, %.preheader271 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %41) #7
  %359 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %3, i64 noundef %.0136293)
          to label %360 unwind label %383

360:                                              ; preds = %.lr.ph291
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %42) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %42, ptr noundef nonnull @.str.41, i1 noundef zeroext true)
          to label %361 unwind label %385

361:                                              ; preds = %360
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %41, ptr noundef nonnull align 8 dereferenceable(48) %359, ptr noundef nonnull align 8 dereferenceable(48) %42)
          to label %362 unwind label %387

362:                                              ; preds = %361
  %363 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %4, i64 noundef %.0134290)
          to label %364 unwind label %389

364:                                              ; preds = %362
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %40, ptr noundef nonnull align 8 dereferenceable(48) %41, ptr noundef nonnull align 8 dereferenceable(48) %363)
          to label %365 unwind label %389

365:                                              ; preds = %364
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %41) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %42) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %44) #7
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %44, ptr noundef nonnull @.str.44, ptr noundef nonnull align 8 dereferenceable(48) %40)
          to label %366 unwind label %394

366:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %45) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %45, ptr noundef nonnull @.str.43, i1 noundef zeroext true)
          to label %367 unwind label %396

367:                                              ; preds = %366
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %43, ptr noundef nonnull align 8 dereferenceable(48) %44, ptr noundef nonnull align 8 dereferenceable(48) %45)
          to label %368 unwind label %398

368:                                              ; preds = %367
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %43)
          to label %369 unwind label %400

369:                                              ; preds = %368
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %45) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %45) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %46) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(4096) %46, i8 0, i64 4096, i1 false)
  %370 = call noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48) %40)
  %371 = shl i64 %370, 2
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %47) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %47, ptr noundef nonnull @.str.19, i1 noundef zeroext true)
          to label %372 unwind label %405

372:                                              ; preds = %369
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %47)
          to label %373 unwind label %407

373:                                              ; preds = %372
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %47) #7
  %374 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
  %375 = load ptr, ptr %374, align 8, !tbaa !15
  %376 = getelementptr inbounds i8, ptr %375, i64 32
  %377 = load ptr, ptr %376, align 8
  %378 = invoke noundef zeroext i1 %377(ptr noundef nonnull align 8 dereferenceable(8) %374)
          to label %379 unwind label %.loopexit272

379:                                              ; preds = %373
  br i1 %378, label %380, label %415

380:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %48) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %48, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %381 unwind label %410

381:                                              ; preds = %380
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %48)
          to label %382 unwind label %412

382:                                              ; preds = %381
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %50) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %50, ptr noundef nonnull @.str.45, i1 noundef zeroext true)
          to label %424 unwind label %445

383:                                              ; preds = %.lr.ph291
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %393

385:                                              ; preds = %360
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %392

387:                                              ; preds = %361
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %391

389:                                              ; preds = %364, %362
  %390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %41) #7
  br label %391

391:                                              ; preds = %389, %387
  %.pn192 = phi { ptr, i32 } [ %390, %389 ], [ %388, %387 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %42) #7
  br label %392

392:                                              ; preds = %391, %385
  %.pn192.pn = phi { ptr, i32 } [ %.pn192, %391 ], [ %386, %385 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %42) #7
  br label %393

393:                                              ; preds = %392, %383
  %.pn192.pn.pn = phi { ptr, i32 } [ %.pn192.pn, %392 ], [ %384, %383 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %41) #7
  br label %532

394:                                              ; preds = %365
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %404

396:                                              ; preds = %366
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %403

398:                                              ; preds = %367
  %399 = landingpad { ptr, i32 }
          cleanup
  br label %402

400:                                              ; preds = %368
  %401 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #7
  br label %402

402:                                              ; preds = %400, %398
  %.pn196 = phi { ptr, i32 } [ %401, %400 ], [ %399, %398 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %45) #7
  br label %403

403:                                              ; preds = %402, %396
  %.pn196.pn = phi { ptr, i32 } [ %.pn196, %402 ], [ %397, %396 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %45) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #7
  br label %404

404:                                              ; preds = %403, %394
  %.pn196.pn.pn = phi { ptr, i32 } [ %.pn196.pn, %403 ], [ %395, %394 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %43) #7
  br label %531

.loopexit272:                                     ; preds = %373, %425, %435, %464, %474, %503
  %lpad.loopexit274 = landingpad { ptr, i32 }
          cleanup
  br label %530

.loopexit.split-lp273:                            ; preds = %.invoke306
  %lpad.loopexit.split-lp275 = landingpad { ptr, i32 }
          cleanup
  br label %530

405:                                              ; preds = %369
  %406 = landingpad { ptr, i32 }
          cleanup
  br label %409

407:                                              ; preds = %372
  %408 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #7
  br label %409

409:                                              ; preds = %407, %405
  %.pn200 = phi { ptr, i32 } [ %408, %407 ], [ %406, %405 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %47) #7
  br label %530

410:                                              ; preds = %380
  %411 = landingpad { ptr, i32 }
          cleanup
  br label %414

412:                                              ; preds = %381
  %413 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %48) #7
  br label %414

414:                                              ; preds = %412, %410
  %.pn204 = phi { ptr, i32 } [ %413, %412 ], [ %411, %410 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %48) #7
  br label %530

415:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %49) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %49, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %416 unwind label %419

416:                                              ; preds = %415
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %49)
          to label %417 unwind label %421

417:                                              ; preds = %416
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %49) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %49) #7
  br label %.invoke306

.invoke306:                                       ; preds = %524, %496, %457, %417
  %418 = call ptr @__cxa_allocate_exception(i64 4) #7
  store i32 0, ptr %418, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr nonnull %418, ptr nonnull @_ZTIi, ptr null) #8
          to label %.cont307 unwind label %.loopexit.split-lp273

.cont307:                                         ; preds = %.invoke306
  unreachable

419:                                              ; preds = %415
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %423

421:                                              ; preds = %416
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %49) #7
  br label %423

423:                                              ; preds = %421, %419
  %.pn202 = phi { ptr, i32 } [ %422, %421 ], [ %420, %419 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %49) #7
  br label %530

424:                                              ; preds = %382
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %50)
          to label %425 unwind label %447

425:                                              ; preds = %424
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %50) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %50) #7
  %426 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
  %427 = load ptr, ptr %426, align 8, !tbaa !15
  %428 = getelementptr i8, ptr %427, i64 -56
  %429 = load i64, ptr %428, align 8
  %430 = getelementptr inbounds i8, ptr %426, i64 %429
  %431 = load ptr, ptr %430, align 8, !tbaa !15
  %432 = getelementptr inbounds i8, ptr %431, i64 24
  %433 = load ptr, ptr %432, align 8
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr %433(ptr noundef nonnull align 8 dereferenceable(8) %430)
          to label %435 unwind label %.loopexit272

435:                                              ; preds = %425
  %436 = load ptr, ptr %434, align 8, !tbaa !15
  %437 = getelementptr inbounds i8, ptr %436, i64 80
  %438 = load ptr, ptr %437, align 8
  %439 = invoke noundef i64 %438(ptr noundef nonnull align 8 dereferenceable(8) %434)
          to label %440 unwind label %.loopexit272

440:                                              ; preds = %435
  %441 = icmp eq i64 %439, %371
  br i1 %441, label %442, label %455

442:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %51) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %51, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %443 unwind label %450

443:                                              ; preds = %442
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %51)
          to label %444 unwind label %452

444:                                              ; preds = %443
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %53) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %53, ptr noundef nonnull @.str.46, i1 noundef zeroext true)
          to label %463 unwind label %484

445:                                              ; preds = %382
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %449

447:                                              ; preds = %424
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %50) #7
  br label %449

449:                                              ; preds = %447, %445
  %.pn206 = phi { ptr, i32 } [ %448, %447 ], [ %446, %445 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %50) #7
  br label %530

450:                                              ; preds = %442
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %454

452:                                              ; preds = %443
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #7
  br label %454

454:                                              ; preds = %452, %450
  %.pn210 = phi { ptr, i32 } [ %453, %452 ], [ %451, %450 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %51) #7
  br label %530

455:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %52) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %52, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %456 unwind label %458

456:                                              ; preds = %455
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %52)
          to label %457 unwind label %460

457:                                              ; preds = %456
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %52) #7
  br label %.invoke306

458:                                              ; preds = %455
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %462

460:                                              ; preds = %456
  %461 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #7
  br label %462

462:                                              ; preds = %460, %458
  %.pn208 = phi { ptr, i32 } [ %461, %460 ], [ %459, %458 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %52) #7
  br label %530

463:                                              ; preds = %444
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %53)
          to label %464 unwind label %486

464:                                              ; preds = %463
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %53) #7
  %465 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
  %466 = load ptr, ptr %465, align 8, !tbaa !15
  %467 = getelementptr i8, ptr %466, i64 -56
  %468 = load i64, ptr %467, align 8
  %469 = getelementptr inbounds i8, ptr %465, i64 %468
  %470 = load ptr, ptr %469, align 8, !tbaa !15
  %471 = getelementptr inbounds i8, ptr %470, i64 24
  %472 = load ptr, ptr %471, align 8
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr %472(ptr noundef nonnull align 8 dereferenceable(8) %469)
          to label %474 unwind label %.loopexit272

474:                                              ; preds = %464
  %475 = load ptr, ptr %473, align 8, !tbaa !15
  %476 = getelementptr inbounds i8, ptr %475, i64 112
  %477 = load ptr, ptr %476, align 8
  %478 = invoke noundef i64 %477(ptr noundef nonnull align 8 dereferenceable(8) %473, ptr noundef nonnull %46, i64 noundef %371)
          to label %479 unwind label %.loopexit272

479:                                              ; preds = %474
  %480 = icmp eq i64 %478, %371
  br i1 %480, label %481, label %494

481:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %54) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %54, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %482 unwind label %489

482:                                              ; preds = %481
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %54)
          to label %483 unwind label %491

483:                                              ; preds = %482
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %56) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %56, ptr noundef nonnull @.str.47, i1 noundef zeroext true)
          to label %502 unwind label %512

484:                                              ; preds = %444
  %485 = landingpad { ptr, i32 }
          cleanup
  br label %488

486:                                              ; preds = %463
  %487 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #7
  br label %488

488:                                              ; preds = %486, %484
  %.pn212 = phi { ptr, i32 } [ %487, %486 ], [ %485, %484 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %53) #7
  br label %530

489:                                              ; preds = %481
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %493

491:                                              ; preds = %482
  %492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #7
  br label %493

493:                                              ; preds = %491, %489
  %.pn216 = phi { ptr, i32 } [ %492, %491 ], [ %490, %489 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %54) #7
  br label %530

494:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %55) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %55, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %495 unwind label %497

495:                                              ; preds = %494
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %55)
          to label %496 unwind label %499

496:                                              ; preds = %495
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %55) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %55) #7
  br label %.invoke306

497:                                              ; preds = %494
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %501

499:                                              ; preds = %495
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %55) #7
  br label %501

501:                                              ; preds = %499, %497
  %.pn214 = phi { ptr, i32 } [ %500, %499 ], [ %498, %497 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %55) #7
  br label %530

502:                                              ; preds = %483
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %56)
          to label %503 unwind label %514

503:                                              ; preds = %502
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %56) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %56) #7
  %504 = invoke noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48) %40, ptr noundef nonnull %46)
          to label %505 unwind label %.loopexit272

505:                                              ; preds = %503
  br i1 %504, label %506, label %522

506:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %57) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %57, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %507 unwind label %517

507:                                              ; preds = %506
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %57)
          to label %508 unwind label %519

508:                                              ; preds = %507
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %57) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %46) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %40) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %40) #7
  %509 = add nuw nsw i64 %.0134290, 1
  %510 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
  %511 = icmp slt i64 %509, %510
  br i1 %511, label %.lr.ph291, label %._crit_edge292, !llvm.loop !19

512:                                              ; preds = %483
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %516

514:                                              ; preds = %502
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %56) #7
  br label %516

516:                                              ; preds = %514, %512
  %.pn218 = phi { ptr, i32 } [ %515, %514 ], [ %513, %512 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %56) #7
  br label %530

517:                                              ; preds = %506
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %507
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %57) #7
  br label %521

521:                                              ; preds = %519, %517
  %.pn222 = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %57) #7
  br label %530

522:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %58) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %58, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %523 unwind label %525

523:                                              ; preds = %522
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %58)
          to label %524 unwind label %527

524:                                              ; preds = %523
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %58) #7
  br label %.invoke306

525:                                              ; preds = %522
  %526 = landingpad { ptr, i32 }
          cleanup
  br label %529

527:                                              ; preds = %523
  %528 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #7
  br label %529

529:                                              ; preds = %527, %525
  %.pn220 = phi { ptr, i32 } [ %528, %527 ], [ %526, %525 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %58) #7
  br label %530

530:                                              ; preds = %.loopexit272, %.loopexit.split-lp273, %529, %521, %516, %501, %493, %488, %462, %454, %449, %423, %414, %409
  %.pn222.pn = phi { ptr, i32 } [ %.pn222, %521 ], [ %.pn220, %529 ], [ %.pn218, %516 ], [ %.pn216, %493 ], [ %.pn214, %501 ], [ %.pn212, %488 ], [ %.pn210, %454 ], [ %.pn208, %462 ], [ %.pn206, %449 ], [ %.pn204, %414 ], [ %.pn202, %423 ], [ %.pn200, %409 ], [ %lpad.loopexit274, %.loopexit272 ], [ %lpad.loopexit.split-lp275, %.loopexit.split-lp273 ]
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %46) #7
  br label %531

531:                                              ; preds = %530, %404
  %.pn222.pn.pn = phi { ptr, i32 } [ %.pn222.pn, %530 ], [ %.pn196.pn.pn, %404 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %40) #7
  br label %532

532:                                              ; preds = %531, %393
  %.pn222.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn, %531 ], [ %.pn192.pn.pn, %393 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %40) #7
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %533

533:                                              ; preds = %532, %357
  %.pn222.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn.pn, %532 ], [ %358, %357 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  br label %800

534:                                              ; preds = %.preheader270
  %.sroa.010.0.copyload = load i64, ptr %349, align 8, !tbaa !9
  %535 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload)
          to label %536 unwind label %614

536:                                              ; preds = %534
  %537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 1)
          to label %538 unwind label %614

538:                                              ; preds = %536
  %.sroa.010.0.copyload.1 = load i64, ptr %537, align 8, !tbaa !9
  %539 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.1)
          to label %540 unwind label %614

540:                                              ; preds = %538
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 2)
          to label %542 unwind label %614

542:                                              ; preds = %540
  %.sroa.010.0.copyload.2 = load i64, ptr %541, align 8, !tbaa !9
  %543 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.2)
          to label %544 unwind label %614

544:                                              ; preds = %542
  %545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 3)
          to label %546 unwind label %614

546:                                              ; preds = %544
  %.sroa.010.0.copyload.3 = load i64, ptr %545, align 8, !tbaa !9
  %547 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.3)
          to label %548 unwind label %614

548:                                              ; preds = %546
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 4)
          to label %550 unwind label %614

550:                                              ; preds = %548
  %.sroa.010.0.copyload.4 = load i64, ptr %549, align 8, !tbaa !9
  %551 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.4)
          to label %552 unwind label %614

552:                                              ; preds = %550
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 5)
          to label %554 unwind label %614

554:                                              ; preds = %552
  %.sroa.010.0.copyload.5 = load i64, ptr %553, align 8, !tbaa !9
  %555 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.5)
          to label %556 unwind label %614

556:                                              ; preds = %554
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 6)
          to label %558 unwind label %614

558:                                              ; preds = %556
  %.sroa.010.0.copyload.6 = load i64, ptr %557, align 8, !tbaa !9
  %559 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.6)
          to label %560 unwind label %614

560:                                              ; preds = %558
  %561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 7)
          to label %562 unwind label %614

562:                                              ; preds = %560
  %.sroa.010.0.copyload.7 = load i64, ptr %561, align 8, !tbaa !9
  %563 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.7)
          to label %564 unwind label %614

564:                                              ; preds = %562
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 8)
          to label %566 unwind label %614

566:                                              ; preds = %564
  %.sroa.010.0.copyload.8 = load i64, ptr %565, align 8, !tbaa !9
  %567 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.8)
          to label %568 unwind label %614

568:                                              ; preds = %566
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 9)
          to label %570 unwind label %614

570:                                              ; preds = %568
  %.sroa.010.0.copyload.9 = load i64, ptr %569, align 8, !tbaa !9
  %571 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.9)
          to label %572 unwind label %614

572:                                              ; preds = %570
  %573 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 10)
          to label %574 unwind label %614

574:                                              ; preds = %572
  %.sroa.010.0.copyload.10 = load i64, ptr %573, align 8, !tbaa !9
  %575 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.10)
          to label %576 unwind label %614

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 11)
          to label %578 unwind label %614

578:                                              ; preds = %576
  %.sroa.010.0.copyload.11 = load i64, ptr %577, align 8, !tbaa !9
  %579 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.11)
          to label %580 unwind label %614

580:                                              ; preds = %578
  %581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 12)
          to label %582 unwind label %614

582:                                              ; preds = %580
  %.sroa.010.0.copyload.12 = load i64, ptr %581, align 8, !tbaa !9
  %583 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.12)
          to label %584 unwind label %614

584:                                              ; preds = %582
  %585 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 13)
          to label %586 unwind label %614

586:                                              ; preds = %584
  %.sroa.010.0.copyload.13 = load i64, ptr %585, align 8, !tbaa !9
  %587 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.13)
          to label %588 unwind label %614

588:                                              ; preds = %586
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 14)
          to label %590 unwind label %614

590:                                              ; preds = %588
  %.sroa.010.0.copyload.14 = load i64, ptr %589, align 8, !tbaa !9
  %591 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.14)
          to label %592 unwind label %614

592:                                              ; preds = %590
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 15)
          to label %594 unwind label %614

594:                                              ; preds = %592
  %.sroa.010.0.copyload.15 = load i64, ptr %593, align 8, !tbaa !9
  %595 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.15)
          to label %596 unwind label %614

596:                                              ; preds = %594
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 16)
          to label %598 unwind label %614

598:                                              ; preds = %596
  %.sroa.010.0.copyload.16 = load i64, ptr %597, align 8, !tbaa !9
  %599 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.16)
          to label %600 unwind label %614

600:                                              ; preds = %598
  %601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 17)
          to label %602 unwind label %614

602:                                              ; preds = %600
  %.sroa.010.0.copyload.17 = load i64, ptr %601, align 8, !tbaa !9
  %603 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.17)
          to label %604 unwind label %614

604:                                              ; preds = %602
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 18)
          to label %606 unwind label %614

606:                                              ; preds = %604
  %.sroa.010.0.copyload.18 = load i64, ptr %605, align 8, !tbaa !9
  %607 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.18)
          to label %608 unwind label %614

608:                                              ; preds = %606
  %609 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef 19)
          to label %610 unwind label %614

610:                                              ; preds = %608
  %.sroa.010.0.copyload.19 = load i64, ptr %609, align 8, !tbaa !9
  %611 = invoke noundef zeroext i1 @_ZN2vl8database10LogManager16CloseTransactionENS0_8IdObjectImLl3EEE(ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.010.0.copyload.19)
          to label %.preheader269 unwind label %614

.preheader269:                                    ; preds = %610
  %612 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %613 = icmp sgt i64 %612, 0
  br i1 %613, label %.lr.ph300, label %._crit_edge301

614:                                              ; preds = %610, %608, %606, %604, %602, %600, %598, %596, %594, %592, %590, %588, %586, %584, %582, %580, %578, %576, %574, %572, %570, %568, %566, %564, %562, %560, %558, %556, %554, %552, %550, %548, %546, %544, %542, %540, %538, %536, %534, %.preheader270
  %615 = landingpad { ptr, i32 }
          cleanup
  br label %800

._crit_edge301:                                   ; preds = %._crit_edge298, %.preheader269
  call void @_ZN2vl8database10LogManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(304) %8) #7
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %8) #7
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %4) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #7
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %3) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #7
  call void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %2) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #7
  call void @_ZN2vl8database13BufferManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(168) %1) #7
  call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %1) #7
  ret void

.lr.ph300:                                        ; preds = %.preheader269, %._crit_edge298
  %.0130299 = phi i64 [ %620, %._crit_edge298 ], [ 0, %.preheader269 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #7
  %616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %.0130299)
          to label %617 unwind label %623

617:                                              ; preds = %.lr.ph300
  %.sroa.0.0.copyload = load i64, ptr %616, align 8, !tbaa !9
  invoke void @_ZN2vl8database10LogManager19EnumInactiveLogItemENS0_8IdObjectImLl3EEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr") align 8 %59, ptr noundef nonnull align 8 dereferenceable(304) %8, i64 %.sroa.0.0.copyload)
          to label %.preheader unwind label %623

.preheader:                                       ; preds = %617
  %618 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
  %619 = icmp sgt i64 %618, 0
  br i1 %619, label %.lr.ph297, label %._crit_edge298

._crit_edge298:                                   ; preds = %774, %.preheader
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  %620 = add nuw nsw i64 %.0130299, 1
  %621 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %2)
  %622 = icmp slt i64 %620, %621
  br i1 %622, label %.lr.ph300, label %._crit_edge301, !llvm.loop !20

623:                                              ; preds = %617, %.lr.ph300
  %624 = landingpad { ptr, i32 }
          cleanup
  br label %799

.lr.ph297:                                        ; preds = %.preheader, %774
  %.046296 = phi i64 [ %775, %774 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %60) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %61) #7
  %625 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %3, i64 noundef %.0130299)
          to label %626 unwind label %649

626:                                              ; preds = %.lr.ph297
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %62) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %62, ptr noundef nonnull @.str.41, i1 noundef zeroext true)
          to label %627 unwind label %651

627:                                              ; preds = %626
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %61, ptr noundef nonnull align 8 dereferenceable(48) %625, ptr noundef nonnull align 8 dereferenceable(48) %62)
          to label %628 unwind label %653

628:                                              ; preds = %627
  %629 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %4, i64 noundef %.046296)
          to label %630 unwind label %655

630:                                              ; preds = %628
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %60, ptr noundef nonnull align 8 dereferenceable(48) %61, ptr noundef nonnull align 8 dereferenceable(48) %629)
          to label %631 unwind label %655

631:                                              ; preds = %630
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %61) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %62) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %64) #7
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %64, ptr noundef nonnull @.str.44, ptr noundef nonnull align 8 dereferenceable(48) %60)
          to label %632 unwind label %660

632:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %65) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %65, ptr noundef nonnull @.str.43, i1 noundef zeroext true)
          to label %633 unwind label %662

633:                                              ; preds = %632
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %63, ptr noundef nonnull align 8 dereferenceable(48) %64, ptr noundef nonnull align 8 dereferenceable(48) %65)
          to label %634 unwind label %664

634:                                              ; preds = %633
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %63)
          to label %635 unwind label %666

635:                                              ; preds = %634
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %63) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %65) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %64) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %66) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(4096) %66, i8 0, i64 4096, i1 false)
  %636 = call noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48) %60)
  %637 = shl i64 %636, 2
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %67) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %67, ptr noundef nonnull @.str.19, i1 noundef zeroext true)
          to label %638 unwind label %671

638:                                              ; preds = %635
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %67)
          to label %639 unwind label %673

639:                                              ; preds = %638
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %67) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %67) #7
  %640 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %59)
  %641 = load ptr, ptr %640, align 8, !tbaa !15
  %642 = getelementptr inbounds i8, ptr %641, i64 32
  %643 = load ptr, ptr %642, align 8
  %644 = invoke noundef zeroext i1 %643(ptr noundef nonnull align 8 dereferenceable(8) %640)
          to label %645 unwind label %.loopexit

645:                                              ; preds = %639
  br i1 %644, label %646, label %681

646:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %68) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %68, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %647 unwind label %676

647:                                              ; preds = %646
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %68)
          to label %648 unwind label %678

648:                                              ; preds = %647
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %68) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %68) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %70) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %70, ptr noundef nonnull @.str.45, i1 noundef zeroext true)
          to label %690 unwind label %711

649:                                              ; preds = %.lr.ph297
  %650 = landingpad { ptr, i32 }
          cleanup
  br label %659

651:                                              ; preds = %626
  %652 = landingpad { ptr, i32 }
          cleanup
  br label %658

653:                                              ; preds = %627
  %654 = landingpad { ptr, i32 }
          cleanup
  br label %657

655:                                              ; preds = %630, %628
  %656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %61) #7
  br label %657

657:                                              ; preds = %655, %653
  %.pn156 = phi { ptr, i32 } [ %656, %655 ], [ %654, %653 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %62) #7
  br label %658

658:                                              ; preds = %657, %651
  %.pn156.pn = phi { ptr, i32 } [ %.pn156, %657 ], [ %652, %651 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %62) #7
  br label %659

659:                                              ; preds = %658, %649
  %.pn156.pn.pn = phi { ptr, i32 } [ %.pn156.pn, %658 ], [ %650, %649 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %61) #7
  br label %798

660:                                              ; preds = %631
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %670

662:                                              ; preds = %632
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %669

664:                                              ; preds = %633
  %665 = landingpad { ptr, i32 }
          cleanup
  br label %668

666:                                              ; preds = %634
  %667 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %63) #7
  br label %668

668:                                              ; preds = %666, %664
  %.pn160 = phi { ptr, i32 } [ %667, %666 ], [ %665, %664 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #7
  br label %669

669:                                              ; preds = %668, %662
  %.pn160.pn = phi { ptr, i32 } [ %.pn160, %668 ], [ %663, %662 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %65) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %64) #7
  br label %670

670:                                              ; preds = %669, %660
  %.pn160.pn.pn = phi { ptr, i32 } [ %.pn160.pn, %669 ], [ %661, %660 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %63) #7
  br label %797

.loopexit:                                        ; preds = %639, %691, %701, %730, %740, %769
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %796

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

671:                                              ; preds = %635
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %675

673:                                              ; preds = %638
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %67) #7
  br label %675

675:                                              ; preds = %673, %671
  %.pn164 = phi { ptr, i32 } [ %674, %673 ], [ %672, %671 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %67) #7
  br label %796

676:                                              ; preds = %646
  %677 = landingpad { ptr, i32 }
          cleanup
  br label %680

678:                                              ; preds = %647
  %679 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %68) #7
  br label %680

680:                                              ; preds = %678, %676
  %.pn168 = phi { ptr, i32 } [ %679, %678 ], [ %677, %676 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %68) #7
  br label %796

681:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %69) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %69, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %682 unwind label %685

682:                                              ; preds = %681
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %69)
          to label %683 unwind label %687

683:                                              ; preds = %682
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %69) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %69) #7
  br label %.invoke308

.invoke308:                                       ; preds = %790, %762, %723, %683
  %684 = call ptr @__cxa_allocate_exception(i64 4) #7
  store i32 0, ptr %684, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr nonnull %684, ptr nonnull @_ZTIi, ptr null) #8
          to label %.cont309 unwind label %.loopexit.split-lp

.cont309:                                         ; preds = %.invoke308
  unreachable

685:                                              ; preds = %681
  %686 = landingpad { ptr, i32 }
          cleanup
  br label %689

687:                                              ; preds = %682
  %688 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %69) #7
  br label %689

689:                                              ; preds = %687, %685
  %.pn166 = phi { ptr, i32 } [ %688, %687 ], [ %686, %685 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %69) #7
  br label %796

690:                                              ; preds = %648
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %70)
          to label %691 unwind label %713

691:                                              ; preds = %690
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %70) #7
  %692 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %59)
  %693 = load ptr, ptr %692, align 8, !tbaa !15
  %694 = getelementptr i8, ptr %693, i64 -56
  %695 = load i64, ptr %694, align 8
  %696 = getelementptr inbounds i8, ptr %692, i64 %695
  %697 = load ptr, ptr %696, align 8, !tbaa !15
  %698 = getelementptr inbounds i8, ptr %697, i64 24
  %699 = load ptr, ptr %698, align 8
  %700 = invoke noundef nonnull align 8 dereferenceable(8) ptr %699(ptr noundef nonnull align 8 dereferenceable(8) %696)
          to label %701 unwind label %.loopexit

701:                                              ; preds = %691
  %702 = load ptr, ptr %700, align 8, !tbaa !15
  %703 = getelementptr inbounds i8, ptr %702, i64 80
  %704 = load ptr, ptr %703, align 8
  %705 = invoke noundef i64 %704(ptr noundef nonnull align 8 dereferenceable(8) %700)
          to label %706 unwind label %.loopexit

706:                                              ; preds = %701
  %707 = icmp eq i64 %705, %637
  br i1 %707, label %708, label %721

708:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %71) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %71, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %709 unwind label %716

709:                                              ; preds = %708
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %71)
          to label %710 unwind label %718

710:                                              ; preds = %709
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %71) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %73) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull @.str.46, i1 noundef zeroext true)
          to label %729 unwind label %750

711:                                              ; preds = %648
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %715

713:                                              ; preds = %690
  %714 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #7
  br label %715

715:                                              ; preds = %713, %711
  %.pn170 = phi { ptr, i32 } [ %714, %713 ], [ %712, %711 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %70) #7
  br label %796

716:                                              ; preds = %708
  %717 = landingpad { ptr, i32 }
          cleanup
  br label %720

718:                                              ; preds = %709
  %719 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %71) #7
  br label %720

720:                                              ; preds = %718, %716
  %.pn174 = phi { ptr, i32 } [ %719, %718 ], [ %717, %716 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %71) #7
  br label %796

721:                                              ; preds = %706
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %72) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %72, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %722 unwind label %724

722:                                              ; preds = %721
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %72)
          to label %723 unwind label %726

723:                                              ; preds = %722
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %72) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %72) #7
  br label %.invoke308

724:                                              ; preds = %721
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %728

726:                                              ; preds = %722
  %727 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %72) #7
  br label %728

728:                                              ; preds = %726, %724
  %.pn172 = phi { ptr, i32 } [ %727, %726 ], [ %725, %724 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %72) #7
  br label %796

729:                                              ; preds = %710
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %73)
          to label %730 unwind label %752

730:                                              ; preds = %729
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %73) #7
  %731 = call noundef ptr @_ZNK2vl3PtrINS_8database10ILogReaderEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %59)
  %732 = load ptr, ptr %731, align 8, !tbaa !15
  %733 = getelementptr i8, ptr %732, i64 -56
  %734 = load i64, ptr %733, align 8
  %735 = getelementptr inbounds i8, ptr %731, i64 %734
  %736 = load ptr, ptr %735, align 8, !tbaa !15
  %737 = getelementptr inbounds i8, ptr %736, i64 24
  %738 = load ptr, ptr %737, align 8
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr %738(ptr noundef nonnull align 8 dereferenceable(8) %735)
          to label %740 unwind label %.loopexit

740:                                              ; preds = %730
  %741 = load ptr, ptr %739, align 8, !tbaa !15
  %742 = getelementptr inbounds i8, ptr %741, i64 112
  %743 = load ptr, ptr %742, align 8
  %744 = invoke noundef i64 %743(ptr noundef nonnull align 8 dereferenceable(8) %739, ptr noundef nonnull %66, i64 noundef %637)
          to label %745 unwind label %.loopexit

745:                                              ; preds = %740
  %746 = icmp eq i64 %744, %637
  br i1 %746, label %747, label %760

747:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %74) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %74, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %748 unwind label %755

748:                                              ; preds = %747
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %74)
          to label %749 unwind label %757

749:                                              ; preds = %748
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %74) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %76) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %76, ptr noundef nonnull @.str.47, i1 noundef zeroext true)
          to label %768 unwind label %778

750:                                              ; preds = %710
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %754

752:                                              ; preds = %729
  %753 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #7
  br label %754

754:                                              ; preds = %752, %750
  %.pn176 = phi { ptr, i32 } [ %753, %752 ], [ %751, %750 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %73) #7
  br label %796

755:                                              ; preds = %747
  %756 = landingpad { ptr, i32 }
          cleanup
  br label %759

757:                                              ; preds = %748
  %758 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %74) #7
  br label %759

759:                                              ; preds = %757, %755
  %.pn180 = phi { ptr, i32 } [ %758, %757 ], [ %756, %755 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %74) #7
  br label %796

760:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %75) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %75, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %761 unwind label %763

761:                                              ; preds = %760
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %75)
          to label %762 unwind label %765

762:                                              ; preds = %761
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %75) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %75) #7
  br label %.invoke308

763:                                              ; preds = %760
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %767

765:                                              ; preds = %761
  %766 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %75) #7
  br label %767

767:                                              ; preds = %765, %763
  %.pn178 = phi { ptr, i32 } [ %766, %765 ], [ %764, %763 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %75) #7
  br label %796

768:                                              ; preds = %749
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %76)
          to label %769 unwind label %780

769:                                              ; preds = %768
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %76) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %76) #7
  %770 = invoke noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull %66)
          to label %771 unwind label %.loopexit

771:                                              ; preds = %769
  br i1 %770, label %772, label %788

772:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %77) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %77, ptr noundef nonnull @.str.2, i1 noundef zeroext true)
          to label %773 unwind label %783

773:                                              ; preds = %772
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %77)
          to label %774 unwind label %785

774:                                              ; preds = %773
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %77) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %66) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %60) #7
  %775 = add nuw nsw i64 %.046296, 1
  %776 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %4)
  %777 = icmp slt i64 %775, %776
  br i1 %777, label %.lr.ph297, label %._crit_edge298, !llvm.loop !21

778:                                              ; preds = %749
  %779 = landingpad { ptr, i32 }
          cleanup
  br label %782

780:                                              ; preds = %768
  %781 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %76) #7
  br label %782

782:                                              ; preds = %780, %778
  %.pn182 = phi { ptr, i32 } [ %781, %780 ], [ %779, %778 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %76) #7
  br label %796

783:                                              ; preds = %772
  %784 = landingpad { ptr, i32 }
          cleanup
  br label %787

785:                                              ; preds = %773
  %786 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %77) #7
  br label %787

787:                                              ; preds = %785, %783
  %.pn186 = phi { ptr, i32 } [ %786, %785 ], [ %784, %783 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %77) #7
  br label %796

788:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %78) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %78, ptr noundef nonnull @.str.3, i1 noundef zeroext true)
          to label %789 unwind label %791

789:                                              ; preds = %788
  invoke void @_ZN2vl7console7Console9WriteLineERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(48) %78)
          to label %790 unwind label %793

790:                                              ; preds = %789
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %78) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %78) #7
  br label %.invoke308

791:                                              ; preds = %788
  %792 = landingpad { ptr, i32 }
          cleanup
  br label %795

793:                                              ; preds = %789
  %794 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %78) #7
  br label %795

795:                                              ; preds = %793, %791
  %.pn184 = phi { ptr, i32 } [ %794, %793 ], [ %792, %791 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %78) #7
  br label %796

796:                                              ; preds = %.loopexit, %.loopexit.split-lp, %795, %787, %782, %767, %759, %754, %728, %720, %715, %689, %680, %675
  %.pn186.pn = phi { ptr, i32 } [ %.pn186, %787 ], [ %.pn184, %795 ], [ %.pn182, %782 ], [ %.pn180, %759 ], [ %.pn178, %767 ], [ %.pn176, %754 ], [ %.pn174, %720 ], [ %.pn172, %728 ], [ %.pn170, %715 ], [ %.pn168, %680 ], [ %.pn166, %689 ], [ %.pn164, %675 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %66) #7
  br label %797

797:                                              ; preds = %796, %670
  %.pn186.pn.pn = phi { ptr, i32 } [ %.pn186.pn, %796 ], [ %.pn160.pn.pn, %670 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #7
  br label %798

798:                                              ; preds = %797, %659
  %.pn186.pn.pn.pn = phi { ptr, i32 } [ %.pn186.pn.pn, %797 ], [ %.pn156.pn.pn, %659 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %60) #7
  call void @_ZN2vl3PtrINS_8database10ILogReaderEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %799

799:                                              ; preds = %798, %623
  %.pn186.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn186.pn.pn.pn, %798 ], [ %624, %623 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  br label %800

800:                                              ; preds = %799, %614, %533, %348, %270, %247, %165, %156, %150, %149, %134, %126, %120, %119
  %.pn257.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn, %247 ], [ %.pn240.pn.pn.pn, %270 ], [ %.pn236.pn.pn, %348 ], [ %.pn222.pn.pn.pn.pn, %533 ], [ %615, %614 ], [ %.pn186.pn.pn.pn.pn, %799 ], [ %.pn154, %156 ], [ %121, %120 ], [ %.pn152, %165 ], [ %151, %150 ], [ %.pn150, %149 ], [ %.pn148, %126 ], [ %.pn146, %134 ], [ %.pn144, %119 ]
  call void @_ZN2vl8database10LogManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(304) %8) #7
  br label %801

801:                                              ; preds = %800, %113
  %.pn257.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn.pn, %800 ], [ %114, %113 ]
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %8) #7
  br label %802

802:                                              ; preds = %801, %112
  %.pn257.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn.pn.pn, %801 ], [ %.pn.pn.pn, %112 ]
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %4) #7
  br label %803

803:                                              ; preds = %802, %100
  %.pn257.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn.pn.pn.pn, %802 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #7
  call void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %3) #7
  br label %804

804:                                              ; preds = %803, %98
  %.pn257.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn.pn.pn.pn.pn, %803 ], [ %99, %98 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #7
  call void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %2) #7
  br label %805

805:                                              ; preds = %804, %96
  %.pn257.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn.pn.pn.pn.pn.pn, %804 ], [ %97, %96 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #7
  call void @_ZN2vl8database13BufferManagerD1Ev(ptr noundef nonnull align 8 dereferenceable(168) %1) #7
  call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %1) #7
  resume { ptr, i32 } %.pn257.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

declare noundef i64 @_ZN2vl8database10LogManager23GetUsedTransactionCountEv(ptr noundef nonnull align 8 dereferenceable(304)) local_unnamed_addr #1

declare i64 @_ZN2vl8database10LogManager14GetTransactionEm(ptr noundef nonnull align 8 dereferenceable(304), i64 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN2vl8database8IdObjectImLl3EE7InvalidEv() local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_E3AddERKS4_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_E3AddERKS3_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2

declare void @_ZN2vl4itowEl(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8, i64 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_8database8IdObjectImLl3EEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_12ObjectStringIwEEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK2vl12ObjectStringIwE6BufferEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl12ObjectStringIwE6LengthEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections4ListINS_12ObjectStringIwEES3_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections4ListINS_8database8IdObjectImLl3EEES4_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #6 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = !{!16, !16, i64 0}
!16 = !{!"vtable pointer", !8, i64 0}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}


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