; LLVM IR from sfu-dis/mosaicdb :: benchmarks/egen/TradeGen.ll (ZN4TPCE9CTradeGenC2ENS_11CInputFilesExxxjjjb)

; 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.TPCE::CInputFiles" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.TPCE::CTradeGen" = type <{ %"class.TPCE::CRandom", %"class.TPCE::CAddressTable", %"class.TPCE::CCustomerSelection", %"class.TPCE::CCustomerTable", %"class.TPCE::CCustomerTaxratesTable", %"class.TPCE::CCustomerAccountsAndPermissionsTable", %"class.TPCE::CHoldingsAndTradesTable", %"class.TPCE::CBrokersTable", %"class.TPCE::CSecurityTable", %"class.TPCE::CPerson", ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, i64, i64, i64, i32, i32, i32, i32, double, double, %"class.TPCE::CDateTime", double, %"class.std::priority_queue", i64, i64, i64, i32, [4 x i8], ptr, %"struct.TPCE::TTradeInfo", %"struct.TPCE::TAdditionalTradeInfo", %"struct.TPCE::TTradeRow", %"struct.TPCE::HOLDING_ROW", %"struct.TPCE::HOLDING_SUMMARY_ROW", i32, i32, i32, i32, %"class.TPCE::CMEESecurity", i32, i32, %"struct.std::_List_iterator", i32, i32, i64, i32, [4 x i8] }>
%"class.TPCE::CRandom" = type { i64 }
%"class.TPCE::CAddressTable" = type { %"class.TPCE::TableTemplate", %"class.TPCE::CDateTime", ptr, ptr, ptr, ptr, i64, i64, i8, i8, i64, i32, i64, i8, i32, i64, ptr }
%"class.TPCE::TableTemplate" = type { ptr, %"struct.TPCE::ADDRESS_ROW", i64, i8, %"class.TPCE::CRandom" }
%"struct.TPCE::ADDRESS_ROW" = type { i64, [81 x i8], [81 x i8], [13 x i8], [81 x i8] }
%"class.TPCE::CCustomerSelection" = type { ptr, i64, i64, i8, i32, i64, i64 }
%"class.TPCE::CCustomerTable" = type { %"class.TPCE::TableTemplate.0", i64, %"class.TPCE::CPerson", ptr, i64, i64, i64, i32, ptr, %"class.TPCE::CCustomerSelection" }
%"class.TPCE::TableTemplate.0" = type { ptr, %"struct.TPCE::CUSTOMER_ROW", i64, i8, %"class.TPCE::CRandom" }
%"struct.TPCE::CUSTOMER_ROW" = type <{ i64, [21 x i8], [5 x i8], [26 x i8], [21 x i8], [2 x i8], i8, i8, [3 x i8], %"class.TPCE::CDateTime", i64, [4 x i8], [4 x i8], [11 x i8], [6 x i8], [4 x i8], [4 x i8], [11 x i8], [6 x i8], [4 x i8], [4 x i8], [11 x i8], [6 x i8], [51 x i8], [51 x i8], [7 x i8] }>
%"class.TPCE::CCustomerTaxratesTable" = type { %"class.TPCE::TableTemplate.1", %"class.TPCE::CCustomerTable", %"class.TPCE::CAddressTable", ptr, ptr }
%"class.TPCE::TableTemplate.1" = type { ptr, %"struct.TPCE::CUSTOMER_TAXRATE_ROWS", i64, i8, %"class.TPCE::CRandom" }
%"struct.TPCE::CUSTOMER_TAXRATE_ROWS" = type { [2 x %"struct.TPCE::CUSTOMER_TAXRATE_ROW"] }
%"struct.TPCE::CUSTOMER_TAXRATE_ROW" = type { [5 x i8], i64 }
%"class.TPCE::CCustomerAccountsAndPermissionsTable" = type { %"class.TPCE::TableTemplate.2", ptr, ptr, i64, i64, i64, i32, i32, %"class.TPCE::CCustomerTable", %"class.TPCE::CPerson", i32, i64, %"class.TPCE::CAddressTable", i32, %"class.TPCE::CCustomerSelection", i8, i32, i64, ptr, i32, i64, ptr }
%"class.TPCE::TableTemplate.2" = type { ptr, %"struct.TPCE::CUSTOMER_ACCOUNT_AND_PERMISSION_ROW", i64, i8, %"class.TPCE::CRandom" }
%"struct.TPCE::CUSTOMER_ACCOUNT_AND_PERMISSION_ROW" = type { %"struct.TPCE::CUSTOMER_ACCOUNT_ROW", [4 x %"struct.TPCE::ACCOUNT_PERMISSION_ROW"] }
%"struct.TPCE::CUSTOMER_ACCOUNT_ROW" = type { i64, i64, i64, [51 x i8], i8, double }
%"struct.TPCE::ACCOUNT_PERMISSION_ROW" = type { i64, [5 x i8], [21 x i8], [26 x i8], [21 x i8] }
%"class.TPCE::CHoldingsAndTradesTable" = type { %"class.TPCE::CRandom", %"class.TPCE::CCustomerAccountsAndPermissionsTable", i64, i32, [18 x i64], i8, i64, i32, ptr, i64, i32, ptr }
%"class.TPCE::CBrokersTable" = type { %"class.TPCE::TableTemplate.3", i64, i64, i64, %"class.TPCE::CPerson", ptr, ptr, ptr }
%"class.TPCE::TableTemplate.3" = type { ptr, %"struct.TPCE::BROKER_ROW", i64, i8, %"class.TPCE::CRandom" }
%"struct.TPCE::BROKER_ROW" = type { i64, [5 x i8], [50 x i8], i32, double }
%"class.TPCE::CSecurityTable" = type { %"class.TPCE::TableTemplate.4", i64, i64, ptr, ptr, %"class.TPCE::CDateTime", i32, i32, i32, i64 }
%"class.TPCE::TableTemplate.4" = type { ptr, %"struct.TPCE::SECURITY_ROW", i64, i8, %"class.TPCE::CRandom" }
%"struct.TPCE::SECURITY_ROW" = type { [16 x i8], [7 x i8], [5 x i8], [71 x i8], [7 x i8], i64, i64, %"class.TPCE::CDateTime", %"class.TPCE::CDateTime", double, float, %"class.TPCE::CDateTime", float, %"class.TPCE::CDateTime", double, double }
%"class.TPCE::CPerson" = type { ptr, ptr, ptr, %"class.TPCE::CRandom", i8, i32, i64, ptr, ptr }
%"class.TPCE::CDateTime" = type { i32, i32, ptr }
%"class.std::priority_queue" = type <{ %"class.std::vector", [8 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<TPCE::TTradeInfo, std::allocator<TPCE::TTradeInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<TPCE::TTradeInfo, std::allocator<TPCE::TTradeInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<TPCE::TTradeInfo, std::allocator<TPCE::TTradeInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TPCE::TTradeInfo, std::allocator<TPCE::TTradeInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.TPCE::TTradeInfo" = type <{ i64, i32, i32, double, double, double, i64, i32, i32, %"class.TPCE::CMoney", %"class.TPCE::CMoney", i64, i32, [4 x i8], i64, i8, [7 x i8] }>
%"class.TPCE::CMoney" = type { i64 }
%"struct.TPCE::TAdditionalTradeInfo" = type { %"class.TPCE::CMoney", %"class.TPCE::CMoney", i64, i32, %"class.TPCE::CMoney", %"class.TPCE::CMoney", %"class.TPCE::CMoney", %"class.TPCE::CMoney" }
%"struct.TPCE::TTradeRow" = type { %"struct.TPCE::TRADE_ROW", %"struct.TPCE::TRADE_REQUEST_ROW", [3 x %"struct.TPCE::TRADE_HISTORY_ROW"], %"struct.TPCE::SETTLEMENT_ROW", %"struct.TPCE::CASH_TRANSACTION_ROW", [8 x %"struct.TPCE::HOLDING_HISTORY_ROW"] }
%"struct.TPCE::TRADE_ROW" = type <{ i64, %"class.TPCE::CDateTime", [5 x i8], [4 x i8], i8, [16 x i8], [2 x i8], i32, double, i64, [50 x i8], [6 x i8], double, double, double, double, i8, [7 x i8] }>
%"struct.TPCE::TRADE_REQUEST_ROW" = type { i64, [4 x i8], [16 x i8], i32, double, i64 }
%"struct.TPCE::TRADE_HISTORY_ROW" = type <{ i64, %"class.TPCE::CDateTime", [5 x i8], [3 x i8] }>
%"struct.TPCE::SETTLEMENT_ROW" = type { i64, [41 x i8], %"class.TPCE::CDateTime", double }
%"struct.TPCE::CASH_TRANSACTION_ROW" = type <{ i64, %"class.TPCE::CDateTime", double, [101 x i8], [3 x i8] }>
%"struct.TPCE::HOLDING_HISTORY_ROW" = type { i64, i64, i32, i32 }
%"struct.TPCE::HOLDING_ROW" = type <{ i64, i64, [16 x i8], %"class.TPCE::CDateTime", double, i32, [4 x i8] }>
%"struct.TPCE::HOLDING_SUMMARY_ROW" = type { i64, [16 x i8], i32 }
%"class.TPCE::CMEESecurity" = type { %"class.TPCE::CRandom", %"class.TPCE::CMoney", %"class.TPCE::CMoney", %"class.TPCE::CMoney", i32, i32, ptr, ptr, double }
%"struct.std::_List_iterator" = type { ptr }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<TPCE::THoldingInfo, std::allocator<TPCE::THoldingInfo>>::_List_impl" }
%"struct.std::__cxx11::_List_base<TPCE::THoldingInfo, std::allocator<TPCE::THoldingInfo>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4TPCE9CTradeGenC2ENS_11CInputFilesExxxjjjb(ptr noundef nonnull align 8 dereferenceable(7356) %0, ptr noundef %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i1 noundef zeroext %8) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i8, align 1
  %19 = alloca %"class.TPCE::CInputFiles", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.TPCE::CInputFiles", align 8
  %23 = alloca %"class.TPCE::CInputFiles", align 8
  %24 = alloca %"class.TPCE::CInputFiles", align 8
  %25 = alloca %"class.TPCE::CInputFiles", align 8
  %26 = alloca %"class.TPCE::CInputFiles", align 8
  %27 = alloca %"class.TPCE::CInputFiles", align 8
  %28 = alloca %"class.TPCE::CInputFiles", align 8
  %29 = alloca i64, align 8
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store i64 %2, ptr %12, align 8, !tbaa !9
  store i64 %3, ptr %13, align 8, !tbaa !9
  store i64 %4, ptr %14, align 8, !tbaa !9
  store i32 %5, ptr %15, align 4, !tbaa !11
  store i32 %6, ptr %16, align 4, !tbaa !11
  store i32 %7, ptr %17, align 4, !tbaa !11
  %30 = zext i1 %8 to i8
  store i8 %30, ptr %18, align 1, !tbaa !13
  %31 = load ptr, ptr %10, align 8
  %32 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 0
  call void @_ZN4TPCE7CRandomC1Ey(ptr noundef nonnull align 8 dereferenceable(8) %32, i64 noundef 32900134)
  %33 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %34 = load i64, ptr %12, align 8, !tbaa !9
  %35 = load i64, ptr %13, align 8, !tbaa !9
  %36 = load i8, ptr %18, align 1, !tbaa !13, !range !16, !noundef !17
  %37 = trunc i8 %36 to i1
  invoke void @_ZN4TPCE13CAddressTableC1ENS_11CInputFilesExxbb(ptr noundef nonnull align 8 dereferenceable(416) %33, ptr noundef %19, i64 noundef %34, i64 noundef %35, i1 noundef zeroext true, i1 noundef zeroext %37)
          to label %38 unwind label %251

38:                                               ; preds = %9
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %19) #11
  %39 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 2
  %40 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 0
  %41 = load i64, ptr %13, align 8, !tbaa !9
  %42 = load i32, ptr %15, align 4, !tbaa !11
  %43 = zext i32 %42 to i64
  invoke void @_ZN4TPCE18CCustomerSelectionC1EPNS_7CRandomExxixx(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef %40, i64 noundef 0, i64 noundef 0, i32 noundef 100, i64 noundef %41, i64 noundef %43)
          to label %44 unwind label %255

44:                                               ; preds = %38
  %45 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %22, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %46 = load i64, ptr %12, align 8, !tbaa !9
  %47 = load i64, ptr %13, align 8, !tbaa !9
  invoke void @_ZN4TPCE14CCustomerTableC1ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(496) %45, ptr noundef %22, i64 noundef %46, i64 noundef %47)
          to label %48 unwind label %259

48:                                               ; preds = %44
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %22) #11
  %49 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %23, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %50 = load i64, ptr %12, align 8, !tbaa !9
  %51 = load i64, ptr %13, align 8, !tbaa !9
  %52 = load i8, ptr %18, align 1, !tbaa !13, !range !16, !noundef !17
  %53 = trunc i8 %52 to i1
  invoke void @_ZN4TPCE22CCustomerTaxratesTableC2ENS_11CInputFilesExxb(ptr noundef nonnull align 8 dereferenceable(992) %49, ptr noundef %23, i64 noundef %50, i64 noundef %51, i1 noundef zeroext %53)
          to label %54 unwind label %263

54:                                               ; preds = %48
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %23) #11
  %55 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %24, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %56 = load i32, ptr %15, align 4, !tbaa !11
  %57 = load i64, ptr %12, align 8, !tbaa !9
  %58 = load i64, ptr %13, align 8, !tbaa !9
  %59 = load i8, ptr %18, align 1, !tbaa !13, !range !16, !noundef !17
  %60 = trunc i8 %59 to i1
  invoke void @_ZN4TPCE36CCustomerAccountsAndPermissionsTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1616) %55, ptr noundef %24, i32 noundef %56, i64 noundef %57, i64 noundef %58, i1 noundef zeroext %60)
          to label %61 unwind label %267

61:                                               ; preds = %54
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %24) #11
  %62 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %63 = load i32, ptr %15, align 4, !tbaa !11
  %64 = load i64, ptr %12, align 8, !tbaa !9
  %65 = load i64, ptr %13, align 8, !tbaa !9
  %66 = load i8, ptr %18, align 1, !tbaa !13, !range !16, !noundef !17
  %67 = trunc i8 %66 to i1
  invoke void @_ZN4TPCE23CHoldingsAndTradesTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1840) %62, ptr noundef %25, i32 noundef %63, i64 noundef %64, i64 noundef %65, i1 noundef zeroext %67)
          to label %68 unwind label %271

68:                                               ; preds = %61
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %25) #11
  %69 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %26, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %70 = load i64, ptr %12, align 8, !tbaa !9
  %71 = load i64, ptr %13, align 8, !tbaa !9
  invoke void @_ZN4TPCE13CBrokersTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(224) %69, ptr noundef %26, i64 noundef %70, i64 noundef %71)
          to label %72 unwind label %275

72:                                               ; preds = %68
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %26) #11
  %73 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %27, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %74 = load i64, ptr %12, align 8, !tbaa !9
  %75 = load i64, ptr %13, align 8, !tbaa !9
  invoke void @_ZN4TPCE14CSecurityTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(336) %73, ptr noundef %27, i64 noundef %74, i64 noundef %75)
          to label %76 unwind label %279

76:                                               ; preds = %72
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %27) #11
  %77 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %28, ptr align 8 %1, i64 184, i1 false), !tbaa.struct !15
  %78 = load i64, ptr %13, align 8, !tbaa !9
  %79 = load i8, ptr %18, align 1, !tbaa !13, !range !16, !noundef !17
  %80 = trunc i8 %79 to i1
  invoke void @_ZN4TPCE7CPersonC1ENS_11CInputFilesExb(ptr noundef nonnull align 8 dereferenceable(64) %77, ptr noundef %28, i64 noundef %78, i1 noundef zeroext %80)
          to label %81 unwind label %283

81:                                               ; preds = %76
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %28) #11
  %82 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 10
  %83 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 3
  %84 = load ptr, ptr %83, align 8, !tbaa !18
  store ptr %84, ptr %82, align 8, !tbaa !20
  %85 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 11
  %86 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 13
  %87 = load ptr, ptr %86, align 8, !tbaa !70
  store ptr %87, ptr %85, align 8, !tbaa !71
  %88 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 12
  %89 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 1
  %90 = load ptr, ptr %89, align 8, !tbaa !72
  store ptr %90, ptr %88, align 8, !tbaa !73
  %91 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 13
  %92 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 2
  %93 = load ptr, ptr %92, align 8, !tbaa !74
  store ptr %93, ptr %91, align 8, !tbaa !75
  %94 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 14
  %95 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 14
  %96 = load ptr, ptr %95, align 8, !tbaa !76
  store ptr %96, ptr %94, align 8, !tbaa !77
  %97 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 15
  %98 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 21
  %99 = load ptr, ptr %98, align 8, !tbaa !78
  store ptr %99, ptr %97, align 8, !tbaa !79
  %100 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 16
  %101 = getelementptr inbounds %"class.TPCE::CInputFiles", ptr %1, i32 0, i32 6
  %102 = load ptr, ptr %101, align 8, !tbaa !80
  store ptr %102, ptr %100, align 8, !tbaa !81
  %103 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 17
  %104 = load i64, ptr %13, align 8, !tbaa !9
  %105 = add nsw i64 %104, 4300000000
  store i64 %105, ptr %103, align 8, !tbaa !82
  %106 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 19
  %107 = load i64, ptr %12, align 8, !tbaa !9
  store i64 %107, ptr %106, align 8, !tbaa !83
  %108 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 20
  %109 = load i64, ptr %14, align 8, !tbaa !9
  store i64 %109, ptr %108, align 8, !tbaa !84
  %110 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 21
  %111 = load i32, ptr %15, align 4, !tbaa !11
  store i32 %111, ptr %110, align 8, !tbaa !85
  %112 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 22
  %113 = load i32, ptr %15, align 4, !tbaa !11
  %114 = mul i32 %113, 10
  store i32 %114, ptr %112, align 4, !tbaa !86
  %115 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 23
  %116 = load i32, ptr %16, align 4, !tbaa !11
  store i32 %116, ptr %115, align 8, !tbaa !87
  %117 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 24
  %118 = load i32, ptr %17, align 4, !tbaa !11
  store i32 %118, ptr %117, align 4, !tbaa !88
  %119 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 25
  %120 = load i32, ptr %16, align 4, !tbaa !11
  %121 = uitofp i32 %120 to double
  %122 = fmul double 0x3FEFAEE41E6A7498, %121
  %123 = load i32, ptr %15, align 4, !tbaa !11
  %124 = uitofp i32 %123 to double
  %125 = fdiv double %122, %124
  store double %125, ptr %119, align 8, !tbaa !89
  %126 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 26
  store double 1.000000e+00, ptr %126, align 8, !tbaa !90
  %127 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 27
  invoke void @_ZN4TPCE9CDateTimeC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %128 unwind label %287

128:                                              ; preds = %81
  %129 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 28
  store double 0.000000e+00, ptr %129, align 8, !tbaa !91
  %130 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 29
  invoke void @_ZNSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(25) %130)
          to label %131 unwind label %291

131:                                              ; preds = %128
  %132 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 30
  store i64 0, ptr %132, align 8, !tbaa !92
  %133 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 31
  %134 = load i32, ptr %17, align 4, !tbaa !11
  %135 = zext i32 %134 to i64
  %136 = mul nsw i64 %135, 3600
  %137 = load i32, ptr %15, align 4, !tbaa !11
  %138 = zext i32 %137 to i64
  %139 = mul nsw i64 %136, %138
  %140 = load i32, ptr %16, align 4, !tbaa !11
  %141 = zext i32 %140 to i64
  %142 = sdiv i64 %139, %141
  store i64 %142, ptr %133, align 8, !tbaa !93
  %143 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 32
  store i64 0, ptr %143, align 8, !tbaa !94
  %144 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 33
  %145 = load i32, ptr %15, align 4, !tbaa !11
  %146 = mul i32 28800, %145
  %147 = load i32, ptr %16, align 4, !tbaa !11
  %148 = udiv i32 %146, %147
  %149 = mul i32 %148, 101
  %150 = udiv i32 %149, 100
  store i32 %150, ptr %144, align 8, !tbaa !95
  %151 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 36
  invoke void @_ZN4TPCE10TTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(97) %151)
          to label %152 unwind label %295

152:                                              ; preds = %131
  %153 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 37
  invoke void @_ZN4TPCE20TAdditionalTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %153)
          to label %154 unwind label %295

154:                                              ; preds = %152
  %155 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 38
  invoke void @_ZN4TPCE9TTradeRowC2Ev(ptr noundef nonnull align 8 dereferenceable(720) %155)
          to label %156 unwind label %295

156:                                              ; preds = %154
  %157 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 39
  invoke void @_ZN4TPCE11HOLDING_ROWC2Ev(ptr noundef nonnull align 8 dereferenceable(60) %157)
          to label %158 unwind label %299

158:                                              ; preds = %156
  %159 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 40
  %160 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 45
  invoke void @_ZN4TPCE12CMEESecurityC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %160)
          to label %161 unwind label %303

161:                                              ; preds = %158
  %162 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 46
  store i32 0, ptr %162, align 8, !tbaa !96
  %163 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 47
  store i32 0, ptr %163, align 4, !tbaa !97
  %164 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 48
  call void @_ZNSt14_List_iteratorIN4TPCE12THoldingInfoEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #11
  %165 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 49
  store i32 0, ptr %165, align 8, !tbaa !98
  %166 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 50
  store i32 -1, ptr %166, align 4, !tbaa !99
  %167 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 52
  store i32 0, ptr %167, align 8, !tbaa !100
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  %168 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 27
  invoke void @_ZN4TPCE9CDateTime3SetEiiiiiii(ptr noundef nonnull align 8 dereferenceable(16) %168, i32 noundef 2005, i32 noundef 1, i32 noundef 3, i32 noundef 9, i32 noundef 0, i32 noundef 0, i32 noundef 0)
          to label %169 unwind label %307

169:                                              ; preds = %161
  %170 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 5
  %171 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 17
  %172 = load i64, ptr %171, align 8, !tbaa !82
  %173 = invoke noundef i64 @_ZN4TPCE36CCustomerAccountsAndPermissionsTable16GetStartingCA_IDEx(ptr noundef nonnull align 8 dereferenceable(1616) %170, i64 noundef %172)
          to label %174 unwind label %307

174:                                              ; preds = %169
  %175 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 18
  store i64 %173, ptr %175, align 8, !tbaa !101
  %176 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 22
  %177 = load i32, ptr %176, align 4, !tbaa !86
  %178 = sext i32 %177 to i64
  %179 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %178, i64 432)
  %180 = extractvalue { i64, i1 } %179, 1
  %181 = extractvalue { i64, i1 } %179, 0
  %182 = mul i64 %178, 18
  %183 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %181, i64 8)
  %184 = extractvalue { i64, i1 } %183, 1
  %185 = or i1 %180, %184
  %186 = extractvalue { i64, i1 } %183, 0
  %187 = select i1 %185, i64 -1, i64 %186
  %188 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %187) #12
          to label %189 unwind label %307

189:                                              ; preds = %174
  store i64 %182, ptr %188, align 16
  %190 = getelementptr inbounds i8, ptr %188, i64 8
  %191 = icmp eq i64 %182, 0
  br i1 %191, label %198, label %192

192:                                              ; preds = %189
  %193 = getelementptr inbounds %"class.std::__cxx11::list", ptr %190, i64 %182
  br label %194

194:                                              ; preds = %194, %192
  %195 = phi ptr [ %190, %192 ], [ %196, %194 ]
  call void @_ZNSt7__cxx114listIN4TPCE12THoldingInfoESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %195) #11
  %196 = getelementptr inbounds %"class.std::__cxx11::list", ptr %195, i64 1
  %197 = icmp eq ptr %196, %193
  br i1 %197, label %198, label %194

198:                                              ; preds = %194, %189
  %199 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 35
  store ptr %190, ptr %199, align 8, !tbaa !102
  %200 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 36
  call void @llvm.memset.p0.i64(ptr align 8 %200, i8 0, i64 104, i1 false)
  %201 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 38
  call void @llvm.memset.p0.i64(ptr align 8 %201, i8 0, i64 720, i1 false)
  %202 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 39
  call void @llvm.memset.p0.i64(ptr align 8 %202, i8 0, i64 64, i1 false)
  %203 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 40
  call void @llvm.memset.p0.i64(ptr align 8 %203, i8 0, i64 32, i1 false)
  %204 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 24
  %205 = load i32, ptr %204, align 4, !tbaa !88
  %206 = sext i32 %205 to i64
  %207 = mul nsw i64 %206, 3600
  %208 = load i64, ptr %13, align 8, !tbaa !9
  %209 = sub nsw i64 %208, 1
  %210 = mul nsw i64 %207, %209
  %211 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 23
  %212 = load i32, ptr %211, align 8, !tbaa !87
  %213 = sext i32 %212 to i64
  %214 = sdiv i64 %210, %213
  %215 = mul nsw i64 %214, 101
  %216 = sdiv i64 %215, 100
  %217 = add nsw i64 %216, 200000000000000
  %218 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 51
  store i64 %217, ptr %218, align 8, !tbaa !103
  %219 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 7
  %220 = load i32, ptr %15, align 4, !tbaa !11
  %221 = zext i32 %220 to i64
  %222 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 17
  %223 = load i64, ptr %222, align 8, !tbaa !82
  %224 = sub nsw i64 %223, 4300000000
  invoke void @_ZN4TPCE13CBrokersTable10InitForGenExx(ptr noundef nonnull align 8 dereferenceable(224) %219, i64 noundef %221, i64 noundef %224)
          to label %225 unwind label %307

225:                                              ; preds = %198
  %226 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 17
  %227 = load i64, ptr %226, align 8, !tbaa !82
  %228 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 21
  %229 = load i32, ptr %228, align 8, !tbaa !85
  %230 = sext i32 %229 to i64
  %231 = sdiv i64 %227, %230
  %232 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 31
  %233 = load i64, ptr %232, align 8, !tbaa !93
  %234 = mul nsw i64 %231, %233
  store i64 %234, ptr %29, align 8, !tbaa !9
  %235 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 0
  %236 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 0
  %237 = load i64, ptr %29, align 8, !tbaa !9
  %238 = mul i64 %237, 11
  %239 = invoke noundef i64 @_ZN4TPCE7CRandom13RndNthElementEyy(ptr noundef nonnull align 8 dereferenceable(8) %236, i64 noundef 32900134, i64 noundef %238)
          to label %240 unwind label %307

240:                                              ; preds = %225
  invoke void @_ZN4TPCE7CRandom7SetSeedEy(ptr noundef nonnull align 8 dereferenceable(8) %235, i64 noundef %239)
          to label %241 unwind label %307

241:                                              ; preds = %240
  %242 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 6
  %243 = load i64, ptr %29, align 8, !tbaa !9
  %244 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 18
  %245 = load i64, ptr %244, align 8, !tbaa !101
  invoke void @_ZN4TPCE23CHoldingsAndTradesTable16InitNextLoadUnitExx(ptr noundef nonnull align 8 dereferenceable(1840) %242, i64 noundef %243, i64 noundef %245)
          to label %246 unwind label %307

246:                                              ; preds = %241
  %247 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 45
  %248 = getelementptr inbounds %"class.TPCE::CTradeGen", ptr %31, i32 0, i32 26
  %249 = load double, ptr %248, align 8, !tbaa !90
  invoke void @_ZN4TPCE12CMEESecurity4InitEiPNS_9CDateTimeES2_d(ptr noundef nonnull align 8 dereferenceable(64) %247, i32 noundef 0, ptr noundef null, ptr noundef null, double noundef %249)
          to label %250 unwind label %307

250:                                              ; preds = %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  ret void

251:                                              ; preds = %9
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %20, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %19) #11
  br label %323

255:                                              ; preds = %38
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %20, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %21, align 4
  br label %322

259:                                              ; preds = %44
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %20, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %22) #11
  br label %322

263:                                              ; preds = %48
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %20, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %23) #11
  br label %321

267:                                              ; preds = %54
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %20, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %24) #11
  br label %320

271:                                              ; preds = %61
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %20, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %25) #11
  br label %319

275:                                              ; preds = %68
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %20, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %26) #11
  br label %318

279:                                              ; preds = %72
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %20, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %27) #11
  br label %317

283:                                              ; preds = %76
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %20, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %21, align 4
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %28) #11
  br label %316

287:                                              ; preds = %81
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %20, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %21, align 4
  br label %315

291:                                              ; preds = %128
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %20, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %21, align 4
  br label %314

295:                                              ; preds = %154, %152, %131
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %20, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %21, align 4
  br label %313

299:                                              ; preds = %156
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %20, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %21, align 4
  br label %312

303:                                              ; preds = %158
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %20, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %21, align 4
  br label %311

307:                                              ; preds = %246, %241, %240, %225, %198, %174, %169, %161
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %20, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  call void @_ZN4TPCE12CMEESecurityD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %160) #11
  br label %311

311:                                              ; preds = %307, %303
  call void @_ZN4TPCE11HOLDING_ROWD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %157) #11
  br label %312

312:                                              ; preds = %311, %299
  call void @_ZN4TPCE9TTradeRowD2Ev(ptr noundef nonnull align 8 dereferenceable(720) %155) #11
  br label %313

313:                                              ; preds = %312, %295
  call void @_ZNSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %130) #11
  br label %314

314:                                              ; preds = %313, %291
  call void @_ZN4TPCE9CDateTimeD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  br label %315

315:                                              ; preds = %314, %287
  call void @_ZN4TPCE7CPersonD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %77) #11
  br label %316

316:                                              ; preds = %315, %283
  call void @_ZN4TPCE14CSecurityTableD2Ev(ptr noundef nonnull align 8 dereferenceable(336) %73) #11
  br label %317

317:                                              ; preds = %316, %279
  call void @_ZN4TPCE13CBrokersTableD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %69) #11
  br label %318

318:                                              ; preds = %317, %275
  call void @_ZN4TPCE23CHoldingsAndTradesTableD2Ev(ptr noundef nonnull align 8 dereferenceable(1840) %62) #11
  br label %319

319:                                              ; preds = %318, %271
  call void @_ZN4TPCE36CCustomerAccountsAndPermissionsTableD2Ev(ptr noundef nonnull align 8 dereferenceable(1616) %55) #11
  br label %320

320:                                              ; preds = %319, %267
  call void @_ZN4TPCE22CCustomerTaxratesTableD2Ev(ptr noundef nonnull align 8 dereferenceable(992) %49) #11
  br label %321

321:                                              ; preds = %320, %263
  call void @_ZN4TPCE14CCustomerTableD2Ev(ptr noundef nonnull align 8 dereferenceable(496) %45) #11
  br label %322

322:                                              ; preds = %321, %259, %255
  call void @_ZN4TPCE13CAddressTableD1Ev(ptr noundef nonnull align 8 dereferenceable(416) %33) #11
  br label %323

323:                                              ; preds = %322, %251
  call void @_ZN4TPCE7CRandomD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %324

324:                                              ; preds = %323
  %325 = load ptr, ptr %20, align 8
  %326 = load i32, ptr %21, align 4
  %327 = insertvalue { ptr, i32 } poison, ptr %325, 0
  %328 = insertvalue { ptr, i32 } %327, i32 %326, 1
  resume { ptr, i32 } %328
}

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

; 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) #2

declare void @_ZN4TPCE13CAddressTableC1ENS_11CInputFilesExxbb(ptr noundef nonnull align 8 dereferenceable(416), ptr noundef, i64 noundef, i64 noundef, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

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

declare void @_ZN4TPCE18CCustomerSelectionC1EPNS_7CRandomExxixx(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i64 noundef, i64 noundef, i32 noundef, i64 noundef, i64 noundef) unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE36CCustomerAccountsAndPermissionsTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1616), ptr noundef, i32 noundef, i64 noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE23CHoldingsAndTradesTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1840), ptr noundef, i32 noundef, i64 noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE13CBrokersTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef, i64 noundef, i64 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE14CSecurityTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(336), ptr noundef, i64 noundef, i64 noundef) unnamed_addr #0 align 2

declare void @_ZN4TPCE7CPersonC1ENS_11CInputFilesExb(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #1

declare void @_ZN4TPCE9CDateTimeC1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE10TTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(97)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE20TAdditionalTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE9TTradeRowC2Ev(ptr noundef nonnull align 8 dereferenceable(720)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE11HOLDING_ROWC2Ev(ptr noundef nonnull align 8 dereferenceable(60)) unnamed_addr #4 align 2

declare void @_ZN4TPCE12CMEESecurityC1Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #1

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

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

declare void @_ZN4TPCE9CDateTime3SetEiiiiiii(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #1

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #6

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE13CBrokersTable10InitForGenExx(ptr noundef nonnull align 8 dereferenceable(224), i64 noundef, i64 noundef) #0 align 2

declare void @_ZN4TPCE7CRandom7SetSeedEy(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE23CHoldingsAndTradesTable16InitNextLoadUnitExx(ptr noundef nonnull align 8 dereferenceable(1840), i64 noundef, i64 noundef) #0 align 2

declare void @_ZN4TPCE12CMEESecurity4InitEiPNS_9CDateTimeES2_d(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef, ptr noundef, ptr noundef, double noundef) #1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4TPCE12CMEESecurityD2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4TPCE11HOLDING_ROWD2Ev(ptr noundef nonnull align 8 dereferenceable(60)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4TPCE9TTradeRowD2Ev(ptr noundef nonnull align 8 dereferenceable(720)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #9 align 2

; Function Attrs: nounwind
declare void @_ZN4TPCE9CDateTimeD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #10

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4TPCE14CSecurityTableD2Ev(ptr noundef nonnull align 8 dereferenceable(336)) unnamed_addr #9 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4TPCE22CCustomerTaxratesTableD2Ev(ptr noundef nonnull align 8 dereferenceable(992)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN4TPCE14CCustomerTableD2Ev(ptr noundef nonnull align 8 dereferenceable(496)) unnamed_addr #9 align 2

; Function Attrs: nounwind
declare void @_ZN4TPCE13CAddressTableD1Ev(ptr noundef nonnull align 8 dereferenceable(416)) unnamed_addr #10

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5, i64 24, i64 8, !5, i64 32, i64 8, !5, i64 40, i64 8, !5, i64 48, i64 8, !5, i64 56, i64 8, !5, i64 64, i64 8, !5, i64 72, i64 8, !5, i64 80, i64 8, !5, i64 88, i64 8, !5, i64 96, i64 8, !5, i64 104, i64 8, !5, i64 112, i64 8, !5, i64 120, i64 8, !5, i64 128, i64 8, !5, i64 136, i64 8, !5, i64 144, i64 8, !5, i64 152, i64 8, !5, i64 160, i64 8, !5, i64 168, i64 8, !5, i64 176, i64 8, !5}
!16 = !{i8 0, i8 2}
!17 = !{}
!18 = !{!19, !6, i64 24}
!19 = !{!"_ZTSN4TPCE11CInputFilesE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176}
!20 = !{!21, !6, i64 6040}
!21 = !{!"_ZTSN4TPCE9CTradeGenE", !22, i64 0, !23, i64 8, !27, i64 424, !28, i64 472, !32, i64 968, !35, i64 1960, !40, i64 3576, !41, i64 5416, !44, i64 5640, !31, i64 5976, !6, i64 6040, !6, i64 6048, !6, i64 6056, !6, i64 6064, !6, i64 6072, !6, i64 6080, !6, i64 6088, !10, i64 6096, !10, i64 6104, !10, i64 6112, !10, i64 6120, !12, i64 6128, !12, i64 6132, !12, i64 6136, !12, i64 6140, !39, i64 6144, !39, i64 6152, !26, i64 6160, !39, i64 6176, !48, i64 6184, !10, i64 6216, !10, i64 6224, !10, i64 6232, !12, i64 6240, !6, i64 6248, !54, i64 6256, !59, i64 6360, !61, i64 6424, !66, i64 7144, !67, i64 7208, !12, i64 7240, !12, i64 7244, !12, i64 7248, !12, i64 7252, !68, i64 7256, !12, i64 7320, !12, i64 7324, !69, i64 7328, !12, i64 7336, !12, i64 7340, !10, i64 7344, !12, i64 7352}
!22 = !{!"_ZTSN4TPCE7CRandomE", !10, i64 0}
!23 = !{!"_ZTSN4TPCE13CAddressTableE", !24, i64 0, !26, i64 296, !6, i64 312, !6, i64 320, !6, i64 328, !6, i64 336, !10, i64 344, !10, i64 352, !14, i64 360, !14, i64 361, !10, i64 368, !12, i64 376, !10, i64 384, !14, i64 392, !12, i64 396, !10, i64 400, !6, i64 408}
!24 = !{!"_ZTSN4TPCE13TableTemplateINS_11ADDRESS_ROWEEE", !25, i64 8, !10, i64 272, !14, i64 280, !22, i64 288}
!25 = !{!"_ZTSN4TPCE11ADDRESS_ROWE", !10, i64 0, !7, i64 8, !7, i64 89, !7, i64 170, !7, i64 183}
!26 = !{!"_ZTSN4TPCE9CDateTimeE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{!"_ZTSN4TPCE18CCustomerSelectionE", !6, i64 0, !10, i64 8, !10, i64 16, !14, i64 24, !12, i64 28, !10, i64 32, !10, i64 40}
!28 = !{!"_ZTSN4TPCE14CCustomerTableE", !29, i64 0, !10, i64 328, !31, i64 336, !6, i64 400, !10, i64 408, !10, i64 416, !10, i64 424, !12, i64 432, !6, i64 440, !27, i64 448}
!29 = !{!"_ZTSN4TPCE13TableTemplateINS_12CUSTOMER_ROWEEE", !30, i64 8, !10, i64 304, !14, i64 312, !22, i64 320}
!30 = !{!"_ZTSN4TPCE12CUSTOMER_ROWE", !10, i64 0, !7, i64 8, !7, i64 29, !7, i64 34, !7, i64 60, !7, i64 81, !7, i64 83, !7, i64 84, !26, i64 88, !10, i64 104, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 131, !7, i64 137, !7, i64 141, !7, i64 145, !7, i64 156, !7, i64 162, !7, i64 166, !7, i64 170, !7, i64 181, !7, i64 187, !7, i64 238}
!31 = !{!"_ZTSN4TPCE7CPersonE", !6, i64 0, !6, i64 8, !6, i64 16, !22, i64 24, !14, i64 32, !12, i64 36, !10, i64 40, !6, i64 48, !6, i64 56}
!32 = !{!"_ZTSN4TPCE22CCustomerTaxratesTableE", !33, i64 0, !28, i64 64, !23, i64 560, !6, i64 976, !6, i64 984}
!33 = !{!"_ZTSN4TPCE13TableTemplateINS_21CUSTOMER_TAXRATE_ROWSEEE", !34, i64 8, !10, i64 40, !14, i64 48, !22, i64 56}
!34 = !{!"_ZTSN4TPCE21CUSTOMER_TAXRATE_ROWSE", !7, i64 0}
!35 = !{!"_ZTSN4TPCE36CCustomerAccountsAndPermissionsTableE", !36, i64 0, !6, i64 472, !6, i64 480, !10, i64 488, !10, i64 496, !10, i64 504, !12, i64 512, !12, i64 516, !28, i64 520, !31, i64 1016, !12, i64 1080, !10, i64 1088, !23, i64 1096, !12, i64 1512, !27, i64 1520, !14, i64 1568, !12, i64 1572, !10, i64 1576, !6, i64 1584, !12, i64 1592, !10, i64 1600, !6, i64 1608}
!36 = !{!"_ZTSN4TPCE13TableTemplateINS_35CUSTOMER_ACCOUNT_AND_PERMISSION_ROWEEE", !37, i64 8, !10, i64 448, !14, i64 456, !22, i64 464}
!37 = !{!"_ZTSN4TPCE35CUSTOMER_ACCOUNT_AND_PERMISSION_ROWE", !38, i64 0, !7, i64 88}
!38 = !{!"_ZTSN4TPCE20CUSTOMER_ACCOUNT_ROWE", !10, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !7, i64 75, !39, i64 80}
!39 = !{!"double", !7, i64 0}
!40 = !{!"_ZTSN4TPCE23CHoldingsAndTradesTableE", !22, i64 0, !35, i64 8, !10, i64 1624, !12, i64 1632, !7, i64 1640, !14, i64 1784, !10, i64 1792, !12, i64 1800, !6, i64 1808, !10, i64 1816, !12, i64 1824, !6, i64 1832}
!41 = !{!"_ZTSN4TPCE13CBrokersTableE", !42, i64 0, !10, i64 112, !10, i64 120, !10, i64 128, !31, i64 136, !6, i64 200, !6, i64 208, !6, i64 216}
!42 = !{!"_ZTSN4TPCE13TableTemplateINS_10BROKER_ROWEEE", !43, i64 8, !10, i64 88, !14, i64 96, !22, i64 104}
!43 = !{!"_ZTSN4TPCE10BROKER_ROWE", !10, i64 0, !7, i64 8, !7, i64 13, !12, i64 64, !39, i64 72}
!44 = !{!"_ZTSN4TPCE14CSecurityTableE", !45, i64 0, !10, i64 264, !10, i64 272, !6, i64 280, !6, i64 288, !26, i64 296, !12, i64 312, !12, i64 316, !12, i64 320, !10, i64 328}
!45 = !{!"_ZTSN4TPCE13TableTemplateINS_12SECURITY_ROWEEE", !46, i64 8, !10, i64 240, !14, i64 248, !22, i64 256}
!46 = !{!"_ZTSN4TPCE12SECURITY_ROWE", !7, i64 0, !7, i64 16, !7, i64 23, !7, i64 28, !7, i64 99, !10, i64 112, !10, i64 120, !26, i64 128, !26, i64 144, !39, i64 160, !47, i64 168, !26, i64 176, !47, i64 192, !26, i64 200, !39, i64 216, !39, i64 224}
!47 = !{!"float", !7, i64 0}
!48 = !{!"_ZTSSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EE", !49, i64 0, !53, i64 24}
!49 = !{!"_ZTSSt6vectorIN4TPCE10TTradeInfoESaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN4TPCE10TTradeInfoESaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN4TPCE10TTradeInfoESaIS1_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN4TPCE10TTradeInfoESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt7greaterIN4TPCE10TTradeInfoEE"}
!54 = !{!"_ZTSN4TPCE10TTradeInfoE", !10, i64 0, !55, i64 8, !56, i64 12, !39, i64 16, !39, i64 24, !39, i64 32, !10, i64 40, !12, i64 48, !12, i64 52, !57, i64 56, !57, i64 64, !10, i64 72, !58, i64 80, !10, i64 88, !14, i64 96}
!55 = !{!"_ZTSN4TPCE12eTradeTypeIDE", !7, i64 0}
!56 = !{!"_ZTSN4TPCE13eStatusTypeIDE", !7, i64 0}
!57 = !{!"_ZTSN4TPCE6CMoneyE", !10, i64 0}
!58 = !{!"_ZTSN4TPCE13eCustomerTierE", !7, i64 0}
!59 = !{!"_ZTSN4TPCE20TAdditionalTradeInfoE", !57, i64 0, !57, i64 8, !10, i64 16, !60, i64 24, !57, i64 32, !57, i64 40, !57, i64 48, !57, i64 56}
!60 = !{!"_ZTSN4TPCE10eTaxStatusE", !7, i64 0}
!61 = !{!"_ZTSN4TPCE9TTradeRowE", !62, i64 0, !63, i64 168, !7, i64 216, !64, i64 312, !65, i64 392, !7, i64 528}
!62 = !{!"_ZTSN4TPCE9TRADE_ROWE", !10, i64 0, !26, i64 8, !7, i64 24, !7, i64 29, !14, i64 33, !7, i64 34, !12, i64 52, !39, i64 56, !10, i64 64, !7, i64 72, !39, i64 128, !39, i64 136, !39, i64 144, !39, i64 152, !14, i64 160}
!63 = !{!"_ZTSN4TPCE17TRADE_REQUEST_ROWE", !10, i64 0, !7, i64 8, !7, i64 12, !12, i64 28, !39, i64 32, !10, i64 40}
!64 = !{!"_ZTSN4TPCE14SETTLEMENT_ROWE", !10, i64 0, !7, i64 8, !26, i64 56, !39, i64 72}
!65 = !{!"_ZTSN4TPCE20CASH_TRANSACTION_ROWE", !10, i64 0, !26, i64 8, !39, i64 24, !7, i64 32}
!66 = !{!"_ZTSN4TPCE11HOLDING_ROWE", !10, i64 0, !10, i64 8, !7, i64 16, !26, i64 32, !39, i64 48, !12, i64 56}
!67 = !{!"_ZTSN4TPCE19HOLDING_SUMMARY_ROWE", !10, i64 0, !7, i64 8, !12, i64 24}
!68 = !{!"_ZTSN4TPCE12CMEESecurityE", !22, i64 0, !57, i64 8, !57, i64 16, !57, i64 24, !12, i64 32, !12, i64 36, !6, i64 40, !6, i64 48, !39, i64 56}
!69 = !{!"_ZTSSt14_List_iteratorIN4TPCE12THoldingInfoEE", !6, i64 0}
!70 = !{!19, !6, i64 104}
!71 = !{!21, !6, i64 6048}
!72 = !{!19, !6, i64 8}
!73 = !{!21, !6, i64 6056}
!74 = !{!19, !6, i64 16}
!75 = !{!21, !6, i64 6064}
!76 = !{!19, !6, i64 112}
!77 = !{!21, !6, i64 6072}
!78 = !{!19, !6, i64 168}
!79 = !{!21, !6, i64 6080}
!80 = !{!19, !6, i64 48}
!81 = !{!21, !6, i64 6088}
!82 = !{!21, !10, i64 6096}
!83 = !{!21, !10, i64 6112}
!84 = !{!21, !10, i64 6120}
!85 = !{!21, !12, i64 6128}
!86 = !{!21, !12, i64 6132}
!87 = !{!21, !12, i64 6136}
!88 = !{!21, !12, i64 6140}
!89 = !{!21, !39, i64 6144}
!90 = !{!21, !39, i64 6152}
!91 = !{!21, !39, i64 6176}
!92 = !{!21, !10, i64 6216}
!93 = !{!21, !10, i64 6224}
!94 = !{!21, !10, i64 6232}
!95 = !{!21, !12, i64 6240}
!96 = !{!21, !12, i64 7320}
!97 = !{!21, !12, i64 7324}
!98 = !{!21, !12, i64 7336}
!99 = !{!21, !12, i64 7340}
!100 = !{!21, !12, i64 7352}
!101 = !{!21, !10, i64 6104}
!102 = !{!21, !6, i64 6248}
!103 = !{!21, !10, i64 7344}


; 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.TPCE::CInputFiles" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<TPCE::THoldingInfo, std::allocator<TPCE::THoldingInfo>>::_List_impl" }
%"struct.std::__cxx11::_List_base<TPCE::THoldingInfo, std::allocator<TPCE::THoldingInfo>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4TPCE9CTradeGenC2ENS_11CInputFilesExxxjjjb(ptr noundef nonnull align 8 dereferenceable(7356) %0, ptr nocapture noundef readonly %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i1 noundef zeroext %8) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca %"class.TPCE::CInputFiles", align 8
  %11 = alloca %"class.TPCE::CInputFiles", align 8
  %12 = alloca %"class.TPCE::CInputFiles", align 8
  %13 = alloca %"class.TPCE::CInputFiles", align 8
  %14 = alloca %"class.TPCE::CInputFiles", align 8
  %15 = alloca %"class.TPCE::CInputFiles", align 8
  %16 = alloca %"class.TPCE::CInputFiles", align 8
  %17 = alloca %"class.TPCE::CInputFiles", align 8
  tail call void @_ZN4TPCE7CRandomC1Ey(ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef 32900134)
  %18 = getelementptr inbounds i8, ptr %0, i64 8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %10, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE13CAddressTableC1ENS_11CInputFilesExxbb(ptr noundef nonnull align 8 dereferenceable(416) %18, ptr noundef nonnull %10, i64 noundef %2, i64 noundef %3, i1 noundef zeroext true, i1 noundef zeroext %8)
          to label %19 unwind label %155

19:                                               ; preds = %9
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %10) #10
  %20 = getelementptr inbounds i8, ptr %0, i64 424
  %21 = zext i32 %5 to i64
  invoke void @_ZN4TPCE18CCustomerSelectionC1EPNS_7CRandomExxixx(ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull %0, i64 noundef 0, i64 noundef 0, i32 noundef 100, i64 noundef %3, i64 noundef %21)
          to label %22 unwind label %157

22:                                               ; preds = %19
  %23 = getelementptr inbounds i8, ptr %0, i64 472
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %11, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE14CCustomerTableC1ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(496) %23, ptr noundef nonnull %11, i64 noundef %2, i64 noundef %3)
          to label %24 unwind label %159

24:                                               ; preds = %22
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11) #10
  %25 = getelementptr inbounds i8, ptr %0, i64 968
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %12, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE22CCustomerTaxratesTableC2ENS_11CInputFilesExxb(ptr noundef nonnull align 8 dereferenceable(992) %25, ptr noundef nonnull %12, i64 noundef %2, i64 noundef %3, i1 noundef zeroext %8)
          to label %26 unwind label %161

26:                                               ; preds = %24
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12) #10
  %27 = getelementptr inbounds i8, ptr %0, i64 1960
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %13, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE36CCustomerAccountsAndPermissionsTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1616) %27, ptr noundef nonnull %13, i32 noundef %5, i64 noundef %2, i64 noundef %3, i1 noundef zeroext %8)
          to label %28 unwind label %163

28:                                               ; preds = %26
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %13) #10
  %29 = getelementptr inbounds i8, ptr %0, i64 3576
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %14, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE23CHoldingsAndTradesTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1840) %29, ptr noundef nonnull %14, i32 noundef %5, i64 noundef %2, i64 noundef %3, i1 noundef zeroext %8)
          to label %30 unwind label %165

30:                                               ; preds = %28
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %14) #10
  %31 = getelementptr inbounds i8, ptr %0, i64 5416
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %15, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE13CBrokersTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(224) %31, ptr noundef nonnull %15, i64 noundef %2, i64 noundef %3)
          to label %32 unwind label %167

32:                                               ; preds = %30
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %15) #10
  %33 = getelementptr inbounds i8, ptr %0, i64 5640
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %16, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE14CSecurityTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(336) %33, ptr noundef nonnull %16, i64 noundef %2, i64 noundef %3)
          to label %34 unwind label %169

34:                                               ; preds = %32
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %16) #10
  %35 = getelementptr inbounds i8, ptr %0, i64 5976
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %1, i64 184, i1 false), !tbaa.struct !5
  invoke void @_ZN4TPCE7CPersonC1ENS_11CInputFilesExb(ptr noundef nonnull align 8 dereferenceable(64) %35, ptr noundef nonnull %17, i64 noundef %3, i1 noundef zeroext %8)
          to label %36 unwind label %171

36:                                               ; preds = %34
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17) #10
  %37 = getelementptr inbounds i8, ptr %0, i64 6040
  %38 = getelementptr inbounds i8, ptr %1, i64 24
  %39 = load ptr, ptr %38, align 8, !tbaa !10
  store ptr %39, ptr %37, align 8, !tbaa !12
  %40 = getelementptr inbounds i8, ptr %0, i64 6048
  %41 = getelementptr inbounds i8, ptr %1, i64 104
  %42 = load ptr, ptr %41, align 8, !tbaa !65
  store ptr %42, ptr %40, align 8, !tbaa !66
  %43 = getelementptr inbounds i8, ptr %0, i64 6056
  %44 = getelementptr inbounds i8, ptr %1, i64 8
  %45 = load <2 x ptr>, ptr %44, align 8, !tbaa !6
  store <2 x ptr> %45, ptr %43, align 8, !tbaa !6
  %46 = getelementptr inbounds i8, ptr %0, i64 6072
  %47 = getelementptr inbounds i8, ptr %1, i64 112
  %48 = load ptr, ptr %47, align 8, !tbaa !67
  store ptr %48, ptr %46, align 8, !tbaa !68
  %49 = getelementptr inbounds i8, ptr %0, i64 6080
  %50 = getelementptr inbounds i8, ptr %1, i64 168
  %51 = load ptr, ptr %50, align 8, !tbaa !69
  store ptr %51, ptr %49, align 8, !tbaa !70
  %52 = getelementptr inbounds i8, ptr %0, i64 6088
  %53 = getelementptr inbounds i8, ptr %1, i64 48
  %54 = load ptr, ptr %53, align 8, !tbaa !71
  store ptr %54, ptr %52, align 8, !tbaa !72
  %55 = getelementptr inbounds i8, ptr %0, i64 6096
  %56 = add nsw i64 %3, 4300000000
  store i64 %56, ptr %55, align 8, !tbaa !73
  %57 = getelementptr inbounds i8, ptr %0, i64 6112
  store i64 %2, ptr %57, align 8, !tbaa !74
  %58 = getelementptr inbounds i8, ptr %0, i64 6120
  store i64 %4, ptr %58, align 8, !tbaa !75
  %59 = getelementptr inbounds i8, ptr %0, i64 6128
  store i32 %5, ptr %59, align 8, !tbaa !76
  %60 = getelementptr inbounds i8, ptr %0, i64 6132
  %61 = mul i32 %5, 10
  store i32 %61, ptr %60, align 4, !tbaa !77
  %62 = getelementptr inbounds i8, ptr %0, i64 6136
  store i32 %6, ptr %62, align 8, !tbaa !78
  %63 = getelementptr inbounds i8, ptr %0, i64 6140
  store i32 %7, ptr %63, align 4, !tbaa !79
  %64 = getelementptr inbounds i8, ptr %0, i64 6144
  %65 = uitofp i32 %6 to double
  %66 = fmul double %65, 0x3FEFAEE41E6A7498
  %67 = uitofp i32 %5 to double
  %68 = fdiv double %66, %67
  store double %68, ptr %64, align 8, !tbaa !80
  %69 = getelementptr inbounds i8, ptr %0, i64 6152
  store double 1.000000e+00, ptr %69, align 8, !tbaa !81
  %70 = getelementptr inbounds i8, ptr %0, i64 6160
  invoke void @_ZN4TPCE9CDateTimeC1Ev(ptr noundef nonnull align 8 dereferenceable(16) %70)
          to label %71 unwind label %173

71:                                               ; preds = %36
  %72 = getelementptr inbounds i8, ptr %0, i64 6176
  store double 0.000000e+00, ptr %72, align 8, !tbaa !82
  %73 = getelementptr inbounds i8, ptr %0, i64 6184
  call void @_ZNSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(25) %73)
  %74 = getelementptr inbounds i8, ptr %0, i64 6216
  store i64 0, ptr %74, align 8, !tbaa !83
  %75 = getelementptr inbounds i8, ptr %0, i64 6224
  %76 = zext i32 %7 to i64
  %77 = mul nuw nsw i64 %21, 3600
  %78 = mul i64 %77, %76
  %79 = zext i32 %6 to i64
  %80 = udiv i64 %78, %79
  store i64 %80, ptr %75, align 8, !tbaa !84
  %81 = getelementptr inbounds i8, ptr %0, i64 6232
  store i64 0, ptr %81, align 8, !tbaa !85
  %82 = getelementptr inbounds i8, ptr %0, i64 6240
  %83 = mul i32 %5, 28800
  %84 = udiv i32 %83, %6
  %85 = mul i32 %84, 101
  %86 = udiv i32 %85, 100
  store i32 %86, ptr %82, align 8, !tbaa !86
  %87 = getelementptr inbounds i8, ptr %0, i64 6256
  invoke void @_ZN4TPCE10TTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(97) %87)
          to label %88 unwind label %175

88:                                               ; preds = %71
  %89 = getelementptr inbounds i8, ptr %0, i64 6360
  invoke void @_ZN4TPCE20TAdditionalTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %89)
          to label %90 unwind label %175

90:                                               ; preds = %88
  %91 = getelementptr inbounds i8, ptr %0, i64 6424
  invoke void @_ZN4TPCE9TTradeRowC2Ev(ptr noundef nonnull align 8 dereferenceable(720) %91)
          to label %92 unwind label %175

92:                                               ; preds = %90
  %93 = getelementptr inbounds i8, ptr %0, i64 7144
  invoke void @_ZN4TPCE11HOLDING_ROWC2Ev(ptr noundef nonnull align 8 dereferenceable(60) %93)
          to label %94 unwind label %177

94:                                               ; preds = %92
  %95 = getelementptr inbounds i8, ptr %0, i64 7256
  invoke void @_ZN4TPCE12CMEESecurityC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %95)
          to label %96 unwind label %179

96:                                               ; preds = %94
  %97 = getelementptr inbounds i8, ptr %0, i64 7320
  store i32 0, ptr %97, align 8, !tbaa !87
  %98 = getelementptr inbounds i8, ptr %0, i64 7324
  store i32 0, ptr %98, align 4, !tbaa !88
  %99 = getelementptr inbounds i8, ptr %0, i64 7328
  call void @_ZNSt14_List_iteratorIN4TPCE12THoldingInfoEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  %100 = getelementptr inbounds i8, ptr %0, i64 7336
  store i32 0, ptr %100, align 8, !tbaa !89
  %101 = getelementptr inbounds i8, ptr %0, i64 7340
  store i32 -1, ptr %101, align 4, !tbaa !90
  %102 = getelementptr inbounds i8, ptr %0, i64 7352
  store i32 0, ptr %102, align 8, !tbaa !91
  invoke void @_ZN4TPCE9CDateTime3SetEiiiiiii(ptr noundef nonnull align 8 dereferenceable(16) %70, i32 noundef 2005, i32 noundef 1, i32 noundef 3, i32 noundef 9, i32 noundef 0, i32 noundef 0, i32 noundef 0)
          to label %103 unwind label %181

103:                                              ; preds = %96
  %104 = load i64, ptr %55, align 8, !tbaa !73
  %105 = call noundef i64 @_ZN4TPCE36CCustomerAccountsAndPermissionsTable16GetStartingCA_IDEx(ptr noundef nonnull align 8 dereferenceable(1616) %27, i64 noundef %104)
  %106 = getelementptr inbounds i8, ptr %0, i64 6104
  store i64 %105, ptr %106, align 8, !tbaa !92
  %107 = load i32, ptr %60, align 4, !tbaa !77
  %108 = sext i32 %107 to i64
  %109 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %108, i64 432)
  %110 = extractvalue { i64, i1 } %109, 1
  %111 = extractvalue { i64, i1 } %109, 0
  %112 = mul nsw i64 %108, 18
  %113 = or disjoint i64 %111, 8
  %114 = select i1 %110, i64 -1, i64 %113
  %115 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %114) #11
          to label %116 unwind label %181

116:                                              ; preds = %103
  store i64 %112, ptr %115, align 16
  %117 = getelementptr inbounds i8, ptr %115, i64 8
  %118 = icmp eq i32 %107, 0
  br i1 %118, label %.loopexit, label %119

119:                                              ; preds = %116
  %120 = getelementptr inbounds %"class.std::__cxx11::list", ptr %117, i64 %112
  br label %121

121:                                              ; preds = %121, %119
  %122 = phi ptr [ %117, %119 ], [ %123, %121 ]
  call void @_ZNSt7__cxx114listIN4TPCE12THoldingInfoESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %122) #10
  %123 = getelementptr inbounds i8, ptr %122, i64 24
  %124 = icmp eq ptr %123, %120
  br i1 %124, label %.loopexit, label %121

.loopexit:                                        ; preds = %121, %116
  %125 = getelementptr inbounds i8, ptr %0, i64 6248
  store ptr %117, ptr %125, align 8, !tbaa !93
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %87, i8 0, i64 104, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(816) %91, i8 0, i64 816, i1 false)
  %126 = load i32, ptr %63, align 4, !tbaa !79
  %127 = sext i32 %126 to i64
  %128 = mul i64 %3, 3600
  %129 = add i64 %128, -3600
  %130 = mul i64 %129, %127
  %131 = load i32, ptr %62, align 8, !tbaa !78
  %132 = sext i32 %131 to i64
  %133 = sdiv i64 %130, %132
  %134 = mul nsw i64 %133, 101
  %135 = sdiv i64 %134, 100
  %136 = add nsw i64 %135, 200000000000000
  %137 = getelementptr inbounds i8, ptr %0, i64 7344
  store i64 %136, ptr %137, align 8, !tbaa !94
  %138 = load i64, ptr %55, align 8, !tbaa !73
  %139 = add nsw i64 %138, -4300000000
  invoke void @_ZN4TPCE13CBrokersTable10InitForGenExx(ptr noundef nonnull align 8 dereferenceable(224) %31, i64 noundef %21, i64 noundef %139)
          to label %140 unwind label %181

140:                                              ; preds = %.loopexit
  %141 = load i64, ptr %55, align 8, !tbaa !73
  %142 = load i32, ptr %59, align 8, !tbaa !76
  %143 = sext i32 %142 to i64
  %144 = sdiv i64 %141, %143
  %145 = load i64, ptr %75, align 8, !tbaa !84
  %146 = mul nsw i64 %145, %144
  %147 = mul i64 %146, 11
  %148 = invoke noundef i64 @_ZN4TPCE7CRandom13RndNthElementEyy(ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef 32900134, i64 noundef %147)
          to label %149 unwind label %181

149:                                              ; preds = %140
  invoke void @_ZN4TPCE7CRandom7SetSeedEy(ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef %148)
          to label %150 unwind label %181

150:                                              ; preds = %149
  %151 = load i64, ptr %106, align 8, !tbaa !92
  invoke void @_ZN4TPCE23CHoldingsAndTradesTable16InitNextLoadUnitExx(ptr noundef nonnull align 8 dereferenceable(1840) %29, i64 noundef %146, i64 noundef %151)
          to label %152 unwind label %181

152:                                              ; preds = %150
  %153 = load double, ptr %69, align 8, !tbaa !81
  invoke void @_ZN4TPCE12CMEESecurity4InitEiPNS_9CDateTimeES2_d(ptr noundef nonnull align 8 dereferenceable(64) %95, i32 noundef 0, ptr noundef null, ptr noundef null, double noundef %153)
          to label %154 unwind label %181

154:                                              ; preds = %152
  ret void

155:                                              ; preds = %9
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %10) #10
  br label %194

157:                                              ; preds = %19
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %193

159:                                              ; preds = %22
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %11) #10
  br label %193

161:                                              ; preds = %24
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %12) #10
  br label %192

163:                                              ; preds = %26
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %13) #10
  br label %191

165:                                              ; preds = %28
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %14) #10
  br label %190

167:                                              ; preds = %30
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %15) #10
  br label %189

169:                                              ; preds = %32
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %16) #10
  br label %188

171:                                              ; preds = %34
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE11CInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17) #10
  br label %187

173:                                              ; preds = %36
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %186

175:                                              ; preds = %90, %88, %71
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %185

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

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

181:                                              ; preds = %152, %150, %149, %140, %.loopexit, %103, %96
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4TPCE12CMEESecurityD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %95) #10
  br label %183

183:                                              ; preds = %181, %179
  %.pn = phi { ptr, i32 } [ %182, %181 ], [ %180, %179 ]
  call void @_ZN4TPCE11HOLDING_ROWD2Ev(ptr noundef nonnull align 8 dereferenceable(60) %93) #10
  br label %184

184:                                              ; preds = %183, %177
  %.pn.pn = phi { ptr, i32 } [ %.pn, %183 ], [ %178, %177 ]
  call void @_ZN4TPCE9TTradeRowD2Ev(ptr noundef nonnull align 8 dereferenceable(720) %91) #10
  br label %185

185:                                              ; preds = %184, %175
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %184 ], [ %176, %175 ]
  call void @_ZNSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %73) #10
  call void @_ZN4TPCE9CDateTimeD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #10
  br label %186

186:                                              ; preds = %185, %173
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %185 ], [ %174, %173 ]
  call void @_ZN4TPCE7CPersonD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %35) #10
  br label %187

187:                                              ; preds = %186, %171
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %186 ], [ %172, %171 ]
  call void @_ZN4TPCE14CSecurityTableD2Ev(ptr noundef nonnull align 8 dereferenceable(336) %33) #10
  br label %188

188:                                              ; preds = %187, %169
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %187 ], [ %170, %169 ]
  call void @_ZN4TPCE13CBrokersTableD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %31) #10
  br label %189

189:                                              ; preds = %188, %167
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %188 ], [ %168, %167 ]
  call void @_ZN4TPCE23CHoldingsAndTradesTableD2Ev(ptr noundef nonnull align 8 dereferenceable(1840) %29) #10
  br label %190

190:                                              ; preds = %189, %165
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %189 ], [ %166, %165 ]
  call void @_ZN4TPCE36CCustomerAccountsAndPermissionsTableD2Ev(ptr noundef nonnull align 8 dereferenceable(1616) %27) #10
  br label %191

191:                                              ; preds = %190, %163
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %190 ], [ %164, %163 ]
  call void @_ZN4TPCE22CCustomerTaxratesTableD2Ev(ptr noundef nonnull align 8 dereferenceable(992) %25) #10
  br label %192

192:                                              ; preds = %191, %161
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %191 ], [ %162, %161 ]
  call void @_ZN4TPCE14CCustomerTableD2Ev(ptr noundef nonnull align 8 dereferenceable(496) %23) #10
  br label %193

193:                                              ; preds = %192, %159, %157
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %192 ], [ %160, %159 ], [ %158, %157 ]
  call void @_ZN4TPCE13CAddressTableD1Ev(ptr noundef nonnull align 8 dereferenceable(416) %18) #10
  br label %194

194:                                              ; preds = %193, %155
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %193 ], [ %156, %155 ]
  call void @_ZN4TPCE7CRandomD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %0) #10
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

; Function Attrs: mustprogress 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) #2

declare void @_ZN4TPCE13CAddressTableC1ENS_11CInputFilesExxbb(ptr noundef nonnull align 8 dereferenceable(416), ptr noundef, i64 noundef, i64 noundef, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

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

declare void @_ZN4TPCE18CCustomerSelectionC1EPNS_7CRandomExxixx(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i64 noundef, i64 noundef, i32 noundef, i64 noundef, i64 noundef) unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE36CCustomerAccountsAndPermissionsTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1616), ptr noundef, i32 noundef, i64 noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE23CHoldingsAndTradesTableC2ENS_11CInputFilesEjxxb(ptr noundef nonnull align 8 dereferenceable(1840), ptr noundef, i32 noundef, i64 noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE13CBrokersTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef, i64 noundef, i64 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE14CSecurityTableC2ENS_11CInputFilesExx(ptr noundef nonnull align 8 dereferenceable(336), ptr noundef, i64 noundef, i64 noundef) unnamed_addr #0 align 2

declare void @_ZN4TPCE7CPersonC1ENS_11CInputFilesExb(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i64 noundef, i1 noundef zeroext) unnamed_addr #1

declare void @_ZN4TPCE9CDateTimeC1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE10TTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(97)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE20TAdditionalTradeInfoC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE9TTradeRowC2Ev(ptr noundef nonnull align 8 dereferenceable(720)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN4TPCE11HOLDING_ROWC2Ev(ptr noundef nonnull align 8 dereferenceable(60)) unnamed_addr #4 align 2

declare void @_ZN4TPCE12CMEESecurityC1Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #1

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

declare void @_ZN4TPCE9CDateTime3SetEiiiiiii(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #5

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE13CBrokersTable10InitForGenExx(ptr noundef nonnull align 8 dereferenceable(224), i64 noundef, i64 noundef) local_unnamed_addr #0 align 2

declare void @_ZN4TPCE7CRandom7SetSeedEy(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #1

declare noundef i64 @_ZN4TPCE7CRandom13RndNthElementEyy(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4TPCE23CHoldingsAndTradesTable16InitNextLoadUnitExx(ptr noundef nonnull align 8 dereferenceable(1840), i64 noundef, i64 noundef) local_unnamed_addr #0 align 2

declare void @_ZN4TPCE12CMEESecurity4InitEiPNS_9CDateTimeES2_d(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef, ptr noundef, ptr noundef, double noundef) local_unnamed_addr #1

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN4TPCE9CDateTimeD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #9

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN4TPCE13CAddressTableD1Ev(ptr noundef nonnull align 8 dereferenceable(416)) unnamed_addr #9

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

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

!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 8, !6, i64 8, i64 8, !6, i64 16, i64 8, !6, i64 24, i64 8, !6, i64 32, i64 8, !6, i64 40, i64 8, !6, i64 48, i64 8, !6, i64 56, i64 8, !6, i64 64, i64 8, !6, i64 72, i64 8, !6, i64 80, i64 8, !6, i64 88, i64 8, !6, i64 96, i64 8, !6, i64 104, i64 8, !6, i64 112, i64 8, !6, i64 120, i64 8, !6, i64 128, i64 8, !6, i64 136, i64 8, !6, i64 144, i64 8, !6, i64 152, i64 8, !6, i64 160, i64 8, !6, i64 168, i64 8, !6, i64 176, i64 8, !6}
!6 = !{!7, !7, i64 0}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !7, i64 24}
!11 = !{!"_ZTSN4TPCE11CInputFilesE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176}
!12 = !{!13, !7, i64 6040}
!13 = !{!"_ZTSN4TPCE9CTradeGenE", !14, i64 0, !16, i64 8, !22, i64 424, !23, i64 472, !27, i64 968, !30, i64 1960, !35, i64 3576, !36, i64 5416, !39, i64 5640, !26, i64 5976, !7, i64 6040, !7, i64 6048, !7, i64 6056, !7, i64 6064, !7, i64 6072, !7, i64 6080, !7, i64 6088, !15, i64 6096, !15, i64 6104, !15, i64 6112, !15, i64 6120, !21, i64 6128, !21, i64 6132, !21, i64 6136, !21, i64 6140, !34, i64 6144, !34, i64 6152, !20, i64 6160, !34, i64 6176, !43, i64 6184, !15, i64 6216, !15, i64 6224, !15, i64 6232, !21, i64 6240, !7, i64 6248, !49, i64 6256, !54, i64 6360, !56, i64 6424, !61, i64 7144, !62, i64 7208, !21, i64 7240, !21, i64 7244, !21, i64 7248, !21, i64 7252, !63, i64 7256, !21, i64 7320, !21, i64 7324, !64, i64 7328, !21, i64 7336, !21, i64 7340, !15, i64 7344, !21, i64 7352}
!14 = !{!"_ZTSN4TPCE7CRandomE", !15, i64 0}
!15 = !{!"long long", !8, i64 0}
!16 = !{!"_ZTSN4TPCE13CAddressTableE", !17, i64 0, !20, i64 296, !7, i64 312, !7, i64 320, !7, i64 328, !7, i64 336, !15, i64 344, !15, i64 352, !19, i64 360, !19, i64 361, !15, i64 368, !21, i64 376, !15, i64 384, !19, i64 392, !21, i64 396, !15, i64 400, !7, i64 408}
!17 = !{!"_ZTSN4TPCE13TableTemplateINS_11ADDRESS_ROWEEE", !18, i64 8, !15, i64 272, !19, i64 280, !14, i64 288}
!18 = !{!"_ZTSN4TPCE11ADDRESS_ROWE", !15, i64 0, !8, i64 8, !8, i64 89, !8, i64 170, !8, i64 183}
!19 = !{!"bool", !8, i64 0}
!20 = !{!"_ZTSN4TPCE9CDateTimeE", !21, i64 0, !21, i64 4, !7, i64 8}
!21 = !{!"int", !8, i64 0}
!22 = !{!"_ZTSN4TPCE18CCustomerSelectionE", !7, i64 0, !15, i64 8, !15, i64 16, !19, i64 24, !21, i64 28, !15, i64 32, !15, i64 40}
!23 = !{!"_ZTSN4TPCE14CCustomerTableE", !24, i64 0, !15, i64 328, !26, i64 336, !7, i64 400, !15, i64 408, !15, i64 416, !15, i64 424, !21, i64 432, !7, i64 440, !22, i64 448}
!24 = !{!"_ZTSN4TPCE13TableTemplateINS_12CUSTOMER_ROWEEE", !25, i64 8, !15, i64 304, !19, i64 312, !14, i64 320}
!25 = !{!"_ZTSN4TPCE12CUSTOMER_ROWE", !15, i64 0, !8, i64 8, !8, i64 29, !8, i64 34, !8, i64 60, !8, i64 81, !8, i64 83, !8, i64 84, !20, i64 88, !15, i64 104, !8, i64 112, !8, i64 116, !8, i64 120, !8, i64 131, !8, i64 137, !8, i64 141, !8, i64 145, !8, i64 156, !8, i64 162, !8, i64 166, !8, i64 170, !8, i64 181, !8, i64 187, !8, i64 238}
!26 = !{!"_ZTSN4TPCE7CPersonE", !7, i64 0, !7, i64 8, !7, i64 16, !14, i64 24, !19, i64 32, !21, i64 36, !15, i64 40, !7, i64 48, !7, i64 56}
!27 = !{!"_ZTSN4TPCE22CCustomerTaxratesTableE", !28, i64 0, !23, i64 64, !16, i64 560, !7, i64 976, !7, i64 984}
!28 = !{!"_ZTSN4TPCE13TableTemplateINS_21CUSTOMER_TAXRATE_ROWSEEE", !29, i64 8, !15, i64 40, !19, i64 48, !14, i64 56}
!29 = !{!"_ZTSN4TPCE21CUSTOMER_TAXRATE_ROWSE", !8, i64 0}
!30 = !{!"_ZTSN4TPCE36CCustomerAccountsAndPermissionsTableE", !31, i64 0, !7, i64 472, !7, i64 480, !15, i64 488, !15, i64 496, !15, i64 504, !21, i64 512, !21, i64 516, !23, i64 520, !26, i64 1016, !21, i64 1080, !15, i64 1088, !16, i64 1096, !21, i64 1512, !22, i64 1520, !19, i64 1568, !21, i64 1572, !15, i64 1576, !7, i64 1584, !21, i64 1592, !15, i64 1600, !7, i64 1608}
!31 = !{!"_ZTSN4TPCE13TableTemplateINS_35CUSTOMER_ACCOUNT_AND_PERMISSION_ROWEEE", !32, i64 8, !15, i64 448, !19, i64 456, !14, i64 464}
!32 = !{!"_ZTSN4TPCE35CUSTOMER_ACCOUNT_AND_PERMISSION_ROWE", !33, i64 0, !8, i64 88}
!33 = !{!"_ZTSN4TPCE20CUSTOMER_ACCOUNT_ROWE", !15, i64 0, !15, i64 8, !15, i64 16, !8, i64 24, !8, i64 75, !34, i64 80}
!34 = !{!"double", !8, i64 0}
!35 = !{!"_ZTSN4TPCE23CHoldingsAndTradesTableE", !14, i64 0, !30, i64 8, !15, i64 1624, !21, i64 1632, !8, i64 1640, !19, i64 1784, !15, i64 1792, !21, i64 1800, !7, i64 1808, !15, i64 1816, !21, i64 1824, !7, i64 1832}
!36 = !{!"_ZTSN4TPCE13CBrokersTableE", !37, i64 0, !15, i64 112, !15, i64 120, !15, i64 128, !26, i64 136, !7, i64 200, !7, i64 208, !7, i64 216}
!37 = !{!"_ZTSN4TPCE13TableTemplateINS_10BROKER_ROWEEE", !38, i64 8, !15, i64 88, !19, i64 96, !14, i64 104}
!38 = !{!"_ZTSN4TPCE10BROKER_ROWE", !15, i64 0, !8, i64 8, !8, i64 13, !21, i64 64, !34, i64 72}
!39 = !{!"_ZTSN4TPCE14CSecurityTableE", !40, i64 0, !15, i64 264, !15, i64 272, !7, i64 280, !7, i64 288, !20, i64 296, !21, i64 312, !21, i64 316, !21, i64 320, !15, i64 328}
!40 = !{!"_ZTSN4TPCE13TableTemplateINS_12SECURITY_ROWEEE", !41, i64 8, !15, i64 240, !19, i64 248, !14, i64 256}
!41 = !{!"_ZTSN4TPCE12SECURITY_ROWE", !8, i64 0, !8, i64 16, !8, i64 23, !8, i64 28, !8, i64 99, !15, i64 112, !15, i64 120, !20, i64 128, !20, i64 144, !34, i64 160, !42, i64 168, !20, i64 176, !42, i64 192, !20, i64 200, !34, i64 216, !34, i64 224}
!42 = !{!"float", !8, i64 0}
!43 = !{!"_ZTSSt14priority_queueIN4TPCE10TTradeInfoESt6vectorIS1_SaIS1_EESt7greaterIS1_EE", !44, i64 0, !48, i64 24}
!44 = !{!"_ZTSSt6vectorIN4TPCE10TTradeInfoESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt12_Vector_baseIN4TPCE10TTradeInfoESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN4TPCE10TTradeInfoESaIS1_EE12_Vector_implE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIN4TPCE10TTradeInfoESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!48 = !{!"_ZTSSt7greaterIN4TPCE10TTradeInfoEE"}
!49 = !{!"_ZTSN4TPCE10TTradeInfoE", !15, i64 0, !50, i64 8, !51, i64 12, !34, i64 16, !34, i64 24, !34, i64 32, !15, i64 40, !21, i64 48, !21, i64 52, !52, i64 56, !52, i64 64, !15, i64 72, !53, i64 80, !15, i64 88, !19, i64 96}
!50 = !{!"_ZTSN4TPCE12eTradeTypeIDE", !8, i64 0}
!51 = !{!"_ZTSN4TPCE13eStatusTypeIDE", !8, i64 0}
!52 = !{!"_ZTSN4TPCE6CMoneyE", !15, i64 0}
!53 = !{!"_ZTSN4TPCE13eCustomerTierE", !8, i64 0}
!54 = !{!"_ZTSN4TPCE20TAdditionalTradeInfoE", !52, i64 0, !52, i64 8, !15, i64 16, !55, i64 24, !52, i64 32, !52, i64 40, !52, i64 48, !52, i64 56}
!55 = !{!"_ZTSN4TPCE10eTaxStatusE", !8, i64 0}
!56 = !{!"_ZTSN4TPCE9TTradeRowE", !57, i64 0, !58, i64 168, !8, i64 216, !59, i64 312, !60, i64 392, !8, i64 528}
!57 = !{!"_ZTSN4TPCE9TRADE_ROWE", !15, i64 0, !20, i64 8, !8, i64 24, !8, i64 29, !19, i64 33, !8, i64 34, !21, i64 52, !34, i64 56, !15, i64 64, !8, i64 72, !34, i64 128, !34, i64 136, !34, i64 144, !34, i64 152, !19, i64 160}
!58 = !{!"_ZTSN4TPCE17TRADE_REQUEST_ROWE", !15, i64 0, !8, i64 8, !8, i64 12, !21, i64 28, !34, i64 32, !15, i64 40}
!59 = !{!"_ZTSN4TPCE14SETTLEMENT_ROWE", !15, i64 0, !8, i64 8, !20, i64 56, !34, i64 72}
!60 = !{!"_ZTSN4TPCE20CASH_TRANSACTION_ROWE", !15, i64 0, !20, i64 8, !34, i64 24, !8, i64 32}
!61 = !{!"_ZTSN4TPCE11HOLDING_ROWE", !15, i64 0, !15, i64 8, !8, i64 16, !20, i64 32, !34, i64 48, !21, i64 56}
!62 = !{!"_ZTSN4TPCE19HOLDING_SUMMARY_ROWE", !15, i64 0, !8, i64 8, !21, i64 24}
!63 = !{!"_ZTSN4TPCE12CMEESecurityE", !14, i64 0, !52, i64 8, !52, i64 16, !52, i64 24, !21, i64 32, !21, i64 36, !7, i64 40, !7, i64 48, !34, i64 56}
!64 = !{!"_ZTSSt14_List_iteratorIN4TPCE12THoldingInfoEE", !7, i64 0}
!65 = !{!11, !7, i64 104}
!66 = !{!13, !7, i64 6048}
!67 = !{!11, !7, i64 112}
!68 = !{!13, !7, i64 6072}
!69 = !{!11, !7, i64 168}
!70 = !{!13, !7, i64 6080}
!71 = !{!11, !7, i64 48}
!72 = !{!13, !7, i64 6088}
!73 = !{!13, !15, i64 6096}
!74 = !{!13, !15, i64 6112}
!75 = !{!13, !15, i64 6120}
!76 = !{!13, !21, i64 6128}
!77 = !{!13, !21, i64 6132}
!78 = !{!13, !21, i64 6136}
!79 = !{!13, !21, i64 6140}
!80 = !{!13, !34, i64 6144}
!81 = !{!13, !34, i64 6152}
!82 = !{!13, !34, i64 6176}
!83 = !{!13, !15, i64 6216}
!84 = !{!13, !15, i64 6224}
!85 = !{!13, !15, i64 6232}
!86 = !{!13, !21, i64 6240}
!87 = !{!13, !21, i64 7320}
!88 = !{!13, !21, i64 7324}
!89 = !{!13, !21, i64 7336}
!90 = !{!13, !21, i64 7340}
!91 = !{!13, !21, i64 7352}
!92 = !{!13, !15, i64 6104}
!93 = !{!13, !7, i64 6248}
!94 = !{!13, !15, i64 7344}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass