; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.21022.08 

	TITLE	c:\Develop\DScaler423a\DScaler\Providers.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB OLDNAMES

PUBLIC	?InitSourceIdx@@3JA				; InitSourceIdx
PUBLIC	?IsInitialSetup@CBT848Source@@QAEHXZ		; CBT848Source::IsInitialSetup
PUBLIC	?IsInitialSetup@CCX2388xSource@@QAEHXZ		; CCX2388xSource::IsInitialSetup
PUBLIC	?IsInitialSetup@CSAA7134Source@@QAEHXZ		; CSAA7134Source::IsInitialSetup
PUBLIC	?IsInitialSetup@CDSSourceBase@@QAEHXZ		; CDSSourceBase::IsInitialSetup
PUBLIC	?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::GetRawPointer
PUBLIC	??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
PUBLIC	??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z	; SmartPtr<CSource>::operator=
PUBLIC	??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z ; SmartPtr<CSource>::operator=
PUBLIC	?IsValid@?$SmartPtr@VCSource@@@@QBEHXZ		; SmartPtr<CSource>::IsValid
PUBLIC	??0TSource@@QAE@XZ				; TSource::TSource
PUBLIC	?capacity@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::capacity
PUBLIC	??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
PUBLIC	??$unchecked_uninitialized_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ; stdext::unchecked_uninitialized_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
PUBLIC	??$_Uninit_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> >,std::_Undefined_move_tag>
PUBLIC	??$_Unchecked_uninitialized_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ; stdext::_Unchecked_uninitialized_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
PUBLIC	??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>
PUBLIC	??$_Fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ; std::_Fill<SmartPtr<TSource> *,SmartPtr<TSource> >
PUBLIC	??$fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ; std::fill<SmartPtr<TSource> *,SmartPtr<TSource> >
PUBLIC	??$_Move_cat@PAV?$SmartPtr@UTSource@@@@@std@@YA?AU_Undefined_move_tag@0@ABQAV?$SmartPtr@UTSource@@@@@Z ; std::_Move_cat<SmartPtr<TSource> *>
PUBLIC	??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>
PUBLIC	??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>
PUBLIC	??$_Move_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Urandom_access_iterator_tag@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::random_access_iterator_tag,std::_Undefined_move_tag>
PUBLIC	??$_Unchecked_move_backward@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ; stdext::_Unchecked_move_backward<SmartPtr<TSource> *,SmartPtr<TSource> *>
PUBLIC	?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Insert_n
PUBLIC	??G?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEHABV01@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator-
PUBLIC	?insert@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@ABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::insert
PUBLIC	??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z		; SmartPtr<TSource>::SmartPtr<TSource>
PUBLIC	??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z ; std::_Construct<SmartPtr<TSource>,SmartPtr<TSource> >
PUBLIC	?construct@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@ABV3@@Z ; std::allocator<SmartPtr<TSource> >::construct
PUBLIC	??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	??$unchecked_uninitialized_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ; stdext::unchecked_uninitialized_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Ufill
PUBLIC	?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back
PUBLIC	?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase
PUBLIC	?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::GetRawPointer
PUBLIC	??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
PUBLIC	?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::GetRawPointer
PUBLIC	??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
PUBLIC	?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::GetRawPointer
PUBLIC	??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
PUBLIC	??0?$SmartPtr@UTSource@@@@QAE@XZ		; SmartPtr<TSource>::SmartPtr<TSource>
PUBLIC	??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ; SmartPtr<TSource>::operator=
PUBLIC	??Y?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=
PUBLIC	??Y?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=
PUBLIC	??H?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV01@H@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+
PUBLIC	??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z ; SmartPtr<CHardwareDriver>::operator=
PUBLIC	??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z ; SmartPtr<CDSProvider>::operator=
PUBLIC	?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin
PUBLIC	?end@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::end
PUBLIC	??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$SmartPtr@UTSource@@@@HPBV3@ABV3@V_Iterator_base_aux@2@@std@@QAE@XZ ; std::_Iterator_with_base<std::random_access_iterator_tag,SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &,std::_Iterator_base_aux>
PUBLIC	??0?$_Ranit@V?$SmartPtr@UTSource@@@@HPBV1@ABV1@@std@@QAE@XZ ; std::_Ranit<SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &>::_Ranit<SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &>
PUBLIC	??0?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Make_iter
PUBLIC	??8?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator==
PUBLIC	??9?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator!=
PUBLIC	??$_Iter_random@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$SmartPtr@UTSource@@@@0@Z ; std::_Iter_random<SmartPtr<TSource> *,SmartPtr<TSource> *>
PUBLIC	??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@U_Unchanged_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<SmartPtr<TSource> *>
PUBLIC	??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
PUBLIC	?acquire@?$SmartPtr@UTSource@@@@AAEXPAUCounter@@@Z ; SmartPtr<TSource>::acquire
PUBLIC	??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z	; SmartPtr<TSource>::operator=
PUBLIC	??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>
PUBLIC	??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>
PUBLIC	??$unchecked_copy@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ; stdext::unchecked_copy<SmartPtr<TSource> *,SmartPtr<TSource> *>
PUBLIC	?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase
PUBLIC	?clear@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::clear
PUBLIC	??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z ; SmartPtr<CBT848Provider>::operator=
PUBLIC	??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z ; SmartPtr<CCX2388xProvider>::operator=
PUBLIC	??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z ; SmartPtr<CSAA7134Provider>::operator=
PUBLIC	??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z ; SmartPtr<CStillProvider>::operator=
PUBLIC	??8?$SmartPtr@VCSource@@@@QAEHABV0@@Z		; SmartPtr<CSource>::operator==
PUBLIC	??8?$SmartPtr@VCSource@@@@QAEHPAVCSource@@@Z	; SmartPtr<CSource>::operator==
PUBLIC	?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::GetRawPointer
PUBLIC	??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
PUBLIC	?IsValid@?$SmartPtr@VCStillProvider@@@@QBEHXZ	; SmartPtr<CStillProvider>::IsValid
PUBLIC	?GetFileName@COpenDlg@@QAEABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; COpenDlg::GetFileName
PUBLIC	??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ	; SmartPtr<CSource>::operator->
PUBLIC	?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
PUBLIC	?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
PUBLIC	??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
PUBLIC	?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::GetRawPointer
PUBLIC	??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ	; SmartPtr<TSource>::operator->
PUBLIC	??0?$SmartPtr@VCStillProvider@@@@QAE@XZ		; SmartPtr<CStillProvider>::SmartPtr<CStillProvider>
PUBLIC	?Clear@?$SmartPtr@VCStillProvider@@@@QAEXXZ	; SmartPtr<CStillProvider>::Clear
PUBLIC	??1?$SmartPtr@VCStillProvider@@@@QAE@XZ		; SmartPtr<CStillProvider>::~SmartPtr<CStillProvider>
PUBLIC	??0?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ	; SmartPtr<CSAA7134Provider>::SmartPtr<CSAA7134Provider>
PUBLIC	?Clear@?$SmartPtr@VCSAA7134Provider@@@@QAEXXZ	; SmartPtr<CSAA7134Provider>::Clear
PUBLIC	??1?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ	; SmartPtr<CSAA7134Provider>::~SmartPtr<CSAA7134Provider>
PUBLIC	??0?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ	; SmartPtr<CCX2388xProvider>::SmartPtr<CCX2388xProvider>
PUBLIC	?Clear@?$SmartPtr@VCCX2388xProvider@@@@QAEXXZ	; SmartPtr<CCX2388xProvider>::Clear
PUBLIC	??1?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ	; SmartPtr<CCX2388xProvider>::~SmartPtr<CCX2388xProvider>
PUBLIC	??0?$SmartPtr@VCBT848Provider@@@@QAE@XZ		; SmartPtr<CBT848Provider>::SmartPtr<CBT848Provider>
PUBLIC	??1CBT848Provider@@QAE@XZ			; CBT848Provider::~CBT848Provider
PUBLIC	??_GCBT848Provider@@QAEPAXI@Z			; CBT848Provider::`scalar deleting destructor'
PUBLIC	?Clear@?$SmartPtr@VCBT848Provider@@@@QAEXXZ	; SmartPtr<CBT848Provider>::Clear
PUBLIC	??1?$SmartPtr@VCBT848Provider@@@@QAE@XZ		; SmartPtr<CBT848Provider>::~SmartPtr<CBT848Provider>
PUBLIC	??0?$SmartPtr@VCHardwareDriver@@@@QAE@XZ	; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>
PUBLIC	??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@XZ ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >
PUBLIC	??$?0V?$SmartPtr@UTSource@@@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><SmartPtr<TSource> >
PUBLIC	??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
PUBLIC	??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@ABV01@@Z ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >
PUBLIC	??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	??$_Allocate@V?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@IPAV1@@Z ; std::_Allocate<SmartPtr<TSource> >
PUBLIC	?allocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::allocate
PUBLIC	?max_size@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QBEIXZ ; std::allocator<SmartPtr<TSource> >::max_size
PUBLIC	?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::max_size
PUBLIC	?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Xlen
PUBLIC	?_Buy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE_NI@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Buy
PUBLIC	??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::~_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
PUBLIC	??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::deallocate
PUBLIC	??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
PUBLIC	??1TSource@@QAE@XZ				; TSource::~TSource
PUBLIC	??_GTSource@@QAEPAXI@Z				; TSource::`scalar deleting destructor'
PUBLIC	?Clear@?$SmartPtr@UTSource@@@@QAEXXZ		; SmartPtr<TSource>::Clear
PUBLIC	??1?$SmartPtr@UTSource@@@@QAE@XZ		; SmartPtr<TSource>::~SmartPtr<TSource>
PUBLIC	??_G?$SmartPtr@UTSource@@@@QAEPAXI@Z		; SmartPtr<TSource>::`scalar deleting destructor'
PUBLIC	??$_Destroy@V?$SmartPtr@UTSource@@@@@std@@YAXPAV?$SmartPtr@UTSource@@@@@Z ; std::_Destroy<SmartPtr<TSource> >
PUBLIC	?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z ; std::allocator<SmartPtr<TSource> >::destroy
PUBLIC	??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >
PUBLIC	??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@@Z ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >
PUBLIC	?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy
PUBLIC	?_Tidy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Tidy
PUBLIC	??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
PUBLIC	??0?$SmartPtr@VCDSProvider@@@@QAE@XZ		; SmartPtr<CDSProvider>::SmartPtr<CDSProvider>
PUBLIC	?Clear@?$SmartPtr@VCDSProvider@@@@QAEXXZ	; SmartPtr<CDSProvider>::Clear
PUBLIC	??1?$SmartPtr@VCDSProvider@@@@QAE@XZ		; SmartPtr<CDSProvider>::~SmartPtr<CDSProvider>
PUBLIC	??_C@_1BA@FJJFELHI@?$AAN?$AAe?$AAx?$AAt?$AA?4?$AA?4?$AA?4?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EGI@CDDGMGOG@?$AAT?$AAh?$AAe?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAi?$AAa?$AAl?$AAo?$AAg?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAw?$AA?5@ ; `string'
PUBLIC	??_C@_1BG@HCFKFGBA@?$AAB?$AAT?$AA8?$AA4?$AA8?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BC@HLOCLEOC@?$AAU?$AAs?$AAe?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CC@PEAAADIC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAQ?$AAu?$AAe?$AAs?$AAt?$AAi?$AAo?$AAn?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CCG@GBNLLMEI@?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAa?$AA?5?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?4?$AA?5?$AA?5?$AAT?$AAh?$AAe?$AAr?$AAe@ ; `string'
PUBLIC	??_C@_1BA@IDPDCIOJ@?$AAC?$AAX?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BK@NIGDHGNB@?$AAS?$AAA?$AAA?$AA7?$AA1?$AA3?$AA4?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1LI@OEHNLNJF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAH?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?0?$AA?5?$AAp?$AAo?$AAs?$AAs@ ; `string'
PUBLIC	??_C@_1CA@LIMALMPD@?$AA?4?$AA?2?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1M@PBAPKIIE@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CA@JFFGBCPG@?$AAV?$AAE?$AAN?$AA_?$AA1?$AA4?$AAF?$AA1?$AA?$CG?$AAD?$AAE?$AAV?$AA_?$AA8?$AA8?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BC@LCJILHPI@?$AA?5?$AA?$CI?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1GE@FJNEBLKE@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?4?$AAd?$AA3?$AAu?$AA?5?$AAo?$AAr?$AA?5?$AAf@ ; `string'
PUBLIC	??_C@_1BE@GKOEFPFF@?$AAN?$AAo?$AA?5?$AAs?$AAo?$AAu?$AAr?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CM@ECILJPKG@?$AAU?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAT?$AAy?$AAp?$AAe?$AA?$AA@ ; `string'
_CurrentSource DD 01H DUP (?)
;	COMDAT ??_C@_1CM@ECILJPKG@?$AAU?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAT?$AAy?$AAp?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1CM@ECILJPKG@?$AAU?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAT?$AAy?$AAp?$AAe?$AA?$AA@ DB 'U'
	DB	00H, 'n', 00H, 's', 00H, 'u', 00H, 'p', 00H, 'p', 00H, 'o', 00H
	DB	'r', 00H, 't', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'F', 00H, 'i'
	DB	00H, 'l', 00H, 'e', 00H, ' ', 00H, 'T', 00H, 'y', 00H, 'p', 00H
	DB	'e', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@GKOEFPFF@?$AAN?$AAo?$AA?5?$AAs?$AAo?$AAu?$AAr?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@GKOEFPFF@?$AAN?$AAo?$AA?5?$AAs?$AAo?$AAu?$AAr?$AAc?$AAe?$AA?$AA@ DB 'N'
	DB	00H, 'o', 00H, ' ', 00H, 's', 00H, 'o', 00H, 'u', 00H, 'r', 00H
	DB	'c', 00H, 'e', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1GE@FJNEBLKE@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?4?$AAd?$AA3?$AAu?$AA?5?$AAo?$AAr?$AA?5?$AAf@
CONST	SEGMENT
??_C@_1GE@FJNEBLKE@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?4?$AAd?$AA3?$AAu?$AA?5?$AAo?$AAr?$AA?5?$AAf@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'l', 00H
	DB	'o', 00H, 'a', 00H, 'd', 00H, ' ', 00H, 'f', 00H, 'i', 00H, 'l'
	DB	00H, 'e', 00H, ' ', 00H, 'D', 00H, 'S', 00H, 'c', 00H, 'a', 00H
	DB	'l', 00H, 'e', 00H, 'r', 00H, '.', 00H, 'd', 00H, '3', 00H, 'u'
	DB	00H, ' ', 00H, 'o', 00H, 'r', 00H, ' ', 00H, 'f', 00H, 'i', 00H
	DB	'l', 00H, 'e', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 'f', 00H, 'i'
	DB	00H, 'n', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'i', 00H, 'n', 00H
	DB	' ', 00H, 'i', 00H, 't', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BC@LCJILHPI@?$AA?5?$AA?$CI?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BC@LCJILHPI@?$AA?5?$AA?$CI?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$CJ?$AA?$AA@ DB ' '
	DB	00H, '(', 00H, 'D', 00H, 'S', 00H, 'h', 00H, 'o', 00H, 'w', 00H
	DB	')', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1CA@JFFGBCPG@?$AAV?$AAE?$AAN?$AA_?$AA1?$AA4?$AAF?$AA1?$AA?$CG?$AAD?$AAE?$AAV?$AA_?$AA8?$AA8?$AA?$AA@
CONST	SEGMENT
??_C@_1CA@JFFGBCPG@?$AAV?$AAE?$AAN?$AA_?$AA1?$AA4?$AAF?$AA1?$AA?$CG?$AAD?$AAE?$AAV?$AA_?$AA8?$AA8?$AA?$AA@ DB 'V'
	DB	00H, 'E', 00H, 'N', 00H, '_', 00H, '1', 00H, '4', 00H, 'F', 00H
	DB	'1', 00H, '&', 00H, 'D', 00H, 'E', 00H, 'V', 00H, '_', 00H, '8'
	DB	00H, '8', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1M@PBAPKIIE@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$AA@
CONST	SEGMENT
??_C@_1M@PBAPKIIE@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$AA@ DB 'S', 00H, 't', 00H
	DB	'i', 00H, 'l', 00H, 'l', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1CA@LIMALMPD@?$AA?4?$AA?2?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1CA@LIMALMPD@?$AA?4?$AA?2?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ DB '.'
	DB	00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'v', 00H, 'i', 00H
	DB	'd', 00H, 'e', 00H, 'r', 00H, 's', 00H, '.', 00H, 'c', 00H, 'p'
	DB	00H, 'p', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1LI@OEHNLNJF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAH?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?0?$AA?5?$AAp?$AAo?$AAs?$AAs@
CONST	SEGMENT
??_C@_1LI@OEHNLNJF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAH?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?0?$AA?5?$AAp?$AAo?$AAs?$AAs@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'l', 00H
	DB	'o', 00H, 'a', 00H, 'd', 00H, ' ', 00H, 'H', 00H, 'a', 00H, 'r'
	DB	00H, 'd', 00H, 'w', 00H, 'a', 00H, 'r', 00H, 'e', 00H, ' ', 00H
	DB	'D', 00H, 'r', 00H, 'i', 00H, 'v', 00H, 'e', 00H, 'r', 00H, ','
	DB	00H, ' ', 00H, 'p', 00H, 'o', 00H, 's', 00H, 's', 00H, 'i', 00H
	DB	'b', 00H, 'l', 00H, 'y', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'u'
	DB	00H, 's', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'b', 00H, 'y', 00H
	DB	' ', 00H, 'c', 00H, 'o', 00H, 'r', 00H, 'r', 00H, 'u', 00H, 'p'
	DB	00H, 't', 00H, ' ', 00H, 'i', 00H, 'n', 00H, 's', 00H, 't', 00H
	DB	'a', 00H, 'l', 00H, 'l', 00H, 'a', 00H, 't', 00H, 'i', 00H, 'o'
	DB	00H, 'n', 00H, '.', 00H, ' ', 00H, ' ', 00H, 'R', 00H, 'e', 00H
	DB	'b', 00H, 'o', 00H, 'o', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'n'
	DB	00H, 'd', 00H, ' ', 00H, 't', 00H, 'r', 00H, 'y', 00H, ' ', 00H
	DB	'a', 00H, 'g', 00H, 'a', 00H, 'i', 00H, 'n', 00H, '.', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BK@NIGDHGNB@?$AAS?$AAA?$AAA?$AA7?$AA1?$AA3?$AA4?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1BK@NIGDHGNB@?$AAS?$AAA?$AAA?$AA7?$AA1?$AA3?$AA4?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@ DB 'S'
	DB	00H, 'A', 00H, 'A', 00H, '7', 00H, '1', 00H, '3', 00H, '4', 00H
	DB	' ', 00H, 'C', 00H, 'a', 00H, 'r', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BA@IDPDCIOJ@?$AAC?$AAX?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1BA@IDPDCIOJ@?$AAC?$AAX?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@ DB 'C', 00H
	DB	'X', 00H, ' ', 00H, 'C', 00H, 'a', 00H, 'r', 00H, 'd', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1CCG@GBNLLMEI@?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAa?$AA?5?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?4?$AA?5?$AA?5?$AAT?$AAh?$AAe?$AAr?$AAe@
CONST	SEGMENT
??_C@_1CCG@GBNLLMEI@?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAa?$AA?5?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?4?$AA?5?$AA?5?$AAT?$AAh?$AAe?$AAr?$AAe@ DB ' '
	DB	00H, 'Y', 00H, 'o', 00H, 'u', 00H, ' ', 00H, 'h', 00H, 'a', 00H
	DB	'v', 00H, 'e', 00H, ' ', 00H, 'a', 00H, ' ', 00H, 'C', 00H, 'X'
	DB	00H, '2', 00H, '3', 00H, '8', 00H, '8', 00H, 'x', 00H, ' ', 00H
	DB	'c', 00H, 'a', 00H, 'r', 00H, 'd', 00H, '.', 00H, ' ', 00H, ' '
	DB	00H, 'T', 00H, 'h', 00H, 'e', 00H, 'r', 00H, 'e', 00H, ' ', 00H
	DB	'h', 00H, 'a', 00H, 'v', 00H, 'e', 00H, ' ', 00H, 'b', 00H, 'e'
	DB	00H, 'e', 00H, 'n', 00H, ' ', 00H, 's', 00H, 'e', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 'a', 00H, 'l', 00H, ' ', 00H, 'r', 00H, 'e'
	DB	00H, 'p', 00H, 'o', 00H, 'r', 00H, 't', 00H, 'e', 00H, 'd', 00H
	DB	' ', 00H, 'i', 00H, 'n', 00H, 's', 00H, 't', 00H, 'a', 00H, 'b'
	DB	00H, 'i', 00H, 'l', 00H, 'i', 00H, 't', 00H, 'y', 00H, ' ', 00H
	DB	'p', 00H, 'r', 00H, 'o', 00H, 'b', 00H, 'l', 00H, 'e', 00H, 'm'
	DB	00H, 's', 00H, ' ', 00H, 'w', 00H, 'i', 00H, 't', 00H, 'h', 00H
	DB	' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, 's', 00H, 'e', 00H, ' '
	DB	00H, 'c', 00H, 'a', 00H, 'r', 00H, 'd', 00H, 's', 00H, ' ', 00H
	DB	'i', 00H, 'f', 00H, ' ', 00H, 'w', 00H, 'e', 00H, ' ', 00H, 'a'
	DB	00H, 'l', 00H, 'l', 00H, 'o', 00H, 'w', 00H, ' ', 00H, 't', 00H
	DB	'h', 00H, 'e', 00H, ' ', 00H, 'd', 00H, 'r', 00H, 'i', 00H, 'v'
	DB	00H, 'e', 00H, 'r', 00H, 's', 00H, ' ', 00H, 't', 00H, 'o', 00H
	DB	' ', 00H, 'r', 00H, 'u', 00H, 'n', 00H, '.', 00H, ' ', 00H, ' '
	DB	00H, 'B', 00H, 'e', 00H, 'c', 00H, 'a', 00H, 'u', 00H, 's', 00H
	DB	'e', 00H, ' ', 00H, 'o', 00H, 'f', 00H, ' ', 00H, 't', 00H, 'h'
	DB	00H, 'i', 00H, 's', 00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u', 00H
	DB	' ', 00H, 'c', 00H, 'a', 00H, 'n', 00H, ' ', 00H, 'e', 00H, 'i'
	DB	00H, 't', 00H, 'h', 00H, 'e', 00H, 'r', 00H, ' ', 00H, 'r', 00H
	DB	'u', 00H, 'n', 00H, ' ', 00H, 'w', 00H, 'i', 00H, 't', 00H, 'h'
	DB	00H, ' ', 00H, 'D', 00H, 'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H
	DB	'e', 00H, 'r', 00H, '''', 00H, 's', 00H, ' ', 00H, 'o', 00H, 'w'
	DB	00H, 'n', 00H, ' ', 00H, 'd', 00H, 'r', 00H, 'i', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 's', 00H, ' ', 00H, 'o', 00H, 'r', 00H, ' '
	DB	00H, 'w', 00H, 'i', 00H, 't', 00H, 'h', 00H, ' ', 00H, 't', 00H
	DB	'h', 00H, 'e', 00H, ' ', 00H, 'D', 00H, 'S', 00H, 'h', 00H, 'o'
	DB	00H, 'w', 00H, ' ', 00H, 'd', 00H, 'r', 00H, 'i', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 's', 00H, ' ', 00H, 'b', 00H, 'u', 00H, 't'
	DB	00H, ' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' ', 00H, 'b', 00H
	DB	'o', 00H, 't', 00H, 'h', 00H, '.', 00H, ' ', 00H, ' ', 00H, 'D'
	DB	00H, 'o', 00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u', 00H, ' ', 00H
	DB	'w', 00H, 'a', 00H, 'n', 00H, 't', 00H, ' ', 00H, 't', 00H, 'o'
	DB	00H, ' ', 00H, 'u', 00H, 's', 00H, 'e', 00H, ' ', 00H, 'D', 00H
	DB	'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, ''''
	DB	00H, 's', 00H, ' ', 00H, 'o', 00H, 'w', 00H, 'n', 00H, ' ', 00H
	DB	'd', 00H, 'r', 00H, 'i', 00H, 'v', 00H, 'e', 00H, 'r', 00H, '?'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1CC@PEAAADIC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAQ?$AAu?$AAe?$AAs?$AAt?$AAi?$AAo?$AAn?$AA?$AA@
CONST	SEGMENT
??_C@_1CC@PEAAADIC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAQ?$AAu?$AAe?$AAs?$AAt?$AAi?$AAo?$AAn?$AA?$AA@ DB 'C'
	DB	00H, 'X', 00H, '2', 00H, '3', 00H, '8', 00H, '8', 00H, 'x', 00H
	DB	' ', 00H, 'Q', 00H, 'u', 00H, 'e', 00H, 's', 00H, 't', 00H, 'i'
	DB	00H, 'o', 00H, 'n', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1BC@HLOCLEOC@?$AAU?$AAs?$AAe?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$AA@
CONST	SEGMENT
??_C@_1BC@HLOCLEOC@?$AAU?$AAs?$AAe?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$AA@ DB 'U'
	DB	00H, 's', 00H, 'e', 00H, 'D', 00H, 'S', 00H, 'h', 00H, 'o', 00H
	DB	'w', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BG@HCFKFGBA@?$AAB?$AAT?$AA8?$AA4?$AA8?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1BG@HCFKFGBA@?$AAB?$AAT?$AA8?$AA4?$AA8?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@ DB 'B'
	DB	00H, 'T', 00H, '8', 00H, '4', 00H, '8', 00H, ' ', 00H, 'C', 00H
	DB	'a', 00H, 'r', 00H, 'd', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1EGI@CDDGMGOG@?$AAT?$AAh?$AAe?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAi?$AAa?$AAl?$AAo?$AAg?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAw?$AA?5@
CONST	SEGMENT
??_C@_1EGI@CDDGMGOG@?$AAT?$AAh?$AAe?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAi?$AAa?$AAl?$AAo?$AAg?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAw?$AA?5@ DB 'T'
	DB	00H, 'h', 00H, 'e', 00H, ' ', 00H, 'f', 00H, 'o', 00H, 'l', 00H
	DB	'l', 00H, 'o', 00H, 'w', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' '
	DB	00H, 'd', 00H, 'i', 00H, 'a', 00H, 'l', 00H, 'o', 00H, 'g', 00H
	DB	' ', 00H, 'w', 00H, 'i', 00H, 'l', 00H, 'l', 00H, ' ', 00H, 'a'
	DB	00H, 'l', 00H, 'l', 00H, 'o', 00H, 'w', 00H, ' ', 00H, 'y', 00H
	DB	'o', 00H, 'u', 00H, ' ', 00H, 't', 00H, 'o', 00H, ' ', 00H, 'c'
	DB	00H, 'o', 00H, 'n', 00H, 'f', 00H, 'i', 00H, 'g', 00H, 'u', 00H
	DB	'r', 00H, 'e', 00H, ' ', 00H, 'h', 00H, 'o', 00H, 'w', 00H, ' '
	DB	00H, 'D', 00H, 'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H
	DB	'r', 00H, ' ', 00H, 'u', 00H, 's', 00H, 'e', 00H, 's', 00H, ' '
	DB	00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 's', 00H, 'y', 00H
	DB	's', 00H, 't', 00H, 'e', 00H, 'm', 00H, ' ', 00H, 'm', 00H, 'i'
	DB	00H, 'x', 00H, 'e', 00H, 'r', 00H, '.', 00H, ' ', 00H, ' ', 00H
	DB	'C', 00H, 'o', 00H, 'n', 00H, 'f', 00H, 'i', 00H, 'g', 00H, 'u'
	DB	00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 'D', 00H
	DB	'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, ' '
	DB	00H, 't', 00H, 'o', 00H, ' ', 00H, 'u', 00H, 's', 00H, 'e', 00H
	DB	' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 's', 00H, 'y'
	DB	00H, 's', 00H, 't', 00H, 'e', 00H, 'm', 00H, ' ', 00H, 'm', 00H
	DB	'i', 00H, 'x', 00H, 'e', 00H, 'r', 00H, ' ', 00H, 'a', 00H, 'l'
	DB	00H, 'l', 00H, 'o', 00H, 'w', 00H, 's', 00H, ' ', 00H, 'D', 00H
	DB	'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, ' '
	DB	00H, 't', 00H, 'o', 00H, ' ', 00H, 'c', 00H, 'h', 00H, 'a', 00H
	DB	'n', 00H, 'g', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e'
	DB	00H, ' ', 00H, 'v', 00H, 'o', 00H, 'l', 00H, 'u', 00H, 'm', 00H
	DB	'e', 00H, ' ', 00H, 'l', 00H, 'e', 00H, 'v', 00H, 'e', 00H, 'l'
	DB	00H, ' ', 00H, 'a', 00H, 'n', 00H, 'd', 00H, ' ', 00H, 't', 00H
	DB	'h', 00H, 'e', 00H, ' ', 00H, 'm', 00H, 'u', 00H, 't', 00H, 'e'
	DB	00H, ' ', 00H, 's', 00H, 't', 00H, 'a', 00H, 't', 00H, 'e', 00H
	DB	' ', 00H, 'o', 00H, 'f', 00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u'
	DB	00H, 'r', 00H, ' ', 00H, 's', 00H, 'o', 00H, 'u', 00H, 'n', 00H
	DB	'd', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'd', 00H, ' '
	DB	00H, 'b', 00H, 'y', 00H, ' ', 00H, 'u', 00H, 's', 00H, 'i', 00H
	DB	'n', 00H, 'g', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, ' '
	DB	00H, 'W', 00H, 'i', 00H, 'n', 00H, 'd', 00H, 'o', 00H, 'w', 00H
	DB	's', 00H, ' ', 00H, 'm', 00H, 'i', 00H, 'x', 00H, 'e', 00H, 'r'
	DB	00H, '.', 00H, ' ', 00H, ' ', 00H, 'T', 00H, 'h', 00H, 'i', 00H
	DB	's', 00H, ' ', 00H, 'i', 00H, 's', 00H, ' ', 00H, 'a', 00H, ' '
	DB	00H, 'm', 00H, 'u', 00H, 's', 00H, 't', 00H, ' ', 00H, 'f', 00H
	DB	'o', 00H, 'r', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'd'
	DB	00H, 's', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'a', 00H, 't', 00H
	DB	' ', 00H, 'd', 00H, 'o', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't'
	DB	00H, ' ', 00H, 's', 00H, 'u', 00H, 'p', 00H, 'p', 00H, 'o', 00H
	DB	'r', 00H, 't', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, 's'
	DB	00H, 'e', 00H, ' ', 00H, 'f', 00H, 'u', 00H, 'n', 00H, 'c', 00H
	DB	't', 00H, 'i', 00H, 'o', 00H, 'n', 00H, 's', 00H, ' ', 00H, 'i'
	DB	00H, 'n', 00H, ' ', 00H, 'h', 00H, 'a', 00H, 'r', 00H, 'd', 00H
	DB	'w', 00H, 'a', 00H, 'r', 00H, 'e', 00H, '.', 00H, ' ', 00H, 'Y'
	DB	00H, 'o', 00H, 'u', 00H, ' ', 00H, 's', 00H, 'h', 00H, 'o', 00H
	DB	'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 's', 00H, 'p', 00H, 'e'
	DB	00H, 'c', 00H, 'i', 00H, 'f', 00H, 'y', 00H, ' ', 00H, 't', 00H
	DB	'h', 00H, 'e', 00H, ' ', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'e'
	DB	00H, ' ', 00H, 'i', 00H, 'n', 00H, 't', 00H, 'o', 00H, ' ', 00H
	DB	'w', 00H, 'h', 00H, 'i', 00H, 'c', 00H, 'h', 00H, ' ', 00H, 'y'
	DB	00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H, 'T', 00H, 'V', 00H
	DB	' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'd', 00H, '''', 00H, 's'
	DB	00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, 'b', 00H
	DB	'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 's', 00H, 'o', 00H, 'u'
	DB	00H, 'n', 00H, 'd', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'b', 00H
	DB	'l', 00H, 'e', 00H, ' ', 00H, 'i', 00H, 's', 00H, ' ', 00H, 'a'
	DB	00H, 't', 00H, 't', 00H, 'a', 00H, 'c', 00H, 'h', 00H, 'e', 00H
	DB	'd', 00H, '.', 00H, 0aH, 00H, 0aH, 00H, 'I', 00H, 'f', 00H, ' '
	DB	00H, 'y', 00H, 'o', 00H, 'u', 00H, ' ', 00H, 'd', 00H, 'o', 00H
	DB	' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' ', 00H, 'w', 00H, 'i'
	DB	00H, 's', 00H, 'h', 00H, ' ', 00H, 't', 00H, 'o', 00H, ' ', 00H
	DB	'l', 00H, 'e', 00H, 't', 00H, ' ', 00H, 'D', 00H, 'S', 00H, 'c'
	DB	00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, ' ', 00H, 'u', 00H
	DB	's', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, ' '
	DB	00H, 's', 00H, 'y', 00H, 's', 00H, 't', 00H, 'e', 00H, 'm', 00H
	DB	' ', 00H, 'm', 00H, 'i', 00H, 'x', 00H, 'e', 00H, 'r', 00H, ','
	DB	00H, ' ', 00H, 'l', 00H, 'e', 00H, 'a', 00H, 'v', 00H, 'e', 00H
	DB	' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, '"', 00H, 'U'
	DB	00H, 's', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H
	DB	' ', 00H, 's', 00H, 'y', 00H, 's', 00H, 't', 00H, 'e', 00H, 'm'
	DB	00H, ' ', 00H, 'm', 00H, 'i', 00H, 'x', 00H, 'e', 00H, 'r', 00H
	DB	'"', 00H, ' ', 00H, 'o', 00H, 'p', 00H, 't', 00H, 'i', 00H, 'o'
	DB	00H, 'n', 00H, ' ', 00H, 'u', 00H, 'n', 00H, 'c', 00H, 'h', 00H
	DB	'e', 00H, 'c', 00H, 'k', 00H, 'e', 00H, 'd', 00H, '.', 00H, ' '
	DB	00H, ' ', 00H, 'I', 00H, 'f', 00H, ' ', 00H, 'u', 00H, 'n', 00H
	DB	's', 00H, 'u', 00H, 'r', 00H, 'e', 00H, ',', 00H, ' ', 00H, 'i'
	DB	00H, 't', 00H, ' ', 00H, 'i', 00H, 's', 00H, ' ', 00H, 'r', 00H
	DB	'e', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'e', 00H, 'n'
	DB	00H, 'd', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'y', 00H, 'o', 00H
	DB	'u', 00H, ' ', 00H, 'u', 00H, 's', 00H, 'e', 00H, ' ', 00H, 't'
	DB	00H, 'h', 00H, 'e', 00H, ' ', 00H, 's', 00H, 'y', 00H, 's', 00H
	DB	't', 00H, 'e', 00H, 'm', 00H, ' ', 00H, 'm', 00H, 'i', 00H, 'x'
	DB	00H, 'e', 00H, 'r', 00H, '.', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BA@FJJFELHI@?$AAN?$AAe?$AAx?$AAt?$AA?4?$AA?4?$AA?4?$AA?$AA@
CONST	SEGMENT
??_C@_1BA@FJJFELHI@?$AAN?$AAe?$AAx?$AAt?$AA?4?$AA?4?$AA?4?$AA?$AA@ DB 'N', 00H
	DB	'e', 00H, 'x', 00H, 't', 00H, '.', 00H, '.', 00H, '.', 00H, 00H
	DB	00H						; `string'
?InitSourceIdx@@3JA DD 0ffffffffH			; InitSourceIdx
_DefSourceIdx DD 0ffffffffH
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@U_Unchanged_checked_iterator_base_type_tag@0@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
___formal$ = 12						; size = 1
??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@U_Unchanged_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<SmartPtr<TSource> *>, COMDAT

; 1146 : 	{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 1147 : 		return _It;

  00003	8b 45 08	 mov	 eax, DWORD PTR __It$[ebp]
  00006	8b 00		 mov	 eax, DWORD PTR [eax]

; 1148 : 	}

  00008	5d		 pop	 ebp
  00009	c3		 ret	 0
??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@U_Unchanged_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Move_cat@PAV?$SmartPtr@UTSource@@@@@std@@YA?AU_Undefined_move_tag@0@ABQAV?$SmartPtr@UTSource@@@@@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
??$_Move_cat@PAV?$SmartPtr@UTSource@@@@@std@@YA?AU_Undefined_move_tag@0@ABQAV?$SmartPtr@UTSource@@@@@Z PROC ; std::_Move_cat<SmartPtr<TSource> *>, COMDAT

; 1200 : 	{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1201 : 		typename _Move_operation_category<typename iterator_traits<_Iter>::value_type>::_Move_cat _Cat;
; 1202 : 		return (_Cat);

  00004	8a 45 ff	 mov	 al, BYTE PTR __Cat$[ebp]

; 1203 : 	}

  00007	8b e5		 mov	 esp, ebp
  00009	5d		 pop	 ebp
  0000a	c3		 ret	 0
??$_Move_cat@PAV?$SmartPtr@UTSource@@@@@std@@YA?AU_Undefined_move_tag@0@ABQAV?$SmartPtr@UTSource@@@@@Z ENDP ; std::_Move_cat<SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z PROC ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>, COMDAT

; 1483 : 	{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1484 : 	typename _Ptr_cat_helper<_T1, _T2>::_Ptr_cat _Cat;
; 1485 : 	return (_Cat);

  00004	8a 45 ff	 mov	 al, BYTE PTR __Cat$[ebp]

; 1486 : 	}

  00007	8b e5		 mov	 esp, ebp
  00009	5d		 pop	 ebp
  0000a	c3		 ret	 0
??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ENDP ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Iter_random@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$SmartPtr@UTSource@@@@0@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
??$_Iter_random@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$SmartPtr@UTSource@@@@0@Z PROC ; std::_Iter_random<SmartPtr<TSource> *,SmartPtr<TSource> *>, COMDAT

; 993  : 	{	// return category from iterator argument

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 994  : 	typename _Iter_random_helper<
; 995  : 		iterator_traits<_Iter1>::iterator_category, 
; 996  : 		iterator_traits<_Iter2>::iterator_category>::_Iter_random_cat _Cat;
; 997  : 	return (_Cat);

  00004	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 998  : 	}

  00007	8b e5		 mov	 esp, ebp
  00009	5d		 pop	 ebp
  0000a	c3		 ret	 0
??$_Iter_random@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$SmartPtr@UTSource@@@@0@Z ENDP ; std::_Iter_random<SmartPtr<TSource> *,SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z
_TEXT	SEGMENT
__Base_tag$ = -1					; size = 1
__It$ = 8						; size = 4
??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z PROC ; std::_Checked_base<SmartPtr<TSource> *>, COMDAT

; 1163 : 	{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1164 : 		typename _Checked_iterator_base_helper<_Iter>::_Checked_iterator_base_type_tag _Base_tag;
; 1165 : 		return _Checked_base(_It, _Base_tag);

  00004	0f b6 45 ff	 movzx	 eax, BYTE PTR __Base_tag$[ebp]
  00008	50		 push	 eax
  00009	8b 4d 08	 mov	 ecx, DWORD PTR __It$[ebp]
  0000c	51		 push	 ecx
  0000d	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@U_Unchanged_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00012	83 c4 08	 add	 esp, 8

; 1166 : 	}

  00015	8b e5		 mov	 esp, ebp
  00017	5d		 pop	 ebp
  00018	c3		 ret	 0
??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ENDP ; std::_Checked_base<SmartPtr<TSource> *>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
_TEXT	ENDS
;	COMDAT ??$?0V?$SmartPtr@UTSource@@@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___formal$ = 8						; size = 4
??$?0V?$SmartPtr@UTSource@@@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z PROC ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><SmartPtr<TSource> >, COMDAT
; _this$ = ecx

; 128  : 		allocator(const allocator<_Other>&) _THROW0()

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 129  : 		{	// construct from a related allocator (do nothing)
; 130  : 		}

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b e5		 mov	 esp, ebp
  0000c	5d		 pop	 ebp
  0000d	c2 04 00	 ret	 4
??$?0V?$SmartPtr@UTSource@@@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ENDP ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><SmartPtr<TSource> >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?max_size@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QBEIXZ
_TEXT	SEGMENT
tv65 = -12						; size = 4
_this$ = -8						; size = 4
__Count$ = -4						; size = 4
?max_size@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QBEIXZ PROC ; std::allocator<SmartPtr<TSource> >::max_size, COMDAT
; _this$ = ecx

; 164  : 		{	// estimate maximum array size

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 165  : 		_SIZT _Count = (_SIZT)(-1) / sizeof (_Ty);

  00009	c7 45 fc ff ff
	ff 1f		 mov	 DWORD PTR __Count$[ebp], 536870911 ; 1fffffffH

; 166  : 		return (0 < _Count ? _Count : 1);

  00010	83 7d fc 00	 cmp	 DWORD PTR __Count$[ebp], 0
  00014	76 08		 jbe	 SHORT $LN3@max_size@15
  00016	8b 45 fc	 mov	 eax, DWORD PTR __Count$[ebp]
  00019	89 45 f4	 mov	 DWORD PTR tv65[ebp], eax
  0001c	eb 07		 jmp	 SHORT $LN4@max_size@15
$LN3@max_size@15:
  0001e	c7 45 f4 01 00
	00 00		 mov	 DWORD PTR tv65[ebp], 1
$LN4@max_size@15:
  00025	8b 45 f4	 mov	 eax, DWORD PTR tv65[ebp]

; 167  : 		}

  00028	8b e5		 mov	 esp, ebp
  0002a	5d		 pop	 ebp
  0002b	c3		 ret	 0
?max_size@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QBEIXZ ENDP ; std::allocator<SmartPtr<TSource> >::max_size
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z PROC ; std::allocator<SmartPtr<TSource> >::deallocate, COMDAT
; _this$ = ecx

; 139  : 		{	// deallocate object at _Ptr, ignore size

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 140  : 		::operator delete(_Ptr);

  00007	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  0000a	50		 push	 eax
  0000b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00010	83 c4 04	 add	 esp, 4

; 141  : 		}

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 08 00	 ret	 8
?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z ENDP ; std::allocator<SmartPtr<TSource> >::deallocate
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___formal$ = 8						; size = 4
??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@ABV01@@Z PROC ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >, COMDAT
; _this$ = ecx

; 123  : 	allocator(const allocator<_Ty>&) _THROW0()

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 124  : 		{	// construct by copying (do nothing)
; 125  : 		}

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b e5		 mov	 esp, ebp
  0000c	5d		 pop	 ebp
  0000d	c2 04 00	 ret	 4
??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@ABV01@@Z ENDP ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::max_size, COMDAT
; _this$ = ecx

; 730  : 		{	// return maximum possible length of sequence

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 731  : 		return (this->_Alval.max_size());

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	83 c1 08	 add	 ecx, 8
  0000d	e8 00 00 00 00	 call	 ?max_size@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QBEIXZ ; std::allocator<SmartPtr<TSource> >::max_size

; 732  : 		}

  00012	8b e5		 mov	 esp, ebp
  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::max_size
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
_TEXT	ENDS
;	COMDAT ?acquire@?$SmartPtr@UTSource@@@@AAEXPAUCounter@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_c$ = 8							; size = 4
?acquire@?$SmartPtr@UTSource@@@@AAEXPAUCounter@@@Z PROC	; SmartPtr<TSource>::acquire, COMDAT
; _this$ = ecx

; 262  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 263  :         counter = c;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _c$[ebp]
  0000d	89 48 04	 mov	 DWORD PTR [eax+4], ecx

; 264  :         if (c)

  00010	83 7d 08 00	 cmp	 DWORD PTR _c$[ebp], 0
  00014	74 0d		 je	 SHORT $LN2@acquire@56

; 265  :         {
; 266  :             (c->count)++;

  00016	8b 55 08	 mov	 edx, DWORD PTR _c$[ebp]
  00019	8b 02		 mov	 eax, DWORD PTR [edx]
  0001b	83 c0 01	 add	 eax, 1
  0001e	8b 4d 08	 mov	 ecx, DWORD PTR _c$[ebp]
  00021	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@acquire@56:

; 267  :         }
; 268  :     }

  00023	8b e5		 mov	 esp, ebp
  00025	5d		 pop	 ebp
  00026	c2 04 00	 ret	 4
?acquire@?$SmartPtr@UTSource@@@@AAEXPAUCounter@@@Z ENDP	; SmartPtr<TSource>::acquire
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@VCStillProvider@@@@QAEXXZ
_TEXT	SEGMENT
tv84 = -20						; size = 4
_this$ = -16						; size = 4
$T294310 = -12						; size = 4
$T294309 = -8						; size = 4
$T294308 = -4						; size = 4
?Clear@?$SmartPtr@VCStillProvider@@@@QAEXXZ PROC	; SmartPtr<CStillProvider>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 62		 je	 SHORT $LN2@Clear@53

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 44		 jne	 SHORT $LN2@Clear@53

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T294308[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T294308[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T294310[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T294310[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T294309[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T294309[ebp], 0
  00057	74 14		 je	 SHORT $LN5@Clear@53
  00059	6a 01		 push	 1
  0005b	8b 55 f8	 mov	 edx, DWORD PTR $T294309[ebp]
  0005e	8b 02		 mov	 eax, DWORD PTR [edx]
  00060	8b 4d f8	 mov	 ecx, DWORD PTR $T294309[ebp]
  00063	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00066	ff d2		 call	 edx
  00068	89 45 ec	 mov	 DWORD PTR tv84[ebp], eax
  0006b	eb 07		 jmp	 SHORT $LN2@Clear@53
$LN5@Clear@53:
  0006d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv84[ebp], 0
$LN2@Clear@53:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  00074	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00077	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0

; 252  :         rawPtr = 0;

  0007e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0

; 253  :     }

  00087	8b e5		 mov	 esp, ebp
  00089	5d		 pop	 ebp
  0008a	c3		 ret	 0
?Clear@?$SmartPtr@VCStillProvider@@@@QAEXXZ ENDP	; SmartPtr<CStillProvider>::Clear
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@VCSAA7134Provider@@@@QAEXXZ
_TEXT	SEGMENT
tv84 = -20						; size = 4
_this$ = -16						; size = 4
$T294317 = -12						; size = 4
$T294316 = -8						; size = 4
$T294315 = -4						; size = 4
?Clear@?$SmartPtr@VCSAA7134Provider@@@@QAEXXZ PROC	; SmartPtr<CSAA7134Provider>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 62		 je	 SHORT $LN2@Clear@54

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 44		 jne	 SHORT $LN2@Clear@54

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T294315[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T294315[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T294317[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T294317[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T294316[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T294316[ebp], 0
  00057	74 14		 je	 SHORT $LN5@Clear@54
  00059	6a 01		 push	 1
  0005b	8b 55 f8	 mov	 edx, DWORD PTR $T294316[ebp]
  0005e	8b 02		 mov	 eax, DWORD PTR [edx]
  00060	8b 4d f8	 mov	 ecx, DWORD PTR $T294316[ebp]
  00063	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00066	ff d2		 call	 edx
  00068	89 45 ec	 mov	 DWORD PTR tv84[ebp], eax
  0006b	eb 07		 jmp	 SHORT $LN2@Clear@54
$LN5@Clear@54:
  0006d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv84[ebp], 0
$LN2@Clear@54:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  00074	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00077	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0

; 252  :         rawPtr = 0;

  0007e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0

; 253  :     }

  00087	8b e5		 mov	 esp, ebp
  00089	5d		 pop	 ebp
  0008a	c3		 ret	 0
?Clear@?$SmartPtr@VCSAA7134Provider@@@@QAEXXZ ENDP	; SmartPtr<CSAA7134Provider>::Clear
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@VCCX2388xProvider@@@@QAEXXZ
_TEXT	SEGMENT
tv84 = -20						; size = 4
_this$ = -16						; size = 4
$T294324 = -12						; size = 4
$T294323 = -8						; size = 4
$T294322 = -4						; size = 4
?Clear@?$SmartPtr@VCCX2388xProvider@@@@QAEXXZ PROC	; SmartPtr<CCX2388xProvider>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 62		 je	 SHORT $LN2@Clear@55

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 44		 jne	 SHORT $LN2@Clear@55

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T294322[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T294322[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T294324[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T294324[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T294323[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T294323[ebp], 0
  00057	74 14		 je	 SHORT $LN5@Clear@55
  00059	6a 01		 push	 1
  0005b	8b 55 f8	 mov	 edx, DWORD PTR $T294323[ebp]
  0005e	8b 02		 mov	 eax, DWORD PTR [edx]
  00060	8b 4d f8	 mov	 ecx, DWORD PTR $T294323[ebp]
  00063	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00066	ff d2		 call	 edx
  00068	89 45 ec	 mov	 DWORD PTR tv84[ebp], eax
  0006b	eb 07		 jmp	 SHORT $LN2@Clear@55
$LN5@Clear@55:
  0006d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv84[ebp], 0
$LN2@Clear@55:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  00074	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00077	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0

; 252  :         rawPtr = 0;

  0007e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0

; 253  :     }

  00087	8b e5		 mov	 esp, ebp
  00089	5d		 pop	 ebp
  0008a	c3		 ret	 0
?Clear@?$SmartPtr@VCCX2388xProvider@@@@QAEXXZ ENDP	; SmartPtr<CCX2388xProvider>::Clear
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
_TEXT	ENDS
;	COMDAT ??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@XZ PROC ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >, COMDAT
; _this$ = ecx

; 119  : 	allocator() _THROW0()

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 120  : 		{	// construct default allocator (do nothing)
; 121  : 		}

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b e5		 mov	 esp, ebp
  0000c	5d		 pop	 ebp
  0000d	c3		 ret	 0
??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@XZ ENDP ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ?capacity@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ
_TEXT	SEGMENT
tv70 = -8						; size = 4
_this$ = -4						; size = 4
?capacity@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::capacity, COMDAT
; _this$ = ecx

; 634  : 		{	// return current length of allocated storage

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 635  : 		return (_Myfirst == 0 ? 0 : _Myend - _Myfirst);

  00009	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  00010	75 09		 jne	 SHORT $LN3@capacity@15
  00012	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv70[ebp], 0
  00019	eb 12		 jmp	 SHORT $LN4@capacity@15
$LN3@capacity@15:
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001e	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00021	8b 41 14	 mov	 eax, DWORD PTR [ecx+20]
  00024	2b 42 0c	 sub	 eax, DWORD PTR [edx+12]
  00027	c1 f8 03	 sar	 eax, 3
  0002a	89 45 f8	 mov	 DWORD PTR tv70[ebp], eax
$LN4@capacity@15:
  0002d	8b 45 f8	 mov	 eax, DWORD PTR tv70[ebp]

; 636  : 		}

  00030	8b e5		 mov	 esp, ebp
  00032	5d		 pop	 ebp
  00033	c3		 ret	 0
?capacity@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::capacity
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@VCDSProvider@@@@QAEXXZ
_TEXT	SEGMENT
tv84 = -20						; size = 4
_this$ = -16						; size = 4
$T294337 = -12						; size = 4
$T294336 = -8						; size = 4
$T294335 = -4						; size = 4
?Clear@?$SmartPtr@VCDSProvider@@@@QAEXXZ PROC		; SmartPtr<CDSProvider>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 62		 je	 SHORT $LN2@Clear@56

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 44		 jne	 SHORT $LN2@Clear@56

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T294335[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T294335[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T294337[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T294337[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T294336[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T294336[ebp], 0
  00057	74 14		 je	 SHORT $LN5@Clear@56
  00059	6a 01		 push	 1
  0005b	8b 55 f8	 mov	 edx, DWORD PTR $T294336[ebp]
  0005e	8b 02		 mov	 eax, DWORD PTR [edx]
  00060	8b 4d f8	 mov	 ecx, DWORD PTR $T294336[ebp]
  00063	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00066	ff d2		 call	 edx
  00068	89 45 ec	 mov	 DWORD PTR tv84[ebp], eax
  0006b	eb 07		 jmp	 SHORT $LN2@Clear@56
$LN5@Clear@56:
  0006d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv84[ebp], 0
$LN2@Clear@56:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  00074	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00077	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0

; 252  :         rawPtr = 0;

  0007e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0

; 253  :     }

  00087	8b e5		 mov	 esp, ebp
  00089	5d		 pop	 ebp
  0008a	c3		 ret	 0
?Clear@?$SmartPtr@VCDSProvider@@@@QAEXXZ ENDP		; SmartPtr<CDSProvider>::Clear
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@UTSource@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@UTSource@@@@QAE@XZ PROC			; SmartPtr<TSource>::SmartPtr<TSource>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@UTSource@@@@QAE@XZ ENDP			; SmartPtr<TSource>::SmartPtr<TSource>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?IsValid@?$SmartPtr@VCStillProvider@@@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsValid@?$SmartPtr@VCStillProvider@@@@QBEHXZ PROC	; SmartPtr<CStillProvider>::IsValid, COMDAT
; _this$ = ecx

; 221  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 222  :         if (counter && rawPtr) return TRUE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  0000e	74 0f		 je	 SHORT $LN1@IsValid@9
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00016	74 07		 je	 SHORT $LN1@IsValid@9
  00018	b8 01 00 00 00	 mov	 eax, 1
  0001d	eb 02		 jmp	 SHORT $LN2@IsValid@9
$LN1@IsValid@9:

; 223  :         return FALSE;

  0001f	33 c0		 xor	 eax, eax
$LN2@IsValid@9:

; 224  :     }

  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c3		 ret	 0
?IsValid@?$SmartPtr@VCStillProvider@@@@QBEHXZ ENDP	; SmartPtr<CStillProvider>::IsValid
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??1?$SmartPtr@VCStillProvider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@VCStillProvider@@@@QAE@XZ PROC		; SmartPtr<CStillProvider>::~SmartPtr<CStillProvider>, COMDAT
; _this$ = ecx

; 105  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCStillProvider@@@@QAEXXZ ; SmartPtr<CStillProvider>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@VCStillProvider@@@@QAE@XZ ENDP		; SmartPtr<CStillProvider>::~SmartPtr<CStillProvider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VCStillProvider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VCStillProvider@@@@QAE@XZ PROC		; SmartPtr<CStillProvider>::SmartPtr<CStillProvider>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VCStillProvider@@@@QAE@XZ ENDP		; SmartPtr<CStillProvider>::SmartPtr<CStillProvider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??1?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ PROC		; SmartPtr<CSAA7134Provider>::~SmartPtr<CSAA7134Provider>, COMDAT
; _this$ = ecx

; 105  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCSAA7134Provider@@@@QAEXXZ ; SmartPtr<CSAA7134Provider>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ ENDP		; SmartPtr<CSAA7134Provider>::~SmartPtr<CSAA7134Provider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ PROC		; SmartPtr<CSAA7134Provider>::SmartPtr<CSAA7134Provider>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ ENDP		; SmartPtr<CSAA7134Provider>::SmartPtr<CSAA7134Provider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??1?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ PROC		; SmartPtr<CCX2388xProvider>::~SmartPtr<CCX2388xProvider>, COMDAT
; _this$ = ecx

; 105  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCCX2388xProvider@@@@QAEXXZ ; SmartPtr<CCX2388xProvider>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ ENDP		; SmartPtr<CCX2388xProvider>::~SmartPtr<CCX2388xProvider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ PROC		; SmartPtr<CCX2388xProvider>::SmartPtr<CCX2388xProvider>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ ENDP		; SmartPtr<CCX2388xProvider>::SmartPtr<CCX2388xProvider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VCBT848Provider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VCBT848Provider@@@@QAE@XZ PROC		; SmartPtr<CBT848Provider>::SmartPtr<CBT848Provider>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VCBT848Provider@@@@QAE@XZ ENDP		; SmartPtr<CBT848Provider>::SmartPtr<CBT848Provider>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size, COMDAT
; _this$ = ecx

; 725  : 		{	// return length of sequence

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 726  : 		return (_Mylast - _Myfirst);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000d	8b 40 10	 mov	 eax, DWORD PTR [eax+16]
  00010	2b 41 0c	 sub	 eax, DWORD PTR [ecx+12]
  00013	c1 f8 03	 sar	 eax, 3

; 727  : 		}

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c3		 ret	 0
?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
_TEXT	ENDS
;	COMDAT ?IsValid@?$SmartPtr@VCSource@@@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsValid@?$SmartPtr@VCSource@@@@QBEHXZ PROC		; SmartPtr<CSource>::IsValid, COMDAT
; _this$ = ecx

; 221  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 222  :         if (counter && rawPtr) return TRUE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  0000e	74 0f		 je	 SHORT $LN1@IsValid@10
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00016	74 07		 je	 SHORT $LN1@IsValid@10
  00018	b8 01 00 00 00	 mov	 eax, 1
  0001d	eb 02		 jmp	 SHORT $LN2@IsValid@10
$LN1@IsValid@10:

; 223  :         return FALSE;

  0001f	33 c0		 xor	 eax, eax
$LN2@IsValid@10:

; 224  :     }

  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c3		 ret	 0
?IsValid@?$SmartPtr@VCSource@@@@QBEHXZ ENDP		; SmartPtr<CSource>::IsValid
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??8?$SmartPtr@VCSource@@@@QAEHPAVCSource@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_rhs$ = 8						; size = 4
??8?$SmartPtr@VCSource@@@@QAEHPAVCSource@@@Z PROC	; SmartPtr<CSource>::operator==, COMDAT
; _this$ = ecx

; 132  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 133  :         return rawPtr == rhs;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000c	33 c0		 xor	 eax, eax
  0000e	3b 4d 08	 cmp	 ecx, DWORD PTR _rhs$[ebp]
  00011	0f 94 c0	 sete	 al

; 134  :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c2 04 00	 ret	 4
??8?$SmartPtr@VCSource@@@@QAEHPAVCSource@@@Z ENDP	; SmartPtr<CSource>::operator==
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??8?$SmartPtr@VCSource@@@@QAEHABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_rhs$ = 8						; size = 4
??8?$SmartPtr@VCSource@@@@QAEHABV0@@Z PROC		; SmartPtr<CSource>::operator==, COMDAT
; _this$ = ecx

; 127  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 128  :         return rawPtr == rhs.rawPtr;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _rhs$[ebp]
  0000d	8b 10		 mov	 edx, DWORD PTR [eax]
  0000f	33 c0		 xor	 eax, eax
  00011	3b 11		 cmp	 edx, DWORD PTR [ecx]
  00013	0f 94 c0	 sete	 al

; 129  :     }

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c2 04 00	 ret	 4
??8?$SmartPtr@VCSource@@@@QAEHABV0@@Z ENDP		; SmartPtr<CSource>::operator==
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??1?$SmartPtr@VCDSProvider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@VCDSProvider@@@@QAE@XZ PROC		; SmartPtr<CDSProvider>::~SmartPtr<CDSProvider>, COMDAT
; _this$ = ecx

; 105  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCDSProvider@@@@QAEXXZ ; SmartPtr<CDSProvider>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@VCDSProvider@@@@QAE@XZ ENDP		; SmartPtr<CDSProvider>::~SmartPtr<CDSProvider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VCDSProvider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VCDSProvider@@@@QAE@XZ PROC		; SmartPtr<CDSProvider>::SmartPtr<CDSProvider>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VCDSProvider@@@@QAE@XZ ENDP		; SmartPtr<CDSProvider>::SmartPtr<CDSProvider>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VCHardwareDriver@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VCHardwareDriver@@@@QAE@XZ PROC		; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VCHardwareDriver@@@@QAE@XZ ENDP		; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>
_TEXT	ENDS
PUBLIC	?Providers_GetNumber@@YAJXZ			; Providers_GetNumber
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\providers.cpp
;	COMDAT ?Providers_GetNumber@@YAJXZ
_TEXT	SEGMENT
?Providers_GetNumber@@YAJXZ PROC			; Providers_GetNumber, COMDAT

; 574  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 575  :     return Sources.size();

  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00008	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size

; 576  : }

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
?Providers_GetNumber@@YAJXZ ENDP			; Providers_GetNumber
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dshowsource\dssourcebase.h
_TEXT	ENDS
;	COMDAT ?IsInitialSetup@CDSSourceBase@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsInitialSetup@CDSSourceBase@@QAEHXZ PROC		; CDSSourceBase::IsInitialSetup, COMDAT
; _this$ = ecx

; 92   :     BOOL IsInitialSetup() {return m_InitialSetup;};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 38 01 00
	00		 mov	 eax, DWORD PTR [eax+312]
  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?IsInitialSetup@CDSSourceBase@@QAEHXZ ENDP		; CDSSourceBase::IsInitialSetup
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\opendlg.h
_TEXT	ENDS
;	COMDAT ?GetFileName@COpenDlg@@QAEABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetFileName@COpenDlg@@QAEABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; COpenDlg::GetFileName, COMDAT
; _this$ = ecx

; 39   :     const tstring& GetFileName() {return m_FileName;}

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 c0 0c	 add	 eax, 12			; 0000000cH
  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetFileName@COpenDlg@@QAEABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; COpenDlg::GetFileName
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\saa7134source.h
_TEXT	ENDS
;	COMDAT ?IsInitialSetup@CSAA7134Source@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsInitialSetup@CSAA7134Source@@QAEHXZ PROC		; CSAA7134Source::IsInitialSetup, COMDAT
; _this$ = ecx

; 136  :     BOOL IsInitialSetup() {return m_InitialSetup;};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 d0 01 00
	00		 mov	 eax, DWORD PTR [eax+464]
  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?IsInitialSetup@CSAA7134Source@@QAEHXZ ENDP		; CSAA7134Source::IsInitialSetup
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\cx2388xsource.h
_TEXT	ENDS
;	COMDAT ?IsInitialSetup@CCX2388xSource@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsInitialSetup@CCX2388xSource@@QAEHXZ PROC		; CCX2388xSource::IsInitialSetup, COMDAT
; _this$ = ecx

; 117  :     BOOL IsInitialSetup() {return m_InitialSetup;};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 18 02 00
	00		 mov	 eax, DWORD PTR [eax+536]
  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?IsInitialSetup@CCX2388xSource@@QAEHXZ ENDP		; CCX2388xSource::IsInitialSetup
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\bt848source.h
_TEXT	ENDS
;	COMDAT ?IsInitialSetup@CBT848Source@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsInitialSetup@CBT848Source@@QAEHXZ PROC		; CBT848Source::IsInitialSetup, COMDAT
; _this$ = ecx

; 116  :     BOOL IsInitialSetup() {return m_InitialSetup;};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 24 02 00
	00		 mov	 eax, DWORD PTR [eax+548]
  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?IsInitialSetup@CBT848Source@@QAEHXZ ENDP		; CBT848Source::IsInitialSetup
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Allocate@V?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@IPAV1@@Z
_TEXT	SEGMENT
$T306982 = -12						; size = 12
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@V?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@IPAV1@@Z PROC ; std::_Allocate<SmartPtr<TSource> >, COMDAT

; 36   : 	{	// check for integer overflow

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 37   : 	if (_Count <= 0)

  00006	83 7d 08 00	 cmp	 DWORD PTR __Count$[ebp], 0
  0000a	77 09		 ja	 SHORT $LN3@Allocate@17

; 38   : 		_Count = 0;

  0000c	c7 45 08 00 00
	00 00		 mov	 DWORD PTR __Count$[ebp], 0
  00013	eb 25		 jmp	 SHORT $LN2@Allocate@17
$LN3@Allocate@17:

; 39   : 	else if (((_SIZT)(-1) / _Count) < sizeof (_Ty))

  00015	83 c8 ff	 or	 eax, -1
  00018	33 d2		 xor	 edx, edx
  0001a	f7 75 08	 div	 DWORD PTR __Count$[ebp]
  0001d	83 f8 08	 cmp	 eax, 8
  00020	73 18		 jae	 SHORT $LN2@Allocate@17

; 40   : 		_THROW_NCEE(std::bad_alloc, NULL);

  00022	6a 00		 push	 0
  00024	8d 4d f4	 lea	 ecx, DWORD PTR $T306982[ebp]
  00027	e8 00 00 00 00	 call	 ??0bad_alloc@std@@QAE@PBD@Z ; std::bad_alloc::bad_alloc
  0002c	68 00 00 00 00	 push	 OFFSET __TI2?AVbad_alloc@std@@
  00031	8d 45 f4	 lea	 eax, DWORD PTR $T306982[ebp]
  00034	50		 push	 eax
  00035	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN2@Allocate@17:

; 41   : 
; 42   : 		// allocate storage for _Count elements of type _Ty
; 43   : 	return ((_Ty _FARQ *)::operator new(_Count * sizeof (_Ty)));

  0003a	8b 4d 08	 mov	 ecx, DWORD PTR __Count$[ebp]
  0003d	c1 e1 03	 shl	 ecx, 3
  00040	51		 push	 ecx
  00041	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00046	83 c4 04	 add	 esp, 4
$LN5@Allocate@17:

; 44   : 	}

  00049	8b e5		 mov	 esp, ebp
  0004b	5d		 pop	 ebp
  0004c	c3		 ret	 0
??$_Allocate@V?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@IPAV1@@Z ENDP ; std::_Allocate<SmartPtr<TSource> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??8?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??8?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z PROC ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator==, COMDAT
; _this$ = ecx

; 203  : 		{	// test for iterator equality

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 204  : 
; 205  :  #if _HAS_ITERATOR_DEBUGGING
; 206  : 		_Compat(_Right);
; 207  :  #else
; 208  : 		_SCL_SECURE_VALIDATE(this->_Has_container() && this->_Same_container(_Right));

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?_Has_container@_Iterator_base_aux@std@@QBE_NXZ ; std::_Iterator_base_aux::_Has_container
  0000f	0f b6 c0	 movzx	 eax, al
  00012	85 c0		 test	 eax, eax
  00014	74 13		 je	 SHORT $LN4@operator@120
  00016	8b 4d 08	 mov	 ecx, DWORD PTR __Right$[ebp]
  00019	51		 push	 ecx
  0001a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	e8 00 00 00 00	 call	 ?_Same_container@_Iterator_base_aux@std@@QBE_NABV12@@Z ; std::_Iterator_base_aux::_Same_container
  00022	0f b6 d0	 movzx	 edx, al
  00025	85 d2		 test	 edx, edx
  00027	75 05		 jne	 SHORT $LN2@operator@120
$LN4@operator@120:
  00029	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@120:
  0002e	33 c0		 xor	 eax, eax
  00030	75 fc		 jne	 SHORT $LN2@operator@120

; 209  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 210  : 
; 211  : 		return (_Myptr == _Right._Myptr);

  00032	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	8b 55 08	 mov	 edx, DWORD PTR __Right$[ebp]
  00038	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]
  0003b	33 c9		 xor	 ecx, ecx
  0003d	3b 42 04	 cmp	 eax, DWORD PTR [edx+4]
  00040	0f 94 c1	 sete	 cl
  00043	8a c1		 mov	 al, cl

; 212  : 		}

  00045	8b e5		 mov	 esp, ebp
  00047	5d		 pop	 ebp
  00048	c2 04 00	 ret	 4
??8?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z ENDP ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator==
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_otherPtr$ = 8						; size = 4
??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z PROC		; SmartPtr<TSource>::SmartPtr<TSource>, COMDAT
; _this$ = ecx

; 82   :     SmartPtr(const SmartPtr< X >& otherPtr)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 83   :     {
; 84   :         acquire( otherPtr.counter );

  00007	8b 45 08	 mov	 eax, DWORD PTR _otherPtr$[ebp]
  0000a	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0000d	51		 push	 ecx
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	e8 00 00 00 00	 call	 ?acquire@?$SmartPtr@UTSource@@@@AAEXPAUCounter@@@Z ; SmartPtr<TSource>::acquire

; 85   :         rawPtr = otherPtr.rawPtr;

  00016	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00019	8b 45 08	 mov	 eax, DWORD PTR _otherPtr$[ebp]
  0001c	8b 08		 mov	 ecx, DWORD PTR [eax]
  0001e	89 0a		 mov	 DWORD PTR [edx], ecx

; 86   :     }

  00020	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00023	8b e5		 mov	 esp, ebp
  00025	5d		 pop	 ebp
  00026	c2 04 00	 ret	 4
??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z ENDP		; SmartPtr<TSource>::SmartPtr<TSource>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$SmartPtr@UTSource@@@@HPBV3@ABV3@V_Iterator_base_aux@2@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$SmartPtr@UTSource@@@@HPBV3@ABV3@V_Iterator_base_aux@2@@std@@QAE@XZ PROC ; std::_Iterator_with_base<std::random_access_iterator_tag,SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &,std::_Iterator_base_aux>, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??0_Iterator_base_aux@std@@QAE@XZ ; std::_Iterator_base_aux::_Iterator_base_aux
  0000f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00012	8b e5		 mov	 esp, ebp
  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$SmartPtr@UTSource@@@@HPBV3@ABV3@V_Iterator_base_aux@2@@std@@QAE@XZ ENDP ; std::_Iterator_with_base<std::random_access_iterator_tag,SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &,std::_Iterator_base_aux>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Ranit@V?$SmartPtr@UTSource@@@@HPBV1@ABV1@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$_Ranit@V?$SmartPtr@UTSource@@@@HPBV1@ABV1@@std@@QAE@XZ PROC ; std::_Ranit<SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &>::_Ranit<SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &>, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$SmartPtr@UTSource@@@@HPBV3@ABV3@V_Iterator_base_aux@2@@std@@QAE@XZ
  0000f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00012	8b e5		 mov	 esp, ebp
  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
??0?$_Ranit@V?$SmartPtr@UTSource@@@@HPBV1@ABV1@@std@@QAE@XZ ENDP ; std::_Ranit<SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &>::_Ranit<SmartPtr<TSource>,int,SmartPtr<TSource> const *,SmartPtr<TSource> const &>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??9?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??9?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z PROC ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator!=, COMDAT
; _this$ = ecx

; 215  : 		{	// test for iterator inequality

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 216  : 		return (!(*this == _Right));

  00007	8b 45 08	 mov	 eax, DWORD PTR __Right$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	e8 00 00 00 00	 call	 ??8?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator==
  00013	0f b6 c0	 movzx	 eax, al
  00016	f7 d8		 neg	 eax
  00018	1b c0		 sbb	 eax, eax
  0001a	83 c0 01	 add	 eax, 1

; 217  : 		}

  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c2 04 00	 ret	 4
??9?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z ENDP ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator!=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??G?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEHABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??G?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEHABV01@@Z PROC ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator-, COMDAT
; _this$ = ecx

; 186  : 		{	// return difference of iterators

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 187  : 
; 188  :  #if _HAS_ITERATOR_DEBUGGING
; 189  : 		_Compat(_Right);
; 190  :  #else
; 191  : 		_SCL_SECURE_VALIDATE(this->_Has_container() && this->_Same_container(_Right));

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?_Has_container@_Iterator_base_aux@std@@QBE_NXZ ; std::_Iterator_base_aux::_Has_container
  0000f	0f b6 c0	 movzx	 eax, al
  00012	85 c0		 test	 eax, eax
  00014	74 13		 je	 SHORT $LN4@operator@121
  00016	8b 4d 08	 mov	 ecx, DWORD PTR __Right$[ebp]
  00019	51		 push	 ecx
  0001a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	e8 00 00 00 00	 call	 ?_Same_container@_Iterator_base_aux@std@@QBE_NABV12@@Z ; std::_Iterator_base_aux::_Same_container
  00022	0f b6 d0	 movzx	 edx, al
  00025	85 d2		 test	 edx, edx
  00027	75 05		 jne	 SHORT $LN2@operator@121
$LN4@operator@121:
  00029	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@121:
  0002e	33 c0		 xor	 eax, eax
  00030	75 fc		 jne	 SHORT $LN2@operator@121

; 192  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 193  : 
; 194  : 		return (_Myptr - _Right._Myptr);

  00032	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	8b 55 08	 mov	 edx, DWORD PTR __Right$[ebp]
  00038	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]
  0003b	2b 42 04	 sub	 eax, DWORD PTR [edx+4]
  0003e	c1 f8 03	 sar	 eax, 3

; 195  : 		}

  00041	8b e5		 mov	 esp, ebp
  00043	5d		 pop	 ebp
  00044	c2 04 00	 ret	 4
??G?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEHABV01@@Z ENDP ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator-
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Pvector$ = 12						; size = 4
??0?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z PROC ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 76   : 	_Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??0?$_Ranit@V?$SmartPtr@UTSource@@@@HPBV1@ABV1@@std@@QAE@XZ

; 77   : 		{	// construct with pointer _Ptr
; 78   : 		_SCL_SECURE_VALIDATE(_Pvector != NULL && ((_Myvec *)_Pvector)->_Myfirst <= _Ptr && _Ptr <= ((_Myvec *)_Pvector)->_Mylast);

  0000f	83 7d 0c 00	 cmp	 DWORD PTR __Pvector$[ebp], 0
  00013	74 16		 je	 SHORT $LN4@Vector_con@15
  00015	8b 45 0c	 mov	 eax, DWORD PTR __Pvector$[ebp]
  00018	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  0001b	3b 4d 08	 cmp	 ecx, DWORD PTR __Ptr$[ebp]
  0001e	77 0b		 ja	 SHORT $LN4@Vector_con@15
  00020	8b 55 0c	 mov	 edx, DWORD PTR __Pvector$[ebp]
  00023	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  00026	3b 42 10	 cmp	 eax, DWORD PTR [edx+16]
  00029	76 05		 jbe	 SHORT $LN2@Vector_con@15
$LN4@Vector_con@15:
  0002b	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@Vector_con@15:
  00030	33 c9		 xor	 ecx, ecx
  00032	75 fc		 jne	 SHORT $LN2@Vector_con@15

; 79   : 		this->_Set_container(_Pvector);

  00034	8b 55 0c	 mov	 edx, DWORD PTR __Pvector$[ebp]
  00037	52		 push	 edx
  00038	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003b	e8 00 00 00 00	 call	 ?_Set_container@_Iterator_base_aux@std@@QAEXQBV_Container_base_aux@2@@Z ; std::_Iterator_base_aux::_Set_container

; 80   : 		_Myptr = _Ptr;

  00040	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00043	8b 4d 08	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  00046	89 48 04	 mov	 DWORD PTR [eax+4], ecx

; 81   : 		}

  00049	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0004c	8b e5		 mov	 esp, ebp
  0004e	5d		 pop	 ebp
  0004f	c2 08 00	 ret	 8
??0?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ENDP ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
_TEXT	ENDS
;	COMDAT ?allocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEPAV?$SmartPtr@UTSource@@@@I@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Count$ = 8						; size = 4
?allocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEPAV?$SmartPtr@UTSource@@@@I@Z PROC ; std::allocator<SmartPtr<TSource> >::allocate, COMDAT
; _this$ = ecx

; 144  : 		{	// allocate array of _Count elements

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 145  : 		return (_Allocate(_Count, (pointer)0));

  00007	6a 00		 push	 0
  00009	8b 45 08	 mov	 eax, DWORD PTR __Count$[ebp]
  0000c	50		 push	 eax
  0000d	e8 00 00 00 00	 call	 ??$_Allocate@V?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@IPAV1@@Z ; std::_Allocate<SmartPtr<TSource> >
  00012	83 c4 08	 add	 esp, 8

; 146  : 		}

  00015	8b e5		 mov	 esp, ebp
  00017	5d		 pop	 ebp
  00018	c2 04 00	 ret	 4
?allocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEPAV?$SmartPtr@UTSource@@@@I@Z ENDP ; std::allocator<SmartPtr<TSource> >::allocate
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
xdata$x	SEGMENT
__unwindtable$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z$1
__ehfuncinfo$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
_TEXT	SEGMENT
tv133 = -32						; size = 4
_this$ = -28						; size = 4
$T307003 = -24						; size = 4
$T307002 = -20						; size = 4
$T307001 = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Al$ = 8						; size = 1
??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z PROC ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 419  : 		{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx
  00028	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ??0_Container_base_aux@std@@QAE@XZ ; std::_Container_base_aux::_Container_base_aux
  00030	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00037	8d 45 08	 lea	 eax, DWORD PTR __Al$[ebp]
  0003a	50		 push	 eax
  0003b	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0003e	83 c1 04	 add	 ecx, 4
  00041	e8 00 00 00 00	 call	 ??$?0V?$SmartPtr@UTSource@@@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><SmartPtr<TSource> >

; 420  : 		_Myownedaux = new (_Alaux.allocate(1)) _Aux_cont(this);

  00046	6a 01		 push	 1
  00048	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	83 c1 04	 add	 ecx, 4
  0004e	e8 00 00 00 00	 call	 ?allocate@?$allocator@V_Aux_cont@std@@@std@@QAEPAV_Aux_cont@2@I@Z ; std::allocator<std::_Aux_cont>::allocate
  00053	89 45 e8	 mov	 DWORD PTR $T307003[ebp], eax
  00056	8b 4d e8	 mov	 ecx, DWORD PTR $T307003[ebp]
  00059	51		 push	 ecx
  0005a	6a 04		 push	 4
  0005c	e8 00 00 00 00	 call	 ??2@YAPAXIPAX@Z		; operator new
  00061	83 c4 08	 add	 esp, 8
  00064	89 45 ec	 mov	 DWORD PTR $T307002[ebp], eax
  00067	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0006b	83 7d ec 00	 cmp	 DWORD PTR $T307002[ebp], 0
  0006f	74 11		 je	 SHORT $LN3@Container_@18
  00071	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  00074	52		 push	 edx
  00075	8b 4d ec	 mov	 ecx, DWORD PTR $T307002[ebp]
  00078	e8 00 00 00 00	 call	 ??0_Aux_cont@std@@QAE@QBV_Container_base_aux@1@@Z ; std::_Aux_cont::_Aux_cont
  0007d	89 45 e0	 mov	 DWORD PTR tv133[ebp], eax
  00080	eb 07		 jmp	 SHORT $LN4@Container_@18
$LN3@Container_@18:
  00082	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv133[ebp], 0
$LN4@Container_@18:
  00089	8b 45 e0	 mov	 eax, DWORD PTR tv133[ebp]
  0008c	89 45 f0	 mov	 DWORD PTR $T307001[ebp], eax
  0008f	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00093	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00096	8b 55 f0	 mov	 edx, DWORD PTR $T307001[ebp]
  00099	89 11		 mov	 DWORD PTR [ecx], edx

; 421  : 		}

  0009b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000a2	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  000a5	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000a8	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000af	59		 pop	 ecx
  000b0	8b e5		 mov	 esp, ebp
  000b2	5d		 pop	 ebp
  000b3	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z$0:
  00000	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1_Container_base_aux@std@@QAE@XZ ; std::_Container_base_aux::~_Container_base_aux
__unwindfunclet$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z$1:
  00008	8b 45 e8	 mov	 eax, DWORD PTR $T307003[ebp]
  0000b	50		 push	 eax
  0000c	8b 4d ec	 mov	 ecx, DWORD PTR $T307002[ebp]
  0000f	51		 push	 ecx
  00010	e8 00 00 00 00	 call	 ??3@YAXPAX0@Z		; operator delete
  00015	83 c4 08	 add	 esp, 8
  00018	c3		 ret	 0
__ehhandler$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ENDP ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Pvector$ = 12						; size = 4
??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z PROC ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 327  : 		{	// construct with pointer _Ptr

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 0c	 mov	 eax, DWORD PTR __Pvector$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >

; 328  : 		}

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ENDP ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307020 = -24						; size = 4
$T307019 = -20						; size = 4
$T307018 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ PROC ; SmartPtr<TSource>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@62
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307020[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307020[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@62
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307020[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@62
$LN4@GetRawPoin@62:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@62:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307019[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307019[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307018[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307018[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@62:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@62:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307020[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ENDP ; SmartPtr<TSource>::GetRawPointer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307034 = -24						; size = 4
$T307033 = -20						; size = 4
$T307032 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ PROC ; SmartPtr<CStillProvider>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@63
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307034[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307034[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@63
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307034[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@63
$LN4@GetRawPoin@63:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@63:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307033[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307033[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307032[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307032[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@63:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@63:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307034[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ENDP ; SmartPtr<CStillProvider>::GetRawPointer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307048 = -24						; size = 4
$T307047 = -20						; size = 4
$T307046 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ PROC ; SmartPtr<CSAA7134Provider>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@64
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307048[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307048[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@64
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307048[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@64
$LN4@GetRawPoin@64:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@64:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307047[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307047[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307046[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307046[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@64:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@64:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307048[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ENDP ; SmartPtr<CSAA7134Provider>::GetRawPointer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307062 = -24						; size = 4
$T307061 = -20						; size = 4
$T307060 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ PROC ; SmartPtr<CCX2388xProvider>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@65
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307062[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307062[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@65
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307062[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@65
$LN4@GetRawPoin@65:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@65:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307061[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307061[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307060[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307060[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@65:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@65:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307062[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ENDP ; SmartPtr<CCX2388xProvider>::GetRawPointer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307076 = -24						; size = 4
$T307075 = -20						; size = 4
$T307074 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ PROC ; SmartPtr<CBT848Provider>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@66
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307076[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307076[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@66
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307076[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@66
$LN4@GetRawPoin@66:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@66:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307075[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307075[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307074[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307074[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@66:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@66:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307076[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ENDP ; SmartPtr<CBT848Provider>::GetRawPointer
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
xdata$x	SEGMENT
__unwindtable$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ$0
__ehfuncinfo$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ PROC ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::~_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 436  : 		{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 437  : 		_Myownedaux->~_Aux_cont();
; 438  : 
; 439  : 		_Alaux.deallocate(_Myownedaux, 1);

  0002d	6a 01		 push	 1
  0002f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 08		 mov	 ecx, DWORD PTR [eax]
  00034	51		 push	 ecx
  00035	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 c1 04	 add	 ecx, 4
  0003b	e8 00 00 00 00	 call	 ?deallocate@?$allocator@V_Aux_cont@std@@@std@@QAEXPAV_Aux_cont@2@I@Z ; std::allocator<std::_Aux_cont>::deallocate

; 440  : 		}

  00040	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00047	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004a	e8 00 00 00 00	 call	 ??1_Container_base_aux@std@@QAE@XZ ; std::_Container_base_aux::~_Container_base_aux
  0004f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00052	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00059	59		 pop	 ecx
  0005a	8b e5		 mov	 esp, ebp
  0005c	5d		 pop	 ebp
  0005d	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1_Container_base_aux@std@@QAE@XZ ; std::_Container_base_aux::~_Container_base_aux
__ehhandler$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ ENDP ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::~_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
xdata$x	SEGMENT
__unwindtable$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z$0
__ehfuncinfo$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T307097 = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Al$ = 8						; size = 1
??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z PROC ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 425  : 		{	// construct allocator from _Al

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	51		 push	 ecx
  00029	8b cc		 mov	 ecx, esp
  0002b	89 65 f0	 mov	 DWORD PTR $T307097[ebp], esp
  0002e	8d 45 08	 lea	 eax, DWORD PTR __Al$[ebp]
  00031	50		 push	 eax
  00032	e8 00 00 00 00	 call	 ??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@ABV01@@Z ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >
  00037	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  0003a	e8 00 00 00 00	 call	 ??0?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
  0003f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00046	8d 4d 08	 lea	 ecx, DWORD PTR __Al$[ebp]
  00049	51		 push	 ecx
  0004a	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	83 c1 08	 add	 ecx, 8
  00050	e8 00 00 00 00	 call	 ??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@ABV01@@Z ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >

; 426  : 		}

  00055	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005c	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  0005f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00062	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00069	59		 pop	 ecx
  0006a	8b e5		 mov	 esp, ebp
  0006c	5d		 pop	 ebp
  0006d	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z$0:
  00000	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::~_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
__ehhandler$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ENDP ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
;	COMDAT ?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
__Where$ = 12						; size = 8
?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Make_iter, COMDAT
; _this$ = ecx

; 660  : 		{	// make iterator from const_iterator

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 661  : 		return (iterator(_Where._Myptr, this));

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 10	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  0000e	51		 push	 ecx
  0000f	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  00017	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 662  : 		}

  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 0c 00	 ret	 12			; 0000000cH
?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Make_iter
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?end@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?end@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::end, COMDAT
; _this$ = ecx

; 650  : 		{	// return iterator for end of mutable sequence

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 651  : 		return (iterator(_Mylast, this));

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00011	52		 push	 edx
  00012	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00015	e8 00 00 00 00	 call	 ??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0001a	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 652  : 		}

  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c2 04 00	 ret	 4
?end@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::end
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307113 = -24						; size = 4
$T307112 = -20						; size = 4
$T307111 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ PROC ; SmartPtr<CDSProvider>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@67
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307113[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307113[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@67
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307113[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@67
$LN4@GetRawPoin@67:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@67:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307112[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307112[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307111[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307111[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@67:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@67:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307113[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ENDP ; SmartPtr<CDSProvider>::GetRawPointer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ$0
__ehfuncinfo$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ PROC ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0002d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00034	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00037	e8 00 00 00 00	 call	 ??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::~_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
  0003c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0003f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00046	59		 pop	 ecx
  00047	8b e5		 mov	 esp, ebp
  00049	5d		 pop	 ebp
  0004a	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$_Container_base_aux_alloc_real@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@XZ ; std::_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >::~_Container_base_aux_alloc_real<std::allocator<SmartPtr<TSource> > >
__ehhandler$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ENDP ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
;	COMDAT ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ PROC	; SmartPtr<TSource>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ENDP	; SmartPtr<TSource>::operator->
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ PROC ; SmartPtr<CStillProvider>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ENDP ; SmartPtr<CStillProvider>::operator->
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T307139 = -20						; size = 4
$T307138 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z PROC ; SmartPtr<CStillProvider>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCStillProvider@@@@QAEXXZ ; SmartPtr<CStillProvider>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@122

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T307139[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T307139[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@122
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T307139[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@122
$LN4@operator@122:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@122:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T307138[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T307138[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@122:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T307139[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z ENDP ; SmartPtr<CStillProvider>::operator=
; Function compile flags: /Odtp
;	COMDAT ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ PROC ; SmartPtr<CSAA7134Provider>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ENDP ; SmartPtr<CSAA7134Provider>::operator->
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T307154 = -20						; size = 4
$T307153 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z PROC ; SmartPtr<CSAA7134Provider>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCSAA7134Provider@@@@QAEXXZ ; SmartPtr<CSAA7134Provider>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@123

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T307154[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T307154[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@123
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T307154[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@123
$LN4@operator@123:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@123:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T307153[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T307153[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@123:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T307154[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z ENDP ; SmartPtr<CSAA7134Provider>::operator=
; Function compile flags: /Odtp
;	COMDAT ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ PROC ; SmartPtr<CCX2388xProvider>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ENDP ; SmartPtr<CCX2388xProvider>::operator->
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T307169 = -20						; size = 4
$T307168 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z PROC ; SmartPtr<CCX2388xProvider>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCCX2388xProvider@@@@QAEXXZ ; SmartPtr<CCX2388xProvider>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@124

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T307169[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T307169[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@124
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T307169[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@124
$LN4@operator@124:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@124:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T307168[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T307168[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@124:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T307169[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z ENDP ; SmartPtr<CCX2388xProvider>::operator=
; Function compile flags: /Odtp
;	COMDAT ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ PROC ; SmartPtr<CBT848Provider>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ENDP ; SmartPtr<CBT848Provider>::operator->
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Pos$ = 8						; size = 4
??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[], COMDAT
; _this$ = ecx

; 774  : 		{	// subscript mutable sequence

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 775  : 
; 776  :  #if _HAS_ITERATOR_DEBUGGING
; 777  : 		if (size() <= _Pos)
; 778  : 			{
; 779  : 			_DEBUG_ERROR("vector subscript out of range");
; 780  : 			_SCL_SECURE_OUT_OF_RANGE;
; 781  : 			}
; 782  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 783  : 		_SCL_SECURE_VALIDATE_RANGE(_Pos < size());

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  0000f	39 45 08	 cmp	 DWORD PTR __Pos$[ebp], eax
  00012	72 05		 jb	 SHORT $LN2@operator@125
  00014	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@125:
  00019	33 c0		 xor	 eax, eax
  0001b	75 fc		 jne	 SHORT $LN2@operator@125

; 784  : 
; 785  : 		return (*(_Myfirst + _Pos));

  0001d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 0c	 mov	 edx, DWORD PTR [ecx+12]
  00023	8b 45 08	 mov	 eax, DWORD PTR __Pos$[ebp]
  00026	8d 04 c2	 lea	 eax, DWORD PTR [edx+eax*8]

; 786  : 		}

  00029	8b e5		 mov	 esp, ebp
  0002b	5d		 pop	 ebp
  0002c	c2 04 00	 ret	 4
??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin, COMDAT
; _this$ = ecx

; 640  : 		{	// return iterator for beginning of mutable sequence

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 641  : 		return (iterator(_Myfirst, this));

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	8b 51 0c	 mov	 edx, DWORD PTR [ecx+12]
  00011	52		 push	 edx
  00012	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00015	e8 00 00 00 00	 call	 ??0?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@PAV?$SmartPtr@UTSource@@@@PBV_Container_base_aux@1@@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0001a	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 642  : 		}

  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c2 04 00	 ret	 4
?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T307189 = -24						; size = 4
$T307188 = -20						; size = 4
$T307187 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ PROC ; SmartPtr<CSource>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@68
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T307189[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T307189[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@68
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T307189[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@68
$LN4@GetRawPoin@68:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@68:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T307188[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T307188[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T307187[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T307187[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@68:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@68:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T307189[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ENDP ; SmartPtr<CSource>::GetRawPointer
; Function compile flags: /Odtp
;	COMDAT ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ PROC	; SmartPtr<CSource>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ENDP	; SmartPtr<CSource>::operator->
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T307204 = -20						; size = 4
$T307203 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z PROC	; SmartPtr<CSource>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCSource@@@@QAEXXZ ; SmartPtr<CSource>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@126

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T307204[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T307204[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@126
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T307204[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@126
$LN4@operator@126:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@126:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T307203[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T307203[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@126:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T307204[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z ENDP	; SmartPtr<CSource>::operator=
; Function compile flags: /Odtp
;	COMDAT ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_otherPtr$ = 8						; size = 4
??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z PROC		; SmartPtr<CSource>::operator=, COMDAT
; _this$ = ecx

; 111  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 112  :         if (this != &otherPtr)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	3b 45 08	 cmp	 eax, DWORD PTR _otherPtr$[ebp]
  0000d	74 21		 je	 SHORT $LN1@operator@127

; 113  :         {
; 114  :             Clear();

  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCSource@@@@QAEXXZ ; SmartPtr<CSource>::Clear

; 115  :             acquire(otherPtr.counter);

  00017	8b 4d 08	 mov	 ecx, DWORD PTR _otherPtr$[ebp]
  0001a	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0001d	52		 push	 edx
  0001e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00021	e8 00 00 00 00	 call	 ?acquire@?$SmartPtr@VCSource@@@@AAEXPAUCounter@@@Z ; SmartPtr<CSource>::acquire

; 116  :             rawPtr = otherPtr.rawPtr;

  00026	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00029	8b 4d 08	 mov	 ecx, DWORD PTR _otherPtr$[ebp]
  0002c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0002e	89 10		 mov	 DWORD PTR [eax], edx
$LN1@operator@127:

; 117  :         }
; 118  :         return *this;

  00030	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 119  :     }

  00033	8b e5		 mov	 esp, ebp
  00035	5d		 pop	 ebp
  00036	c2 04 00	 ret	 4
??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ENDP		; SmartPtr<CSource>::operator=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ PROC ; SmartPtr<CDSProvider>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ENDP ; SmartPtr<CDSProvider>::operator->
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T307221 = -20						; size = 4
$T307220 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z PROC ; SmartPtr<CDSProvider>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCDSProvider@@@@QAEXXZ ; SmartPtr<CDSProvider>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@128

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T307221[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T307221[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@128
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T307221[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@128
$LN4@operator@128:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@128:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T307220[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T307220[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@128:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T307221[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z ENDP ; SmartPtr<CDSProvider>::operator=
PUBLIC	?Providers_ChangeSettingsBasedOnHW@@YAXHH@Z	; Providers_ChangeSettingsBasedOnHW
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\providers.cpp
;	COMDAT ?Providers_ChangeSettingsBasedOnHW@@YAXHH@Z
_TEXT	SEGMENT
tv77 = -8						; size = 4
_i$174195 = -4						; size = 4
_ProcessorSpeed$ = 8					; size = 4
_TradeOff$ = 12						; size = 4
?Providers_ChangeSettingsBasedOnHW@@YAXHH@Z PROC	; Providers_ChangeSettingsBasedOnHW, COMDAT

; 609  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 610  :     for (size_t i(0) ; i < Sources.size() ; i++)

  00006	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$174195[ebp], 0
  0000d	eb 09		 jmp	 SHORT $LN3@Providers_
$LN2@Providers_:
  0000f	8b 45 fc	 mov	 eax, DWORD PTR _i$174195[ebp]
  00012	83 c0 01	 add	 eax, 1
  00015	89 45 fc	 mov	 DWORD PTR _i$174195[ebp], eax
$LN3@Providers_:
  00018	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0001d	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00022	39 45 fc	 cmp	 DWORD PTR _i$174195[ebp], eax
  00025	73 3c		 jae	 SHORT $LN4@Providers_

; 611  :     {
; 612  :         Sources[i]->Object->ChangeSettingsBasedOnHW(ProcessorSpeed, TradeOff);

  00027	8b 4d fc	 mov	 ecx, DWORD PTR _i$174195[ebp]
  0002a	51		 push	 ecx
  0002b	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00030	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00035	8b c8		 mov	 ecx, eax
  00037	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0003c	83 c0 1c	 add	 eax, 28			; 0000001cH
  0003f	8b c8		 mov	 ecx, eax
  00041	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00046	89 45 f8	 mov	 DWORD PTR tv77[ebp], eax
  00049	8b 55 0c	 mov	 edx, DWORD PTR _TradeOff$[ebp]
  0004c	52		 push	 edx
  0004d	8b 45 08	 mov	 eax, DWORD PTR _ProcessorSpeed$[ebp]
  00050	50		 push	 eax
  00051	8b 4d f8	 mov	 ecx, DWORD PTR tv77[ebp]
  00054	8b 11		 mov	 edx, DWORD PTR [ecx]
  00056	8b 4d f8	 mov	 ecx, DWORD PTR tv77[ebp]
  00059	8b 82 b0 00 00
	00		 mov	 eax, DWORD PTR [edx+176]
  0005f	ff d0		 call	 eax
  00061	eb ac		 jmp	 SHORT $LN2@Providers_
$LN4@Providers_:

; 613  :     }
; 614  : }

  00063	8b e5		 mov	 esp, ebp
  00065	5d		 pop	 ebp
  00066	c3		 ret	 0
?Providers_ChangeSettingsBasedOnHW@@YAXHH@Z ENDP	; Providers_ChangeSettingsBasedOnHW
_TEXT	ENDS
PUBLIC	?Provider_HandleTimerMessages@@YAXH@Z		; Provider_HandleTimerMessages
; Function compile flags: /Odtp
;	COMDAT ?Provider_HandleTimerMessages@@YAXH@Z
_TEXT	SEGMENT
tv77 = -4						; size = 4
_TimerId$ = 8						; size = 4
?Provider_HandleTimerMessages@@YAXH@Z PROC		; Provider_HandleTimerMessages, COMDAT

; 585  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 586  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  00004	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  0000b	7c 4a		 jl	 SHORT $LN2@Provider_H
  0000d	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00012	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00017	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  0001d	73 38		 jae	 SHORT $LN2@Provider_H

; 587  :     {
; 588  :         Sources[CurrentSource]->Object->HandleTimerMessages(TimerId);

  0001f	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  00024	50		 push	 eax
  00025	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0002a	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0002f	8b c8		 mov	 ecx, eax
  00031	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00036	83 c0 1c	 add	 eax, 28			; 0000001cH
  00039	8b c8		 mov	 ecx, eax
  0003b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00040	89 45 fc	 mov	 DWORD PTR tv77[ebp], eax
  00043	8b 4d 08	 mov	 ecx, DWORD PTR _TimerId$[ebp]
  00046	51		 push	 ecx
  00047	8b 55 fc	 mov	 edx, DWORD PTR tv77[ebp]
  0004a	8b 02		 mov	 eax, DWORD PTR [edx]
  0004c	8b 4d fc	 mov	 ecx, DWORD PTR tv77[ebp]
  0004f	8b 90 88 00 00
	00		 mov	 edx, DWORD PTR [eax+136]
  00055	ff d2		 call	 edx
$LN2@Provider_H:

; 589  :     }
; 590  : }

  00057	8b e5		 mov	 esp, ebp
  00059	5d		 pop	 ebp
  0005a	c3		 ret	 0
?Provider_HandleTimerMessages@@YAXH@Z ENDP		; Provider_HandleTimerMessages
_TEXT	ENDS
PUBLIC	?Providers_GetByIndex@@YAPAVCSource@@J@Z	; Providers_GetByIndex
; Function compile flags: /Odtp
;	COMDAT ?Providers_GetByIndex@@YAPAVCSource@@J@Z
_TEXT	SEGMENT
_Index$ = 8						; size = 4
?Providers_GetByIndex@@YAPAVCSource@@J@Z PROC		; Providers_GetByIndex, COMDAT

; 579  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 580  :     return Sources[Index]->Object.GetRawPointer();

  00003	8b 45 08	 mov	 eax, DWORD PTR _Index$[ebp]
  00006	50		 push	 eax
  00007	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0000c	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00011	8b c8		 mov	 ecx, eax
  00013	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00018	83 c0 1c	 add	 eax, 28			; 0000001cH
  0001b	8b c8		 mov	 ecx, eax
  0001d	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer

; 581  : }

  00022	5d		 pop	 ebp
  00023	c3		 ret	 0
?Providers_GetByIndex@@YAPAVCSource@@J@Z ENDP		; Providers_GetByIndex
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z	; Providers_UpdateMenu
; Function compile flags: /Odtp
;	COMDAT ?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z
_TEXT	SEGMENT
tv135 = -524						; size = 4
_Text$174115 = -520					; size = 512
__$ArrayPad$ = -8					; size = 4
_hSubMenu$174116 = -4					; size = 4
_hMenu$ = 8						; size = 4
?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z PROC		; Providers_UpdateMenu, COMDAT

; 469  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec 0c 02 00
	00		 sub	 esp, 524		; 0000020cH
  00009	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000e	33 c5		 xor	 eax, ebp
  00010	89 45 f8	 mov	 DWORD PTR __$ArrayPad$[ebp], eax

; 470  :     // first we need to detach the old menu if there is one
; 471  :     // if we don't do this our menu gets deleted
; 472  :     RemoveMenu(hMenu, 1, MF_BYPOSITION);

  00013	68 00 04 00 00	 push	 1024			; 00000400H
  00018	6a 01		 push	 1
  0001a	8b 45 08	 mov	 eax, DWORD PTR _hMenu$[ebp]
  0001d	50		 push	 eax
  0001e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__RemoveMenu@12

; 473  : 
; 474  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  00024	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  0002b	0f 8c c4 00 00
	00		 jl	 $LN2@Providers_@2
  00031	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00036	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  0003b	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  00041	0f 83 ae 00 00
	00		 jae	 $LN2@Providers_@2

; 475  :     {
; 476  :         // get The name of our menu
; 477  :         TCHAR Text[256];
; 478  :         HMENU hSubMenu = Sources[CurrentSource]->Object->GetSourceMenu();

  00047	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _CurrentSource
  0004d	51		 push	 ecx
  0004e	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00053	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00058	8b c8		 mov	 ecx, eax
  0005a	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0005f	83 c0 1c	 add	 eax, 28			; 0000001cH
  00062	8b c8		 mov	 ecx, eax
  00064	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00069	8b c8		 mov	 ecx, eax
  0006b	e8 00 00 00 00	 call	 ?GetSourceMenu@CSource@@QAEPAUHMENU__@@XZ ; CSource::GetSourceMenu
  00070	89 45 fc	 mov	 DWORD PTR _hSubMenu$174116[ebp], eax

; 479  :         GetMenuString(hSubMenu, 0, Text, 256, MF_BYPOSITION);

  00073	68 00 04 00 00	 push	 1024			; 00000400H
  00078	68 00 01 00 00	 push	 256			; 00000100H
  0007d	8d 95 f8 fd ff
	ff		 lea	 edx, DWORD PTR _Text$174115[ebp]
  00083	52		 push	 edx
  00084	6a 00		 push	 0
  00086	8b 45 fc	 mov	 eax, DWORD PTR _hSubMenu$174116[ebp]
  00089	50		 push	 eax
  0008a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetMenuStringW@20

; 480  :         // Add the new menu
; 481  :         InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT)GetSubMenu(hSubMenu, 0), Text);

  00090	8d 8d f8 fd ff
	ff		 lea	 ecx, DWORD PTR _Text$174115[ebp]
  00096	51		 push	 ecx
  00097	6a 00		 push	 0
  00099	8b 55 fc	 mov	 edx, DWORD PTR _hSubMenu$174116[ebp]
  0009c	52		 push	 edx
  0009d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetSubMenu@8
  000a3	50		 push	 eax
  000a4	68 10 04 00 00	 push	 1040			; 00000410H
  000a9	6a 01		 push	 1
  000ab	8b 45 08	 mov	 eax, DWORD PTR _hMenu$[ebp]
  000ae	50		 push	 eax
  000af	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InsertMenuW@20

; 482  : 
; 483  :         // Update our menu
; 484  :         Sources[CurrentSource]->Object->UpdateMenu();

  000b5	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _CurrentSource
  000bb	51		 push	 ecx
  000bc	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  000c1	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  000c6	8b c8		 mov	 ecx, eax
  000c8	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  000cd	83 c0 1c	 add	 eax, 28			; 0000001cH
  000d0	8b c8		 mov	 ecx, eax
  000d2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  000d7	89 85 f4 fd ff
	ff		 mov	 DWORD PTR tv135[ebp], eax
  000dd	8b 95 f4 fd ff
	ff		 mov	 edx, DWORD PTR tv135[ebp]
  000e3	8b 02		 mov	 eax, DWORD PTR [edx]
  000e5	8b 8d f4 fd ff
	ff		 mov	 ecx, DWORD PTR tv135[ebp]
  000eb	8b 90 80 00 00
	00		 mov	 edx, DWORD PTR [eax+128]
  000f1	ff d2		 call	 edx

; 485  :     }
; 486  :     else

  000f3	eb 1d		 jmp	 SHORT $LN1@Providers_@2
$LN2@Providers_@2:

; 487  :     {
; 488  :         // Add an empty new menu
; 489  :         InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT)CreatePopupMenu(), _T("No source"));

  000f5	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@GKOEFPFF@?$AAN?$AAo?$AA?5?$AAs?$AAo?$AAu?$AAr?$AAc?$AAe?$AA?$AA@
  000fa	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreatePopupMenu@0
  00100	50		 push	 eax
  00101	68 10 04 00 00	 push	 1040			; 00000410H
  00106	6a 01		 push	 1
  00108	8b 45 08	 mov	 eax, DWORD PTR _hMenu$[ebp]
  0010b	50		 push	 eax
  0010c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InsertMenuW@20
$LN1@Providers_@2:

; 490  :     }
; 491  : 
; 492  :     RedrawMenuBar(hMenu);

  00112	8b 4d 08	 mov	 ecx, DWORD PTR _hMenu$[ebp]
  00115	51		 push	 ecx
  00116	e8 00 00 00 00	 call	 ?RedrawMenuBar@@YAXPAUHMENU__@@@Z ; RedrawMenuBar
  0011b	83 c4 04	 add	 esp, 4

; 493  : }

  0011e	8b 4d f8	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00121	33 cd		 xor	 ecx, ebp
  00123	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00128	8b e5		 mov	 esp, ebp
  0012a	5d		 pop	 ebp
  0012b	c3		 ret	 0
?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z ENDP		; Providers_UpdateMenu
_TEXT	ENDS
PUBLIC	?Providers_SetMenu@@YAXPAUHMENU__@@@Z		; Providers_SetMenu
; Function compile flags: /Odtp
;	COMDAT ?Providers_SetMenu@@YAXPAUHMENU__@@@Z
_TEXT	SEGMENT
tv145 = -12						; size = 4
tv91 = -8						; size = 4
_i$174103 = -4						; size = 4
_hMenu$ = 8						; size = 4
?Providers_SetMenu@@YAXPAUHMENU__@@@Z PROC		; Providers_SetMenu, COMDAT

; 452  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 453  :     for(size_t i(0); i < Sources.size(); ++i)

  00006	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$174103[ebp], 0
  0000d	eb 09		 jmp	 SHORT $LN5@Providers_@3
$LN4@Providers_@3:
  0000f	8b 45 fc	 mov	 eax, DWORD PTR _i$174103[ebp]
  00012	83 c0 01	 add	 eax, 1
  00015	89 45 fc	 mov	 DWORD PTR _i$174103[ebp], eax
$LN5@Providers_@3:
  00018	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0001d	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00022	39 45 fc	 cmp	 DWORD PTR _i$174103[ebp], eax
  00025	0f 83 95 00 00
	00		 jae	 $LN3@Providers_@3

; 454  :     {
; 455  :         if (Sources[i]->DisplayInMenu)

  0002b	8b 4d fc	 mov	 ecx, DWORD PTR _i$174103[ebp]
  0002e	51		 push	 ecx
  0002f	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00034	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00039	8b c8		 mov	 ecx, eax
  0003b	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00040	83 78 24 00	 cmp	 DWORD PTR [eax+36], 0
  00044	74 75		 je	 SHORT $LN2@Providers_@3

; 456  :         {
; 457  :             CheckMenuItemBool(hMenu, IDM_SOURCE_FIRST + i, (CurrentSource == i));

  00046	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _CurrentSource
  0004c	2b 55 fc	 sub	 edx, DWORD PTR _i$174103[ebp]
  0004f	f7 da		 neg	 edx
  00051	1b d2		 sbb	 edx, edx
  00053	83 e2 f8	 and	 edx, -8			; fffffff8H
  00056	83 c2 08	 add	 edx, 8
  00059	52		 push	 edx
  0005a	8b 45 fc	 mov	 eax, DWORD PTR _i$174103[ebp]
  0005d	05 26 08 00 00	 add	 eax, 2086		; 00000826H
  00062	50		 push	 eax
  00063	8b 4d 08	 mov	 ecx, DWORD PTR _hMenu$[ebp]
  00066	51		 push	 ecx
  00067	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CheckMenuItem@12

; 458  :             EnableMenuItem(hMenu, IDM_SOURCE_FIRST + i, Sources[i]->Object->IsAccessAllowed() ? MF_ENABLED : MF_GRAYED);

  0006d	8b 55 fc	 mov	 edx, DWORD PTR _i$174103[ebp]
  00070	52		 push	 edx
  00071	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00076	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0007b	8b c8		 mov	 ecx, eax
  0007d	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00082	83 c0 1c	 add	 eax, 28			; 0000001cH
  00085	8b c8		 mov	 ecx, eax
  00087	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  0008c	89 45 f8	 mov	 DWORD PTR tv91[ebp], eax
  0008f	8b 45 f8	 mov	 eax, DWORD PTR tv91[ebp]
  00092	8b 10		 mov	 edx, DWORD PTR [eax]
  00094	8b 4d f8	 mov	 ecx, DWORD PTR tv91[ebp]
  00097	8b 82 a4 00 00
	00		 mov	 eax, DWORD PTR [edx+164]
  0009d	ff d0		 call	 eax
  0009f	f7 d8		 neg	 eax
  000a1	1b c0		 sbb	 eax, eax
  000a3	83 c0 01	 add	 eax, 1
  000a6	50		 push	 eax
  000a7	8b 4d fc	 mov	 ecx, DWORD PTR _i$174103[ebp]
  000aa	81 c1 26 08 00
	00		 add	 ecx, 2086		; 00000826H
  000b0	51		 push	 ecx
  000b1	8b 55 08	 mov	 edx, DWORD PTR _hMenu$[ebp]
  000b4	52		 push	 edx
  000b5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableMenuItem@12
$LN2@Providers_@3:

; 459  :         }
; 460  :     }

  000bb	e9 4f ff ff ff	 jmp	 $LN4@Providers_@3
$LN3@Providers_@3:

; 461  : 
; 462  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  000c0	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  000c7	7c 4a		 jl	 SHORT $LN6@Providers_@3
  000c9	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  000ce	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  000d3	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  000d9	73 38		 jae	 SHORT $LN6@Providers_@3

; 463  :     {
; 464  :         Sources[CurrentSource]->Object->SetMenu(hMenu);

  000db	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  000e0	50		 push	 eax
  000e1	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  000e6	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  000eb	8b c8		 mov	 ecx, eax
  000ed	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  000f2	83 c0 1c	 add	 eax, 28			; 0000001cH
  000f5	8b c8		 mov	 ecx, eax
  000f7	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  000fc	89 45 f4	 mov	 DWORD PTR tv145[ebp], eax
  000ff	8b 4d 08	 mov	 ecx, DWORD PTR _hMenu$[ebp]
  00102	51		 push	 ecx
  00103	8b 55 f4	 mov	 edx, DWORD PTR tv145[ebp]
  00106	8b 02		 mov	 eax, DWORD PTR [edx]
  00108	8b 4d f4	 mov	 ecx, DWORD PTR tv145[ebp]
  0010b	8b 90 84 00 00
	00		 mov	 edx, DWORD PTR [eax+132]
  00111	ff d2		 call	 edx
$LN6@Providers_@3:

; 465  :     }
; 466  : }

  00113	8b e5		 mov	 esp, ebp
  00115	5d		 pop	 ebp
  00116	c3		 ret	 0
?Providers_SetMenu@@YAXPAUHMENU__@@@Z ENDP		; Providers_SetMenu
_TEXT	ENDS
PUBLIC	?Providers_FindSource@@YAHXZ			; Providers_FindSource
; Function compile flags: /Odtp
;	COMDAT ?Providers_FindSource@@YAHXZ
_TEXT	SEGMENT
tv76 = -8						; size = 4
_SourceIdx$ = -4					; size = 4
?Providers_FindSource@@YAHXZ PROC			; Providers_FindSource, COMDAT

; 435  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 436  :     size_t SourceIdx = 0;

  00006	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _SourceIdx$[ebp], 0
$LN4@Providers_@4:

; 437  :     while ((SourceIdx < Sources.size()) && !Sources[SourceIdx]->Object->IsAccessAllowed())

  0000d	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00012	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00017	39 45 fc	 cmp	 DWORD PTR _SourceIdx$[ebp], eax
  0001a	73 41		 jae	 SHORT $LN3@Providers_@4
  0001c	8b 45 fc	 mov	 eax, DWORD PTR _SourceIdx$[ebp]
  0001f	50		 push	 eax
  00020	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00025	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0002a	8b c8		 mov	 ecx, eax
  0002c	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00031	83 c0 1c	 add	 eax, 28			; 0000001cH
  00034	8b c8		 mov	 ecx, eax
  00036	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  0003b	89 45 f8	 mov	 DWORD PTR tv76[ebp], eax
  0003e	8b 4d f8	 mov	 ecx, DWORD PTR tv76[ebp]
  00041	8b 11		 mov	 edx, DWORD PTR [ecx]
  00043	8b 4d f8	 mov	 ecx, DWORD PTR tv76[ebp]
  00046	8b 82 a4 00 00
	00		 mov	 eax, DWORD PTR [edx+164]
  0004c	ff d0		 call	 eax
  0004e	85 c0		 test	 eax, eax
  00050	75 0b		 jne	 SHORT $LN3@Providers_@4

; 438  :     {
; 439  :         SourceIdx++;

  00052	8b 4d fc	 mov	 ecx, DWORD PTR _SourceIdx$[ebp]
  00055	83 c1 01	 add	 ecx, 1
  00058	89 4d fc	 mov	 DWORD PTR _SourceIdx$[ebp], ecx

; 440  :     }

  0005b	eb b0		 jmp	 SHORT $LN4@Providers_@4
$LN3@Providers_@4:

; 441  :     if(SourceIdx >= 0 && SourceIdx < Sources.size())

  0005d	83 7d fc 00	 cmp	 DWORD PTR _SourceIdx$[ebp], 0
  00061	72 16		 jb	 SHORT $LN2@Providers_@4
  00063	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00068	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  0006d	39 45 fc	 cmp	 DWORD PTR _SourceIdx$[ebp], eax
  00070	73 07		 jae	 SHORT $LN2@Providers_@4

; 442  :     {
; 443  :         return static_cast<int>(SourceIdx);

  00072	8b 45 fc	 mov	 eax, DWORD PTR _SourceIdx$[ebp]
  00075	eb 05		 jmp	 SHORT $LN5@Providers_@4

; 444  :     }
; 445  :     else

  00077	eb 03		 jmp	 SHORT $LN5@Providers_@4
$LN2@Providers_@4:

; 446  :     {
; 447  :         return -1;

  00079	83 c8 ff	 or	 eax, -1
$LN5@Providers_@4:

; 448  :     }
; 449  : }

  0007c	8b e5		 mov	 esp, ebp
  0007e	5d		 pop	 ebp
  0007f	c3		 ret	 0
?Providers_FindSource@@YAHXZ ENDP			; Providers_FindSource
_TEXT	ENDS
PUBLIC	?Providers_IsStillSource@@YAHPAVCSource@@@Z	; Providers_IsStillSource
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_IsStillSource@@YAHPAVCSource@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_IsStillSource@@YAHPAVCSource@@@Z$0
__ehfuncinfo$?Providers_IsStillSource@@YAHPAVCSource@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Providers_IsStillSource@@YAHPAVCSource@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_IsStillSource@@YAHPAVCSource@@@Z
_TEXT	SEGMENT
tv132 = -44						; size = 4
tv133 = -40						; size = 4
tv87 = -36						; size = 4
tv75 = -32						; size = 4
$T307247 = -28						; size = 8
$T307246 = -20						; size = 4
_i$174084 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_source$ = 8						; size = 4
?Providers_IsStillSource@@YAHPAVCSource@@@Z PROC	; Providers_IsStillSource, COMDAT

; 420  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_IsStillSource@@YAHPAVCSource@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 20	 sub	 esp, 32			; 00000020H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 421  :     if (StillProvider.IsValid())

  00025	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  0002a	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VCStillProvider@@@@QBEHXZ ; SmartPtr<CStillProvider>::IsValid
  0002f	85 c0		 test	 eax, eax
  00031	0f 84 92 00 00
	00		 je	 $LN5@Providers_@5

; 422  :     {
; 423  :         for (int i=0 ; i<StillProvider->GetNumberOfSources() ; i++)

  00037	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$174084[ebp], 0
  0003e	eb 09		 jmp	 SHORT $LN4@Providers_@5
$LN3@Providers_@5:
  00040	8b 45 f0	 mov	 eax, DWORD PTR _i$174084[ebp]
  00043	83 c0 01	 add	 eax, 1
  00046	89 45 f0	 mov	 DWORD PTR _i$174084[ebp], eax
$LN4@Providers_@5:
  00049	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  0004e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00053	89 45 e0	 mov	 DWORD PTR tv75[ebp], eax
  00056	8b 4d e0	 mov	 ecx, DWORD PTR tv75[ebp]
  00059	8b 11		 mov	 edx, DWORD PTR [ecx]
  0005b	8b 4d e0	 mov	 ecx, DWORD PTR tv75[ebp]
  0005e	8b 02		 mov	 eax, DWORD PTR [edx]
  00060	ff d0		 call	 eax
  00062	39 45 f0	 cmp	 DWORD PTR _i$174084[ebp], eax
  00065	7d 62		 jge	 SHORT $LN5@Providers_@5

; 424  :         {
; 425  :             if (StillProvider->GetSource(i) == source)

  00067	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  0006c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00071	89 45 dc	 mov	 DWORD PTR tv87[ebp], eax
  00074	8b 4d f0	 mov	 ecx, DWORD PTR _i$174084[ebp]
  00077	51		 push	 ecx
  00078	8d 55 e4	 lea	 edx, DWORD PTR $T307247[ebp]
  0007b	52		 push	 edx
  0007c	8b 45 dc	 mov	 eax, DWORD PTR tv87[ebp]
  0007f	8b 10		 mov	 edx, DWORD PTR [eax]
  00081	8b 4d dc	 mov	 ecx, DWORD PTR tv87[ebp]
  00084	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00087	ff d0		 call	 eax
  00089	89 45 d8	 mov	 DWORD PTR tv133[ebp], eax
  0008c	8b 4d d8	 mov	 ecx, DWORD PTR tv133[ebp]
  0008f	89 4d d4	 mov	 DWORD PTR tv132[ebp], ecx
  00092	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00099	8b 55 08	 mov	 edx, DWORD PTR _source$[ebp]
  0009c	52		 push	 edx
  0009d	8b 4d d4	 mov	 ecx, DWORD PTR tv132[ebp]
  000a0	e8 00 00 00 00	 call	 ??8?$SmartPtr@VCSource@@@@QAEHPAVCSource@@@Z ; SmartPtr<CSource>::operator==
  000a5	89 45 ec	 mov	 DWORD PTR $T307246[ebp], eax
  000a8	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000af	8d 4d e4	 lea	 ecx, DWORD PTR $T307247[ebp]
  000b2	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  000b7	83 7d ec 00	 cmp	 DWORD PTR $T307246[ebp], 0
  000bb	74 07		 je	 SHORT $LN1@Providers_@5

; 426  :             {
; 427  :                 return TRUE;

  000bd	b8 01 00 00 00	 mov	 eax, 1
  000c2	eb 07		 jmp	 SHORT $LN6@Providers_@5
$LN1@Providers_@5:

; 428  :             }
; 429  :         }

  000c4	e9 77 ff ff ff	 jmp	 $LN3@Providers_@5
$LN5@Providers_@5:

; 430  :     }
; 431  :     return FALSE;

  000c9	33 c0		 xor	 eax, eax
$LN6@Providers_@5:

; 432  : }

  000cb	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000ce	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000d5	59		 pop	 ecx
  000d6	8b e5		 mov	 esp, ebp
  000d8	5d		 pop	 ebp
  000d9	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_IsStillSource@@YAHPAVCSource@@@Z$0:
  00000	8d 4d e4	 lea	 ecx, DWORD PTR $T307247[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__ehhandler$?Providers_IsStillSource@@YAHPAVCSource@@@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a dc	 mov	 ecx, DWORD PTR [edx-36]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_IsStillSource@@YAHPAVCSource@@@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_IsStillSource@@YAHPAVCSource@@@Z ENDP	; Providers_IsStillSource
PUBLIC	?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ; Providers_GetIntroSource
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ$0
__ehfuncinfo$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
_TEXT	SEGMENT
tv71 = -20						; size = 4
$T307258 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ PROC ; Providers_GetIntroSource, COMDAT

; 415  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T307258[ebp], 0

; 416  :     return StillProvider->GetSource(3);

  0002c	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00031	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00036	89 45 ec	 mov	 DWORD PTR tv71[ebp], eax
  00039	6a 03		 push	 3
  0003b	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0003e	50		 push	 eax
  0003f	8b 4d ec	 mov	 ecx, DWORD PTR tv71[ebp]
  00042	8b 11		 mov	 edx, DWORD PTR [ecx]
  00044	8b 4d ec	 mov	 ecx, DWORD PTR tv71[ebp]
  00047	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0004a	ff d0		 call	 eax
  0004c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00053	8b 4d f0	 mov	 ecx, DWORD PTR $T307258[ebp]
  00056	83 c9 01	 or	 ecx, 1
  00059	89 4d f0	 mov	 DWORD PTR $T307258[ebp], ecx
  0005c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 417  : }

  0005f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00062	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00069	59		 pop	 ecx
  0006a	8b e5		 mov	 esp, ebp
  0006c	5d		 pop	 ebp
  0006d	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T307258[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@Providers_@6
  0000c	83 65 f0 fe	 and	 DWORD PTR $T307258[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN4@Providers_@6:
  00018	c3		 ret	 0
__ehhandler$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ENDP ; Providers_GetIntroSource
PUBLIC	?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ; Providers_GetPatternsSource
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ$0
__ehfuncinfo$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
_TEXT	SEGMENT
tv71 = -20						; size = 4
$T307269 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ PROC ; Providers_GetPatternsSource, COMDAT

; 410  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T307269[ebp], 0

; 411  :     return StillProvider->GetSource(1);

  0002c	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00031	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00036	89 45 ec	 mov	 DWORD PTR tv71[ebp], eax
  00039	6a 01		 push	 1
  0003b	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0003e	50		 push	 eax
  0003f	8b 4d ec	 mov	 ecx, DWORD PTR tv71[ebp]
  00042	8b 11		 mov	 edx, DWORD PTR [ecx]
  00044	8b 4d ec	 mov	 ecx, DWORD PTR tv71[ebp]
  00047	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0004a	ff d0		 call	 eax
  0004c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00053	8b 4d f0	 mov	 ecx, DWORD PTR $T307269[ebp]
  00056	83 c9 01	 or	 ecx, 1
  00059	89 4d f0	 mov	 DWORD PTR $T307269[ebp], ecx
  0005c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 412  : }

  0005f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00062	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00069	59		 pop	 ecx
  0006a	8b e5		 mov	 esp, ebp
  0006c	5d		 pop	 ebp
  0006d	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T307269[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@Providers_@7
  0000c	83 65 f0 fe	 and	 DWORD PTR $T307269[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN4@Providers_@7:
  00018	c3		 ret	 0
__ehhandler$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_GetPatternsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ENDP ; Providers_GetPatternsSource
PUBLIC	?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ	; Providers_GetSnapshotsSource
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ$0
__ehfuncinfo$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ
_TEXT	SEGMENT
tv82 = -36						; size = 4
tv83 = -32						; size = 4
tv71 = -28						; size = 4
$T307280 = -24						; size = 8
$T307279 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ PROC	; Providers_GetSnapshotsSource, COMDAT

; 405  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 18	 sub	 esp, 24			; 00000018H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 406  :     return StillProvider->GetSource(2).GetRawPointer();

  00025	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  0002a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  0002f	89 45 e4	 mov	 DWORD PTR tv71[ebp], eax
  00032	6a 02		 push	 2
  00034	8d 45 e8	 lea	 eax, DWORD PTR $T307280[ebp]
  00037	50		 push	 eax
  00038	8b 4d e4	 mov	 ecx, DWORD PTR tv71[ebp]
  0003b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0003d	8b 4d e4	 mov	 ecx, DWORD PTR tv71[ebp]
  00040	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00043	ff d0		 call	 eax
  00045	89 45 e0	 mov	 DWORD PTR tv83[ebp], eax
  00048	8b 4d e0	 mov	 ecx, DWORD PTR tv83[ebp]
  0004b	89 4d dc	 mov	 DWORD PTR tv82[ebp], ecx
  0004e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00055	8b 4d dc	 mov	 ecx, DWORD PTR tv82[ebp]
  00058	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  0005d	89 45 f0	 mov	 DWORD PTR $T307279[ebp], eax
  00060	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00067	8d 4d e8	 lea	 ecx, DWORD PTR $T307280[ebp]
  0006a	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  0006f	8b 45 f0	 mov	 eax, DWORD PTR $T307279[ebp]

; 407  : }

  00072	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00075	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0007c	59		 pop	 ecx
  0007d	8b e5		 mov	 esp, ebp
  0007f	5d		 pop	 ebp
  00080	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ$0:
  00000	8d 4d e8	 lea	 ecx, DWORD PTR $T307280[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__ehhandler$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a e4	 mov	 ecx, DWORD PTR [edx-28]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ ENDP	; Providers_GetSnapshotsSource
PUBLIC	?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ; Providers_GetStillsSource
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ$0
__ehfuncinfo$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
_TEXT	SEGMENT
tv71 = -20						; size = 4
$T307291 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ PROC ; Providers_GetStillsSource, COMDAT

; 400  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T307291[ebp], 0

; 401  :     return StillProvider->GetSource(0);

  0002c	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00031	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00036	89 45 ec	 mov	 DWORD PTR tv71[ebp], eax
  00039	6a 00		 push	 0
  0003b	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0003e	50		 push	 eax
  0003f	8b 4d ec	 mov	 ecx, DWORD PTR tv71[ebp]
  00042	8b 11		 mov	 edx, DWORD PTR [ecx]
  00044	8b 4d ec	 mov	 ecx, DWORD PTR tv71[ebp]
  00047	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0004a	ff d0		 call	 eax
  0004c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00053	8b 4d f0	 mov	 ecx, DWORD PTR $T307291[ebp]
  00056	83 c9 01	 or	 ecx, 1
  00059	89 4d f0	 mov	 DWORD PTR $T307291[ebp], ecx
  0005c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 402  : }

  0005f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00062	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00069	59		 pop	 ecx
  0006a	8b e5		 mov	 esp, ebp
  0006c	5d		 pop	 ebp
  0006d	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T307291[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@Providers_@8
  0000c	83 65 f0 fe	 and	 DWORD PTR $T307291[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN4@Providers_@8:
  00018	c3		 ret	 0
__ehhandler$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_GetStillsSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ENDP ; Providers_GetStillsSource
PUBLIC	?Providers_GetSourceIndex@@YAJAAV?$SmartPtr@VCSource@@@@@Z ; Providers_GetSourceIndex
; Function compile flags: /Odtp
;	COMDAT ?Providers_GetSourceIndex@@YAJAAV?$SmartPtr@VCSource@@@@@Z
_TEXT	SEGMENT
_i$174055 = -4						; size = 4
_Src$ = 8						; size = 4
?Providers_GetSourceIndex@@YAJAAV?$SmartPtr@VCSource@@@@@Z PROC ; Providers_GetSourceIndex, COMDAT

; 388  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 389  :     for (size_t i(0) ; i < Sources.size() ; i++)

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$174055[ebp], 0
  0000b	eb 09		 jmp	 SHORT $LN4@Providers_@9
$LN3@Providers_@9:
  0000d	8b 45 fc	 mov	 eax, DWORD PTR _i$174055[ebp]
  00010	83 c0 01	 add	 eax, 1
  00013	89 45 fc	 mov	 DWORD PTR _i$174055[ebp], eax
$LN4@Providers_@9:
  00016	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0001b	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00020	39 45 fc	 cmp	 DWORD PTR _i$174055[ebp], eax
  00023	73 2e		 jae	 SHORT $LN2@Providers_@9

; 390  :     {
; 391  :         if (Sources[i]->Object == Src)

  00025	8b 4d 08	 mov	 ecx, DWORD PTR _Src$[ebp]
  00028	51		 push	 ecx
  00029	8b 55 fc	 mov	 edx, DWORD PTR _i$174055[ebp]
  0002c	52		 push	 edx
  0002d	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00032	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00037	8b c8		 mov	 ecx, eax
  00039	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0003e	83 c0 1c	 add	 eax, 28			; 0000001cH
  00041	8b c8		 mov	 ecx, eax
  00043	e8 00 00 00 00	 call	 ??8?$SmartPtr@VCSource@@@@QAEHABV0@@Z ; SmartPtr<CSource>::operator==
  00048	85 c0		 test	 eax, eax
  0004a	74 05		 je	 SHORT $LN1@Providers_@9

; 392  :         {
; 393  :             return static_cast<long>(i);

  0004c	8b 45 fc	 mov	 eax, DWORD PTR _i$174055[ebp]
  0004f	eb 05		 jmp	 SHORT $LN5@Providers_@9
$LN1@Providers_@9:

; 394  :         }
; 395  :     }

  00051	eb ba		 jmp	 SHORT $LN3@Providers_@9
$LN2@Providers_@9:

; 396  :     return -1;

  00053	83 c8 ff	 or	 eax, -1
$LN5@Providers_@9:

; 397  : }

  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c3		 ret	 0
?Providers_GetSourceIndex@@YAJAAV?$SmartPtr@VCSource@@@@@Z ENDP ; Providers_GetSourceIndex
_TEXT	ENDS
PUBLIC	?Providers_GetCurrentSource@@YAPAVCSource@@XZ	; Providers_GetCurrentSource
; Function compile flags: /Odtp
;	COMDAT ?Providers_GetCurrentSource@@YAPAVCSource@@XZ
_TEXT	SEGMENT
?Providers_GetCurrentSource@@YAPAVCSource@@XZ PROC	; Providers_GetCurrentSource, COMDAT

; 376  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 377  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  00003	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  0000a	7c 37		 jl	 SHORT $LN2@Providers_@10
  0000c	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00011	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00016	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  0001c	73 25		 jae	 SHORT $LN2@Providers_@10

; 378  :     {
; 379  :         return Sources[CurrentSource]->Object.GetRawPointer();

  0001e	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  00023	50		 push	 eax
  00024	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00029	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0002e	8b c8		 mov	 ecx, eax
  00030	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00035	83 c0 1c	 add	 eax, 28			; 0000001cH
  00038	8b c8		 mov	 ecx, eax
  0003a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  0003f	eb 04		 jmp	 SHORT $LN3@Providers_@10

; 380  :     }
; 381  :     else

  00041	eb 02		 jmp	 SHORT $LN3@Providers_@10
$LN2@Providers_@10:

; 382  :     {
; 383  :         return NULL;

  00043	33 c0		 xor	 eax, eax
$LN3@Providers_@10:

; 384  :     }
; 385  : }

  00045	5d		 pop	 ebp
  00046	c3		 ret	 0
?Providers_GetCurrentSource@@YAPAVCSource@@XZ ENDP	; Providers_GetCurrentSource
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
xdata$x	SEGMENT
__unwindtable$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z$0
__ehfuncinfo$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z
_TEXT	SEGMENT
tv74 = -28						; size = 4
$T320172 = -24						; size = 4
$T320171 = -20						; size = 4
__Vptr$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Ptr$ = 8						; size = 4
__Val$ = 12						; size = 4
??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z PROC ; std::_Construct<SmartPtr<TSource>,SmartPtr<TSource> >, COMDAT

; 50   : 	{	// construct object at _Ptr with value _Val

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 51   : 	void _FARQ *_Vptr = _Ptr;

  00025	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  00028	89 45 f0	 mov	 DWORD PTR __Vptr$[ebp], eax

; 52   : 	::new (_Vptr) _T1(_Val);

  0002b	8b 4d f0	 mov	 ecx, DWORD PTR __Vptr$[ebp]
  0002e	51		 push	 ecx
  0002f	6a 08		 push	 8
  00031	e8 00 00 00 00	 call	 ??2@YAPAXIPAX@Z		; operator new
  00036	83 c4 08	 add	 esp, 8
  00039	89 45 e8	 mov	 DWORD PTR $T320172[ebp], eax
  0003c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00043	83 7d e8 00	 cmp	 DWORD PTR $T320172[ebp], 0
  00047	74 11		 je	 SHORT $LN3@Construct@27
  00049	8b 55 0c	 mov	 edx, DWORD PTR __Val$[ebp]
  0004c	52		 push	 edx
  0004d	8b 4d e8	 mov	 ecx, DWORD PTR $T320172[ebp]
  00050	e8 00 00 00 00	 call	 ??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z ; SmartPtr<TSource>::SmartPtr<TSource>
  00055	89 45 e4	 mov	 DWORD PTR tv74[ebp], eax
  00058	eb 07		 jmp	 SHORT $LN4@Construct@27
$LN3@Construct@27:
  0005a	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv74[ebp], 0
$LN4@Construct@27:
  00061	8b 45 e4	 mov	 eax, DWORD PTR tv74[ebp]
  00064	89 45 ec	 mov	 DWORD PTR $T320171[ebp], eax
  00067	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1

; 53   : 	}

  0006e	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00071	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00078	59		 pop	 ecx
  00079	8b e5		 mov	 esp, ebp
  0007b	5d		 pop	 ebp
  0007c	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR __Vptr$[ebp]
  00003	50		 push	 eax
  00004	8b 4d e8	 mov	 ecx, DWORD PTR $T320172[ebp]
  00007	51		 push	 ecx
  00008	e8 00 00 00 00	 call	 ??3@YAXPAX0@Z		; operator delete
  0000d	83 c4 08	 add	 esp, 8
  00010	c3		 ret	 0
__ehhandler$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z:
  00011	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00015	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00018	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  0001b	33 c8		 xor	 ecx, eax
  0001d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00022	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z
  00027	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z ENDP ; std::_Construct<SmartPtr<TSource>,SmartPtr<TSource> >
; Function compile flags: /Odtp
;	COMDAT ?construct@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@ABV3@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Val$ = 12						; size = 4
?construct@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@ABV3@@Z PROC ; std::allocator<SmartPtr<TSource> >::construct, COMDAT
; _this$ = ecx

; 154  : 		{	// construct object at _Ptr with value _Val

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 155  : 		_Construct(_Ptr, _Val);

  00007	8b 45 0c	 mov	 eax, DWORD PTR __Val$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  0000e	51		 push	 ecx
  0000f	e8 00 00 00 00	 call	 ??$_Construct@V?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@ABV1@@Z ; std::_Construct<SmartPtr<TSource>,SmartPtr<TSource> >
  00014	83 c4 08	 add	 esp, 8

; 156  : 		}

  00017	8b e5		 mov	 esp, ebp
  00019	5d		 pop	 ebp
  0001a	c2 08 00	 ret	 8
?construct@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@ABV3@@Z ENDP ; std::allocator<SmartPtr<TSource> >::construct
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??Y?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Off$ = 8						; size = 4
??Y?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z PROC ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=, COMDAT
; _this$ = ecx

; 159  : 		{	// increment by integer

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	56		 push	 esi
  00005	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 160  : 		_SCL_SECURE_VALIDATE(this->_Has_container());

  00008	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	e8 00 00 00 00	 call	 ?_Has_container@_Iterator_base_aux@std@@QBE_NXZ ; std::_Iterator_base_aux::_Has_container
  00010	0f b6 c0	 movzx	 eax, al
  00013	85 c0		 test	 eax, eax
  00015	75 05		 jne	 SHORT $LN7@operator@427
  00017	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN7@operator@427:
  0001c	33 c9		 xor	 ecx, ecx
  0001e	75 fc		 jne	 SHORT $LN7@operator@427

; 161  : 		_SCL_SECURE_VALIDATE_RANGE(

  00020	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00023	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00026	8b 4d 08	 mov	 ecx, DWORD PTR __Off$[ebp]
  00029	8d 34 c8	 lea	 esi, DWORD PTR [eax+ecx*8]
  0002c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002f	e8 00 00 00 00	 call	 ?_Getmycont@_Iterator_base_aux@std@@QBEPBV_Container_base_aux@2@XZ ; std::_Iterator_base_aux::_Getmycont
  00034	3b 70 10	 cmp	 esi, DWORD PTR [eax+16]
  00037	77 19		 ja	 SHORT $LN4@operator@427
  00039	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0003c	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0003f	8b 4d 08	 mov	 ecx, DWORD PTR __Off$[ebp]
  00042	8d 34 c8	 lea	 esi, DWORD PTR [eax+ecx*8]
  00045	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00048	e8 00 00 00 00	 call	 ?_Getmycont@_Iterator_base_aux@std@@QBEPBV_Container_base_aux@2@XZ ; std::_Iterator_base_aux::_Getmycont
  0004d	3b 70 0c	 cmp	 esi, DWORD PTR [eax+12]
  00050	73 05		 jae	 SHORT $LN2@operator@427
$LN4@operator@427:

; 162  : 			_Myptr + _Off <= ((_Myvec *)(this->_Getmycont()))->_Mylast &&
; 163  : 			_Myptr + _Off >= ((_Myvec *)(this->_Getmycont()))->_Myfirst);

  00052	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@427:
  00057	33 d2		 xor	 edx, edx
  00059	75 fc		 jne	 SHORT $LN2@operator@427

; 164  : 		_Myptr += _Off;

  0005b	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0005e	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00061	8b 55 08	 mov	 edx, DWORD PTR __Off$[ebp]
  00064	8d 04 d1	 lea	 eax, DWORD PTR [ecx+edx*8]
  00067	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	89 41 04	 mov	 DWORD PTR [ecx+4], eax

; 165  : 		return (*this);

  0006d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 166  : 		}

  00070	5e		 pop	 esi
  00071	8b e5		 mov	 esp, ebp
  00073	5d		 pop	 ebp
  00074	c2 04 00	 ret	 4
??Y?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z ENDP ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CBT848Provider@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CBT848Provider@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1CBT848Provider@@QAE@XZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$??1CBT848Provider@@QAE@XZ$2
	DD	02H
	DD	FLAT:__unwindfunclet$??1CBT848Provider@@QAE@XZ$3
__ehfuncinfo$??1CBT848Provider@@QAE@XZ DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$??1CBT848Provider@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CBT848Provider@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CBT848Provider@@QAE@XZ PROC				; CBT848Provider::~CBT848Provider, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CBT848Provider@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 03 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 3
  0002d	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00031	68 00 00 00 00	 push	 OFFSET ??1?$SmartPtr@VCUserMemory@@@@QAE@XZ ; SmartPtr<CUserMemory>::~SmartPtr<CUserMemory>
  00036	6a 05		 push	 5
  00038	6a 08		 push	 8
  0003a	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	83 c0 4c	 add	 eax, 76			; 0000004cH
  00040	50		 push	 eax
  00041	e8 00 00 00 00	 call	 ??_M@YGXPAXIHP6EX0@Z@Z
  00046	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0004a	68 00 00 00 00	 push	 OFFSET ??1?$SmartPtr@VCUserMemory@@@@QAE@XZ ; SmartPtr<CUserMemory>::~SmartPtr<CUserMemory>
  0004f	6a 05		 push	 5
  00051	6a 08		 push	 8
  00053	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	83 c1 24	 add	 ecx, 36			; 00000024H
  00059	51		 push	 ecx
  0005a	e8 00 00 00 00	 call	 ??_M@YGXPAXIHP6EX0@Z@Z
  0005f	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00063	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00066	83 c1 1c	 add	 ecx, 28			; 0000001cH
  00069	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCContigMemory@@@@QAE@XZ ; SmartPtr<CContigMemory>::~SmartPtr<CContigMemory>
  0006e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00075	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00078	83 c1 04	 add	 ecx, 4
  0007b	e8 00 00 00 00	 call	 ??1?$vector@V?$SmartPtr@VCBT848Source@@@@V?$allocator@V?$SmartPtr@VCBT848Source@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<CBT848Source>,std::allocator<SmartPtr<CBT848Source> > >::~vector<SmartPtr<CBT848Source>,std::allocator<SmartPtr<CBT848Source> > >
  00080	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00083	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008a	59		 pop	 ecx
  0008b	8b e5		 mov	 esp, ebp
  0008d	5d		 pop	 ebp
  0008e	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CBT848Provider@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	83 c1 04	 add	 ecx, 4
  00006	e9 00 00 00 00	 jmp	 ??1?$vector@V?$SmartPtr@VCBT848Source@@@@V?$allocator@V?$SmartPtr@VCBT848Source@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<CBT848Source>,std::allocator<SmartPtr<CBT848Source> > >::~vector<SmartPtr<CBT848Source>,std::allocator<SmartPtr<CBT848Source> > >
__unwindfunclet$??1CBT848Provider@@QAE@XZ$1:
  0000b	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	83 c1 1c	 add	 ecx, 28			; 0000001cH
  00011	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCContigMemory@@@@QAE@XZ ; SmartPtr<CContigMemory>::~SmartPtr<CContigMemory>
__unwindfunclet$??1CBT848Provider@@QAE@XZ$2:
  00016	68 00 00 00 00	 push	 OFFSET ??1?$SmartPtr@VCUserMemory@@@@QAE@XZ ; SmartPtr<CUserMemory>::~SmartPtr<CUserMemory>
  0001b	6a 05		 push	 5
  0001d	6a 08		 push	 8
  0001f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00022	83 c0 24	 add	 eax, 36			; 00000024H
  00025	50		 push	 eax
  00026	e8 00 00 00 00	 call	 ??_M@YGXPAXIHP6EX0@Z@Z
  0002b	c3		 ret	 0
__unwindfunclet$??1CBT848Provider@@QAE@XZ$3:
  0002c	68 00 00 00 00	 push	 OFFSET ??1?$SmartPtr@VCUserMemory@@@@QAE@XZ ; SmartPtr<CUserMemory>::~SmartPtr<CUserMemory>
  00031	6a 05		 push	 5
  00033	6a 08		 push	 8
  00035	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00038	83 c0 4c	 add	 eax, 76			; 0000004cH
  0003b	50		 push	 eax
  0003c	e8 00 00 00 00	 call	 ??_M@YGXPAXIHP6EX0@Z@Z
  00041	c3		 ret	 0
__ehhandler$??1CBT848Provider@@QAE@XZ:
  00042	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00046	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00049	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0004c	33 c8		 xor	 ecx, eax
  0004e	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00053	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CBT848Provider@@QAE@XZ
  00058	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CBT848Provider@@QAE@XZ ENDP				; CBT848Provider::~CBT848Provider
; Function compile flags: /Odtp
;	COMDAT ??_GCBT848Provider@@QAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCBT848Provider@@QAEPAXI@Z PROC			; CBT848Provider::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??1CBT848Provider@@QAE@XZ
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@99
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	51		 push	 ecx
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN1@scalar@99:
  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
??_GCBT848Provider@@QAEPAXI@Z ENDP			; CBT848Provider::`scalar deleting destructor'
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??Y?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Off$ = 8						; size = 4
??Y?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z PROC ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=, COMDAT
; _this$ = ecx

; 374  : 		{	// increment by integer

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 375  : 		(*(_Mybase *)this) += _Off;

  00007	8b 45 08	 mov	 eax, DWORD PTR __Off$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	e8 00 00 00 00	 call	 ??Y?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=

; 376  : 		return (*this);

  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 377  : 		}

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c2 04 00	 ret	 4
??Y?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z ENDP ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@VCBT848Provider@@@@QAEXXZ
_TEXT	SEGMENT
tv82 = -20						; size = 4
_this$ = -16						; size = 4
$T320206 = -12						; size = 4
$T320205 = -8						; size = 4
$T320204 = -4						; size = 4
?Clear@?$SmartPtr@VCBT848Provider@@@@QAEXXZ PROC	; SmartPtr<CBT848Provider>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 5d		 je	 SHORT $LN2@Clear@241

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 3f		 jne	 SHORT $LN2@Clear@241

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T320204[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T320204[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T320206[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T320206[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T320205[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T320205[ebp], 0
  00057	74 0f		 je	 SHORT $LN5@Clear@241
  00059	6a 01		 push	 1
  0005b	8b 4d f8	 mov	 ecx, DWORD PTR $T320205[ebp]
  0005e	e8 00 00 00 00	 call	 ??_GCBT848Provider@@QAEPAXI@Z
  00063	89 45 ec	 mov	 DWORD PTR tv82[ebp], eax
  00066	eb 07		 jmp	 SHORT $LN2@Clear@241
$LN5@Clear@241:
  00068	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv82[ebp], 0
$LN2@Clear@241:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  0006f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00072	c7 42 04 00 00
	00 00		 mov	 DWORD PTR [edx+4], 0

; 252  :         rawPtr = 0;

  00079	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0007c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 253  :     }

  00082	8b e5		 mov	 esp, ebp
  00084	5d		 pop	 ebp
  00085	c3		 ret	 0
?Clear@?$SmartPtr@VCBT848Provider@@@@QAEXXZ ENDP	; SmartPtr<CBT848Provider>::Clear
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??H?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV01@H@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
__Tmp$ = -8						; size = 8
___$ReturnUdt$ = 8					; size = 4
__Off$ = 12						; size = 4
??H?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV01@H@Z PROC ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+, COMDAT
; _this$ = ecx

; 380  : 		{	// return this + integer

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 381  : 		_Myt _Tmp = *this;

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000e	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00011	89 4d f8	 mov	 DWORD PTR __Tmp$[ebp], ecx
  00014	89 55 fc	 mov	 DWORD PTR __Tmp$[ebp+4], edx

; 382  : 		return (_Tmp += _Off);

  00017	8b 45 0c	 mov	 eax, DWORD PTR __Off$[ebp]
  0001a	50		 push	 eax
  0001b	8d 4d f8	 lea	 ecx, DWORD PTR __Tmp$[ebp]
  0001e	e8 00 00 00 00	 call	 ??Y?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV01@H@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+=
  00023	8b 08		 mov	 ecx, DWORD PTR [eax]
  00025	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00028	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0002b	89 08		 mov	 DWORD PTR [eax], ecx
  0002d	89 50 04	 mov	 DWORD PTR [eax+4], edx
  00030	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 383  : 		}

  00033	8b e5		 mov	 esp, ebp
  00035	5d		 pop	 ebp
  00036	c2 08 00	 ret	 8
??H?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV01@H@Z ENDP ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T320214 = -20						; size = 4
$T320213 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z PROC ; SmartPtr<CBT848Provider>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCBT848Provider@@@@QAEXXZ ; SmartPtr<CBT848Provider>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@428

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T320214[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T320214[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@428
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T320214[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@428
$LN4@operator@428:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@428:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T320213[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T320213[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@428:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T320214[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z ENDP ; SmartPtr<CBT848Provider>::operator=
; Function compile flags: /Odtp
;	COMDAT ??1?$SmartPtr@VCBT848Provider@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@VCBT848Provider@@@@QAE@XZ PROC		; SmartPtr<CBT848Provider>::~SmartPtr<CBT848Provider>, COMDAT
; _this$ = ecx

; 105  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCBT848Provider@@@@QAEXXZ ; SmartPtr<CBT848Provider>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@VCBT848Provider@@@@QAE@XZ ENDP		; SmartPtr<CBT848Provider>::~SmartPtr<CBT848Provider>
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1TSource@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1TSource@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1TSource@@QAE@XZ$1
__ehfuncinfo$??1TSource@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??1TSource@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1TSource@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1TSource@@QAE@XZ PROC					; TSource::~TSource, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1TSource@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  0002d	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00031	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	83 c1 1c	 add	 ecx, 28			; 0000001cH
  00037	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  0003c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00043	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0004b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0004e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00055	59		 pop	 ecx
  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1TSource@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$??1TSource@@QAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 1c	 add	 ecx, 28			; 0000001cH
  0000e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__ehhandler$??1TSource@@QAE@XZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001d	33 c8		 xor	 ecx, eax
  0001f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00024	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1TSource@@QAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1TSource@@QAE@XZ ENDP					; TSource::~TSource
; Function compile flags: /Odtp
;	COMDAT ??_GTSource@@QAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GTSource@@QAEPAXI@Z PROC				; TSource::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??1TSource@@QAE@XZ
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@146
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	51		 push	 ecx
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN1@scalar@146:
  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
??_GTSource@@QAEPAXI@Z ENDP				; TSource::`scalar deleting destructor'
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@UTSource@@@@QAEXXZ
_TEXT	SEGMENT
tv82 = -20						; size = 4
_this$ = -16						; size = 4
$T326968 = -12						; size = 4
$T326967 = -8						; size = 4
$T326966 = -4						; size = 4
?Clear@?$SmartPtr@UTSource@@@@QAEXXZ PROC		; SmartPtr<TSource>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 5d		 je	 SHORT $LN2@Clear@243

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 3f		 jne	 SHORT $LN2@Clear@243

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T326966[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T326966[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T326968[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T326968[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T326967[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T326967[ebp], 0
  00057	74 0f		 je	 SHORT $LN5@Clear@243
  00059	6a 01		 push	 1
  0005b	8b 4d f8	 mov	 ecx, DWORD PTR $T326967[ebp]
  0005e	e8 00 00 00 00	 call	 ??_GTSource@@QAEPAXI@Z
  00063	89 45 ec	 mov	 DWORD PTR tv82[ebp], eax
  00066	eb 07		 jmp	 SHORT $LN2@Clear@243
$LN5@Clear@243:
  00068	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv82[ebp], 0
$LN2@Clear@243:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  0006f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00072	c7 42 04 00 00
	00 00		 mov	 DWORD PTR [edx+4], 0

; 252  :         rawPtr = 0;

  00079	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0007c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 253  :     }

  00082	8b e5		 mov	 esp, ebp
  00084	5d		 pop	 ebp
  00085	c3		 ret	 0
?Clear@?$SmartPtr@UTSource@@@@QAEXXZ ENDP		; SmartPtr<TSource>::Clear
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z$0
__ehfuncinfo$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T326974 = -20						; size = 4
$T326973 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z PROC	; SmartPtr<TSource>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@UTSource@@@@QAEXXZ ; SmartPtr<TSource>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@485

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T326974[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T326974[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@485
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T326974[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@485
$LN4@operator@485:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@485:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T326973[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T326973[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@485:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T326974[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ENDP	; SmartPtr<TSource>::operator=
; Function compile flags: /Odtp
;	COMDAT ??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_otherPtr$ = 8						; size = 4
??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z PROC		; SmartPtr<TSource>::operator=, COMDAT
; _this$ = ecx

; 111  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 112  :         if (this != &otherPtr)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	3b 45 08	 cmp	 eax, DWORD PTR _otherPtr$[ebp]
  0000d	74 21		 je	 SHORT $LN1@operator@486

; 113  :         {
; 114  :             Clear();

  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@UTSource@@@@QAEXXZ ; SmartPtr<TSource>::Clear

; 115  :             acquire(otherPtr.counter);

  00017	8b 4d 08	 mov	 ecx, DWORD PTR _otherPtr$[ebp]
  0001a	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0001d	52		 push	 edx
  0001e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00021	e8 00 00 00 00	 call	 ?acquire@?$SmartPtr@UTSource@@@@AAEXPAUCounter@@@Z ; SmartPtr<TSource>::acquire

; 116  :             rawPtr = otherPtr.rawPtr;

  00026	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00029	8b 4d 08	 mov	 ecx, DWORD PTR _otherPtr$[ebp]
  0002c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0002e	89 10		 mov	 DWORD PTR [eax], edx
$LN1@operator@486:

; 117  :         }
; 118  :         return *this;

  00030	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 119  :     }

  00033	8b e5		 mov	 esp, ebp
  00035	5d		 pop	 ebp
  00036	c2 04 00	 ret	 4
??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z ENDP		; SmartPtr<TSource>::operator=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??1?$SmartPtr@UTSource@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@UTSource@@@@QAE@XZ PROC			; SmartPtr<TSource>::~SmartPtr<TSource>, COMDAT
; _this$ = ecx

; 105  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@UTSource@@@@QAEXXZ ; SmartPtr<TSource>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@UTSource@@@@QAE@XZ ENDP			; SmartPtr<TSource>::~SmartPtr<TSource>
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0TSource@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0TSource@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0TSource@@QAE@XZ$1
__ehfuncinfo$??0TSource@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0TSource@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0TSource@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0TSource@@QAE@XZ PROC					; TSource::TSource, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0TSource@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 c1 1c	 add	 ecx, 28			; 0000001cH
  0003b	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::SmartPtr<CSource>
  00040	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00044	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0004b	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0004e	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00051	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00058	59		 pop	 ecx
  00059	8b e5		 mov	 esp, ebp
  0005b	5d		 pop	 ebp
  0005c	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0TSource@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$??0TSource@@QAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 1c	 add	 ecx, 28			; 0000001cH
  0000e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__ehhandler$??0TSource@@QAE@XZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001d	33 c8		 xor	 ecx, eax
  0001f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00024	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0TSource@@QAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0TSource@@QAE@XZ ENDP					; TSource::TSource
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>, COMDAT

; 2647 : 	{	// copy [_First, _Last) backwards to [..., _Dest), arbitrary iterators

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
$LN2@Copy_backw@35:

; 2648 : 	_DEBUG_RANGE(_First, _Last);
; 2649 : 	while (_First != _Last)

  00003	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00006	3b 45 0c	 cmp	 eax, DWORD PTR __Last$[ebp]
  00009	74 20		 je	 SHORT $LN1@Copy_backw@35

; 2650 : 		*--_Dest = *--_Last;

  0000b	8b 4d 0c	 mov	 ecx, DWORD PTR __Last$[ebp]
  0000e	83 e9 08	 sub	 ecx, 8
  00011	89 4d 0c	 mov	 DWORD PTR __Last$[ebp], ecx
  00014	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  00017	83 ea 08	 sub	 edx, 8
  0001a	89 55 10	 mov	 DWORD PTR __Dest$[ebp], edx
  0001d	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00020	50		 push	 eax
  00021	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00024	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<TSource>::operator=
  00029	eb d8		 jmp	 SHORT $LN2@Copy_backw@35
$LN1@Copy_backw@35:

; 2651 : 	return (_Dest);

  0002b	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]

; 2652 : 	}

  0002e	5d		 pop	 ebp
  0002f	c3		 ret	 0
??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_G?$SmartPtr@UTSource@@@@QAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_G?$SmartPtr@UTSource@@@@QAEPAXI@Z PROC		; SmartPtr<TSource>::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@213
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	51		 push	 ecx
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN1@scalar@213:
  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
??_G?$SmartPtr@UTSource@@@@QAEPAXI@Z ENDP		; SmartPtr<TSource>::`scalar deleting destructor'
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
_TEXT	ENDS
;	COMDAT ??$_Destroy@V?$SmartPtr@UTSource@@@@@std@@YAXPAV?$SmartPtr@UTSource@@@@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??$_Destroy@V?$SmartPtr@UTSource@@@@@std@@YAXPAV?$SmartPtr@UTSource@@@@@Z PROC ; std::_Destroy<SmartPtr<TSource> >, COMDAT

; 58   : 	{	// destroy object at _Ptr

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 59   : 	_DESTRUCTOR(_Ty, _Ptr);

  00003	6a 00		 push	 0
  00005	8b 4d 08	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  00008	e8 00 00 00 00	 call	 ??_G?$SmartPtr@UTSource@@@@QAEPAXI@Z

; 60   : 	}

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??$_Destroy@V?$SmartPtr@UTSource@@@@@std@@YAXPAV?$SmartPtr@UTSource@@@@@Z ENDP ; std::_Destroy<SmartPtr<TSource> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T328647 = -7						; size = 1
$T328646 = -6						; size = 1
$T328645 = -5						; size = 1
__Result$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>, COMDAT

; 2659 : 	{	// copy [_First, _Last) backwards to [..., _Dest), arbitrary iterators

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 2660 : 	// if _OutIt is range checked, this will make sure there is enough space for the copy
; 2661 : 	_OutIt _Result = _Dest - (_Last - _First);

  00006	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00009	2b 45 08	 sub	 eax, DWORD PTR __First$[ebp]
  0000c	c1 f8 03	 sar	 eax, 3
  0000f	c1 e0 03	 shl	 eax, 3
  00012	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00015	2b c8		 sub	 ecx, eax
  00017	89 4d fc	 mov	 DWORD PTR __Result$[ebp], ecx

; 2662 : 	_Copy_backward_opt(_First, _Last, _CHECKED_BASE(_Dest),
; 2663 : 		forward_iterator_tag(), _Nonscalar_ptr_iterator_tag(), _Range_checked_iterator_tag());

  0001a	33 d2		 xor	 edx, edx
  0001c	88 55 fb	 mov	 BYTE PTR $T328645[ebp], dl
  0001f	33 c0		 xor	 eax, eax
  00021	88 45 fa	 mov	 BYTE PTR $T328646[ebp], al
  00024	0f b6 4d fb	 movzx	 ecx, BYTE PTR $T328645[ebp]
  00028	51		 push	 ecx
  00029	0f b6 55 fa	 movzx	 edx, BYTE PTR $T328646[ebp]
  0002d	52		 push	 edx
  0002e	0f b6 45 f9	 movzx	 eax, BYTE PTR $T328647[ebp]
  00032	50		 push	 eax
  00033	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  00036	51		 push	 ecx
  00037	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  0003c	83 c4 04	 add	 esp, 4
  0003f	50		 push	 eax
  00040	8b 55 0c	 mov	 edx, DWORD PTR __Last$[ebp]
  00043	52		 push	 edx
  00044	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>
  0004d	83 c4 18	 add	 esp, 24			; 00000018H

; 2664 : 	return _Result;

  00050	8b 45 fc	 mov	 eax, DWORD PTR __Result$[ebp]

; 2665 : 	}

  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>, COMDAT

; 2443 : 	{	// copy [_First, _Last) to [_Dest, ...), arbitrary iterators

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 2444 : 	_DEBUG_RANGE(_First, _Last);
; 2445 : 	for (; _First != _Last; ++_Dest, ++_First)

  00003	eb 12		 jmp	 SHORT $LN3@Copy_opt@25
$LN2@Copy_opt@25:
  00005	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  00008	83 c0 08	 add	 eax, 8
  0000b	89 45 10	 mov	 DWORD PTR __Dest$[ebp], eax
  0000e	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00011	83 c1 08	 add	 ecx, 8
  00014	89 4d 08	 mov	 DWORD PTR __First$[ebp], ecx
$LN3@Copy_opt@25:
  00017	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  0001a	3b 55 0c	 cmp	 edx, DWORD PTR __Last$[ebp]
  0001d	74 0e		 je	 SHORT $LN1@Copy_opt@25

; 2446 : 		*_Dest = *_First;

  0001f	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00022	50		 push	 eax
  00023	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00026	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<TSource>::operator=
  0002b	eb d8		 jmp	 SHORT $LN2@Copy_opt@25
$LN1@Copy_opt@25:

; 2447 : 	return (_Dest);

  0002d	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]

; 2448 : 	}

  00030	5d		 pop	 ebp
  00031	c3		 ret	 0
??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
_TEXT	ENDS
;	COMDAT ?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z PROC ; std::allocator<SmartPtr<TSource> >::destroy, COMDAT
; _this$ = ecx

; 159  : 		{	// destroy object at _Ptr

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 160  : 		_Destroy(_Ptr);

  00007	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  0000a	50		 push	 eax
  0000b	e8 00 00 00 00	 call	 ??$_Destroy@V?$SmartPtr@UTSource@@@@@std@@YAXPAV?$SmartPtr@UTSource@@@@@Z ; std::_Destroy<SmartPtr<TSource> >
  00010	83 c4 04	 add	 esp, 4

; 161  : 		}

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z ENDP ; std::allocator<SmartPtr<TSource> >::destroy
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Move_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Urandom_access_iterator_tag@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T328655 = -2						; size = 1
$T328654 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__First_dest_cat$ = 20					; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Move_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Urandom_access_iterator_tag@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Move_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::random_access_iterator_tag,std::_Undefined_move_tag>, COMDAT

; 2726 : 	{	// move defaults to copy if there is not a more effecient way

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 2727 : 	return _Copy_backward_opt(_First, _Last, _Dest,
; 2728 : 		_First_dest_cat, _Ptr_cat(_First, _Dest), _Range_checked_iterator_tag());

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T328654[ebp], al
  00009	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  0000c	51		 push	 ecx
  0000d	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 ??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T328655[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T328654[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T328655[ebp]
  00025	51		 push	 ecx
  00026	0f b6 55 14	 movzx	 edx, BYTE PTR __First_dest_cat$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  0002e	50		 push	 eax
  0002f	8b 4d 0c	 mov	 ecx, DWORD PTR __Last$[ebp]
  00032	51		 push	 ecx
  00033	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00036	52		 push	 edx
  00037	e8 00 00 00 00	 call	 ??$_Copy_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>
  0003c	83 c4 18	 add	 esp, 24			; 00000018H

; 2729 : 	}

  0003f	8b e5		 mov	 esp, ebp
  00041	5d		 pop	 ebp
  00042	c3		 ret	 0
??$_Move_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Urandom_access_iterator_tag@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Move_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::random_access_iterator_tag,std::_Undefined_move_tag>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Val$ = 16						; size = 4
??$_Fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z PROC ; std::_Fill<SmartPtr<TSource> *,SmartPtr<TSource> >, COMDAT

; 3130 : 	{	// copy _Val through [_First, _Last)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 3131 : 	_DEBUG_RANGE(_First, _Last);
; 3132 : 	for (; _First != _Last; ++_First)

  00003	eb 09		 jmp	 SHORT $LN3@Fill@34
$LN2@Fill@34:
  00005	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00008	83 c0 08	 add	 eax, 8
  0000b	89 45 08	 mov	 DWORD PTR __First$[ebp], eax
$LN3@Fill@34:
  0000e	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00011	3b 4d 0c	 cmp	 ecx, DWORD PTR __Last$[ebp]
  00014	74 0e		 je	 SHORT $LN4@Fill@34

; 3133 : 		*_First = _Val;

  00016	8b 55 10	 mov	 edx, DWORD PTR __Val$[ebp]
  00019	52		 push	 edx
  0001a	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  0001d	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<TSource>::operator=
  00022	eb e1		 jmp	 SHORT $LN2@Fill@34
$LN4@Fill@34:

; 3134 : 	}

  00024	5d		 pop	 ebp
  00025	c3		 ret	 0
??$_Fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ENDP ; std::_Fill<SmartPtr<TSource> *,SmartPtr<TSource> >
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
xdata$x	SEGMENT
__unwindtable$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0
__tryblocktable$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2
__ehfuncinfo$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__Next$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
__Al$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT

; 389  : 	{	// copy _Count *_Val to raw _First, using _Al, arbitrary type

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	51		 push	 ecx
  00013	53		 push	 ebx
  00014	56		 push	 esi
  00015	57		 push	 edi
  00016	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001b	33 c5		 xor	 eax, ebp
  0001d	50		 push	 eax
  0001e	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00021	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00027	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 390  : 
; 391  :  #if _HAS_ITERATOR_DEBUGGING
; 392  : //	if (_Count < 0)
; 393  : //		_DEBUG_ERROR("negative count in uninitialized fill");
; 394  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 395  : 
; 396  : 	_FwdIt _Next = _First;

  0002a	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  0002d	89 45 ec	 mov	 DWORD PTR __Next$[ebp], eax

; 397  : 
; 398  : 	_TRY_BEGIN

  00030	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 399  : 	for (; 0 < _Count; --_Count, ++_First)

  00037	eb 12		 jmp	 SHORT $LN6@Uninit_fil@21
$LN5@Uninit_fil@21:
  00039	8b 4d 0c	 mov	 ecx, DWORD PTR __Count$[ebp]
  0003c	83 e9 01	 sub	 ecx, 1
  0003f	89 4d 0c	 mov	 DWORD PTR __Count$[ebp], ecx
  00042	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00045	83 c2 08	 add	 edx, 8
  00048	89 55 08	 mov	 DWORD PTR __First$[ebp], edx
$LN6@Uninit_fil@21:
  0004b	83 7d 0c 00	 cmp	 DWORD PTR __Count$[ebp], 0
  0004f	76 12		 jbe	 SHORT $LN4@Uninit_fil@21

; 400  : 		_Al.construct(_First, _Val);

  00051	8b 45 10	 mov	 eax, DWORD PTR __Val$[ebp]
  00054	50		 push	 eax
  00055	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00058	51		 push	 ecx
  00059	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  0005c	e8 00 00 00 00	 call	 ?construct@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@ABV3@@Z ; std::allocator<SmartPtr<TSource> >::construct
  00061	eb d6		 jmp	 SHORT $LN5@Uninit_fil@21
$LN4@Uninit_fil@21:
  00063	eb 37		 jmp	 SHORT $LN10@Uninit_fil@21
__catch$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0:

; 401  : 	_CATCH_ALL
; 402  : 	for (; _Next != _First; ++_Next)

  00065	eb 09		 jmp	 SHORT $LN3@Uninit_fil@21
$LN2@Uninit_fil@21:
  00067	8b 55 ec	 mov	 edx, DWORD PTR __Next$[ebp]
  0006a	83 c2 08	 add	 edx, 8
  0006d	89 55 ec	 mov	 DWORD PTR __Next$[ebp], edx
$LN3@Uninit_fil@21:
  00070	8b 45 ec	 mov	 eax, DWORD PTR __Next$[ebp]
  00073	3b 45 08	 cmp	 eax, DWORD PTR __First$[ebp]
  00076	74 0e		 je	 SHORT $LN1@Uninit_fil@21

; 403  : 		_Al.destroy(_Next);

  00078	8b 4d ec	 mov	 ecx, DWORD PTR __Next$[ebp]
  0007b	51		 push	 ecx
  0007c	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  0007f	e8 00 00 00 00	 call	 ?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z ; std::allocator<SmartPtr<TSource> >::destroy
  00084	eb e1		 jmp	 SHORT $LN2@Uninit_fil@21
$LN1@Uninit_fil@21:

; 404  : 	_RERAISE;

  00086	6a 00		 push	 0
  00088	6a 00		 push	 0
  0008a	e8 00 00 00 00	 call	 __CxxThrowException@8

; 405  : 	_CATCH_END

  0008f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00096	b8 00 00 00 00	 mov	 eax, $LN9@Uninit_fil@21
  0009b	c3		 ret	 0
$LN10@Uninit_fil@21:
  0009c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
$LN9@Uninit_fil@21:

; 406  : 	}

  000a3	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000a6	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000ad	59		 pop	 ecx
  000ae	5f		 pop	 edi
  000af	5e		 pop	 esi
  000b0	5b		 pop	 ebx
  000b1	8b e5		 mov	 esp, ebp
  000b3	5d		 pop	 ebp
  000b4	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z:
  00000	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00004	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00007	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  0000a	33 c8		 xor	 ecx, eax
  0000c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00011	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Al$ = 16						; size = 4
___formal$ = 20						; size = 1
??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z PROC ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >, COMDAT

; 232  : 	{	// destroy [_First, _Last), arbitrary type

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 233  : 	for (; _First != _Last; ++_First)

  00003	eb 09		 jmp	 SHORT $LN3@Destroy_ra@27
$LN2@Destroy_ra@27:
  00005	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00008	83 c0 08	 add	 eax, 8
  0000b	89 45 08	 mov	 DWORD PTR __First$[ebp], eax
$LN3@Destroy_ra@27:
  0000e	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00011	3b 4d 0c	 cmp	 ecx, DWORD PTR __Last$[ebp]
  00014	74 0e		 je	 SHORT $LN4@Destroy_ra@27

; 234  : 		_Al.destroy(_First);

  00016	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00019	52		 push	 edx
  0001a	8b 4d 10	 mov	 ecx, DWORD PTR __Al$[ebp]
  0001d	e8 00 00 00 00	 call	 ?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z ; std::allocator<SmartPtr<TSource> >::destroy
  00022	eb e1		 jmp	 SHORT $LN2@Destroy_ra@27
$LN4@Destroy_ra@27:

; 235  : 	}

  00024	5d		 pop	 ebp
  00025	c3		 ret	 0
??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ENDP ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T328679 = -7						; size = 1
$T328678 = -6						; size = 1
$T328677 = -5						; size = 1
__Result$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>, COMDAT

; 2455 : 	{	// copy [_First, _Last) to [_Dest, ...), random_access iterators

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 2456 : 	// if _OutIt is range checked, this will make sure there is enough space for the copy
; 2457 : 	_OutIt _Result = _Dest + (_Last - _First);

  00006	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00009	2b 45 08	 sub	 eax, DWORD PTR __First$[ebp]
  0000c	c1 f8 03	 sar	 eax, 3
  0000f	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00012	8d 14 c1	 lea	 edx, DWORD PTR [ecx+eax*8]
  00015	89 55 fc	 mov	 DWORD PTR __Result$[ebp], edx

; 2458 : 	_Copy_opt(_First, _Last, _CHECKED_BASE(_Dest), 
; 2459 : 		forward_iterator_tag(), _Nonscalar_ptr_iterator_tag(), _Range_checked_iterator_tag());

  00018	33 c0		 xor	 eax, eax
  0001a	88 45 fb	 mov	 BYTE PTR $T328677[ebp], al
  0001d	33 c9		 xor	 ecx, ecx
  0001f	88 4d fa	 mov	 BYTE PTR $T328678[ebp], cl
  00022	0f b6 55 fb	 movzx	 edx, BYTE PTR $T328677[ebp]
  00026	52		 push	 edx
  00027	0f b6 45 fa	 movzx	 eax, BYTE PTR $T328678[ebp]
  0002b	50		 push	 eax
  0002c	0f b6 4d f9	 movzx	 ecx, BYTE PTR $T328679[ebp]
  00030	51		 push	 ecx
  00031	8d 55 10	 lea	 edx, DWORD PTR __Dest$[ebp]
  00034	52		 push	 edx
  00035	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  0003a	83 c4 04	 add	 esp, 4
  0003d	50		 push	 eax
  0003e	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00041	50		 push	 eax
  00042	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00045	51		 push	 ecx
  00046	e8 00 00 00 00	 call	 ??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Uforward_iterator_tag@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::forward_iterator_tag>
  0004b	83 c4 18	 add	 esp, 24			; 00000018H

; 2460 : 	return _Result;

  0004e	8b 45 fc	 mov	 eax, DWORD PTR __Result$[ebp]

; 2461 : 	}

  00051	8b e5		 mov	 esp, ebp
  00053	5d		 pop	 ebp
  00054	c3		 ret	 0
??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Unchecked_move_backward@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z
_TEXT	SEGMENT
$T328684 = -3						; size = 1
$T328683 = -2						; size = 1
$T328682 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
??$_Unchecked_move_backward@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z PROC ; stdext::_Unchecked_move_backward<SmartPtr<TSource> *,SmartPtr<TSource> *>, COMDAT

; 3668 : 	{	// move [_First, _Last) backwards to [..., _Dest)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 3669 : 		return (_STD _Move_backward_opt(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest,
; 3670 : 			_STD _Iter_random(_First, _Dest), _STD _Move_cat(_Dest), _STD _Range_checked_iterator_tag()));

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T328682[ebp], al
  00009	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  0000c	51		 push	 ecx
  0000d	e8 00 00 00 00	 call	 ??$_Move_cat@PAV?$SmartPtr@UTSource@@@@@std@@YA?AU_Undefined_move_tag@0@ABQAV?$SmartPtr@UTSource@@@@@Z ; std::_Move_cat<SmartPtr<TSource> *>
  00012	83 c4 04	 add	 esp, 4
  00015	88 45 fe	 mov	 BYTE PTR $T328683[ebp], al
  00018	0f b6 55 ff	 movzx	 edx, BYTE PTR $T328682[ebp]
  0001c	52		 push	 edx
  0001d	0f b6 45 fe	 movzx	 eax, BYTE PTR $T328683[ebp]
  00021	50		 push	 eax
  00022	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  00025	51		 push	 ecx
  00026	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00029	52		 push	 edx
  0002a	8d 45 fd	 lea	 eax, DWORD PTR $T328684[ebp]
  0002d	50		 push	 eax
  0002e	e8 00 00 00 00	 call	 ??$_Iter_random@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$SmartPtr@UTSource@@@@0@Z ; std::_Iter_random<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00033	83 c4 0c	 add	 esp, 12			; 0000000cH
  00036	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00039	51		 push	 ecx
  0003a	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  0003d	52		 push	 edx
  0003e	8d 45 0c	 lea	 eax, DWORD PTR __Last$[ebp]
  00041	50		 push	 eax
  00042	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00047	83 c4 04	 add	 esp, 4
  0004a	50		 push	 eax
  0004b	8d 4d 08	 lea	 ecx, DWORD PTR __First$[ebp]
  0004e	51		 push	 ecx
  0004f	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00054	83 c4 04	 add	 esp, 4
  00057	50		 push	 eax
  00058	e8 00 00 00 00	 call	 ??$_Move_backward_opt@PAV?$SmartPtr@UTSource@@@@PAV1@Urandom_access_iterator_tag@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<SmartPtr<TSource> *,SmartPtr<TSource> *,std::random_access_iterator_tag,std::_Undefined_move_tag>
  0005d	83 c4 18	 add	 esp, 24			; 00000018H

; 3671 : 	}

  00060	8b e5		 mov	 esp, ebp
  00062	5d		 pop	 ebp
  00063	c3		 ret	 0
??$_Unchecked_move_backward@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ENDP ; stdext::_Unchecked_move_backward<SmartPtr<TSource> *,SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Val$ = 16						; size = 4
??$fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z PROC ; std::fill<SmartPtr<TSource> *,SmartPtr<TSource> >, COMDAT

; 3160 : 	{	// copy _Val through [_First, _Last)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 3161 : 	_Fill(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Val);

  00003	8b 45 10	 mov	 eax, DWORD PTR __Val$[ebp]
  00006	50		 push	 eax
  00007	8d 4d 0c	 lea	 ecx, DWORD PTR __Last$[ebp]
  0000a	51		 push	 ecx
  0000b	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00010	83 c4 04	 add	 esp, 4
  00013	50		 push	 eax
  00014	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00017	52		 push	 edx
  00018	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  0001d	83 c4 04	 add	 esp, 4
  00020	50		 push	 eax
  00021	e8 00 00 00 00	 call	 ??$_Fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ; std::_Fill<SmartPtr<TSource> *,SmartPtr<TSource> >
  00026	83 c4 0c	 add	 esp, 12			; 0000000cH

; 3162 : 	}

  00029	5d		 pop	 ebp
  0002a	c3		 ret	 0
??$fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ENDP ; std::fill<SmartPtr<TSource> *,SmartPtr<TSource> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
_TEXT	ENDS
;	COMDAT ??$unchecked_uninitialized_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z
_TEXT	SEGMENT
$T328690 = -2						; size = 1
$T328689 = -1						; size = 1
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z PROC ; stdext::unchecked_uninitialized_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT

; 920  : 	{	// copy _Count *_Val to raw _First, using _Al

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 921  : 		_STD _Uninit_fill_n(_First, _Count, _Val, _Al,
; 922  : 			_STD _Ptr_cat(_First, _First), _STD _Range_checked_iterator_tag());

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T328689[ebp], al
  00009	8d 4d 08	 lea	 ecx, DWORD PTR __First$[ebp]
  0000c	51		 push	 ecx
  0000d	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 ??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T328690[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T328689[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T328690[ebp]
  00025	51		 push	 ecx
  00026	8b 55 14	 mov	 edx, DWORD PTR __Al$[ebp]
  00029	52		 push	 edx
  0002a	8b 45 10	 mov	 eax, DWORD PTR __Val$[ebp]
  0002d	50		 push	 eax
  0002e	8b 4d 0c	 mov	 ecx, DWORD PTR __Count$[ebp]
  00031	51		 push	 ecx
  00032	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00035	52		 push	 edx
  00036	e8 00 00 00 00	 call	 ??$_Uninit_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0003b	83 c4 18	 add	 esp, 24			; 00000018H

; 923  : 	}

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
??$unchecked_uninitialized_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ENDP ; stdext::unchecked_uninitialized_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
_TEXT	ENDS
;	COMDAT ??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@@Z
_TEXT	SEGMENT
$T328693 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Al$ = 16						; size = 4
??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@@Z PROC ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >, COMDAT

; 224  : 	{	// destroy [_First, _Last)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 225  : 	_Destroy_range(_First, _Last, _Al, _Ptr_cat(_First, _Last));

  00004	8d 45 0c	 lea	 eax, DWORD PTR __Last$[ebp]
  00007	50		 push	 eax
  00008	8d 4d 08	 lea	 ecx, DWORD PTR __First$[ebp]
  0000b	51		 push	 ecx
  0000c	e8 00 00 00 00	 call	 ??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00011	83 c4 08	 add	 esp, 8
  00014	88 45 ff	 mov	 BYTE PTR $T328693[ebp], al
  00017	0f b6 55 ff	 movzx	 edx, BYTE PTR $T328693[ebp]
  0001b	52		 push	 edx
  0001c	8b 45 10	 mov	 eax, DWORD PTR __Al$[ebp]
  0001f	50		 push	 eax
  00020	8b 4d 0c	 mov	 ecx, DWORD PTR __Last$[ebp]
  00023	51		 push	 ecx
  00024	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00027	52		 push	 edx
  00028	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >
  0002d	83 c4 10	 add	 esp, 16			; 00000010H

; 226  : 	}

  00030	8b e5		 mov	 esp, ebp
  00032	5d		 pop	 ebp
  00033	c3		 ret	 0
??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@@Z ENDP ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$unchecked_copy@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z
_TEXT	SEGMENT
$T328698 = -3						; size = 1
$T328697 = -2						; size = 1
$T328696 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
??$unchecked_copy@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z PROC ; stdext::unchecked_copy<SmartPtr<TSource> *,SmartPtr<TSource> *>, COMDAT

; 3578 : 	{	// copy [_First, _Last) to [_Dest, ...)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 3579 : 		return (_STD _Copy_opt(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest,
; 3580 : 			_STD _Iter_random(_First, _Dest), _STD _Ptr_cat(_First, _Dest), _STD _Range_checked_iterator_tag()));

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T328696[ebp], al
  00009	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  0000c	51		 push	 ecx
  0000d	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 ??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T328697[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T328696[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T328697[ebp]
  00025	51		 push	 ecx
  00026	8d 55 10	 lea	 edx, DWORD PTR __Dest$[ebp]
  00029	52		 push	 edx
  0002a	8d 45 08	 lea	 eax, DWORD PTR __First$[ebp]
  0002d	50		 push	 eax
  0002e	8d 4d fd	 lea	 ecx, DWORD PTR $T328698[ebp]
  00031	51		 push	 ecx
  00032	e8 00 00 00 00	 call	 ??$_Iter_random@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$SmartPtr@UTSource@@@@0@Z ; std::_Iter_random<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00037	83 c4 0c	 add	 esp, 12			; 0000000cH
  0003a	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  0003d	52		 push	 edx
  0003e	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  00041	50		 push	 eax
  00042	8d 4d 0c	 lea	 ecx, DWORD PTR __Last$[ebp]
  00045	51		 push	 ecx
  00046	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  0004b	83 c4 04	 add	 esp, 4
  0004e	50		 push	 eax
  0004f	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00052	52		 push	 edx
  00053	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00058	83 c4 04	 add	 esp, 4
  0005b	50		 push	 eax
  0005c	e8 00 00 00 00	 call	 ??$_Copy_opt@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00061	83 c4 18	 add	 esp, 24			; 00000018H

; 3581 : 	}

  00064	8b e5		 mov	 esp, ebp
  00066	5d		 pop	 ebp
  00067	c3		 ret	 0
??$unchecked_copy@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ENDP ; stdext::unchecked_copy<SmartPtr<TSource> *,SmartPtr<TSource> *>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Ufill, COMDAT
; _this$ = ecx

; 1251 : 		{	// copy initializing _Count * _Val, using allocator

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 1252 : 		_STDEXT unchecked_uninitialized_fill_n(_Ptr, _Count, _Val, this->_Alval);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 c0 08	 add	 eax, 8
  0000d	50		 push	 eax
  0000e	8b 4d 10	 mov	 ecx, DWORD PTR __Val$[ebp]
  00011	51		 push	 ecx
  00012	8b 55 0c	 mov	 edx, DWORD PTR __Count$[ebp]
  00015	52		 push	 edx
  00016	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  00019	50		 push	 eax
  0001a	e8 00 00 00 00	 call	 ??$unchecked_uninitialized_fill_n@PAV?$SmartPtr@UTSource@@@@IV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAXPAV?$SmartPtr@UTSource@@@@IABV1@AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ; stdext::unchecked_uninitialized_fill_n<SmartPtr<TSource> *,unsigned int,SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0001f	83 c4 10	 add	 esp, 16			; 00000010H

; 1253 : 		return (_Ptr + _Count);

  00022	8b 4d 0c	 mov	 ecx, DWORD PTR __Count$[ebp]
  00025	8b 55 08	 mov	 edx, DWORD PTR __Ptr$[ebp]
  00028	8d 04 ca	 lea	 eax, DWORD PTR [edx+ecx*8]

; 1254 : 		}

  0002b	8b e5		 mov	 esp, ebp
  0002d	5d		 pop	 ebp
  0002e	c2 0c 00	 ret	 12			; 0000000cH
?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Ufill
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy, COMDAT
; _this$ = ecx

; 1123 : 		{	// destroy [_First, _Last) using allocator

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 1124 : 		_Destroy_range(_First, _Last, this->_Alval);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 c0 08	 add	 eax, 8
  0000d	50		 push	 eax
  0000e	8b 4d 0c	 mov	 ecx, DWORD PTR __Last$[ebp]
  00011	51		 push	 ecx
  00012	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00015	52		 push	 edx
  00016	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAXPAV?$SmartPtr@UTSource@@@@0AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@@Z ; std::_Destroy_range<std::allocator<SmartPtr<TSource> > >
  0001b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1125 : 		}

  0001e	8b e5		 mov	 esp, ebp
  00020	5d		 pop	 ebp
  00021	c2 08 00	 ret	 8
?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@0@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
__Ptr$174640 = -20					; size = 4
__Last$ = -16						; size = 8
__First$ = -8						; size = 8
___$ReturnUdt$ = 8					; size = 4
__First_arg$ = 12					; size = 8
__Last_arg$ = 20					; size = 8
?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@0@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase, COMDAT
; _this$ = ecx

; 1033 : 		{	// erase [_First, _Last)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 1034 : 		iterator _First = _Make_iter(_First_arg);

  00009	8b 45 10	 mov	 eax, DWORD PTR __First_arg$[ebp+4]
  0000c	50		 push	 eax
  0000d	8b 4d 0c	 mov	 ecx, DWORD PTR __First_arg$[ebp]
  00010	51		 push	 ecx
  00011	8d 55 f8	 lea	 edx, DWORD PTR __First$[ebp]
  00014	52		 push	 edx
  00015	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	e8 00 00 00 00	 call	 ?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Make_iter

; 1035 : 		iterator _Last = _Make_iter(_Last_arg);

  0001d	8b 45 18	 mov	 eax, DWORD PTR __Last_arg$[ebp+4]
  00020	50		 push	 eax
  00021	8b 4d 14	 mov	 ecx, DWORD PTR __Last_arg$[ebp]
  00024	51		 push	 ecx
  00025	8d 55 f0	 lea	 edx, DWORD PTR __Last$[ebp]
  00028	52		 push	 edx
  00029	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002c	e8 00 00 00 00	 call	 ?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Make_iter

; 1036 : 
; 1037 : 		if (_First != _Last)

  00031	8d 45 f0	 lea	 eax, DWORD PTR __Last$[ebp]
  00034	50		 push	 eax
  00035	8d 4d f8	 lea	 ecx, DWORD PTR __First$[ebp]
  00038	e8 00 00 00 00	 call	 ??9?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator!=
  0003d	0f b6 c8	 movzx	 ecx, al
  00040	85 c9		 test	 ecx, ecx
  00042	74 36		 je	 SHORT $LN1@erase@27

; 1038 : 			{	// worth doing, copy down over hole
; 1039 : 
; 1040 :  #if _HAS_ITERATOR_DEBUGGING
; 1041 : 			if (_Last < _First || _First._Mycont != this
; 1042 : 				|| _First._Myptr < _Myfirst || _Mylast < _Last._Myptr)
; 1043 : 				_DEBUG_ERROR("vector erase iterator outside range");
; 1044 : 			pointer _Ptr = _STDEXT unchecked_copy(_VEC_ITER_BASE(_Last), _Mylast,
; 1045 : 				_VEC_ITER_BASE(_First));
; 1046 : 			_Orphan_range(_First._Myptr, _Mylast);
; 1047 : 
; 1048 :  #else /* _HAS_ITERATOR_DEBUGGING */
; 1049 : 			pointer _Ptr = _STDEXT unchecked_copy(_VEC_ITER_BASE(_Last), _Mylast,
; 1050 : 				_VEC_ITER_BASE(_First));

  00044	8b 55 fc	 mov	 edx, DWORD PTR __First$[ebp+4]
  00047	52		 push	 edx
  00048	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0004b	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0004e	51		 push	 ecx
  0004f	8b 55 f4	 mov	 edx, DWORD PTR __Last$[ebp+4]
  00052	52		 push	 edx
  00053	e8 00 00 00 00	 call	 ??$unchecked_copy@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ; stdext::unchecked_copy<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00058	83 c4 0c	 add	 esp, 12			; 0000000cH
  0005b	89 45 ec	 mov	 DWORD PTR __Ptr$174640[ebp], eax

; 1051 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1052 : 
; 1053 : 			_Destroy(_Ptr, _Mylast);

  0005e	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00061	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00064	51		 push	 ecx
  00065	8b 55 ec	 mov	 edx, DWORD PTR __Ptr$174640[ebp]
  00068	52		 push	 edx
  00069	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0006c	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy

; 1054 : 			_Mylast = _Ptr;

  00071	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00074	8b 4d ec	 mov	 ecx, DWORD PTR __Ptr$174640[ebp]
  00077	89 48 10	 mov	 DWORD PTR [eax+16], ecx
$LN1@erase@27:

; 1055 : 			}
; 1056 : #if _HAS_ITERATOR_DEBUGGING
; 1057 :         return (iterator(_First._Myptr, this));
; 1058 : #else
; 1059 : 		return (_First);

  0007a	8b 55 08	 mov	 edx, DWORD PTR ___$ReturnUdt$[ebp]
  0007d	8b 45 f8	 mov	 eax, DWORD PTR __First$[ebp]
  00080	89 02		 mov	 DWORD PTR [edx], eax
  00082	8b 4d fc	 mov	 ecx, DWORD PTR __First$[ebp+4]
  00085	89 4a 04	 mov	 DWORD PTR [edx+4], ecx
  00088	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 1060 : #endif
; 1061 : 		}

  0008b	8b e5		 mov	 esp, ebp
  0008d	5d		 pop	 ebp
  0008e	c2 14 00	 ret	 20			; 00000014H
?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@0@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?clear@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXXZ
_TEXT	SEGMENT
_this$ = -44						; size = 4
$T328711 = -40						; size = 8
$T328710 = -32						; size = 8
$T328709 = -24						; size = 8
$T328708 = -16						; size = 8
$T328707 = -8						; size = 8
?clear@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXXZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::clear, COMDAT
; _this$ = ecx

; 1064 : 		{	// erase all

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 2c	 sub	 esp, 44			; 0000002cH
  00006	89 4d d4	 mov	 DWORD PTR _this$[ebp], ecx

; 1065 : 		erase(begin(), end());

  00009	8d 45 f0	 lea	 eax, DWORD PTR $T328708[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?end@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::end
  00015	8b 08		 mov	 ecx, DWORD PTR [eax]
  00017	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0001a	89 4d f8	 mov	 DWORD PTR $T328707[ebp], ecx
  0001d	89 55 fc	 mov	 DWORD PTR $T328707[ebp+4], edx
  00020	8d 45 e0	 lea	 eax, DWORD PTR $T328710[ebp]
  00023	50		 push	 eax
  00024	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00027	e8 00 00 00 00	 call	 ?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin
  0002c	8b 08		 mov	 ecx, DWORD PTR [eax]
  0002e	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00031	89 4d e8	 mov	 DWORD PTR $T328709[ebp], ecx
  00034	89 55 ec	 mov	 DWORD PTR $T328709[ebp+4], edx
  00037	8b 45 fc	 mov	 eax, DWORD PTR $T328707[ebp+4]
  0003a	50		 push	 eax
  0003b	8b 4d f8	 mov	 ecx, DWORD PTR $T328707[ebp]
  0003e	51		 push	 ecx
  0003f	8b 55 ec	 mov	 edx, DWORD PTR $T328709[ebp+4]
  00042	52		 push	 edx
  00043	8b 45 e8	 mov	 eax, DWORD PTR $T328709[ebp]
  00046	50		 push	 eax
  00047	8d 4d d8	 lea	 ecx, DWORD PTR $T328711[ebp]
  0004a	51		 push	 ecx
  0004b	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0004e	e8 00 00 00 00	 call	 ?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase

; 1066 : 		}

  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
?clear@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXXZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::clear
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
__Where$ = 12						; size = 8
?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase, COMDAT
; _this$ = ecx

; 1022 : 		{	// erase element at where

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 1023 : 		_STDEXT unchecked_copy(_VEC_ITER_BASE(_Where) + 1, _Mylast,
; 1024 : 			_VEC_ITER_BASE(_Where));

  00007	8b 45 10	 mov	 eax, DWORD PTR __Where$[ebp+4]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00011	52		 push	 edx
  00012	8b 45 10	 mov	 eax, DWORD PTR __Where$[ebp+4]
  00015	83 c0 08	 add	 eax, 8
  00018	50		 push	 eax
  00019	e8 00 00 00 00	 call	 ??$unchecked_copy@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ; stdext::unchecked_copy<SmartPtr<TSource> *,SmartPtr<TSource> *>
  0001e	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1025 : 		_Destroy(_Mylast - 1, _Mylast);

  00021	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00024	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00027	52		 push	 edx
  00028	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0002e	83 e9 08	 sub	 ecx, 8
  00031	51		 push	 ecx
  00032	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy

; 1026 : 		--_Mylast;

  0003a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0003d	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00040	83 e8 08	 sub	 eax, 8
  00043	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	89 41 10	 mov	 DWORD PTR [ecx+16], eax

; 1027 : 		return (_Make_iter(_Where));

  00049	8b 55 10	 mov	 edx, DWORD PTR __Where$[ebp+4]
  0004c	52		 push	 edx
  0004d	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp]
  00050	50		 push	 eax
  00051	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00054	51		 push	 ecx
  00055	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00058	e8 00 00 00 00	 call	 ?_Make_iter@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Make_iter
  0005d	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 1028 : 		}

  00060	8b e5		 mov	 esp, ebp
  00062	5d		 pop	 ebp
  00063	c2 0c 00	 ret	 12			; 0000000cH
?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
xdata$x	SEGMENT
__unwindtable$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0
__tryblocktable$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2
__ehfuncinfo$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__Next$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >, COMDAT

; 122  : 	{	// copy [_First, _Last) to raw _Dest, using _Al, arbitrary type

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	51		 push	 ecx
  00013	53		 push	 ebx
  00014	56		 push	 esi
  00015	57		 push	 edi
  00016	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001b	33 c5		 xor	 eax, ebp
  0001d	50		 push	 eax
  0001e	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00021	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00027	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 123  : 	_DEBUG_RANGE(_First, _Last);
; 124  : 	_DEBUG_POINTER(_Dest);
; 125  : 	_FwdIt _Next = _Dest;

  0002a	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  0002d	89 45 ec	 mov	 DWORD PTR __Next$[ebp], eax

; 126  : 
; 127  : 	_TRY_BEGIN

  00030	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 128  : 	for (; _First != _Last; ++_Dest, ++_First)

  00037	eb 12		 jmp	 SHORT $LN6@Uninit_cop@40
$LN5@Uninit_cop@40:
  00039	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  0003c	83 c1 08	 add	 ecx, 8
  0003f	89 4d 10	 mov	 DWORD PTR __Dest$[ebp], ecx
  00042	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00045	83 c2 08	 add	 edx, 8
  00048	89 55 08	 mov	 DWORD PTR __First$[ebp], edx
$LN6@Uninit_cop@40:
  0004b	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  0004e	3b 45 0c	 cmp	 eax, DWORD PTR __Last$[ebp]
  00051	74 12		 je	 SHORT $LN4@Uninit_cop@40

; 129  : 		_Al.construct(_Dest, *_First);

  00053	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00056	51		 push	 ecx
  00057	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  0005a	52		 push	 edx
  0005b	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  0005e	e8 00 00 00 00	 call	 ?construct@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@ABV3@@Z ; std::allocator<SmartPtr<TSource> >::construct
  00063	eb d4		 jmp	 SHORT $LN5@Uninit_cop@40
$LN4@Uninit_cop@40:
  00065	eb 37		 jmp	 SHORT $LN10@Uninit_cop@40
__catch$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0:

; 130  : 	_CATCH_ALL
; 131  : 	for (; _Next != _Dest; ++_Next)

  00067	eb 09		 jmp	 SHORT $LN3@Uninit_cop@40
$LN2@Uninit_cop@40:
  00069	8b 45 ec	 mov	 eax, DWORD PTR __Next$[ebp]
  0006c	83 c0 08	 add	 eax, 8
  0006f	89 45 ec	 mov	 DWORD PTR __Next$[ebp], eax
$LN3@Uninit_cop@40:
  00072	8b 4d ec	 mov	 ecx, DWORD PTR __Next$[ebp]
  00075	3b 4d 10	 cmp	 ecx, DWORD PTR __Dest$[ebp]
  00078	74 0e		 je	 SHORT $LN1@Uninit_cop@40

; 132  : 		_Al.destroy(_Next);

  0007a	8b 55 ec	 mov	 edx, DWORD PTR __Next$[ebp]
  0007d	52		 push	 edx
  0007e	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  00081	e8 00 00 00 00	 call	 ?destroy@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@@Z ; std::allocator<SmartPtr<TSource> >::destroy
  00086	eb e1		 jmp	 SHORT $LN2@Uninit_cop@40
$LN1@Uninit_cop@40:

; 133  : 	_RERAISE;

  00088	6a 00		 push	 0
  0008a	6a 00		 push	 0
  0008c	e8 00 00 00 00	 call	 __CxxThrowException@8

; 134  : 	_CATCH_END

  00091	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00098	b8 00 00 00 00	 mov	 eax, __tryend$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$1
  0009d	c3		 ret	 0
$LN10@Uninit_cop@40:
  0009e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$1:

; 135  : 	return (_Dest);

  000a5	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
$LN9@Uninit_cop@40:

; 136  : 	}

  000a8	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000ab	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000b2	59		 pop	 ecx
  000b3	5f		 pop	 edi
  000b4	5e		 pop	 esi
  000b5	5b		 pop	 ebx
  000b6	8b e5		 mov	 esp, ebp
  000b8	5d		 pop	 ebp
  000b9	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z:
  00000	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00004	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00007	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  0000a	33 c8		 xor	 ecx, eax
  0000c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00011	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
;	COMDAT ??$unchecked_uninitialized_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z
_TEXT	SEGMENT
$T332974 = -2						; size = 1
$T332973 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z PROC ; stdext::unchecked_uninitialized_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >, COMDAT

; 809  : 	{	// copy [_First, _Last) to raw _Dest, using _Al

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 810  : 		return (_STD _Uninit_copy(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest, _Al,
; 811  : 			_STD _Ptr_cat(_First, _Dest), _STD _Range_checked_iterator_tag()));

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T332973[ebp], al
  00009	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  0000c	51		 push	 ecx
  0000d	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 ??$_Ptr_cat@PAV?$SmartPtr@UTSource@@@@PAV1@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$SmartPtr@UTSource@@@@0@Z ; std::_Ptr_cat<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T332974[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T332973[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T332974[ebp]
  00025	51		 push	 ecx
  00026	8b 55 14	 mov	 edx, DWORD PTR __Al$[ebp]
  00029	52		 push	 edx
  0002a	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  0002d	50		 push	 eax
  0002e	8d 4d 0c	 lea	 ecx, DWORD PTR __Last$[ebp]
  00031	51		 push	 ecx
  00032	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00037	83 c4 04	 add	 esp, 4
  0003a	50		 push	 eax
  0003b	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  0003e	52		 push	 edx
  0003f	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00044	83 c4 04	 add	 esp, 4
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ??$_Uninit_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
  0004d	83 c4 18	 add	 esp, 24			; 00000018H

; 812  : 	}

  00050	8b e5		 mov	 esp, ebp
  00052	5d		 pop	 ebp
  00053	c3		 ret	 0
??$unchecked_uninitialized_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ENDP ; stdext::unchecked_uninitialized_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Uninit_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> >,std::_Undefined_move_tag>, COMDAT

; 204  : 	{	// move defaults to copy if there is not a more effecient way

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 205  : 	return _STDEXT unchecked_uninitialized_copy(_First, _Last, _Dest, _Al);

  00003	8b 45 14	 mov	 eax, DWORD PTR __Al$[ebp]
  00006	50		 push	 eax
  00007	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  0000a	51		 push	 ecx
  0000b	8b 55 0c	 mov	 edx, DWORD PTR __Last$[ebp]
  0000e	52		 push	 edx
  0000f	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00012	50		 push	 eax
  00013	e8 00 00 00 00	 call	 ??$unchecked_uninitialized_copy@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ; stdext::unchecked_uninitialized_copy<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
  00018	83 c4 10	 add	 esp, 16			; 00000010H

; 206  : 	}

  0001b	5d		 pop	 ebp
  0001c	c3		 ret	 0
??$_Uninit_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> >,std::_Undefined_move_tag>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Unchecked_uninitialized_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z
_TEXT	SEGMENT
$T332980 = -2						; size = 1
$T332979 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$_Unchecked_uninitialized_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z PROC ; stdext::_Unchecked_uninitialized_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >, COMDAT

; 849  : 	{	// move [_First, _Last) to raw _Dest, using _Al

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 850  : 		return (_STD _Uninit_move(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest, _Al,
; 851  : 			_STD _Move_cat(_Dest), _STD _Range_checked_iterator_tag()));

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T332979[ebp], al
  00009	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  0000c	51		 push	 ecx
  0000d	e8 00 00 00 00	 call	 ??$_Move_cat@PAV?$SmartPtr@UTSource@@@@@std@@YA?AU_Undefined_move_tag@0@ABQAV?$SmartPtr@UTSource@@@@@Z ; std::_Move_cat<SmartPtr<TSource> *>
  00012	83 c4 04	 add	 esp, 4
  00015	88 45 fe	 mov	 BYTE PTR $T332980[ebp], al
  00018	0f b6 55 ff	 movzx	 edx, BYTE PTR $T332979[ebp]
  0001c	52		 push	 edx
  0001d	0f b6 45 fe	 movzx	 eax, BYTE PTR $T332980[ebp]
  00021	50		 push	 eax
  00022	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  00025	51		 push	 ecx
  00026	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  00029	52		 push	 edx
  0002a	8d 45 0c	 lea	 eax, DWORD PTR __Last$[ebp]
  0002d	50		 push	 eax
  0002e	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00033	83 c4 04	 add	 esp, 4
  00036	50		 push	 eax
  00037	8d 4d 08	 lea	 ecx, DWORD PTR __First$[ebp]
  0003a	51		 push	 ecx
  0003b	e8 00 00 00 00	 call	 ??$_Checked_base@PAV?$SmartPtr@UTSource@@@@@std@@YAPAV?$SmartPtr@UTSource@@@@AAPAV1@@Z ; std::_Checked_base<SmartPtr<TSource> *>
  00040	83 c4 04	 add	 esp, 4
  00043	50		 push	 eax
  00044	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@U_Undefined_move_tag@3@@std@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> >,std::_Undefined_move_tag>
  00049	83 c4 18	 add	 esp, 24			; 00000018H

; 852  : 	}

  0004c	8b e5		 mov	 esp, ebp
  0004e	5d		 pop	 ebp
  0004f	c3		 ret	 0
??$_Unchecked_uninitialized_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ENDP ; stdext::_Unchecked_uninitialized_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Ptr$ = 16						; size = 4
??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>, COMDAT
; _this$ = ecx

; 1150 : 		pointer _Umove(_Iter _First, _Iter _Last, pointer _Ptr)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 1151 : 		{	// move initializing [_First, _Last), using allocator
; 1152 : 		return (_STDEXT _Unchecked_uninitialized_move(_First, _Last,
; 1153 : 			_Ptr, this->_Alval));

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 c0 08	 add	 eax, 8
  0000d	50		 push	 eax
  0000e	8b 4d 10	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  00011	51		 push	 ecx
  00012	8b 55 0c	 mov	 edx, DWORD PTR __Last$[ebp]
  00015	52		 push	 edx
  00016	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00019	50		 push	 eax
  0001a	e8 00 00 00 00	 call	 ??$_Unchecked_uninitialized_move@PAV?$SmartPtr@UTSource@@@@PAV1@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00AAV?$allocator@V?$SmartPtr@UTSource@@@@@std@@@Z ; stdext::_Unchecked_uninitialized_move<SmartPtr<TSource> *,SmartPtr<TSource> *,std::allocator<SmartPtr<TSource> > >
  0001f	83 c4 10	 add	 esp, 16			; 00000010H

; 1154 : 		}

  00022	8b e5		 mov	 esp, ebp
  00024	5d		 pop	 ebp
  00025	c2 0c 00	 ret	 12			; 0000000cH
??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?_Tidy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?_Tidy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXXZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Tidy, COMDAT
; _this$ = ecx

; 1128 : 		{	// free all storage

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 1129 : 		if (_Myfirst != 0)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  0000e	74 38		 je	 SHORT $LN1@Tidy@47

; 1130 : 			{	// something to free, destroy and deallocate it
; 1131 : 
; 1132 :  #if _HAS_ITERATOR_DEBUGGING
; 1133 : 			this->_Orphan_all();
; 1134 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1135 : 
; 1136 : 			_Destroy(_Myfirst, _Mylast);

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00016	52		 push	 edx
  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  0001d	51		 push	 ecx
  0001e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00021	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy

; 1137 : 			this->_Alval.deallocate(_Myfirst, _Myend - _Myfirst);

  00026	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00029	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002c	8b 4a 14	 mov	 ecx, DWORD PTR [edx+20]
  0002f	2b 48 0c	 sub	 ecx, DWORD PTR [eax+12]
  00032	c1 f9 03	 sar	 ecx, 3
  00035	51		 push	 ecx
  00036	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00039	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0003c	50		 push	 eax
  0003d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00040	83 c1 08	 add	 ecx, 8
  00043	e8 00 00 00 00	 call	 ?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::deallocate
$LN1@Tidy@47:

; 1138 : 			}
; 1139 : 		_Myfirst = 0, _Mylast = 0, _Myend = 0;

  00048	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], 0
  00052	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00055	c7 42 10 00 00
	00 00		 mov	 DWORD PTR [edx+16], 0
  0005c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0005f	c7 40 14 00 00
	00 00		 mov	 DWORD PTR [eax+20], 0

; 1140 : 		}

  00066	8b e5		 mov	 esp, ebp
  00068	5d		 pop	 ebp
  00069	c3		 ret	 0
?_Tidy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXXZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Tidy
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ$0
__ehfuncinfo$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 558  : 		{	// destroy the object

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 559  : 		_Tidy();

  0002d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00030	e8 00 00 00 00	 call	 ?_Tidy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Tidy

; 560  : 		}

  00035	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0003c	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0003f	e8 00 00 00 00	 call	 ??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  00044	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00047	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0004e	59		 pop	 ecx
  0004f	8b e5		 mov	 esp, ebp
  00051	5d		 pop	 ebp
  00052	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
__ehhandler$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ$0
__ehfuncinfo$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ
_TEXT	SEGMENT
$T337518 = -80						; size = 28
$T337517 = -52						; size = 40
__$EHRec$ = -12						; size = 12
?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Xlen, COMDAT

; 1257 : 		{	// report a length_error

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 44	 sub	 esp, 68			; 00000044H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 1258 : 		_THROW(length_error, "vector<T> too long");

  00025	68 00 00 00 00	 push	 OFFSET ??_C@_0BD@OLBABOEK@vector?$DMT?$DO?5too?5long?$AA@
  0002a	8d 4d b0	 lea	 ecx, DWORD PTR $T337518[ebp]
  0002d	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  00032	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00039	8d 45 b0	 lea	 eax, DWORD PTR $T337518[ebp]
  0003c	50		 push	 eax
  0003d	8d 4d cc	 lea	 ecx, DWORD PTR $T337517[ebp]
  00040	e8 00 00 00 00	 call	 ??0length_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::length_error::length_error
  00045	68 00 00 00 00	 push	 OFFSET __TI3?AVlength_error@std@@
  0004a	8d 4d cc	 lea	 ecx, DWORD PTR $T337517[ebp]
  0004d	51		 push	 ecx
  0004e	e8 00 00 00 00	 call	 __CxxThrowException@8
  00053	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005a	8d 4d b0	 lea	 ecx, DWORD PTR $T337518[ebp]
  0005d	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$LN2@Xlen@17:

; 1259 : 		}

  00062	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00065	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006c	59		 pop	 ecx
  0006d	8b e5		 mov	 esp, ebp
  0006f	5d		 pop	 ebp
  00070	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ$0:
  00000	8d 4d b0	 lea	 ecx, DWORD PTR $T337518[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a b8	 mov	 ecx, DWORD PTR [edx-72]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Xlen
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$4
	DD	02H
	DD	00H
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$5
__catchsym$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$6 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$0
__catchsym$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$7 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$2
__tryblocktable$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$6
	DD	03H
	DD	03H
	DD	04H
	DD	01H
	DD	FLAT:__catchsym$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$7
__ehfuncinfo$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z
	DD	02H
	DD	FLAT:__tryblocktable$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z
_TEXT	SEGMENT
tv84 = -56						; size = 4
_this$ = -52						; size = 4
__Tmp$174901 = -48					; size = 8
__Oldend$174902 = -40					; size = 4
__Tmp$174891 = -36					; size = 8
__Newvec$174879 = -28					; size = 4
__Ptr$174880 = -24					; size = 4
__Capacity$ = -20					; size = 4
__$EHRec$ = -16						; size = 16
__Where$ = 8						; size = 8
__Count$ = 16						; size = 4
__Val$ = 20						; size = 4
?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Insert_n, COMDAT
; _this$ = ecx

; 1158 : 		{	// insert _Count * _Val at _Where

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	83 ec 28	 sub	 esp, 40			; 00000028H
  00015	53		 push	 ebx
  00016	56		 push	 esi
  00017	57		 push	 edi
  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001d	33 c5		 xor	 eax, ebp
  0001f	50		 push	 eax
  00020	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00023	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00029	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp
  0002c	89 4d cc	 mov	 DWORD PTR _this$[ebp], ecx

; 1159 : 
; 1160 :  #if _HAS_ITERATOR_DEBUGGING
; 1161 : 		if (_Where._Mycont != this
; 1162 : 			|| _Where._Myptr < _Myfirst || _Mylast < _Where._Myptr)
; 1163 : 			_DEBUG_ERROR("vector insert iterator outside range");
; 1164 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1165 : 
; 1166 : 		size_type _Capacity = capacity();

  0002f	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	e8 00 00 00 00	 call	 ?capacity@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::capacity
  00037	89 45 ec	 mov	 DWORD PTR __Capacity$[ebp], eax

; 1167 : 
; 1168 : 		if (_Count == 0)

  0003a	83 7d 10 00	 cmp	 DWORD PTR __Count$[ebp], 0
  0003e	75 05		 jne	 SHORT $LN12@Insert_n@12
  00040	e9 1e 03 00 00	 jmp	 $LN14@Insert_n@12
$LN12@Insert_n@12:

; 1169 : 			;
; 1170 : 		else if (max_size() - size() < _Count)

  00045	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00048	e8 00 00 00 00	 call	 ?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::max_size
  0004d	8b f0		 mov	 esi, eax
  0004f	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00052	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00057	2b f0		 sub	 esi, eax
  00059	3b 75 10	 cmp	 esi, DWORD PTR __Count$[ebp]
  0005c	73 0a		 jae	 SHORT $LN10@Insert_n@12

; 1171 : 			_Xlen();	// result too long

  0005e	e8 00 00 00 00	 call	 ?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Xlen
  00063	e9 fb 02 00 00	 jmp	 $LN14@Insert_n@12
$LN10@Insert_n@12:

; 1172 : 		else if (_Capacity < size() + _Count)

  00068	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006b	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00070	03 45 10	 add	 eax, DWORD PTR __Count$[ebp]
  00073	39 45 ec	 cmp	 DWORD PTR __Capacity$[ebp], eax
  00076	0f 83 70 01 00
	00		 jae	 $LN8@Insert_n@12

; 1173 : 			{	// not enough room, reallocate
; 1174 : 			_Capacity = max_size() - _Capacity / 2 < _Capacity
; 1175 : 				? 0 : _Capacity + _Capacity / 2;	// try to grow by 50%

  0007c	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	e8 00 00 00 00	 call	 ?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::max_size
  00084	8b 4d ec	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  00087	d1 e9		 shr	 ecx, 1
  00089	2b c1		 sub	 eax, ecx
  0008b	3b 45 ec	 cmp	 eax, DWORD PTR __Capacity$[ebp]
  0008e	73 09		 jae	 SHORT $LN15@Insert_n@12
  00090	c7 45 c8 00 00
	00 00		 mov	 DWORD PTR tv84[ebp], 0
  00097	eb 0b		 jmp	 SHORT $LN16@Insert_n@12
$LN15@Insert_n@12:
  00099	8b 55 ec	 mov	 edx, DWORD PTR __Capacity$[ebp]
  0009c	d1 ea		 shr	 edx, 1
  0009e	03 55 ec	 add	 edx, DWORD PTR __Capacity$[ebp]
  000a1	89 55 c8	 mov	 DWORD PTR tv84[ebp], edx
$LN16@Insert_n@12:
  000a4	8b 45 c8	 mov	 eax, DWORD PTR tv84[ebp]
  000a7	89 45 ec	 mov	 DWORD PTR __Capacity$[ebp], eax

; 1176 : 			if (_Capacity < size() + _Count)

  000aa	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ad	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  000b2	03 45 10	 add	 eax, DWORD PTR __Count$[ebp]
  000b5	39 45 ec	 cmp	 DWORD PTR __Capacity$[ebp], eax
  000b8	73 0e		 jae	 SHORT $LN7@Insert_n@12

; 1177 : 				_Capacity = size() + _Count;

  000ba	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  000bd	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  000c2	03 45 10	 add	 eax, DWORD PTR __Count$[ebp]
  000c5	89 45 ec	 mov	 DWORD PTR __Capacity$[ebp], eax
$LN7@Insert_n@12:

; 1178 : 			pointer _Newvec = this->_Alval.allocate(_Capacity);

  000c8	8b 4d ec	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  000cb	51		 push	 ecx
  000cc	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  000cf	83 c1 08	 add	 ecx, 8
  000d2	e8 00 00 00 00	 call	 ?allocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::allocate
  000d7	89 45 e4	 mov	 DWORD PTR __Newvec$174879[ebp], eax

; 1179 : 			pointer _Ptr = _Newvec;

  000da	8b 55 e4	 mov	 edx, DWORD PTR __Newvec$174879[ebp]
  000dd	89 55 e8	 mov	 DWORD PTR __Ptr$174880[ebp], edx

; 1180 : 
; 1181 : 			_TRY_BEGIN

  000e0	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 1182 : 			_Ptr = _Umove(_Myfirst, _VEC_ITER_BASE(_Where),
; 1183 : 				_Newvec);	// copy prefix

  000e7	8b 45 e4	 mov	 eax, DWORD PTR __Newvec$174879[ebp]
  000ea	50		 push	 eax
  000eb	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  000ee	51		 push	 ecx
  000ef	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  000f2	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  000f5	50		 push	 eax
  000f6	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  000f9	e8 00 00 00 00	 call	 ??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>
  000fe	89 45 e8	 mov	 DWORD PTR __Ptr$174880[ebp], eax

; 1184 : 			_Ptr = _Ufill(_Ptr, _Count, _Val);	// add new stuff

  00101	8b 4d 14	 mov	 ecx, DWORD PTR __Val$[ebp]
  00104	51		 push	 ecx
  00105	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  00108	52		 push	 edx
  00109	8b 45 e8	 mov	 eax, DWORD PTR __Ptr$174880[ebp]
  0010c	50		 push	 eax
  0010d	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00110	e8 00 00 00 00	 call	 ?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Ufill
  00115	89 45 e8	 mov	 DWORD PTR __Ptr$174880[ebp], eax

; 1185 : 			_Umove(_VEC_ITER_BASE(_Where), _Mylast, _Ptr);	// copy suffix

  00118	8b 4d e8	 mov	 ecx, DWORD PTR __Ptr$174880[ebp]
  0011b	51		 push	 ecx
  0011c	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  0011f	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00122	50		 push	 eax
  00123	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00126	51		 push	 ecx
  00127	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0012a	e8 00 00 00 00	 call	 ??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>
  0012f	eb 39		 jmp	 SHORT $LN17@Insert_n@12
__catch$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$0:

; 1186 : 			_CATCH_ALL
; 1187 : 			_Destroy(_Newvec, _Ptr);

  00131	8b 55 e8	 mov	 edx, DWORD PTR __Ptr$174880[ebp]
  00134	52		 push	 edx
  00135	8b 45 e4	 mov	 eax, DWORD PTR __Newvec$174879[ebp]
  00138	50		 push	 eax
  00139	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0013c	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy

; 1188 : 			this->_Alval.deallocate(_Newvec, _Capacity);

  00141	8b 4d ec	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  00144	51		 push	 ecx
  00145	8b 55 e4	 mov	 edx, DWORD PTR __Newvec$174879[ebp]
  00148	52		 push	 edx
  00149	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0014c	83 c1 08	 add	 ecx, 8
  0014f	e8 00 00 00 00	 call	 ?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::deallocate

; 1189 : 			_RERAISE;

  00154	6a 00		 push	 0
  00156	6a 00		 push	 0
  00158	e8 00 00 00 00	 call	 __CxxThrowException@8

; 1190 : 			_CATCH_END

  0015d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00164	b8 00 00 00 00	 mov	 eax, __tryend$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$1
  00169	c3		 ret	 0
$LN17@Insert_n@12:
  0016a	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$1:

; 1191 : 
; 1192 : 			_Count += size();

  00171	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00174	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00179	03 45 10	 add	 eax, DWORD PTR __Count$[ebp]
  0017c	89 45 10	 mov	 DWORD PTR __Count$[ebp], eax

; 1193 : 			if (_Myfirst != 0)

  0017f	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  00182	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  00186	74 38		 je	 SHORT $LN5@Insert_n@12

; 1194 : 				{	// destroy and deallocate old array
; 1195 : 				_Destroy(_Myfirst, _Mylast);

  00188	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0018b	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  0018e	52		 push	 edx
  0018f	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  00192	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00195	51		 push	 ecx
  00196	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00199	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy

; 1196 : 				this->_Alval.deallocate(_Myfirst, _Myend - _Myfirst);

  0019e	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  001a1	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  001a4	8b 4a 14	 mov	 ecx, DWORD PTR [edx+20]
  001a7	2b 48 0c	 sub	 ecx, DWORD PTR [eax+12]
  001aa	c1 f9 03	 sar	 ecx, 3
  001ad	51		 push	 ecx
  001ae	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  001b1	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  001b4	50		 push	 eax
  001b5	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  001b8	83 c1 08	 add	 ecx, 8
  001bb	e8 00 00 00 00	 call	 ?deallocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEXPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::deallocate
$LN5@Insert_n@12:

; 1197 : 				}
; 1198 : 
; 1199 :  #if _HAS_ITERATOR_DEBUGGING
; 1200 : 			this->_Orphan_all();
; 1201 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1202 : 
; 1203 : 			_Myend = _Newvec + _Capacity;

  001c0	8b 4d ec	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  001c3	8b 55 e4	 mov	 edx, DWORD PTR __Newvec$174879[ebp]
  001c6	8d 04 ca	 lea	 eax, DWORD PTR [edx+ecx*8]
  001c9	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  001cc	89 41 14	 mov	 DWORD PTR [ecx+20], eax

; 1204 : 			_Mylast = _Newvec + _Count;

  001cf	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  001d2	8b 45 e4	 mov	 eax, DWORD PTR __Newvec$174879[ebp]
  001d5	8d 0c d0	 lea	 ecx, DWORD PTR [eax+edx*8]
  001d8	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  001db	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 1205 : 			_Myfirst = _Newvec;

  001de	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  001e1	8b 4d e4	 mov	 ecx, DWORD PTR __Newvec$174879[ebp]
  001e4	89 48 0c	 mov	 DWORD PTR [eax+12], ecx
  001e7	e9 77 01 00 00	 jmp	 $LN14@Insert_n@12
$LN8@Insert_n@12:

; 1206 : 			}
; 1207 : 		else if ((size_type)(_Mylast - _VEC_ITER_BASE(_Where)) < _Count)

  001ec	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  001ef	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  001f2	2b 45 0c	 sub	 eax, DWORD PTR __Where$[ebp+4]
  001f5	c1 f8 03	 sar	 eax, 3
  001f8	3b 45 10	 cmp	 eax, DWORD PTR __Count$[ebp]
  001fb	0f 83 dc 00 00
	00		 jae	 $LN3@Insert_n@12

; 1208 : 			{	// new stuff spills off end
; 1209 : 			_Ty _Tmp = _Val;	// in case _Val is in sequence

  00201	8b 4d 14	 mov	 ecx, DWORD PTR __Val$[ebp]
  00204	51		 push	 ecx
  00205	8d 4d dc	 lea	 ecx, DWORD PTR __Tmp$174891[ebp]
  00208	e8 00 00 00 00	 call	 ??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z ; SmartPtr<TSource>::SmartPtr<TSource>
  0020d	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2

; 1210 : 
; 1211 : 			_Umove(_VEC_ITER_BASE(_Where), _Mylast,
; 1212 : 				_VEC_ITER_BASE(_Where) + _Count);	// copy suffix

  00214	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  00217	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  0021a	8d 0c d0	 lea	 ecx, DWORD PTR [eax+edx*8]
  0021d	51		 push	 ecx
  0021e	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  00221	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00224	50		 push	 eax
  00225	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00228	51		 push	 ecx
  00229	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0022c	e8 00 00 00 00	 call	 ??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>

; 1213 : 
; 1214 : 			_TRY_BEGIN

  00231	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+12], 3

; 1215 : 			_Ufill(_Mylast, _Count - (_Mylast - _VEC_ITER_BASE(_Where)),
; 1216 : 				_Tmp);	// insert new stuff off end

  00235	8d 55 dc	 lea	 edx, DWORD PTR __Tmp$174891[ebp]
  00238	52		 push	 edx
  00239	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  0023c	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0023f	2b 4d 0c	 sub	 ecx, DWORD PTR __Where$[ebp+4]
  00242	c1 f9 03	 sar	 ecx, 3
  00245	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  00248	2b d1		 sub	 edx, ecx
  0024a	52		 push	 edx
  0024b	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  0024e	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00251	51		 push	 ecx
  00252	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00255	e8 00 00 00 00	 call	 ?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Ufill
  0025a	eb 35		 jmp	 SHORT $LN19@Insert_n@12
__catch$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$2:

; 1217 : 			_CATCH_ALL
; 1218 : 			_Destroy(_VEC_ITER_BASE(_Where) + _Count, _Mylast + _Count);

  0025c	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  0025f	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00262	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  00265	8d 14 c8	 lea	 edx, DWORD PTR [eax+ecx*8]
  00268	52		 push	 edx
  00269	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  0026c	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  0026f	8d 14 c1	 lea	 edx, DWORD PTR [ecx+eax*8]
  00272	52		 push	 edx
  00273	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00276	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXPAV?$SmartPtr@UTSource@@@@0@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Destroy

; 1219 : 			_RERAISE;

  0027b	6a 00		 push	 0
  0027d	6a 00		 push	 0
  0027f	e8 00 00 00 00	 call	 __CxxThrowException@8

; 1220 : 			_CATCH_END

  00284	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  0028b	b8 00 00 00 00	 mov	 eax, __tryend$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$3
  00290	c3		 ret	 0
$LN19@Insert_n@12:
  00291	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
__tryend$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$3:

; 1221 : 
; 1222 : 			_Mylast += _Count;

  00298	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  0029b	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0029e	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  002a1	8d 04 d1	 lea	 eax, DWORD PTR [ecx+edx*8]
  002a4	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  002a7	89 41 10	 mov	 DWORD PTR [ecx+16], eax

; 1223 : 
; 1224 :  #if _HAS_ITERATOR_DEBUGGING
; 1225 : 			_Orphan_range(_Where._Myptr, _Mylast);
; 1226 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1227 : 
; 1228 : 			std::fill(_VEC_ITER_BASE(_Where), _Mylast - _Count,
; 1229 : 				_Tmp);	// insert up to old end

  002aa	8d 55 dc	 lea	 edx, DWORD PTR __Tmp$174891[ebp]
  002ad	52		 push	 edx
  002ae	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  002b1	c1 e0 03	 shl	 eax, 3
  002b4	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  002b7	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  002ba	2b d0		 sub	 edx, eax
  002bc	52		 push	 edx
  002bd	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  002c0	50		 push	 eax
  002c1	e8 00 00 00 00	 call	 ??$fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ; std::fill<SmartPtr<TSource> *,SmartPtr<TSource> >
  002c6	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1230 : 			}

  002c9	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  002d0	8d 4d dc	 lea	 ecx, DWORD PTR __Tmp$174891[ebp]
  002d3	e8 00 00 00 00	 call	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>

; 1231 : 		else

  002d8	e9 86 00 00 00	 jmp	 $LN14@Insert_n@12
$LN3@Insert_n@12:

; 1232 : 			{	// new stuff can all be assigned
; 1233 : 			_Ty _Tmp = _Val;	// in case _Val is in sequence

  002dd	8b 4d 14	 mov	 ecx, DWORD PTR __Val$[ebp]
  002e0	51		 push	 ecx
  002e1	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$174901[ebp]
  002e4	e8 00 00 00 00	 call	 ??0?$SmartPtr@UTSource@@@@QAE@ABV0@@Z ; SmartPtr<TSource>::SmartPtr<TSource>
  002e9	c7 45 fc 05 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 5

; 1234 : 
; 1235 : 			pointer _Oldend = _Mylast;

  002f0	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  002f3	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  002f6	89 45 d8	 mov	 DWORD PTR __Oldend$174902[ebp], eax

; 1236 : 			_Mylast = _Umove(_Oldend - _Count, _Oldend,
; 1237 : 				_Mylast);	// copy suffix

  002f9	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  002fc	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  002ff	52		 push	 edx
  00300	8b 45 d8	 mov	 eax, DWORD PTR __Oldend$174902[ebp]
  00303	50		 push	 eax
  00304	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  00307	c1 e1 03	 shl	 ecx, 3
  0030a	8b 55 d8	 mov	 edx, DWORD PTR __Oldend$174902[ebp]
  0030d	2b d1		 sub	 edx, ecx
  0030f	52		 push	 edx
  00310	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00313	e8 00 00 00 00	 call	 ??$_Umove@PAV?$SmartPtr@UTSource@@@@@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV2@00@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Umove<SmartPtr<TSource> *>
  00318	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0031b	89 41 10	 mov	 DWORD PTR [ecx+16], eax

; 1238 : 
; 1239 :  #if _HAS_ITERATOR_DEBUGGING
; 1240 : 			_Orphan_range(_Where._Myptr, _Mylast);
; 1241 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1242 : 
; 1243 : 			_STDEXT _Unchecked_move_backward(_VEC_ITER_BASE(_Where), _Oldend - _Count,
; 1244 : 				_Oldend);	// copy hole

  0031e	8b 55 d8	 mov	 edx, DWORD PTR __Oldend$174902[ebp]
  00321	52		 push	 edx
  00322	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  00325	c1 e0 03	 shl	 eax, 3
  00328	8b 4d d8	 mov	 ecx, DWORD PTR __Oldend$174902[ebp]
  0032b	2b c8		 sub	 ecx, eax
  0032d	51		 push	 ecx
  0032e	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00331	52		 push	 edx
  00332	e8 00 00 00 00	 call	 ??$_Unchecked_move_backward@PAV?$SmartPtr@UTSource@@@@PAV1@@stdext@@YAPAV?$SmartPtr@UTSource@@@@PAV1@00@Z ; stdext::_Unchecked_move_backward<SmartPtr<TSource> *,SmartPtr<TSource> *>
  00337	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1245 : 			std::fill(_VEC_ITER_BASE(_Where), _VEC_ITER_BASE(_Where) + _Count,
; 1246 : 				_Tmp);	// insert into hole

  0033a	8d 45 d0	 lea	 eax, DWORD PTR __Tmp$174901[ebp]
  0033d	50		 push	 eax
  0033e	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  00341	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00344	8d 04 ca	 lea	 eax, DWORD PTR [edx+ecx*8]
  00347	50		 push	 eax
  00348	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  0034b	51		 push	 ecx
  0034c	e8 00 00 00 00	 call	 ??$fill@PAV?$SmartPtr@UTSource@@@@V1@@std@@YAXPAV?$SmartPtr@UTSource@@@@0ABV1@@Z ; std::fill<SmartPtr<TSource> *,SmartPtr<TSource> >
  00351	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1247 : 			}

  00354	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  0035b	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$174901[ebp]
  0035e	e8 00 00 00 00	 call	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>
$LN14@Insert_n@12:

; 1248 : 		}

  00363	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  00366	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0036d	59		 pop	 ecx
  0036e	5f		 pop	 edi
  0036f	5e		 pop	 esi
  00370	5b		 pop	 ebx
  00371	8b e5		 mov	 esp, ebp
  00373	5d		 pop	 ebp
  00374	c2 10 00	 ret	 16			; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$4:
  00000	8d 4d dc	 lea	 ecx, DWORD PTR __Tmp$174891[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>
__unwindfunclet$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z$5:
  00008	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$174901[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>
__ehhandler$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a c4	 mov	 ecx, DWORD PTR [edx-60]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z
  00026	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Insert_n
; Function compile flags: /Odtp
;	COMDAT ?_Buy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE_NI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Capacity$ = 8						; size = 4
?_Buy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE_NI@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Buy, COMDAT
; _this$ = ecx

; 1107 : 		{	// allocate array with _Capacity elements

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 1108 : 		_Myfirst = 0, _Mylast = 0, _Myend = 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 40 0c 00 00
	00 00		 mov	 DWORD PTR [eax+12], 0
  00011	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00014	c7 41 10 00 00
	00 00		 mov	 DWORD PTR [ecx+16], 0
  0001b	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001e	c7 42 14 00 00
	00 00		 mov	 DWORD PTR [edx+20], 0

; 1109 : 		if (_Capacity == 0)

  00025	83 7d 08 00	 cmp	 DWORD PTR __Capacity$[ebp], 0
  00029	75 06		 jne	 SHORT $LN4@Buy@17

; 1110 : 			return (false);

  0002b	32 c0		 xor	 al, al
  0002d	eb 4b		 jmp	 SHORT $LN5@Buy@17
  0002f	eb 47		 jmp	 SHORT $LN3@Buy@17
$LN4@Buy@17:

; 1111 : 		else if (max_size() < _Capacity)

  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	e8 00 00 00 00	 call	 ?max_size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::max_size
  00039	3b 45 08	 cmp	 eax, DWORD PTR __Capacity$[ebp]
  0003c	73 07		 jae	 SHORT $LN2@Buy@17

; 1112 : 			_Xlen();	// result too long

  0003e	e8 00 00 00 00	 call	 ?_Xlen@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@KAXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Xlen

; 1113 : 		else

  00043	eb 33		 jmp	 SHORT $LN3@Buy@17
$LN2@Buy@17:

; 1114 : 			{	// nonempty array, allocate storage
; 1115 : 			_Myfirst = this->_Alval.allocate(_Capacity);

  00045	8b 45 08	 mov	 eax, DWORD PTR __Capacity$[ebp]
  00048	50		 push	 eax
  00049	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004c	83 c1 08	 add	 ecx, 8
  0004f	e8 00 00 00 00	 call	 ?allocate@?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAEPAV?$SmartPtr@UTSource@@@@I@Z ; std::allocator<SmartPtr<TSource> >::allocate
  00054	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00057	89 41 0c	 mov	 DWORD PTR [ecx+12], eax

; 1116 : 			_Mylast = _Myfirst;

  0005a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0005d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00060	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00063	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 1117 : 			_Myend = _Myfirst + _Capacity;

  00066	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00069	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0006c	8b 4d 08	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  0006f	8d 14 c8	 lea	 edx, DWORD PTR [eax+ecx*8]
  00072	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00075	89 50 14	 mov	 DWORD PTR [eax+20], edx
$LN3@Buy@17:

; 1118 : 			}
; 1119 : 		return (true);

  00078	b0 01		 mov	 al, 1
$LN5@Buy@17:

; 1120 : 		}

  0007a	8b e5		 mov	 esp, ebp
  0007c	5d		 pop	 ebp
  0007d	c2 04 00	 ret	 4
?_Buy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE_NI@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Buy
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?insert@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@ABV?$SmartPtr@UTSource@@@@@Z
_TEXT	SEGMENT
tv77 = -28						; size = 4
_this$ = -24						; size = 4
$T337558 = -20						; size = 8
$T337555 = -12						; size = 8
__Off$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
__Where$ = 12						; size = 8
__Val$ = 20						; size = 4
?insert@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@ABV?$SmartPtr@UTSource@@@@@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::insert, COMDAT
; _this$ = ecx

; 875  : 		{	// insert _Val at _Where

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 1c	 sub	 esp, 28			; 0000001cH
  00006	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 876  : 		size_type _Off = size() == 0 ? 0 : _Where - begin();

  00009	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0000c	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00011	85 c0		 test	 eax, eax
  00013	75 09		 jne	 SHORT $LN3@insert@12
  00015	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv77[ebp], 0
  0001c	eb 18		 jmp	 SHORT $LN4@insert@12
$LN3@insert@12:
  0001e	8d 45 f4	 lea	 eax, DWORD PTR $T337555[ebp]
  00021	50		 push	 eax
  00022	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00025	e8 00 00 00 00	 call	 ?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin
  0002a	50		 push	 eax
  0002b	8d 4d 0c	 lea	 ecx, DWORD PTR __Where$[ebp]
  0002e	e8 00 00 00 00	 call	 ??G?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEHABV01@@Z ; std::_Vector_const_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator-
  00033	89 45 e4	 mov	 DWORD PTR tv77[ebp], eax
$LN4@insert@12:
  00036	8b 4d e4	 mov	 ecx, DWORD PTR tv77[ebp]
  00039	89 4d fc	 mov	 DWORD PTR __Off$[ebp], ecx

; 877  : 		_Insert_n(_Where, (size_type)1, _Val);

  0003c	8b 55 14	 mov	 edx, DWORD PTR __Val$[ebp]
  0003f	52		 push	 edx
  00040	6a 01		 push	 1
  00042	8b 45 10	 mov	 eax, DWORD PTR __Where$[ebp+4]
  00045	50		 push	 eax
  00046	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp]
  00049	51		 push	 ecx
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	e8 00 00 00 00	 call	 ?_Insert_n@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEXV?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@IABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Insert_n

; 878  : 		return (begin() + _Off);

  00052	8b 55 fc	 mov	 edx, DWORD PTR __Off$[ebp]
  00055	52		 push	 edx
  00056	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  00059	50		 push	 eax
  0005a	8d 4d ec	 lea	 ecx, DWORD PTR $T337558[ebp]
  0005d	51		 push	 ecx
  0005e	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00061	e8 00 00 00 00	 call	 ?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin
  00066	8b c8		 mov	 ecx, eax
  00068	e8 00 00 00 00	 call	 ??H?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV01@H@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+
  0006d	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 879  : 		}

  00070	8b e5		 mov	 esp, ebp
  00072	5d		 pop	 ebp
  00073	c2 10 00	 ret	 16			; 00000010H
?insert@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@ABV?$SmartPtr@UTSource@@@@@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::insert
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z
_TEXT	SEGMENT
_this$ = -28						; size = 4
$T337563 = -24						; size = 8
$T337562 = -16						; size = 8
$T337561 = -8						; size = 8
__Val$ = 8						; size = 4
?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back, COMDAT
; _this$ = ecx

; 809  : 		{	// insert element at end

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 1c	 sub	 esp, 28			; 0000001cH
  00006	56		 push	 esi
  00007	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 810  : 		if (size() < capacity())

  0000a	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0000d	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00012	8b f0		 mov	 esi, eax
  00014	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00017	e8 00 00 00 00	 call	 ?capacity@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::capacity
  0001c	3b f0		 cmp	 esi, eax
  0001e	73 1d		 jae	 SHORT $LN2@push_back@11

; 811  : 
; 812  :  #if _HAS_ITERATOR_DEBUGGING
; 813  : 			{ // room at end, construct it there
; 814  : 			_Orphan_range(_Mylast, _Mylast);
; 815  : 			_Mylast = _Ufill(_Mylast, 1, _Val);
; 816  : 			}
; 817  : 
; 818  :  #else /* _HAS_ITERATOR_DEBUGGING */
; 819  : 			_Mylast = _Ufill(_Mylast, 1, _Val);

  00020	8b 45 08	 mov	 eax, DWORD PTR __Val$[ebp]
  00023	50		 push	 eax
  00024	6a 01		 push	 1
  00026	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  0002c	52		 push	 edx
  0002d	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00030	e8 00 00 00 00	 call	 ?_Ufill@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAEPAV?$SmartPtr@UTSource@@@@PAV3@IABV3@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Ufill
  00035	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 41 10	 mov	 DWORD PTR [ecx+16], eax

; 820  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 821  : 
; 822  : 		else

  0003b	eb 2f		 jmp	 SHORT $LN3@push_back@11
$LN2@push_back@11:

; 823  : 			insert(end(), _Val);

  0003d	8d 55 f0	 lea	 edx, DWORD PTR $T337562[ebp]
  00040	52		 push	 edx
  00041	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00044	e8 00 00 00 00	 call	 ?end@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::end
  00049	8b 08		 mov	 ecx, DWORD PTR [eax]
  0004b	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0004e	89 4d f8	 mov	 DWORD PTR $T337561[ebp], ecx
  00051	89 55 fc	 mov	 DWORD PTR $T337561[ebp+4], edx
  00054	8b 45 08	 mov	 eax, DWORD PTR __Val$[ebp]
  00057	50		 push	 eax
  00058	8b 4d fc	 mov	 ecx, DWORD PTR $T337561[ebp+4]
  0005b	51		 push	 ecx
  0005c	8b 55 f8	 mov	 edx, DWORD PTR $T337561[ebp]
  0005f	52		 push	 edx
  00060	8d 45 e8	 lea	 eax, DWORD PTR $T337563[ebp]
  00063	50		 push	 eax
  00064	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00067	e8 00 00 00 00	 call	 ?insert@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@ABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::insert
$LN3@push_back@11:

; 824  : 		}

  0006c	5e		 pop	 esi
  0006d	8b e5		 mov	 esp, ebp
  0006f	5d		 pop	 ebp
  00070	c2 04 00	 ret	 4
?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ$0
__ehfuncinfo$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T337566 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ PROC ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >, COMDAT
; _this$ = ecx

; 470  : 		{	// construct empty vector

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	51		 push	 ecx
  00029	8b cc		 mov	 ecx, esp
  0002b	89 65 f0	 mov	 DWORD PTR $T337566[ebp], esp
  0002e	e8 00 00 00 00	 call	 ??0?$allocator@V?$SmartPtr@UTSource@@@@@std@@QAE@XZ ; std::allocator<SmartPtr<TSource> >::allocator<SmartPtr<TSource> >
  00033	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00036	e8 00 00 00 00	 call	 ??0?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE@V?$allocator@V?$SmartPtr@UTSource@@@@@1@@Z ; std::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Vector_val<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0003b	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 471  : 		_Buy(0);

  00042	6a 00		 push	 0
  00044	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	e8 00 00 00 00	 call	 ?_Buy@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@IAE_NI@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::_Buy

; 472  : 		}

  0004c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00053	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00056	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00059	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00060	59		 pop	 ecx
  00061	8b e5		 mov	 esp, ebp
  00063	5d		 pop	 ebp
  00064	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ$0:
  00000	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$_Vector_val@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
__ehhandler$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ENDP ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T347763 = -20						; size = 4
$T347762 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z PROC ; SmartPtr<CHardwareDriver>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCHardwareDriver@@@@QAEXXZ ; SmartPtr<CHardwareDriver>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@521

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T347763[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T347763[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@521
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T347763[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@521
$LN4@operator@521:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@521:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T347762[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T347762[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@521:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T347763[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z ENDP ; SmartPtr<CHardwareDriver>::operator=
PUBLIC	?Providers_WriteToIni@@YAXH@Z			; Providers_WriteToIni
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\providers.cpp
;	COMDAT ?Providers_WriteToIni@@YAXH@Z
_TEXT	SEGMENT
_bOptimizeFileAccess$ = 8				; size = 4
?Providers_WriteToIni@@YAXH@Z PROC			; Providers_WriteToIni, COMDAT

; 601  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 602  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  00003	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  0000a	7c 3f		 jl	 SHORT $LN2@Providers_@11
  0000c	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00011	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00016	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  0001c	73 2d		 jae	 SHORT $LN2@Providers_@11

; 603  :     {
; 604  :         Sources[CurrentSource]->Object->WriteToIni(bOptimizeFileAccess);

  0001e	8b 45 08	 mov	 eax, DWORD PTR _bOptimizeFileAccess$[ebp]
  00021	50		 push	 eax
  00022	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _CurrentSource
  00028	51		 push	 ecx
  00029	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0002e	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00033	8b c8		 mov	 ecx, eax
  00035	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0003a	83 c0 1c	 add	 eax, 28			; 0000001cH
  0003d	8b c8		 mov	 ecx, eax
  0003f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00044	8b c8		 mov	 ecx, eax
  00046	e8 00 00 00 00	 call	 ?WriteToIni@CSettingsHolder@@QAEXH@Z ; CSettingsHolder::WriteToIni
$LN2@Providers_@11:

; 605  :     }
; 606  : }

  0004b	5d		 pop	 ebp
  0004c	c3		 ret	 0
?Providers_WriteToIni@@YAXH@Z ENDP			; Providers_WriteToIni
_TEXT	ENDS
PUBLIC	?Providers_Unload@@YAXXZ			; Providers_Unload
; Function compile flags: /Odtp
;	COMDAT ?Providers_Unload@@YAXXZ
_TEXT	SEGMENT
?Providers_Unload@@YAXXZ PROC				; Providers_Unload, COMDAT

; 355  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 356  :     Sources.clear();

  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00008	e8 00 00 00 00	 call	 ?clear@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::clear

; 357  : 
; 358  : #ifdef WANT_DSHOW_SUPPORT
; 359  :     DSProvider = 0L;

  0000d	6a 00		 push	 0
  0000f	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  00014	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z ; SmartPtr<CDSProvider>::operator=

; 360  : #endif
; 361  :     StillProvider = 0L;

  00019	6a 00		 push	 0
  0001b	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00020	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z ; SmartPtr<CStillProvider>::operator=

; 362  : #ifdef WANT_BT8X8_SUPPORT
; 363  :     BT848Provider = 0L;

  00025	6a 00		 push	 0
  00027	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  0002c	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z ; SmartPtr<CBT848Provider>::operator=

; 364  : #endif
; 365  : #ifdef WANT_CX2388X_SUPPORT
; 366  :     CX2388xProvider = 0L;

  00031	6a 00		 push	 0
  00033	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  00038	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z ; SmartPtr<CCX2388xProvider>::operator=

; 367  : #endif
; 368  : #ifdef WANT_SAA713X_SUPPORT
; 369  :     SAA7134Provider = 0L;

  0003d	6a 00		 push	 0
  0003f	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00044	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z ; SmartPtr<CSAA7134Provider>::operator=

; 370  : #endif
; 371  : 
; 372  :     HardwareDriver = 0L;

  00049	6a 00		 push	 0
  0004b	b9 00 00 00 00	 mov	 ecx, OFFSET _HardwareDriver
  00050	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z ; SmartPtr<CHardwareDriver>::operator=

; 373  : }

  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
?Providers_Unload@@YAXXZ ENDP				; Providers_Unload
PUBLIC	?Providers_ReadFromIni@@YAXXZ			; Providers_ReadFromIni
; Function compile flags: /Odtp
;	COMDAT ?Providers_ReadFromIni@@YAXXZ
_TEXT	SEGMENT
?Providers_ReadFromIni@@YAXXZ PROC			; Providers_ReadFromIni, COMDAT

; 593  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 594  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  00003	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  0000a	7c 3a		 jl	 SHORT $LN2@Providers_@12
  0000c	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00011	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00016	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  0001c	73 28		 jae	 SHORT $LN2@Providers_@12

; 595  :     {
; 596  :         Sources[CurrentSource]->Object->ReadFromIni();

  0001e	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  00023	50		 push	 eax
  00024	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00029	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0002e	8b c8		 mov	 ecx, eax
  00030	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00035	83 c0 1c	 add	 eax, 28			; 0000001cH
  00038	8b c8		 mov	 ecx, eax
  0003a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  0003f	8b c8		 mov	 ecx, eax
  00041	e8 00 00 00 00	 call	 ?ReadFromIni@CSettingsHolder@@QAEXXZ ; CSettingsHolder::ReadFromIni
$LN2@Providers_@12:

; 597  :     }
; 598  : }

  00046	5d		 pop	 ebp
  00047	c3		 ret	 0
?Providers_ReadFromIni@@YAXXZ ENDP			; Providers_ReadFromIni
PUBLIC	?Providers_NotifySourceChange@@YAXH@Z		; Providers_NotifySourceChange
; Function compile flags: /Odtp
;	COMDAT ?Providers_NotifySourceChange@@YAXH@Z
_TEXT	SEGMENT
tv92 = -8						; size = 4
_pOldSource$ = -4					; size = 4
_OldSource$ = 8						; size = 4
?Providers_NotifySourceChange@@YAXH@Z PROC		; Providers_NotifySourceChange, COMDAT

; 634  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 635  :     CSource* pOldSource = NULL;

  00006	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _pOldSource$[ebp], 0

; 636  : 
; 637  :     if(OldSource >= 0 && static_cast<size_t>(OldSource) < Sources.size())

  0000d	83 7d 08 00	 cmp	 DWORD PTR _OldSource$[ebp], 0
  00011	7c 31		 jl	 SHORT $LN3@Providers_@13
  00013	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00018	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  0001d	39 45 08	 cmp	 DWORD PTR _OldSource$[ebp], eax
  00020	73 22		 jae	 SHORT $LN3@Providers_@13

; 638  :     {
; 639  :         pOldSource = Sources[OldSource]->Object.GetRawPointer();

  00022	8b 45 08	 mov	 eax, DWORD PTR _OldSource$[ebp]
  00025	50		 push	 eax
  00026	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0002b	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00030	8b c8		 mov	 ecx, eax
  00032	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00037	83 c0 1c	 add	 eax, 28			; 0000001cH
  0003a	8b c8		 mov	 ecx, eax
  0003c	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  00041	89 45 fc	 mov	 DWORD PTR _pOldSource$[ebp], eax
$LN3@Providers_@13:

; 640  :     }
; 641  :     if (EventCollector.IsValid())

  00044	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00049	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VCEventCollector@@@@QBEHXZ ; SmartPtr<CEventCollector>::IsValid
  0004e	85 c0		 test	 eax, eax
  00050	74 21		 je	 SHORT $LN2@Providers_@13

; 642  :     {
; 643  :         EventCollector->RaiseEvent(NULL, EVENT_SOURCE_CHANGE, (long)pOldSource, (long)Providers_GetCurrentSource(), NULL);

  00052	6a 00		 push	 0
  00054	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00059	50		 push	 eax
  0005a	8b 4d fc	 mov	 ecx, DWORD PTR _pOldSource$[ebp]
  0005d	51		 push	 ecx
  0005e	6a 04		 push	 4
  00060	6a 00		 push	 0
  00062	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00067	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  0006c	8b c8		 mov	 ecx, eax
  0006e	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN2@Providers_@13:

; 644  :     }
; 645  : 
; 646  :     if(Providers_GetCurrentSource() != NULL)

  00073	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00078	85 c0		 test	 eax, eax
  0007a	74 18		 je	 SHORT $LN4@Providers_@13

; 647  :     {
; 648  :         Providers_GetCurrentSource()->SetSourceAsCurrent();

  0007c	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00081	89 45 f8	 mov	 DWORD PTR tv92[ebp], eax
  00084	8b 55 f8	 mov	 edx, DWORD PTR tv92[ebp]
  00087	8b 02		 mov	 eax, DWORD PTR [edx]
  00089	8b 4d f8	 mov	 ecx, DWORD PTR tv92[ebp]
  0008c	8b 90 d4 00 00
	00		 mov	 edx, DWORD PTR [eax+212]
  00092	ff d2		 call	 edx
$LN4@Providers_@13:

; 649  :     }
; 650  : }

  00094	8b e5		 mov	 esp, ebp
  00096	5d		 pop	 ebp
  00097	c3		 ret	 0
?Providers_NotifySourceChange@@YAXH@Z ENDP		; Providers_NotifySourceChange
_TEXT	ENDS
PUBLIC	?Providers_NotifySourcePreChange@@YAXXZ		; Providers_NotifySourcePreChange
; Function compile flags: /Odtp
;	COMDAT ?Providers_NotifySourcePreChange@@YAXXZ
_TEXT	SEGMENT
tv81 = -4						; size = 4
?Providers_NotifySourcePreChange@@YAXXZ PROC		; Providers_NotifySourcePreChange, COMDAT

; 618  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 619  :     if (EventCollector.IsValid())

  00004	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00009	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VCEventCollector@@@@QBEHXZ ; SmartPtr<CEventCollector>::IsValid
  0000e	85 c0		 test	 eax, eax
  00010	74 23		 je	 SHORT $LN2@Providers_@14

; 620  :     {
; 621  :         EventCollector->RaiseEvent(NULL, EVENT_SOURCE_PRECHANGE, (long)Providers_GetCurrentSource(), (long)Providers_GetCurrentSource(), NULL);

  00012	6a 00		 push	 0
  00014	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00019	50		 push	 eax
  0001a	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0001f	50		 push	 eax
  00020	6a 03		 push	 3
  00022	6a 00		 push	 0
  00024	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00029	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  0002e	8b c8		 mov	 ecx, eax
  00030	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN2@Providers_@14:

; 622  :     }
; 623  :     if(Providers_GetCurrentSource() != NULL)

  00035	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0003a	85 c0		 test	 eax, eax
  0003c	74 18		 je	 SHORT $LN3@Providers_@14

; 624  :     {
; 625  :         Providers_GetCurrentSource()->UnsetSourceAsCurrent();

  0003e	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00043	89 45 fc	 mov	 DWORD PTR tv81[ebp], eax
  00046	8b 45 fc	 mov	 eax, DWORD PTR tv81[ebp]
  00049	8b 10		 mov	 edx, DWORD PTR [eax]
  0004b	8b 4d fc	 mov	 ecx, DWORD PTR tv81[ebp]
  0004e	8b 82 d8 00 00
	00		 mov	 eax, DWORD PTR [edx+216]
  00054	ff d0		 call	 eax
$LN3@Providers_@14:

; 626  :     }
; 627  :     // Laurent 30/05/2003 Not necessary because it is done two lines below
; 628  :     // when calling UnsetSourceAsCurrent
; 629  :     // good time to save the current settings
; 630  :     // SettingsMaster->SaveGroupedSettings();
; 631  : }

  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c3		 ret	 0
?Providers_NotifySourcePreChange@@YAXXZ ENDP		; Providers_NotifySourcePreChange
PUBLIC	?Providers_MixerSetup@@YAXXZ			; Providers_MixerSetup
; Function compile flags: /Odtp
;	COMDAT ?Providers_MixerSetup@@YAXXZ
_TEXT	SEGMENT
?Providers_MixerSetup@@YAXXZ PROC			; Providers_MixerSetup, COMDAT

; 83   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 84   :     MessageBox(GetMainWnd(),
; 85   :         _T("The following dialog will allow you to configure how ")
; 86   :         _T("DScaler uses the system mixer.  Configuring DScaler to use the ")
; 87   :         _T("system mixer allows DScaler to change the volume level and the ")
; 88   :         _T("mute state of your sound card by using the Windows mixer.  This is a ")
; 89   :         _T("must for cards that do not support these functions in hardware. ")
; 90   :         _T("You should specify the line into which your TV card's loopback ")
; 91   :         _T("sound cable is attached.\n")
; 92   :         _T("\n")
; 93   :         _T("If you do not wish to let DScaler use the system mixer, leave ")
; 94   :         _T("the \"Use the system mixer\" option unchecked.  If unsure, it ")
; 95   :         _T("is recommended you use the system mixer."), _T("Next..."), MB_OK);

  00003	6a 00		 push	 0
  00005	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@FJJFELHI@?$AAN?$AAe?$AAx?$AAt?$AA?4?$AA?4?$AA?4?$AA?$AA@
  0000a	68 00 00 00 00	 push	 OFFSET ??_C@_1EGI@CDDGMGOG@?$AAT?$AAh?$AAe?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAi?$AAa?$AAl?$AAo?$AAg?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAw?$AA?5@
  0000f	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00014	50		 push	 eax
  00015	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 96   : 
; 97   :     Mixer_SetupDlg(GetMainWnd());

  0001b	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00020	50		 push	 eax
  00021	e8 00 00 00 00	 call	 ?Mixer_SetupDlg@@YAXPAUHWND__@@@Z ; Mixer_SetupDlg
  00026	83 c4 04	 add	 esp, 4

; 98   : }

  00029	5d		 pop	 ebp
  0002a	c3		 ret	 0
?Providers_MixerSetup@@YAXXZ ENDP			; Providers_MixerSetup
PUBLIC	?Providers_Load@@YAHPAUHMENU__@@@Z		; Providers_Load
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_Load@@YAHPAUHMENU__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$2
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$3
	DD	03H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$4
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$5
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$6
	DD	06H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$7
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$8
	DD	08H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$9
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$10
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$11
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$12
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$13
	DD	0dH
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$14
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$15
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$16
	DD	010H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$17
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$18
	DD	012H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$19
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$20
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$21
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$22
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$23
	DD	017H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$24
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$25
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$26
	DD	01aH
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$27
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$28
	DD	01cH
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$29
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$30
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$31
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$32
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$33
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$34
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$35
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$36
	DD	024H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$37
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$38
	DD	026H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$39
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$40
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$41
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$42
	DD	02aH
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$43
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$44
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$45
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$46
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$47
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$48
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$49
	DD	01H
	DD	FLAT:__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$50
__ehfuncinfo$?Providers_Load@@YAHPAUHMENU__@@@Z DD 019930522H
	DD	033H
	DD	FLAT:__unwindtable$?Providers_Load@@YAHPAUHMENU__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_Load@@YAHPAUHMENU__@@@Z
_TEXT	SEGMENT
tv1121 = -1312						; size = 4
tv1058 = -1308						; size = 4
tv1301 = -1304						; size = 4
tv1353 = -1300						; size = 4
tv1043 = -1296						; size = 4
tv1299 = -1292						; size = 4
tv1352 = -1288						; size = 4
tv1032 = -1284						; size = 4
tv1297 = -1280						; size = 4
tv1351 = -1276						; size = 4
tv1011 = -1272						; size = 4
tv1295 = -1268						; size = 4
tv1350 = -1264						; size = 4
tv985 = -1260						; size = 4
tv1293 = -1256						; size = 4
tv1349 = -1252						; size = 4
tv957 = -1248						; size = 4
tv944 = -1244						; size = 4
tv1286 = -1240						; size = 4
tv1346 = -1236						; size = 4
tv931 = -1232						; size = 4
tv1281 = -1228						; size = 4
tv1344 = -1224						; size = 4
tv920 = -1220						; size = 4
tv908 = -1216						; size = 4
tv900 = -1212						; size = 4
tv1243 = -1208						; size = 4
tv1342 = -1204						; size = 4
tv846 = -1200						; size = 4
tv1241 = -1196						; size = 4
tv1341 = -1192						; size = 4
tv827 = -1188						; size = 4
tv1239 = -1184						; size = 4
tv1340 = -1180						; size = 4
tv816 = -1176						; size = 4
tv1237 = -1172						; size = 4
tv1339 = -1168						; size = 4
tv790 = -1164						; size = 4
tv1235 = -1160						; size = 4
tv1338 = -1156						; size = 4
tv779 = -1152						; size = 4
tv772 = -1148						; size = 4
tv758 = -1144						; size = 4
tv750 = -1140						; size = 4
tv726 = -1136						; size = 4
tv1230 = -1132						; size = 4
tv1336 = -1128						; size = 4
tv715 = -1124						; size = 4
tv1228 = -1120						; size = 4
tv1335 = -1116						; size = 4
tv694 = -1112						; size = 4
tv1226 = -1108						; size = 4
tv1334 = -1104						; size = 4
tv668 = -1100						; size = 4
tv1224 = -1096						; size = 4
tv1333 = -1092						; size = 4
tv649 = -1088						; size = 4
tv1222 = -1084						; size = 4
tv1332 = -1080						; size = 4
tv638 = -1076						; size = 4
tv1220 = -1072						; size = 4
tv1331 = -1068						; size = 4
tv612 = -1064						; size = 4
tv1218 = -1060						; size = 4
tv1330 = -1056						; size = 4
tv601 = -1052						; size = 4
tv594 = -1048						; size = 4
tv580 = -1044						; size = 4
tv572 = -1040						; size = 4
tv1215 = -1036						; size = 4
tv1214 = -1032						; size = 4
tv1327 = -1028						; size = 4
tv546 = -1024						; size = 4
tv1211 = -1020						; size = 4
tv1325 = -1016						; size = 4
tv535 = -1012						; size = 4
tv1209 = -1008						; size = 4
tv1324 = -1004						; size = 4
tv514 = -1000						; size = 4
tv1207 = -996						; size = 4
tv1323 = -992						; size = 4
tv488 = -988						; size = 4
tv1205 = -984						; size = 4
tv1322 = -980						; size = 4
tv469 = -976						; size = 4
tv1203 = -972						; size = 4
tv1321 = -968						; size = 4
tv458 = -964						; size = 4
tv1201 = -960						; size = 4
tv1320 = -956						; size = 4
tv400 = -952						; size = 4
tv1199 = -948						; size = 4
tv1319 = -944						; size = 4
tv389 = -940						; size = 4
tv382 = -936						; size = 4
tv368 = -932						; size = 4
tv329 = -928						; size = 4
tv322 = -924						; size = 4
tv1196 = -920						; size = 4
tv1195 = -916						; size = 4
tv1316 = -912						; size = 4
tv296 = -908						; size = 4
tv1192 = -904						; size = 4
tv1314 = -900						; size = 4
tv285 = -896						; size = 4
tv1190 = -892						; size = 4
tv1313 = -888						; size = 4
tv264 = -884						; size = 4
tv1188 = -880						; size = 4
tv1312 = -876						; size = 4
tv238 = -872						; size = 4
tv1186 = -868						; size = 4
tv1311 = -864						; size = 4
tv219 = -860						; size = 4
tv1184 = -856						; size = 4
tv1310 = -852						; size = 4
tv208 = -848						; size = 4
tv1182 = -844						; size = 4
tv1309 = -840						; size = 4
tv182 = -836						; size = 4
tv1180 = -832						; size = 4
tv1308 = -828						; size = 4
tv171 = -824						; size = 4
tv164 = -820						; size = 4
tv150 = -816						; size = 4
tv142 = -812						; size = 4
tv1177 = -808						; size = 4
tv1176 = -804						; size = 4
tv1305 = -800						; size = 4
tv82 = -796						; size = 4
$T360758 = -792						; size = 4
$T360715 = -788						; size = 4
$T360714 = -784						; size = 8
$T360713 = -776						; size = 8
$T360712 = -768						; size = 8
$T360711 = -760						; size = 8
$T360710 = -752						; size = 28
$T360709 = -724						; size = 8
$T360708 = -716						; size = 8
$T360707 = -708						; size = 8
$T360706 = -700						; size = 4
$T360705 = -696						; size = 8
$T360704 = -688						; size = 28
$T360701 = -660						; size = 4
$T360700 = -656						; size = 4
$T360697 = -652						; size = 28
$T360696 = -624						; size = 8
$T360695 = -613						; size = 1
$T360692 = -612						; size = 4
$T360691 = -608						; size = 4
$T360690 = -604						; size = 8
$T360689 = -596						; size = 28
$T360688 = -568						; size = 8
$T360687 = -560						; size = 28
$T360686 = -532						; size = 8
$T360685 = -521						; size = 1
$T360682 = -520						; size = 4
$T360681 = -516						; size = 4
$T360678 = -512						; size = 4
$T360677 = -508						; size = 4
$T360676 = -504						; size = 28
$T360675 = -476						; size = 8
$T360674 = -468						; size = 8
$T360673 = -460						; size = 4
$T360672 = -456						; size = 8
$T360671 = -448						; size = 28
$T360670 = -420						; size = 8
$T360669 = -412						; size = 28
$T360668 = -384						; size = 8
$T360667 = -373						; size = 1
$T360664 = -372						; size = 4
$T360663 = -368						; size = 4
$T360660 = -364						; size = 4
$T360659 = -360						; size = 4
$T360658 = -356						; size = 4
$T360657 = -352						; size = 8
$T360656 = -344						; size = 8
$T360655 = -336						; size = 4
$T360654 = -332						; size = 8
$T360653 = -324						; size = 28
$T360652 = -296						; size = 8
$T360651 = -288						; size = 28
$T360650 = -260						; size = 8
$T360649 = -249						; size = 1
$T360646 = -248						; size = 4
$T360645 = -244						; size = 4
$T360642 = -240						; size = 4
$T360641 = -236						; size = 4
$T360640 = -232						; size = 4
$T360639 = -228						; size = 8
$T360638 = -220						; size = 8
$T360637 = -212						; size = 4
$T360636 = -208						; size = 8
$T360635 = -200						; size = 28
$T360634 = -172						; size = 8
$T360633 = -164						; size = 28
$T360632 = -136						; size = 8
$T360631 = -125						; size = 1
$T360628 = -124						; size = 4
$T360627 = -120						; size = 4
$T360624 = -116						; size = 4
$T360623 = -112						; size = 4
$T360622 = -108						; size = 4
$T360619 = -104						; size = 4
$T360618 = -100						; size = 4
_n$174035 = -96						; size = 4
_Resp$173756 = -92					; size = 4
_RegFlag$173752 = -88					; size = 4
_Source$ = -84						; size = 8
_DefaultSource$ = -76					; size = 8
_MenuItemInfo$ = -68					; size = 44
_i$ = -24						; size = 4
_AllowCx2388xDShow$ = -20				; size = 4
_hSubMenu$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_hMenu$ = 8						; size = 4
?Providers_Load@@YAHPAUHMENU__@@@Z PROC			; Providers_Load, COMDAT

; 102  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_Load@@YAHPAUHMENU__@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 14 05 00
	00		 sub	 esp, 1300		; 00000514H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	c7 85 e8 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR $T360758[ebp], 0

; 103  :     int i(0);

  00032	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0

; 104  :     SmartPtr<TSource> Source;

  00039	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  0003c	e8 00 00 00 00	 call	 ??0?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::SmartPtr<TSource>
  00041	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 105  :     SmartPtr<CSource> DefaultSource;

  00048	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  0004b	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::SmartPtr<CSource>
  00050	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1

; 106  :     MENUITEMINFO    MenuItemInfo;
; 107  :         BOOL AllowCx2388xDShow = FALSE;

  00054	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _AllowCx2388xDShow$[ebp], 0

; 108  : 
; 109  :     HMENU hSubMenu = GetSubMenu(hMenu, 0);

  0005b	6a 00		 push	 0
  0005d	8b 45 08	 mov	 eax, DWORD PTR _hMenu$[ebp]
  00060	50		 push	 eax
  00061	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetSubMenu@8
  00067	89 45 f0	 mov	 DWORD PTR _hSubMenu$[ebp], eax

; 110  : 
; 111  :     Providers_Unload();

  0006a	e8 00 00 00 00	 call	 ?Providers_Unload@@YAXXZ ; Providers_Unload

; 112  :     HardwareDriver = new CHardwareDriver();

  0006f	68 18 02 00 00	 push	 536			; 00000218H
  00074	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00079	83 c4 04	 add	 esp, 4
  0007c	89 45 98	 mov	 DWORD PTR $T360619[ebp], eax
  0007f	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00083	83 7d 98 00	 cmp	 DWORD PTR $T360619[ebp], 0
  00087	74 10		 je	 SHORT $LN51@Providers_@15
  00089	8b 4d 98	 mov	 ecx, DWORD PTR $T360619[ebp]
  0008c	e8 00 00 00 00	 call	 ??0CHardwareDriver@@QAE@XZ ; CHardwareDriver::CHardwareDriver
  00091	89 85 e4 fc ff
	ff		 mov	 DWORD PTR tv82[ebp], eax
  00097	eb 0a		 jmp	 SHORT $LN52@Providers_@15
$LN51@Providers_@15:
  00099	c7 85 e4 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv82[ebp], 0
$LN52@Providers_@15:
  000a3	8b 8d e4 fc ff
	ff		 mov	 ecx, DWORD PTR tv82[ebp]
  000a9	89 4d 9c	 mov	 DWORD PTR $T360618[ebp], ecx
  000ac	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  000b0	8b 55 9c	 mov	 edx, DWORD PTR $T360618[ebp]
  000b3	52		 push	 edx
  000b4	b9 00 00 00 00	 mov	 ecx, OFFSET _HardwareDriver
  000b9	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z ; SmartPtr<CHardwareDriver>::operator=

; 113  :     if(HardwareDriver->LoadDriver() == TRUE)

  000be	b9 00 00 00 00	 mov	 ecx, OFFSET _HardwareDriver
  000c3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCHardwareDriver@@@@QBEPAVCHardwareDriver@@XZ ; SmartPtr<CHardwareDriver>::operator->
  000c8	8b c8		 mov	 ecx, eax
  000ca	e8 00 00 00 00	 call	 ?LoadDriver@CHardwareDriver@@QAEHXZ ; CHardwareDriver::LoadDriver
  000cf	83 f8 01	 cmp	 eax, 1
  000d2	0f 85 a5 0d 00
	00		 jne	 $LN48@Providers_@15

; 114  :     {
; 115  : #ifdef WANT_BT8X8_SUPPORT
; 116  :         BT848Provider = new CBT848Provider(HardwareDriver);

  000d8	6a 74		 push	 116			; 00000074H
  000da	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  000df	83 c4 04	 add	 esp, 4
  000e2	89 45 90	 mov	 DWORD PTR $T360623[ebp], eax
  000e5	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  000e9	83 7d 90 00	 cmp	 DWORD PTR $T360623[ebp], 0
  000ed	74 48		 je	 SHORT $LN53@Providers_@15
  000ef	83 ec 08	 sub	 esp, 8
  000f2	8b cc		 mov	 ecx, esp
  000f4	89 65 8c	 mov	 DWORD PTR $T360624[ebp], esp
  000f7	68 00 00 00 00	 push	 OFFSET _HardwareDriver
  000fc	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCHardwareDriver@@@@QAE@ABV0@@Z ; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>
  00101	89 85 e0 fc ff
	ff		 mov	 DWORD PTR tv1305[ebp], eax
  00107	8b 85 e0 fc ff
	ff		 mov	 eax, DWORD PTR tv1305[ebp]
  0010d	89 85 dc fc ff
	ff		 mov	 DWORD PTR tv1176[ebp], eax
  00113	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  00117	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  0011b	8b 4d 90	 mov	 ecx, DWORD PTR $T360623[ebp]
  0011e	e8 00 00 00 00	 call	 ??0CBT848Provider@@QAE@V?$SmartPtr@VCHardwareDriver@@@@@Z ; CBT848Provider::CBT848Provider
  00123	89 85 d8 fc ff
	ff		 mov	 DWORD PTR tv1177[ebp], eax
  00129	8b 8d d8 fc ff
	ff		 mov	 ecx, DWORD PTR tv1177[ebp]
  0012f	89 8d d4 fc ff
	ff		 mov	 DWORD PTR tv142[ebp], ecx
  00135	eb 0a		 jmp	 SHORT $LN54@Providers_@15
$LN53@Providers_@15:
  00137	c7 85 d4 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv142[ebp], 0
$LN54@Providers_@15:
  00141	8b 95 d4 fc ff
	ff		 mov	 edx, DWORD PTR tv142[ebp]
  00147	89 55 94	 mov	 DWORD PTR $T360622[ebp], edx
  0014a	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0014e	8b 45 94	 mov	 eax, DWORD PTR $T360622[ebp]
  00151	50		 push	 eax
  00152	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  00157	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCBT848Provider@@@@QAEAAV0@PAVCBT848Provider@@@Z ; SmartPtr<CBT848Provider>::operator=

; 117  :         for(i = 0; i < BT848Provider->GetNumberOfSources(); ++i)

  0015c	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00163	eb 09		 jmp	 SHORT $LN47@Providers_@15
$LN46@Providers_@15:
  00165	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  00168	83 c1 01	 add	 ecx, 1
  0016b	89 4d e8	 mov	 DWORD PTR _i$[ebp], ecx
$LN47@Providers_@15:
  0016e	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  00173	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
  00178	89 85 d0 fc ff
	ff		 mov	 DWORD PTR tv150[ebp], eax
  0017e	8b 95 d0 fc ff
	ff		 mov	 edx, DWORD PTR tv150[ebp]
  00184	8b 02		 mov	 eax, DWORD PTR [edx]
  00186	8b 8d d0 fc ff
	ff		 mov	 ecx, DWORD PTR tv150[ebp]
  0018c	8b 10		 mov	 edx, DWORD PTR [eax]
  0018e	ff d2		 call	 edx
  00190	39 45 e8	 cmp	 DWORD PTR _i$[ebp], eax
  00193	0f 8d 6b 03 00
	00		 jge	 $LN45@Providers_@15

; 118  :         {
; 119  :             Source = new TSource;

  00199	6a 28		 push	 40			; 00000028H
  0019b	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  001a0	83 c4 04	 add	 esp, 4
  001a3	89 45 84	 mov	 DWORD PTR $T360628[ebp], eax
  001a6	c6 45 fc 05	 mov	 BYTE PTR __$EHRec$[ebp+8], 5
  001aa	83 7d 84 00	 cmp	 DWORD PTR $T360628[ebp], 0
  001ae	74 10		 je	 SHORT $LN55@Providers_@15
  001b0	8b 4d 84	 mov	 ecx, DWORD PTR $T360628[ebp]
  001b3	e8 00 00 00 00	 call	 ??0TSource@@QAE@XZ
  001b8	89 85 cc fc ff
	ff		 mov	 DWORD PTR tv164[ebp], eax
  001be	eb 0a		 jmp	 SHORT $LN56@Providers_@15
$LN55@Providers_@15:
  001c0	c7 85 cc fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv164[ebp], 0
$LN56@Providers_@15:
  001ca	8b 85 cc fc ff
	ff		 mov	 eax, DWORD PTR tv164[ebp]
  001d0	89 45 88	 mov	 DWORD PTR $T360627[ebp], eax
  001d3	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  001d7	8b 4d 88	 mov	 ecx, DWORD PTR $T360627[ebp]
  001da	51		 push	 ecx
  001db	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  001de	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ; SmartPtr<TSource>::operator=

; 120  :             if (BT848Provider->GetSource(i)->GetMenuLabel().empty())

  001e3	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  001e8	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
  001ed	89 85 c8 fc ff
	ff		 mov	 DWORD PTR tv171[ebp], eax
  001f3	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  001f6	52		 push	 edx
  001f7	8d 85 78 ff ff
	ff		 lea	 eax, DWORD PTR $T360632[ebp]
  001fd	50		 push	 eax
  001fe	8b 8d c8 fc ff
	ff		 mov	 ecx, DWORD PTR tv171[ebp]
  00204	8b 11		 mov	 edx, DWORD PTR [ecx]
  00206	8b 8d c8 fc ff
	ff		 mov	 ecx, DWORD PTR tv171[ebp]
  0020c	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0020f	ff d0		 call	 eax
  00211	89 85 c4 fc ff
	ff		 mov	 DWORD PTR tv1308[ebp], eax
  00217	8b 8d c4 fc ff
	ff		 mov	 ecx, DWORD PTR tv1308[ebp]
  0021d	89 8d c0 fc ff
	ff		 mov	 DWORD PTR tv1180[ebp], ecx
  00223	c6 45 fc 06	 mov	 BYTE PTR __$EHRec$[ebp+8], 6
  00227	8b 8d c0 fc ff
	ff		 mov	 ecx, DWORD PTR tv1180[ebp]
  0022d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00232	89 85 bc fc ff
	ff		 mov	 DWORD PTR tv182[ebp], eax
  00238	8d 95 5c ff ff
	ff		 lea	 edx, DWORD PTR $T360633[ebp]
  0023e	52		 push	 edx
  0023f	8b 85 bc fc ff
	ff		 mov	 eax, DWORD PTR tv182[ebp]
  00245	8b 10		 mov	 edx, DWORD PTR [eax]
  00247	8b 8d bc fc ff
	ff		 mov	 ecx, DWORD PTR tv182[ebp]
  0024d	8b 82 9c 00 00
	00		 mov	 eax, DWORD PTR [edx+156]
  00253	ff d0		 call	 eax
  00255	89 85 b8 fc ff
	ff		 mov	 DWORD PTR tv1309[ebp], eax
  0025b	8b 8d b8 fc ff
	ff		 mov	 ecx, DWORD PTR tv1309[ebp]
  00261	89 8d b4 fc ff
	ff		 mov	 DWORD PTR tv1182[ebp], ecx
  00267	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  0026b	8b 8d b4 fc ff
	ff		 mov	 ecx, DWORD PTR tv1182[ebp]
  00271	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  00276	88 45 83	 mov	 BYTE PTR $T360631[ebp], al
  00279	c6 45 fc 06	 mov	 BYTE PTR __$EHRec$[ebp+8], 6
  0027d	8d 8d 5c ff ff
	ff		 lea	 ecx, DWORD PTR $T360633[ebp]
  00283	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00288	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0028c	8d 8d 78 ff ff
	ff		 lea	 ecx, DWORD PTR $T360632[ebp]
  00292	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  00297	0f b6 55 83	 movzx	 edx, BYTE PTR $T360631[ebp]
  0029b	85 d2		 test	 edx, edx
  0029d	74 19		 je	 SHORT $LN44@Providers_@15

; 121  :             {
; 122  :                 Source->Name = _T("BT848 Card");

  0029f	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@HCFKFGBA@?$AAB?$AAT?$AA8?$AA4?$AA8?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@
  002a4	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  002a7	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  002ac	8b c8		 mov	 ecx, eax
  002ae	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 123  :             }
; 124  :             else

  002b3	e9 bc 00 00 00	 jmp	 $LN43@Providers_@15
$LN44@Providers_@15:

; 125  :             {
; 126  :                 Source->Name = BT848Provider->GetSource(i)->GetMenuLabel();

  002b8	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  002bd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
  002c2	89 85 b0 fc ff
	ff		 mov	 DWORD PTR tv208[ebp], eax
  002c8	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  002cb	50		 push	 eax
  002cc	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T360634[ebp]
  002d2	51		 push	 ecx
  002d3	8b 95 b0 fc ff
	ff		 mov	 edx, DWORD PTR tv208[ebp]
  002d9	8b 02		 mov	 eax, DWORD PTR [edx]
  002db	8b 8d b0 fc ff
	ff		 mov	 ecx, DWORD PTR tv208[ebp]
  002e1	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  002e4	ff d2		 call	 edx
  002e6	89 85 ac fc ff
	ff		 mov	 DWORD PTR tv1310[ebp], eax
  002ec	8b 85 ac fc ff
	ff		 mov	 eax, DWORD PTR tv1310[ebp]
  002f2	89 85 a8 fc ff
	ff		 mov	 DWORD PTR tv1184[ebp], eax
  002f8	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  002fc	8b 8d a8 fc ff
	ff		 mov	 ecx, DWORD PTR tv1184[ebp]
  00302	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00307	89 85 a4 fc ff
	ff		 mov	 DWORD PTR tv219[ebp], eax
  0030d	8d 8d 38 ff ff
	ff		 lea	 ecx, DWORD PTR $T360635[ebp]
  00313	51		 push	 ecx
  00314	8b 95 a4 fc ff
	ff		 mov	 edx, DWORD PTR tv219[ebp]
  0031a	8b 02		 mov	 eax, DWORD PTR [edx]
  0031c	8b 8d a4 fc ff
	ff		 mov	 ecx, DWORD PTR tv219[ebp]
  00322	8b 90 9c 00 00
	00		 mov	 edx, DWORD PTR [eax+156]
  00328	ff d2		 call	 edx
  0032a	89 85 a0 fc ff
	ff		 mov	 DWORD PTR tv1311[ebp], eax
  00330	8b 85 a0 fc ff
	ff		 mov	 eax, DWORD PTR tv1311[ebp]
  00336	89 85 9c fc ff
	ff		 mov	 DWORD PTR tv1186[ebp], eax
  0033c	c6 45 fc 09	 mov	 BYTE PTR __$EHRec$[ebp+8], 9
  00340	8b 8d 9c fc ff
	ff		 mov	 ecx, DWORD PTR tv1186[ebp]
  00346	51		 push	 ecx
  00347	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  0034a	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0034f	8b c8		 mov	 ecx, eax
  00351	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  00356	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  0035a	8d 8d 38 ff ff
	ff		 lea	 ecx, DWORD PTR $T360635[ebp]
  00360	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00365	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00369	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T360634[ebp]
  0036f	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN43@Providers_@15:

; 127  :             }
; 128  :             Source->Object = BT848Provider->GetSource(i);

  00374	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  00379	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
  0037e	89 85 98 fc ff
	ff		 mov	 DWORD PTR tv238[ebp], eax
  00384	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  00387	52		 push	 edx
  00388	8d 85 30 ff ff
	ff		 lea	 eax, DWORD PTR $T360636[ebp]
  0038e	50		 push	 eax
  0038f	8b 8d 98 fc ff
	ff		 mov	 ecx, DWORD PTR tv238[ebp]
  00395	8b 11		 mov	 edx, DWORD PTR [ecx]
  00397	8b 8d 98 fc ff
	ff		 mov	 ecx, DWORD PTR tv238[ebp]
  0039d	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  003a0	ff d0		 call	 eax
  003a2	89 85 94 fc ff
	ff		 mov	 DWORD PTR tv1312[ebp], eax
  003a8	8b 8d 94 fc ff
	ff		 mov	 ecx, DWORD PTR tv1312[ebp]
  003ae	89 8d 90 fc ff
	ff		 mov	 DWORD PTR tv1188[ebp], ecx
  003b4	c6 45 fc 0a	 mov	 BYTE PTR __$EHRec$[ebp+8], 10 ; 0000000aH
  003b8	8b 95 90 fc ff
	ff		 mov	 edx, DWORD PTR tv1188[ebp]
  003be	52		 push	 edx
  003bf	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  003c2	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  003c7	83 c0 1c	 add	 eax, 28			; 0000001cH
  003ca	8b c8		 mov	 ecx, eax
  003cc	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSource>::operator=
  003d1	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  003d5	8d 8d 30 ff ff
	ff		 lea	 ecx, DWORD PTR $T360636[ebp]
  003db	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 129  :             Source->DisplayInMenu = TRUE;

  003e0	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  003e3	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  003e8	c7 40 24 01 00
	00 00		 mov	 DWORD PTR [eax+36], 1

; 130  :             Sources.push_back(Source);

  003ef	8d 45 ac	 lea	 eax, DWORD PTR _Source$[ebp]
  003f2	50		 push	 eax
  003f3	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  003f8	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back

; 131  : 
; 132  :             // Set CurrentSource for Providers_GetCurrentSource function
; 133  :             // used in mixer code
; 134  :             CurrentSource = Sources.size()-1;

  003fd	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00402	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00407	83 e8 01	 sub	 eax, 1
  0040a	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax

; 135  :             // The first time, setup the audio mixer for the card
; 136  :             if (((CBT848Source*)(BT848Provider->GetSource(i).GetRawPointer()))->IsInitialSetup())

  0040f	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  00414	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
  00419	89 85 8c fc ff
	ff		 mov	 DWORD PTR tv264[ebp], eax
  0041f	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  00422	51		 push	 ecx
  00423	8d 95 24 ff ff
	ff		 lea	 edx, DWORD PTR $T360638[ebp]
  00429	52		 push	 edx
  0042a	8b 85 8c fc ff
	ff		 mov	 eax, DWORD PTR tv264[ebp]
  00430	8b 10		 mov	 edx, DWORD PTR [eax]
  00432	8b 8d 8c fc ff
	ff		 mov	 ecx, DWORD PTR tv264[ebp]
  00438	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0043b	ff d0		 call	 eax
  0043d	89 85 88 fc ff
	ff		 mov	 DWORD PTR tv1313[ebp], eax
  00443	8b 8d 88 fc ff
	ff		 mov	 ecx, DWORD PTR tv1313[ebp]
  00449	89 8d 84 fc ff
	ff		 mov	 DWORD PTR tv1190[ebp], ecx
  0044f	c6 45 fc 0b	 mov	 BYTE PTR __$EHRec$[ebp+8], 11 ; 0000000bH
  00453	8b 8d 84 fc ff
	ff		 mov	 ecx, DWORD PTR tv1190[ebp]
  00459	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  0045e	8b c8		 mov	 ecx, eax
  00460	e8 00 00 00 00	 call	 ?IsInitialSetup@CBT848Source@@QAEHXZ ; CBT848Source::IsInitialSetup
  00465	89 85 2c ff ff
	ff		 mov	 DWORD PTR $T360637[ebp], eax
  0046b	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0046f	8d 8d 24 ff ff
	ff		 lea	 ecx, DWORD PTR $T360638[ebp]
  00475	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  0047a	83 bd 2c ff ff
	ff 00		 cmp	 DWORD PTR $T360637[ebp], 0
  00481	74 05		 je	 SHORT $LN42@Providers_@15

; 137  :             {
; 138  :                 Providers_MixerSetup();

  00483	e8 00 00 00 00	 call	 ?Providers_MixerSetup@@YAXXZ ; Providers_MixerSetup
$LN42@Providers_@15:

; 139  :             }
; 140  : 
; 141  :             // Mute the audio of each source
; 142  :             BT848Provider->GetSource(i)->Mute();

  00488	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  0048d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCBT848Provider@@@@QBEPAVCBT848Provider@@XZ ; SmartPtr<CBT848Provider>::operator->
  00492	89 85 80 fc ff
	ff		 mov	 DWORD PTR tv285[ebp], eax
  00498	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  0049b	52		 push	 edx
  0049c	8d 85 1c ff ff
	ff		 lea	 eax, DWORD PTR $T360639[ebp]
  004a2	50		 push	 eax
  004a3	8b 8d 80 fc ff
	ff		 mov	 ecx, DWORD PTR tv285[ebp]
  004a9	8b 11		 mov	 edx, DWORD PTR [ecx]
  004ab	8b 8d 80 fc ff
	ff		 mov	 ecx, DWORD PTR tv285[ebp]
  004b1	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  004b4	ff d0		 call	 eax
  004b6	89 85 7c fc ff
	ff		 mov	 DWORD PTR tv1314[ebp], eax
  004bc	8b 8d 7c fc ff
	ff		 mov	 ecx, DWORD PTR tv1314[ebp]
  004c2	89 8d 78 fc ff
	ff		 mov	 DWORD PTR tv1192[ebp], ecx
  004c8	c6 45 fc 0c	 mov	 BYTE PTR __$EHRec$[ebp+8], 12 ; 0000000cH
  004cc	8b 8d 78 fc ff
	ff		 mov	 ecx, DWORD PTR tv1192[ebp]
  004d2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  004d7	89 85 74 fc ff
	ff		 mov	 DWORD PTR tv296[ebp], eax
  004dd	8b 95 74 fc ff
	ff		 mov	 edx, DWORD PTR tv296[ebp]
  004e3	8b 02		 mov	 eax, DWORD PTR [edx]
  004e5	8b 8d 74 fc ff
	ff		 mov	 ecx, DWORD PTR tv296[ebp]
  004eb	8b 50 1c	 mov	 edx, DWORD PTR [eax+28]
  004ee	ff d2		 call	 edx
  004f0	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  004f4	8d 8d 1c ff ff
	ff		 lea	 ecx, DWORD PTR $T360639[ebp]
  004fa	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 143  :         }

  004ff	e9 61 fc ff ff	 jmp	 $LN46@Providers_@15
$LN45@Providers_@15:

; 144  : #endif // WANT_BT8X8_SUPPORT
; 145  : 
; 146  : #ifdef WANT_CX2388X_SUPPORT
; 147  :         CX2388xProvider = new CCX2388xProvider(HardwareDriver);

  00504	6a 74		 push	 116			; 00000074H
  00506	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0050b	83 c4 04	 add	 esp, 4
  0050e	89 85 14 ff ff
	ff		 mov	 DWORD PTR $T360641[ebp], eax
  00514	c6 45 fc 0d	 mov	 BYTE PTR __$EHRec$[ebp+8], 13 ; 0000000dH
  00518	83 bd 14 ff ff
	ff 00		 cmp	 DWORD PTR $T360641[ebp], 0
  0051f	74 4e		 je	 SHORT $LN57@Providers_@15
  00521	83 ec 08	 sub	 esp, 8
  00524	8b cc		 mov	 ecx, esp
  00526	89 a5 10 ff ff
	ff		 mov	 DWORD PTR $T360642[ebp], esp
  0052c	68 00 00 00 00	 push	 OFFSET _HardwareDriver
  00531	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCHardwareDriver@@@@QAE@ABV0@@Z ; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>
  00536	89 85 70 fc ff
	ff		 mov	 DWORD PTR tv1316[ebp], eax
  0053c	8b 85 70 fc ff
	ff		 mov	 eax, DWORD PTR tv1316[ebp]
  00542	89 85 6c fc ff
	ff		 mov	 DWORD PTR tv1195[ebp], eax
  00548	c6 45 fc 0e	 mov	 BYTE PTR __$EHRec$[ebp+8], 14 ; 0000000eH
  0054c	c6 45 fc 0d	 mov	 BYTE PTR __$EHRec$[ebp+8], 13 ; 0000000dH
  00550	8b 8d 14 ff ff
	ff		 mov	 ecx, DWORD PTR $T360641[ebp]
  00556	e8 00 00 00 00	 call	 ??0CCX2388xProvider@@QAE@V?$SmartPtr@VCHardwareDriver@@@@@Z ; CCX2388xProvider::CCX2388xProvider
  0055b	89 85 68 fc ff
	ff		 mov	 DWORD PTR tv1196[ebp], eax
  00561	8b 8d 68 fc ff
	ff		 mov	 ecx, DWORD PTR tv1196[ebp]
  00567	89 8d 64 fc ff
	ff		 mov	 DWORD PTR tv322[ebp], ecx
  0056d	eb 0a		 jmp	 SHORT $LN58@Providers_@15
$LN57@Providers_@15:
  0056f	c7 85 64 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv322[ebp], 0
$LN58@Providers_@15:
  00579	8b 95 64 fc ff
	ff		 mov	 edx, DWORD PTR tv322[ebp]
  0057f	89 95 18 ff ff
	ff		 mov	 DWORD PTR $T360640[ebp], edx
  00585	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00589	8b 85 18 ff ff
	ff		 mov	 eax, DWORD PTR $T360640[ebp]
  0058f	50		 push	 eax
  00590	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  00595	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCCX2388xProvider@@@@QAEAAV0@PAVCCX2388xProvider@@@Z ; SmartPtr<CCX2388xProvider>::operator=

; 148  : 
; 149  :         // if we have any of these cards warn the user about the driver issues
; 150  :         // hopefully this will be enought to get a new release out
; 151  :         if(CX2388xProvider->GetNumberOfSources() > 0)

  0059a	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  0059f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  005a4	89 85 60 fc ff
	ff		 mov	 DWORD PTR tv329[ebp], eax
  005aa	8b 8d 60 fc ff
	ff		 mov	 ecx, DWORD PTR tv329[ebp]
  005b0	8b 11		 mov	 edx, DWORD PTR [ecx]
  005b2	8b 8d 60 fc ff
	ff		 mov	 ecx, DWORD PTR tv329[ebp]
  005b8	8b 02		 mov	 eax, DWORD PTR [edx]
  005ba	ff d0		 call	 eax
  005bc	85 c0		 test	 eax, eax
  005be	0f 8e 94 00 00
	00		 jle	 $LN41@Providers_@15

; 152  :         {
; 153  :             int RegFlag = GetPrivateProfileInt(_T("CX2388x"), _T("UseDShow"), -1, GetIniFileForSettings());

  005c4	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  005c9	50		 push	 eax
  005ca	6a ff		 push	 -1
  005cc	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@HLOCLEOC@?$AAU?$AAs?$AAe?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$AA@
  005d1	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@GLPMPHNC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?$AA@
  005d6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileIntW@16
  005dc	89 45 a8	 mov	 DWORD PTR _RegFlag$173752[ebp], eax

; 154  :             if(RegFlag == -1)

  005df	83 7d a8 ff	 cmp	 DWORD PTR _RegFlag$173752[ebp], -1
  005e3	75 67		 jne	 SHORT $LN40@Providers_@15

; 155  :             {
; 156  :                 int Resp = MessageBox(GetMainWnd(), _T(" You have a CX2388x card.  There have been several reported instability ")
; 157  :                     _T("problems with these cards if we allow the drivers to run.  Because of this you can either run with ")
; 158  :                     _T("DScaler's own drivers or with the DShow drivers but not both.  Do you want to use DScaler's own driver?"),
; 159  :                     _T("CX2388x Question"), MB_YESNO | MB_ICONQUESTION);

  005e5	6a 24		 push	 36			; 00000024H
  005e7	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@PEAAADIC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAQ?$AAu?$AAe?$AAs?$AAt?$AAi?$AAo?$AAn?$AA?$AA@
  005ec	68 00 00 00 00	 push	 OFFSET ??_C@_1CCG@GBNLLMEI@?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAa?$AA?5?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?4?$AA?5?$AA?5?$AAT?$AAh?$AAe?$AAr?$AAe@
  005f1	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  005f6	50		 push	 eax
  005f7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  005fd	89 45 a4	 mov	 DWORD PTR _Resp$173756[ebp], eax

; 160  :                 if(Resp == IDYES)

  00600	83 7d a4 06	 cmp	 DWORD PTR _Resp$173756[ebp], 6
  00604	75 23		 jne	 SHORT $LN39@Providers_@15

; 161  :                 {
; 162  :                     AllowCx2388xDShow = FALSE;

  00606	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _AllowCx2388xDShow$[ebp], 0

; 163  :                     WritePrivateProfileInt(_T("CX2388x"), _T("UseDShow"), 0, GetIniFileForSettings());

  0060d	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00612	50		 push	 eax
  00613	6a 00		 push	 0
  00615	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@HLOCLEOC@?$AAU?$AAs?$AAe?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$AA@
  0061a	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@GLPMPHNC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?$AA@
  0061f	e8 00 00 00 00	 call	 ?WritePrivateProfileInt@@YAXPB_W0H0@Z ; WritePrivateProfileInt
  00624	83 c4 10	 add	 esp, 16			; 00000010H

; 164  :                 }
; 165  :                 else

  00627	eb 21		 jmp	 SHORT $LN38@Providers_@15
$LN39@Providers_@15:

; 166  :                 {
; 167  :                     AllowCx2388xDShow = TRUE;

  00629	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _AllowCx2388xDShow$[ebp], 1

; 168  :                     WritePrivateProfileInt(_T("CX2388x"), _T("UseDShow"), 1, GetIniFileForSettings());

  00630	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00635	50		 push	 eax
  00636	6a 01		 push	 1
  00638	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@HLOCLEOC@?$AAU?$AAs?$AAe?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$AA@
  0063d	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@GLPMPHNC@?$AAC?$AAX?$AA2?$AA3?$AA8?$AA8?$AAx?$AA?$AA@
  00642	e8 00 00 00 00	 call	 ?WritePrivateProfileInt@@YAXPB_W0H0@Z ; WritePrivateProfileInt
  00647	83 c4 10	 add	 esp, 16			; 00000010H
$LN38@Providers_@15:

; 169  :                 }
; 170  :             }
; 171  :             else

  0064a	eb 0c		 jmp	 SHORT $LN41@Providers_@15
$LN40@Providers_@15:

; 172  :             {
; 173  :                 AllowCx2388xDShow = (RegFlag == 1);

  0064c	33 c9		 xor	 ecx, ecx
  0064e	83 7d a8 01	 cmp	 DWORD PTR _RegFlag$173752[ebp], 1
  00652	0f 94 c1	 sete	 cl
  00655	89 4d ec	 mov	 DWORD PTR _AllowCx2388xDShow$[ebp], ecx
$LN41@Providers_@15:

; 174  :             }
; 175  :         }
; 176  : 
; 177  :         for(i = 0; i < CX2388xProvider->GetNumberOfSources(); ++i)

  00658	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0065f	eb 09		 jmp	 SHORT $LN36@Providers_@15
$LN35@Providers_@15:
  00661	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  00664	83 c2 01	 add	 edx, 1
  00667	89 55 e8	 mov	 DWORD PTR _i$[ebp], edx
$LN36@Providers_@15:
  0066a	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  0066f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  00674	89 85 5c fc ff
	ff		 mov	 DWORD PTR tv368[ebp], eax
  0067a	8b 85 5c fc ff
	ff		 mov	 eax, DWORD PTR tv368[ebp]
  00680	8b 10		 mov	 edx, DWORD PTR [eax]
  00682	8b 8d 5c fc ff
	ff		 mov	 ecx, DWORD PTR tv368[ebp]
  00688	8b 02		 mov	 eax, DWORD PTR [edx]
  0068a	ff d0		 call	 eax
  0068c	39 45 e8	 cmp	 DWORD PTR _i$[ebp], eax
  0068f	0f 8d 80 03 00
	00		 jge	 $LN34@Providers_@15

; 178  :         {
; 179  :             Source = new TSource;

  00695	6a 28		 push	 40			; 00000028H
  00697	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0069c	83 c4 04	 add	 esp, 4
  0069f	89 85 08 ff ff
	ff		 mov	 DWORD PTR $T360646[ebp], eax
  006a5	c6 45 fc 0f	 mov	 BYTE PTR __$EHRec$[ebp+8], 15 ; 0000000fH
  006a9	83 bd 08 ff ff
	ff 00		 cmp	 DWORD PTR $T360646[ebp], 0
  006b0	74 13		 je	 SHORT $LN59@Providers_@15
  006b2	8b 8d 08 ff ff
	ff		 mov	 ecx, DWORD PTR $T360646[ebp]
  006b8	e8 00 00 00 00	 call	 ??0TSource@@QAE@XZ
  006bd	89 85 58 fc ff
	ff		 mov	 DWORD PTR tv382[ebp], eax
  006c3	eb 0a		 jmp	 SHORT $LN60@Providers_@15
$LN59@Providers_@15:
  006c5	c7 85 58 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv382[ebp], 0
$LN60@Providers_@15:
  006cf	8b 8d 58 fc ff
	ff		 mov	 ecx, DWORD PTR tv382[ebp]
  006d5	89 8d 0c ff ff
	ff		 mov	 DWORD PTR $T360645[ebp], ecx
  006db	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  006df	8b 95 0c ff ff
	ff		 mov	 edx, DWORD PTR $T360645[ebp]
  006e5	52		 push	 edx
  006e6	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  006e9	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ; SmartPtr<TSource>::operator=

; 180  :             if (CX2388xProvider->GetSource(i)->GetMenuLabel().empty())

  006ee	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  006f3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  006f8	89 85 54 fc ff
	ff		 mov	 DWORD PTR tv389[ebp], eax
  006fe	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  00701	50		 push	 eax
  00702	8d 8d fc fe ff
	ff		 lea	 ecx, DWORD PTR $T360650[ebp]
  00708	51		 push	 ecx
  00709	8b 95 54 fc ff
	ff		 mov	 edx, DWORD PTR tv389[ebp]
  0070f	8b 02		 mov	 eax, DWORD PTR [edx]
  00711	8b 8d 54 fc ff
	ff		 mov	 ecx, DWORD PTR tv389[ebp]
  00717	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0071a	ff d2		 call	 edx
  0071c	89 85 50 fc ff
	ff		 mov	 DWORD PTR tv1319[ebp], eax
  00722	8b 85 50 fc ff
	ff		 mov	 eax, DWORD PTR tv1319[ebp]
  00728	89 85 4c fc ff
	ff		 mov	 DWORD PTR tv1199[ebp], eax
  0072e	c6 45 fc 10	 mov	 BYTE PTR __$EHRec$[ebp+8], 16 ; 00000010H
  00732	8b 8d 4c fc ff
	ff		 mov	 ecx, DWORD PTR tv1199[ebp]
  00738	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  0073d	89 85 48 fc ff
	ff		 mov	 DWORD PTR tv400[ebp], eax
  00743	8d 8d e0 fe ff
	ff		 lea	 ecx, DWORD PTR $T360651[ebp]
  00749	51		 push	 ecx
  0074a	8b 95 48 fc ff
	ff		 mov	 edx, DWORD PTR tv400[ebp]
  00750	8b 02		 mov	 eax, DWORD PTR [edx]
  00752	8b 8d 48 fc ff
	ff		 mov	 ecx, DWORD PTR tv400[ebp]
  00758	8b 90 9c 00 00
	00		 mov	 edx, DWORD PTR [eax+156]
  0075e	ff d2		 call	 edx
  00760	89 85 44 fc ff
	ff		 mov	 DWORD PTR tv1320[ebp], eax
  00766	8b 85 44 fc ff
	ff		 mov	 eax, DWORD PTR tv1320[ebp]
  0076c	89 85 40 fc ff
	ff		 mov	 DWORD PTR tv1201[ebp], eax
  00772	c6 45 fc 11	 mov	 BYTE PTR __$EHRec$[ebp+8], 17 ; 00000011H
  00776	8b 8d 40 fc ff
	ff		 mov	 ecx, DWORD PTR tv1201[ebp]
  0077c	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  00781	88 85 07 ff ff
	ff		 mov	 BYTE PTR $T360649[ebp], al
  00787	c6 45 fc 10	 mov	 BYTE PTR __$EHRec$[ebp+8], 16 ; 00000010H
  0078b	8d 8d e0 fe ff
	ff		 lea	 ecx, DWORD PTR $T360651[ebp]
  00791	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00796	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0079a	8d 8d fc fe ff
	ff		 lea	 ecx, DWORD PTR $T360650[ebp]
  007a0	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  007a5	0f b6 8d 07 ff
	ff ff		 movzx	 ecx, BYTE PTR $T360649[ebp]
  007ac	85 c9		 test	 ecx, ecx
  007ae	74 19		 je	 SHORT $LN33@Providers_@15

; 181  :             {
; 182  :                 Source->Name = _T("CX Card");

  007b0	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@IDPDCIOJ@?$AAC?$AAX?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@
  007b5	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  007b8	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  007bd	8b c8		 mov	 ecx, eax
  007bf	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 183  :             }
; 184  :             else

  007c4	e9 bc 00 00 00	 jmp	 $LN32@Providers_@15
$LN33@Providers_@15:

; 185  :             {
; 186  :                 Source->Name = CX2388xProvider->GetSource(i)->GetMenuLabel();

  007c9	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  007ce	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  007d3	89 85 3c fc ff
	ff		 mov	 DWORD PTR tv458[ebp], eax
  007d9	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  007dc	52		 push	 edx
  007dd	8d 85 d8 fe ff
	ff		 lea	 eax, DWORD PTR $T360652[ebp]
  007e3	50		 push	 eax
  007e4	8b 8d 3c fc ff
	ff		 mov	 ecx, DWORD PTR tv458[ebp]
  007ea	8b 11		 mov	 edx, DWORD PTR [ecx]
  007ec	8b 8d 3c fc ff
	ff		 mov	 ecx, DWORD PTR tv458[ebp]
  007f2	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  007f5	ff d0		 call	 eax
  007f7	89 85 38 fc ff
	ff		 mov	 DWORD PTR tv1321[ebp], eax
  007fd	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR tv1321[ebp]
  00803	89 8d 34 fc ff
	ff		 mov	 DWORD PTR tv1203[ebp], ecx
  00809	c6 45 fc 12	 mov	 BYTE PTR __$EHRec$[ebp+8], 18 ; 00000012H
  0080d	8b 8d 34 fc ff
	ff		 mov	 ecx, DWORD PTR tv1203[ebp]
  00813	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00818	89 85 30 fc ff
	ff		 mov	 DWORD PTR tv469[ebp], eax
  0081e	8d 95 bc fe ff
	ff		 lea	 edx, DWORD PTR $T360653[ebp]
  00824	52		 push	 edx
  00825	8b 85 30 fc ff
	ff		 mov	 eax, DWORD PTR tv469[ebp]
  0082b	8b 10		 mov	 edx, DWORD PTR [eax]
  0082d	8b 8d 30 fc ff
	ff		 mov	 ecx, DWORD PTR tv469[ebp]
  00833	8b 82 9c 00 00
	00		 mov	 eax, DWORD PTR [edx+156]
  00839	ff d0		 call	 eax
  0083b	89 85 2c fc ff
	ff		 mov	 DWORD PTR tv1322[ebp], eax
  00841	8b 8d 2c fc ff
	ff		 mov	 ecx, DWORD PTR tv1322[ebp]
  00847	89 8d 28 fc ff
	ff		 mov	 DWORD PTR tv1205[ebp], ecx
  0084d	c6 45 fc 13	 mov	 BYTE PTR __$EHRec$[ebp+8], 19 ; 00000013H
  00851	8b 95 28 fc ff
	ff		 mov	 edx, DWORD PTR tv1205[ebp]
  00857	52		 push	 edx
  00858	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  0085b	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00860	8b c8		 mov	 ecx, eax
  00862	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  00867	c6 45 fc 12	 mov	 BYTE PTR __$EHRec$[ebp+8], 18 ; 00000012H
  0086b	8d 8d bc fe ff
	ff		 lea	 ecx, DWORD PTR $T360653[ebp]
  00871	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00876	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0087a	8d 8d d8 fe ff
	ff		 lea	 ecx, DWORD PTR $T360652[ebp]
  00880	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN32@Providers_@15:

; 187  :             }
; 188  :             Source->Object = CX2388xProvider->GetSource(i);

  00885	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  0088a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  0088f	89 85 24 fc ff
	ff		 mov	 DWORD PTR tv488[ebp], eax
  00895	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  00898	50		 push	 eax
  00899	8d 8d b4 fe ff
	ff		 lea	 ecx, DWORD PTR $T360654[ebp]
  0089f	51		 push	 ecx
  008a0	8b 95 24 fc ff
	ff		 mov	 edx, DWORD PTR tv488[ebp]
  008a6	8b 02		 mov	 eax, DWORD PTR [edx]
  008a8	8b 8d 24 fc ff
	ff		 mov	 ecx, DWORD PTR tv488[ebp]
  008ae	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  008b1	ff d2		 call	 edx
  008b3	89 85 20 fc ff
	ff		 mov	 DWORD PTR tv1323[ebp], eax
  008b9	8b 85 20 fc ff
	ff		 mov	 eax, DWORD PTR tv1323[ebp]
  008bf	89 85 1c fc ff
	ff		 mov	 DWORD PTR tv1207[ebp], eax
  008c5	c6 45 fc 14	 mov	 BYTE PTR __$EHRec$[ebp+8], 20 ; 00000014H
  008c9	8b 8d 1c fc ff
	ff		 mov	 ecx, DWORD PTR tv1207[ebp]
  008cf	51		 push	 ecx
  008d0	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  008d3	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  008d8	83 c0 1c	 add	 eax, 28			; 0000001cH
  008db	8b c8		 mov	 ecx, eax
  008dd	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSource>::operator=
  008e2	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  008e6	8d 8d b4 fe ff
	ff		 lea	 ecx, DWORD PTR $T360654[ebp]
  008ec	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 189  :             Source->DisplayInMenu = TRUE;

  008f1	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  008f4	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  008f9	c7 40 24 01 00
	00 00		 mov	 DWORD PTR [eax+36], 1

; 190  :             Sources.push_back(Source);

  00900	8d 55 ac	 lea	 edx, DWORD PTR _Source$[ebp]
  00903	52		 push	 edx
  00904	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00909	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back

; 191  : 
; 192  :             // Set CurrentSource for Providers_GetCurrentSource function
; 193  :             // used in mixer code
; 194  :             CurrentSource = Sources.size()-1;

  0090e	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00913	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00918	83 e8 01	 sub	 eax, 1
  0091b	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax

; 195  :             // The first time, setup the audio mixer for the card
; 196  :             if (((CCX2388xSource*)(CX2388xProvider->GetSource(i).GetRawPointer()))->IsInitialSetup())

  00920	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  00925	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  0092a	89 85 18 fc ff
	ff		 mov	 DWORD PTR tv514[ebp], eax
  00930	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  00933	50		 push	 eax
  00934	8d 8d a8 fe ff
	ff		 lea	 ecx, DWORD PTR $T360656[ebp]
  0093a	51		 push	 ecx
  0093b	8b 95 18 fc ff
	ff		 mov	 edx, DWORD PTR tv514[ebp]
  00941	8b 02		 mov	 eax, DWORD PTR [edx]
  00943	8b 8d 18 fc ff
	ff		 mov	 ecx, DWORD PTR tv514[ebp]
  00949	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0094c	ff d2		 call	 edx
  0094e	89 85 14 fc ff
	ff		 mov	 DWORD PTR tv1324[ebp], eax
  00954	8b 85 14 fc ff
	ff		 mov	 eax, DWORD PTR tv1324[ebp]
  0095a	89 85 10 fc ff
	ff		 mov	 DWORD PTR tv1209[ebp], eax
  00960	c6 45 fc 15	 mov	 BYTE PTR __$EHRec$[ebp+8], 21 ; 00000015H
  00964	8b 8d 10 fc ff
	ff		 mov	 ecx, DWORD PTR tv1209[ebp]
  0096a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  0096f	8b c8		 mov	 ecx, eax
  00971	e8 00 00 00 00	 call	 ?IsInitialSetup@CCX2388xSource@@QAEHXZ ; CCX2388xSource::IsInitialSetup
  00976	89 85 b0 fe ff
	ff		 mov	 DWORD PTR $T360655[ebp], eax
  0097c	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00980	8d 8d a8 fe ff
	ff		 lea	 ecx, DWORD PTR $T360656[ebp]
  00986	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  0098b	83 bd b0 fe ff
	ff 00		 cmp	 DWORD PTR $T360655[ebp], 0
  00992	74 05		 je	 SHORT $LN31@Providers_@15

; 197  :             {
; 198  :                 Providers_MixerSetup();

  00994	e8 00 00 00 00	 call	 ?Providers_MixerSetup@@YAXXZ ; Providers_MixerSetup
$LN31@Providers_@15:

; 199  :             }
; 200  : 
; 201  :             // Mute the audio of each source
; 202  :             CX2388xProvider->GetSource(i)->Mute();

  00999	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  0099e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xProvider@@@@QBEPAVCCX2388xProvider@@XZ ; SmartPtr<CCX2388xProvider>::operator->
  009a3	89 85 0c fc ff
	ff		 mov	 DWORD PTR tv535[ebp], eax
  009a9	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  009ac	51		 push	 ecx
  009ad	8d 95 a0 fe ff
	ff		 lea	 edx, DWORD PTR $T360657[ebp]
  009b3	52		 push	 edx
  009b4	8b 85 0c fc ff
	ff		 mov	 eax, DWORD PTR tv535[ebp]
  009ba	8b 10		 mov	 edx, DWORD PTR [eax]
  009bc	8b 8d 0c fc ff
	ff		 mov	 ecx, DWORD PTR tv535[ebp]
  009c2	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  009c5	ff d0		 call	 eax
  009c7	89 85 08 fc ff
	ff		 mov	 DWORD PTR tv1325[ebp], eax
  009cd	8b 8d 08 fc ff
	ff		 mov	 ecx, DWORD PTR tv1325[ebp]
  009d3	89 8d 04 fc ff
	ff		 mov	 DWORD PTR tv1211[ebp], ecx
  009d9	c6 45 fc 16	 mov	 BYTE PTR __$EHRec$[ebp+8], 22 ; 00000016H
  009dd	8b 8d 04 fc ff
	ff		 mov	 ecx, DWORD PTR tv1211[ebp]
  009e3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  009e8	89 85 00 fc ff
	ff		 mov	 DWORD PTR tv546[ebp], eax
  009ee	8b 95 00 fc ff
	ff		 mov	 edx, DWORD PTR tv546[ebp]
  009f4	8b 02		 mov	 eax, DWORD PTR [edx]
  009f6	8b 8d 00 fc ff
	ff		 mov	 ecx, DWORD PTR tv546[ebp]
  009fc	8b 50 1c	 mov	 edx, DWORD PTR [eax+28]
  009ff	ff d2		 call	 edx
  00a01	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00a05	8d 8d a0 fe ff
	ff		 lea	 ecx, DWORD PTR $T360657[ebp]
  00a0b	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 203  :         }

  00a10	e9 4c fc ff ff	 jmp	 $LN35@Providers_@15
$LN34@Providers_@15:

; 204  : #endif // WANT_CX2388X_SUPPORT
; 205  : 
; 206  : #ifdef WANT_SAA713X_SUPPORT
; 207  :         SAA7134Provider = new CSAA7134Provider(HardwareDriver);

  00a15	6a 5c		 push	 92			; 0000005cH
  00a17	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00a1c	83 c4 04	 add	 esp, 4
  00a1f	89 85 98 fe ff
	ff		 mov	 DWORD PTR $T360659[ebp], eax
  00a25	c6 45 fc 17	 mov	 BYTE PTR __$EHRec$[ebp+8], 23 ; 00000017H
  00a29	83 bd 98 fe ff
	ff 00		 cmp	 DWORD PTR $T360659[ebp], 0
  00a30	74 4e		 je	 SHORT $LN61@Providers_@15
  00a32	83 ec 08	 sub	 esp, 8
  00a35	8b cc		 mov	 ecx, esp
  00a37	89 a5 94 fe ff
	ff		 mov	 DWORD PTR $T360660[ebp], esp
  00a3d	68 00 00 00 00	 push	 OFFSET _HardwareDriver
  00a42	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCHardwareDriver@@@@QAE@ABV0@@Z ; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>
  00a47	89 85 fc fb ff
	ff		 mov	 DWORD PTR tv1327[ebp], eax
  00a4d	8b 85 fc fb ff
	ff		 mov	 eax, DWORD PTR tv1327[ebp]
  00a53	89 85 f8 fb ff
	ff		 mov	 DWORD PTR tv1214[ebp], eax
  00a59	c6 45 fc 18	 mov	 BYTE PTR __$EHRec$[ebp+8], 24 ; 00000018H
  00a5d	c6 45 fc 17	 mov	 BYTE PTR __$EHRec$[ebp+8], 23 ; 00000017H
  00a61	8b 8d 98 fe ff
	ff		 mov	 ecx, DWORD PTR $T360659[ebp]
  00a67	e8 00 00 00 00	 call	 ??0CSAA7134Provider@@QAE@V?$SmartPtr@VCHardwareDriver@@@@@Z ; CSAA7134Provider::CSAA7134Provider
  00a6c	89 85 f4 fb ff
	ff		 mov	 DWORD PTR tv1215[ebp], eax
  00a72	8b 8d f4 fb ff
	ff		 mov	 ecx, DWORD PTR tv1215[ebp]
  00a78	89 8d f0 fb ff
	ff		 mov	 DWORD PTR tv572[ebp], ecx
  00a7e	eb 0a		 jmp	 SHORT $LN62@Providers_@15
$LN61@Providers_@15:
  00a80	c7 85 f0 fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv572[ebp], 0
$LN62@Providers_@15:
  00a8a	8b 95 f0 fb ff
	ff		 mov	 edx, DWORD PTR tv572[ebp]
  00a90	89 95 9c fe ff
	ff		 mov	 DWORD PTR $T360658[ebp], edx
  00a96	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00a9a	8b 85 9c fe ff
	ff		 mov	 eax, DWORD PTR $T360658[ebp]
  00aa0	50		 push	 eax
  00aa1	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00aa6	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSAA7134Provider@@@@QAEAAV0@PAVCSAA7134Provider@@@Z ; SmartPtr<CSAA7134Provider>::operator=

; 208  :         for(i = 0; i < SAA7134Provider->GetNumberOfSources(); ++i)

  00aab	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00ab2	eb 09		 jmp	 SHORT $LN30@Providers_@15
$LN29@Providers_@15:
  00ab4	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  00ab7	83 c1 01	 add	 ecx, 1
  00aba	89 4d e8	 mov	 DWORD PTR _i$[ebp], ecx
$LN30@Providers_@15:
  00abd	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00ac2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
  00ac7	89 85 ec fb ff
	ff		 mov	 DWORD PTR tv580[ebp], eax
  00acd	8b 95 ec fb ff
	ff		 mov	 edx, DWORD PTR tv580[ebp]
  00ad3	8b 02		 mov	 eax, DWORD PTR [edx]
  00ad5	8b 8d ec fb ff
	ff		 mov	 ecx, DWORD PTR tv580[ebp]
  00adb	8b 10		 mov	 edx, DWORD PTR [eax]
  00add	ff d2		 call	 edx
  00adf	39 45 e8	 cmp	 DWORD PTR _i$[ebp], eax
  00ae2	0f 8d 80 03 00
	00		 jge	 $LN28@Providers_@15

; 209  :         {
; 210  :             Source = new TSource;

  00ae8	6a 28		 push	 40			; 00000028H
  00aea	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00aef	83 c4 04	 add	 esp, 4
  00af2	89 85 8c fe ff
	ff		 mov	 DWORD PTR $T360664[ebp], eax
  00af8	c6 45 fc 19	 mov	 BYTE PTR __$EHRec$[ebp+8], 25 ; 00000019H
  00afc	83 bd 8c fe ff
	ff 00		 cmp	 DWORD PTR $T360664[ebp], 0
  00b03	74 13		 je	 SHORT $LN63@Providers_@15
  00b05	8b 8d 8c fe ff
	ff		 mov	 ecx, DWORD PTR $T360664[ebp]
  00b0b	e8 00 00 00 00	 call	 ??0TSource@@QAE@XZ
  00b10	89 85 e8 fb ff
	ff		 mov	 DWORD PTR tv594[ebp], eax
  00b16	eb 0a		 jmp	 SHORT $LN64@Providers_@15
$LN63@Providers_@15:
  00b18	c7 85 e8 fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv594[ebp], 0
$LN64@Providers_@15:
  00b22	8b 85 e8 fb ff
	ff		 mov	 eax, DWORD PTR tv594[ebp]
  00b28	89 85 90 fe ff
	ff		 mov	 DWORD PTR $T360663[ebp], eax
  00b2e	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00b32	8b 8d 90 fe ff
	ff		 mov	 ecx, DWORD PTR $T360663[ebp]
  00b38	51		 push	 ecx
  00b39	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00b3c	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ; SmartPtr<TSource>::operator=

; 211  :             if (SAA7134Provider->GetSource(i)->GetMenuLabel().empty())

  00b41	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00b46	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
  00b4b	89 85 e4 fb ff
	ff		 mov	 DWORD PTR tv601[ebp], eax
  00b51	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  00b54	52		 push	 edx
  00b55	8d 85 80 fe ff
	ff		 lea	 eax, DWORD PTR $T360668[ebp]
  00b5b	50		 push	 eax
  00b5c	8b 8d e4 fb ff
	ff		 mov	 ecx, DWORD PTR tv601[ebp]
  00b62	8b 11		 mov	 edx, DWORD PTR [ecx]
  00b64	8b 8d e4 fb ff
	ff		 mov	 ecx, DWORD PTR tv601[ebp]
  00b6a	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00b6d	ff d0		 call	 eax
  00b6f	89 85 e0 fb ff
	ff		 mov	 DWORD PTR tv1330[ebp], eax
  00b75	8b 8d e0 fb ff
	ff		 mov	 ecx, DWORD PTR tv1330[ebp]
  00b7b	89 8d dc fb ff
	ff		 mov	 DWORD PTR tv1218[ebp], ecx
  00b81	c6 45 fc 1a	 mov	 BYTE PTR __$EHRec$[ebp+8], 26 ; 0000001aH
  00b85	8b 8d dc fb ff
	ff		 mov	 ecx, DWORD PTR tv1218[ebp]
  00b8b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00b90	89 85 d8 fb ff
	ff		 mov	 DWORD PTR tv612[ebp], eax
  00b96	8d 95 64 fe ff
	ff		 lea	 edx, DWORD PTR $T360669[ebp]
  00b9c	52		 push	 edx
  00b9d	8b 85 d8 fb ff
	ff		 mov	 eax, DWORD PTR tv612[ebp]
  00ba3	8b 10		 mov	 edx, DWORD PTR [eax]
  00ba5	8b 8d d8 fb ff
	ff		 mov	 ecx, DWORD PTR tv612[ebp]
  00bab	8b 82 9c 00 00
	00		 mov	 eax, DWORD PTR [edx+156]
  00bb1	ff d0		 call	 eax
  00bb3	89 85 d4 fb ff
	ff		 mov	 DWORD PTR tv1331[ebp], eax
  00bb9	8b 8d d4 fb ff
	ff		 mov	 ecx, DWORD PTR tv1331[ebp]
  00bbf	89 8d d0 fb ff
	ff		 mov	 DWORD PTR tv1220[ebp], ecx
  00bc5	c6 45 fc 1b	 mov	 BYTE PTR __$EHRec$[ebp+8], 27 ; 0000001bH
  00bc9	8b 8d d0 fb ff
	ff		 mov	 ecx, DWORD PTR tv1220[ebp]
  00bcf	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  00bd4	88 85 8b fe ff
	ff		 mov	 BYTE PTR $T360667[ebp], al
  00bda	c6 45 fc 1a	 mov	 BYTE PTR __$EHRec$[ebp+8], 26 ; 0000001aH
  00bde	8d 8d 64 fe ff
	ff		 lea	 ecx, DWORD PTR $T360669[ebp]
  00be4	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00be9	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00bed	8d 8d 80 fe ff
	ff		 lea	 ecx, DWORD PTR $T360668[ebp]
  00bf3	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  00bf8	0f b6 95 8b fe
	ff ff		 movzx	 edx, BYTE PTR $T360667[ebp]
  00bff	85 d2		 test	 edx, edx
  00c01	74 19		 je	 SHORT $LN27@Providers_@15

; 212  :             {
; 213  :                 Source->Name = _T("SAA7134 Card");

  00c03	68 00 00 00 00	 push	 OFFSET ??_C@_1BK@NIGDHGNB@?$AAS?$AAA?$AAA?$AA7?$AA1?$AA3?$AA4?$AA?5?$AAC?$AAa?$AAr?$AAd?$AA?$AA@
  00c08	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00c0b	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00c10	8b c8		 mov	 ecx, eax
  00c12	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 214  :             }
; 215  :             else

  00c17	e9 bc 00 00 00	 jmp	 $LN26@Providers_@15
$LN27@Providers_@15:

; 216  :             {
; 217  :                 Source->Name = SAA7134Provider->GetSource(i)->GetMenuLabel();

  00c1c	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00c21	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
  00c26	89 85 cc fb ff
	ff		 mov	 DWORD PTR tv638[ebp], eax
  00c2c	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  00c2f	50		 push	 eax
  00c30	8d 8d 5c fe ff
	ff		 lea	 ecx, DWORD PTR $T360670[ebp]
  00c36	51		 push	 ecx
  00c37	8b 95 cc fb ff
	ff		 mov	 edx, DWORD PTR tv638[ebp]
  00c3d	8b 02		 mov	 eax, DWORD PTR [edx]
  00c3f	8b 8d cc fb ff
	ff		 mov	 ecx, DWORD PTR tv638[ebp]
  00c45	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00c48	ff d2		 call	 edx
  00c4a	89 85 c8 fb ff
	ff		 mov	 DWORD PTR tv1332[ebp], eax
  00c50	8b 85 c8 fb ff
	ff		 mov	 eax, DWORD PTR tv1332[ebp]
  00c56	89 85 c4 fb ff
	ff		 mov	 DWORD PTR tv1222[ebp], eax
  00c5c	c6 45 fc 1c	 mov	 BYTE PTR __$EHRec$[ebp+8], 28 ; 0000001cH
  00c60	8b 8d c4 fb ff
	ff		 mov	 ecx, DWORD PTR tv1222[ebp]
  00c66	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00c6b	89 85 c0 fb ff
	ff		 mov	 DWORD PTR tv649[ebp], eax
  00c71	8d 8d 40 fe ff
	ff		 lea	 ecx, DWORD PTR $T360671[ebp]
  00c77	51		 push	 ecx
  00c78	8b 95 c0 fb ff
	ff		 mov	 edx, DWORD PTR tv649[ebp]
  00c7e	8b 02		 mov	 eax, DWORD PTR [edx]
  00c80	8b 8d c0 fb ff
	ff		 mov	 ecx, DWORD PTR tv649[ebp]
  00c86	8b 90 9c 00 00
	00		 mov	 edx, DWORD PTR [eax+156]
  00c8c	ff d2		 call	 edx
  00c8e	89 85 bc fb ff
	ff		 mov	 DWORD PTR tv1333[ebp], eax
  00c94	8b 85 bc fb ff
	ff		 mov	 eax, DWORD PTR tv1333[ebp]
  00c9a	89 85 b8 fb ff
	ff		 mov	 DWORD PTR tv1224[ebp], eax
  00ca0	c6 45 fc 1d	 mov	 BYTE PTR __$EHRec$[ebp+8], 29 ; 0000001dH
  00ca4	8b 8d b8 fb ff
	ff		 mov	 ecx, DWORD PTR tv1224[ebp]
  00caa	51		 push	 ecx
  00cab	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00cae	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00cb3	8b c8		 mov	 ecx, eax
  00cb5	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  00cba	c6 45 fc 1c	 mov	 BYTE PTR __$EHRec$[ebp+8], 28 ; 0000001cH
  00cbe	8d 8d 40 fe ff
	ff		 lea	 ecx, DWORD PTR $T360671[ebp]
  00cc4	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00cc9	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00ccd	8d 8d 5c fe ff
	ff		 lea	 ecx, DWORD PTR $T360670[ebp]
  00cd3	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN26@Providers_@15:

; 218  :             }
; 219  :             Source->Object = SAA7134Provider->GetSource(i);

  00cd8	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00cdd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
  00ce2	89 85 b4 fb ff
	ff		 mov	 DWORD PTR tv668[ebp], eax
  00ce8	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  00ceb	52		 push	 edx
  00cec	8d 85 38 fe ff
	ff		 lea	 eax, DWORD PTR $T360672[ebp]
  00cf2	50		 push	 eax
  00cf3	8b 8d b4 fb ff
	ff		 mov	 ecx, DWORD PTR tv668[ebp]
  00cf9	8b 11		 mov	 edx, DWORD PTR [ecx]
  00cfb	8b 8d b4 fb ff
	ff		 mov	 ecx, DWORD PTR tv668[ebp]
  00d01	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00d04	ff d0		 call	 eax
  00d06	89 85 b0 fb ff
	ff		 mov	 DWORD PTR tv1334[ebp], eax
  00d0c	8b 8d b0 fb ff
	ff		 mov	 ecx, DWORD PTR tv1334[ebp]
  00d12	89 8d ac fb ff
	ff		 mov	 DWORD PTR tv1226[ebp], ecx
  00d18	c6 45 fc 1e	 mov	 BYTE PTR __$EHRec$[ebp+8], 30 ; 0000001eH
  00d1c	8b 95 ac fb ff
	ff		 mov	 edx, DWORD PTR tv1226[ebp]
  00d22	52		 push	 edx
  00d23	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00d26	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00d2b	83 c0 1c	 add	 eax, 28			; 0000001cH
  00d2e	8b c8		 mov	 ecx, eax
  00d30	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSource>::operator=
  00d35	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00d39	8d 8d 38 fe ff
	ff		 lea	 ecx, DWORD PTR $T360672[ebp]
  00d3f	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 220  :             Source->DisplayInMenu = TRUE;

  00d44	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00d47	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00d4c	c7 40 24 01 00
	00 00		 mov	 DWORD PTR [eax+36], 1

; 221  :             Sources.push_back(Source);

  00d53	8d 45 ac	 lea	 eax, DWORD PTR _Source$[ebp]
  00d56	50		 push	 eax
  00d57	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00d5c	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back

; 222  : 
; 223  :             // Set CurrentSource for Providers_GetCurrentSource function
; 224  :             // used in mixer code
; 225  :             CurrentSource = Sources.size()-1;

  00d61	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00d66	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00d6b	83 e8 01	 sub	 eax, 1
  00d6e	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax

; 226  :             // The first time, setup the audio mixer for the card
; 227  :             if (((CSAA7134Source*)(SAA7134Provider->GetSource(i).GetRawPointer()))->IsInitialSetup())

  00d73	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00d78	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
  00d7d	89 85 a8 fb ff
	ff		 mov	 DWORD PTR tv694[ebp], eax
  00d83	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  00d86	51		 push	 ecx
  00d87	8d 95 2c fe ff
	ff		 lea	 edx, DWORD PTR $T360674[ebp]
  00d8d	52		 push	 edx
  00d8e	8b 85 a8 fb ff
	ff		 mov	 eax, DWORD PTR tv694[ebp]
  00d94	8b 10		 mov	 edx, DWORD PTR [eax]
  00d96	8b 8d a8 fb ff
	ff		 mov	 ecx, DWORD PTR tv694[ebp]
  00d9c	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00d9f	ff d0		 call	 eax
  00da1	89 85 a4 fb ff
	ff		 mov	 DWORD PTR tv1335[ebp], eax
  00da7	8b 8d a4 fb ff
	ff		 mov	 ecx, DWORD PTR tv1335[ebp]
  00dad	89 8d a0 fb ff
	ff		 mov	 DWORD PTR tv1228[ebp], ecx
  00db3	c6 45 fc 1f	 mov	 BYTE PTR __$EHRec$[ebp+8], 31 ; 0000001fH
  00db7	8b 8d a0 fb ff
	ff		 mov	 ecx, DWORD PTR tv1228[ebp]
  00dbd	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  00dc2	8b c8		 mov	 ecx, eax
  00dc4	e8 00 00 00 00	 call	 ?IsInitialSetup@CSAA7134Source@@QAEHXZ ; CSAA7134Source::IsInitialSetup
  00dc9	89 85 34 fe ff
	ff		 mov	 DWORD PTR $T360673[ebp], eax
  00dcf	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00dd3	8d 8d 2c fe ff
	ff		 lea	 ecx, DWORD PTR $T360674[ebp]
  00dd9	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  00dde	83 bd 34 fe ff
	ff 00		 cmp	 DWORD PTR $T360673[ebp], 0
  00de5	74 05		 je	 SHORT $LN25@Providers_@15

; 228  :             {
; 229  :                 Providers_MixerSetup();

  00de7	e8 00 00 00 00	 call	 ?Providers_MixerSetup@@YAXXZ ; Providers_MixerSetup
$LN25@Providers_@15:

; 230  :             }
; 231  : 
; 232  :             // Mute the audio of each source
; 233  :             SAA7134Provider->GetSource(i)->Mute();

  00dec	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00df1	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSAA7134Provider@@@@QBEPAVCSAA7134Provider@@XZ ; SmartPtr<CSAA7134Provider>::operator->
  00df6	89 85 9c fb ff
	ff		 mov	 DWORD PTR tv715[ebp], eax
  00dfc	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  00dff	52		 push	 edx
  00e00	8d 85 24 fe ff
	ff		 lea	 eax, DWORD PTR $T360675[ebp]
  00e06	50		 push	 eax
  00e07	8b 8d 9c fb ff
	ff		 mov	 ecx, DWORD PTR tv715[ebp]
  00e0d	8b 11		 mov	 edx, DWORD PTR [ecx]
  00e0f	8b 8d 9c fb ff
	ff		 mov	 ecx, DWORD PTR tv715[ebp]
  00e15	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00e18	ff d0		 call	 eax
  00e1a	89 85 98 fb ff
	ff		 mov	 DWORD PTR tv1336[ebp], eax
  00e20	8b 8d 98 fb ff
	ff		 mov	 ecx, DWORD PTR tv1336[ebp]
  00e26	89 8d 94 fb ff
	ff		 mov	 DWORD PTR tv1230[ebp], ecx
  00e2c	c6 45 fc 20	 mov	 BYTE PTR __$EHRec$[ebp+8], 32 ; 00000020H
  00e30	8b 8d 94 fb ff
	ff		 mov	 ecx, DWORD PTR tv1230[ebp]
  00e36	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00e3b	89 85 90 fb ff
	ff		 mov	 DWORD PTR tv726[ebp], eax
  00e41	8b 95 90 fb ff
	ff		 mov	 edx, DWORD PTR tv726[ebp]
  00e47	8b 02		 mov	 eax, DWORD PTR [edx]
  00e49	8b 8d 90 fb ff
	ff		 mov	 ecx, DWORD PTR tv726[ebp]
  00e4f	8b 50 1c	 mov	 edx, DWORD PTR [eax+28]
  00e52	ff d2		 call	 edx
  00e54	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00e58	8d 8d 24 fe ff
	ff		 lea	 ecx, DWORD PTR $T360675[ebp]
  00e5e	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 234  :         }

  00e63	e9 4c fc ff ff	 jmp	 $LN29@Providers_@15
$LN28@Providers_@15:

; 235  : #endif//xxx
; 236  : 
; 237  :         // Use by default the first BT8x8/CX2388x/SAA7134 source as initial source
; 238  :         // Do that before loading other sources
; 239  :         if (InitSourceIdx == -1)

  00e68	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR ?InitSourceIdx@@3JA, -1 ; InitSourceIdx
  00e6f	75 0a		 jne	 SHORT $LN24@Providers_@15

; 240  :         {
; 241  :             InitSourceIdx = Providers_FindSource();

  00e71	e8 00 00 00 00	 call	 ?Providers_FindSource@@YAHXZ ; Providers_FindSource
  00e76	a3 00 00 00 00	 mov	 DWORD PTR ?InitSourceIdx@@3JA, eax ; InitSourceIdx
$LN24@Providers_@15:

; 242  :         }
; 243  :     }
; 244  :     else

  00e7b	eb 4a		 jmp	 SHORT $LN23@Providers_@15
$LN48@Providers_@15:

; 245  :     {
; 246  :         ErrorBox(_T("Can't load Hardware Driver, possibly caused by corrupt installation.  Reboot and try again."));

  00e7d	68 00 00 00 00	 push	 OFFSET ??_C@_1LI@OEHNLNJF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAH?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AA?0?$AA?5?$AAp?$AAo?$AAs?$AAs@
  00e82	8d 8d 08 fe ff
	ff		 lea	 ecx, DWORD PTR $T360676[ebp]
  00e88	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00e8d	c6 45 fc 21	 mov	 BYTE PTR __$EHRec$[ebp+8], 33 ; 00000021H
  00e91	8d 85 08 fe ff
	ff		 lea	 eax, DWORD PTR $T360676[ebp]
  00e97	50		 push	 eax
  00e98	68 f6 00 00 00	 push	 246			; 000000f6H
  00e9d	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@LIMALMPD@?$AA?4?$AA?2?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00ea2	6a 00		 push	 0
  00ea4	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00ea9	83 c4 10	 add	 esp, 16			; 00000010H
  00eac	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00eb0	8d 8d 08 fe ff
	ff		 lea	 ecx, DWORD PTR $T360676[ebp]
  00eb6	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 247  :         HardwareDriver = 0L;

  00ebb	6a 00		 push	 0
  00ebd	b9 00 00 00 00	 mov	 ecx, OFFSET _HardwareDriver
  00ec2	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCHardwareDriver@@@@QAEAAV0@PAVCHardwareDriver@@@Z ; SmartPtr<CHardwareDriver>::operator=
$LN23@Providers_@15:

; 248  :     }
; 249  : 
; 250  :     StillProvider = new CStillProvider();

  00ec7	6a 1c		 push	 28			; 0000001cH
  00ec9	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00ece	83 c4 04	 add	 esp, 4
  00ed1	89 85 00 fe ff
	ff		 mov	 DWORD PTR $T360678[ebp], eax
  00ed7	c6 45 fc 22	 mov	 BYTE PTR __$EHRec$[ebp+8], 34 ; 00000022H
  00edb	83 bd 00 fe ff
	ff 00		 cmp	 DWORD PTR $T360678[ebp], 0
  00ee2	74 13		 je	 SHORT $LN65@Providers_@15
  00ee4	8b 8d 00 fe ff
	ff		 mov	 ecx, DWORD PTR $T360678[ebp]
  00eea	e8 00 00 00 00	 call	 ??0CStillProvider@@QAE@XZ ; CStillProvider::CStillProvider
  00eef	89 85 8c fb ff
	ff		 mov	 DWORD PTR tv750[ebp], eax
  00ef5	eb 0a		 jmp	 SHORT $LN66@Providers_@15
$LN65@Providers_@15:
  00ef7	c7 85 8c fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv750[ebp], 0
$LN66@Providers_@15:
  00f01	8b 8d 8c fb ff
	ff		 mov	 ecx, DWORD PTR tv750[ebp]
  00f07	89 8d 04 fe ff
	ff		 mov	 DWORD PTR $T360677[ebp], ecx
  00f0d	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00f11	8b 95 04 fe ff
	ff		 mov	 edx, DWORD PTR $T360677[ebp]
  00f17	52		 push	 edx
  00f18	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00f1d	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCStillProvider@@@@QAEAAV0@PAVCStillProvider@@@Z ; SmartPtr<CStillProvider>::operator=

; 251  :     for(i = 0; i < StillProvider->GetNumberOfSources(); ++i)

  00f22	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00f29	eb 09		 jmp	 SHORT $LN22@Providers_@15
$LN21@Providers_@15:
  00f2b	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  00f2e	83 c0 01	 add	 eax, 1
  00f31	89 45 e8	 mov	 DWORD PTR _i$[ebp], eax
$LN22@Providers_@15:
  00f34	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00f39	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00f3e	89 85 88 fb ff
	ff		 mov	 DWORD PTR tv758[ebp], eax
  00f44	8b 8d 88 fb ff
	ff		 mov	 ecx, DWORD PTR tv758[ebp]
  00f4a	8b 11		 mov	 edx, DWORD PTR [ecx]
  00f4c	8b 8d 88 fb ff
	ff		 mov	 ecx, DWORD PTR tv758[ebp]
  00f52	8b 02		 mov	 eax, DWORD PTR [edx]
  00f54	ff d0		 call	 eax
  00f56	39 45 e8	 cmp	 DWORD PTR _i$[ebp], eax
  00f59	0f 8d 7e 02 00
	00		 jge	 $LN20@Providers_@15

; 252  :     {
; 253  :         Source = new TSource;

  00f5f	6a 28		 push	 40			; 00000028H
  00f61	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00f66	83 c4 04	 add	 esp, 4
  00f69	89 85 f8 fd ff
	ff		 mov	 DWORD PTR $T360682[ebp], eax
  00f6f	c6 45 fc 23	 mov	 BYTE PTR __$EHRec$[ebp+8], 35 ; 00000023H
  00f73	83 bd f8 fd ff
	ff 00		 cmp	 DWORD PTR $T360682[ebp], 0
  00f7a	74 13		 je	 SHORT $LN67@Providers_@15
  00f7c	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR $T360682[ebp]
  00f82	e8 00 00 00 00	 call	 ??0TSource@@QAE@XZ
  00f87	89 85 84 fb ff
	ff		 mov	 DWORD PTR tv772[ebp], eax
  00f8d	eb 0a		 jmp	 SHORT $LN68@Providers_@15
$LN67@Providers_@15:
  00f8f	c7 85 84 fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv772[ebp], 0
$LN68@Providers_@15:
  00f99	8b 8d 84 fb ff
	ff		 mov	 ecx, DWORD PTR tv772[ebp]
  00f9f	89 8d fc fd ff
	ff		 mov	 DWORD PTR $T360681[ebp], ecx
  00fa5	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00fa9	8b 95 fc fd ff
	ff		 mov	 edx, DWORD PTR $T360681[ebp]
  00faf	52		 push	 edx
  00fb0	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00fb3	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ; SmartPtr<TSource>::operator=

; 254  :         if (StillProvider->GetSource(i)->GetMenuLabel().empty())

  00fb8	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00fbd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  00fc2	89 85 80 fb ff
	ff		 mov	 DWORD PTR tv779[ebp], eax
  00fc8	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  00fcb	50		 push	 eax
  00fcc	8d 8d ec fd ff
	ff		 lea	 ecx, DWORD PTR $T360686[ebp]
  00fd2	51		 push	 ecx
  00fd3	8b 95 80 fb ff
	ff		 mov	 edx, DWORD PTR tv779[ebp]
  00fd9	8b 02		 mov	 eax, DWORD PTR [edx]
  00fdb	8b 8d 80 fb ff
	ff		 mov	 ecx, DWORD PTR tv779[ebp]
  00fe1	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00fe4	ff d2		 call	 edx
  00fe6	89 85 7c fb ff
	ff		 mov	 DWORD PTR tv1338[ebp], eax
  00fec	8b 85 7c fb ff
	ff		 mov	 eax, DWORD PTR tv1338[ebp]
  00ff2	89 85 78 fb ff
	ff		 mov	 DWORD PTR tv1235[ebp], eax
  00ff8	c6 45 fc 24	 mov	 BYTE PTR __$EHRec$[ebp+8], 36 ; 00000024H
  00ffc	8b 8d 78 fb ff
	ff		 mov	 ecx, DWORD PTR tv1235[ebp]
  01002	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  01007	89 85 74 fb ff
	ff		 mov	 DWORD PTR tv790[ebp], eax
  0100d	8d 8d d0 fd ff
	ff		 lea	 ecx, DWORD PTR $T360687[ebp]
  01013	51		 push	 ecx
  01014	8b 95 74 fb ff
	ff		 mov	 edx, DWORD PTR tv790[ebp]
  0101a	8b 02		 mov	 eax, DWORD PTR [edx]
  0101c	8b 8d 74 fb ff
	ff		 mov	 ecx, DWORD PTR tv790[ebp]
  01022	8b 90 9c 00 00
	00		 mov	 edx, DWORD PTR [eax+156]
  01028	ff d2		 call	 edx
  0102a	89 85 70 fb ff
	ff		 mov	 DWORD PTR tv1339[ebp], eax
  01030	8b 85 70 fb ff
	ff		 mov	 eax, DWORD PTR tv1339[ebp]
  01036	89 85 6c fb ff
	ff		 mov	 DWORD PTR tv1237[ebp], eax
  0103c	c6 45 fc 25	 mov	 BYTE PTR __$EHRec$[ebp+8], 37 ; 00000025H
  01040	8b 8d 6c fb ff
	ff		 mov	 ecx, DWORD PTR tv1237[ebp]
  01046	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  0104b	88 85 f7 fd ff
	ff		 mov	 BYTE PTR $T360685[ebp], al
  01051	c6 45 fc 24	 mov	 BYTE PTR __$EHRec$[ebp+8], 36 ; 00000024H
  01055	8d 8d d0 fd ff
	ff		 lea	 ecx, DWORD PTR $T360687[ebp]
  0105b	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  01060	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  01064	8d 8d ec fd ff
	ff		 lea	 ecx, DWORD PTR $T360686[ebp]
  0106a	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  0106f	0f b6 8d f7 fd
	ff ff		 movzx	 ecx, BYTE PTR $T360685[ebp]
  01076	85 c9		 test	 ecx, ecx
  01078	74 19		 je	 SHORT $LN19@Providers_@15

; 255  :         {
; 256  :             Source->Name = _T("Still");

  0107a	68 00 00 00 00	 push	 OFFSET ??_C@_1M@PBAPKIIE@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$AA@
  0107f	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  01082	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  01087	8b c8		 mov	 ecx, eax
  01089	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 257  :         }
; 258  :         else

  0108e	e9 bc 00 00 00	 jmp	 $LN18@Providers_@15
$LN19@Providers_@15:

; 259  :         {
; 260  :             Source->Name = StillProvider->GetSource(i)->GetMenuLabel();

  01093	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  01098	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  0109d	89 85 68 fb ff
	ff		 mov	 DWORD PTR tv816[ebp], eax
  010a3	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  010a6	52		 push	 edx
  010a7	8d 85 c8 fd ff
	ff		 lea	 eax, DWORD PTR $T360688[ebp]
  010ad	50		 push	 eax
  010ae	8b 8d 68 fb ff
	ff		 mov	 ecx, DWORD PTR tv816[ebp]
  010b4	8b 11		 mov	 edx, DWORD PTR [ecx]
  010b6	8b 8d 68 fb ff
	ff		 mov	 ecx, DWORD PTR tv816[ebp]
  010bc	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  010bf	ff d0		 call	 eax
  010c1	89 85 64 fb ff
	ff		 mov	 DWORD PTR tv1340[ebp], eax
  010c7	8b 8d 64 fb ff
	ff		 mov	 ecx, DWORD PTR tv1340[ebp]
  010cd	89 8d 60 fb ff
	ff		 mov	 DWORD PTR tv1239[ebp], ecx
  010d3	c6 45 fc 26	 mov	 BYTE PTR __$EHRec$[ebp+8], 38 ; 00000026H
  010d7	8b 8d 60 fb ff
	ff		 mov	 ecx, DWORD PTR tv1239[ebp]
  010dd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  010e2	89 85 5c fb ff
	ff		 mov	 DWORD PTR tv827[ebp], eax
  010e8	8d 95 ac fd ff
	ff		 lea	 edx, DWORD PTR $T360689[ebp]
  010ee	52		 push	 edx
  010ef	8b 85 5c fb ff
	ff		 mov	 eax, DWORD PTR tv827[ebp]
  010f5	8b 10		 mov	 edx, DWORD PTR [eax]
  010f7	8b 8d 5c fb ff
	ff		 mov	 ecx, DWORD PTR tv827[ebp]
  010fd	8b 82 9c 00 00
	00		 mov	 eax, DWORD PTR [edx+156]
  01103	ff d0		 call	 eax
  01105	89 85 58 fb ff
	ff		 mov	 DWORD PTR tv1341[ebp], eax
  0110b	8b 8d 58 fb ff
	ff		 mov	 ecx, DWORD PTR tv1341[ebp]
  01111	89 8d 54 fb ff
	ff		 mov	 DWORD PTR tv1241[ebp], ecx
  01117	c6 45 fc 27	 mov	 BYTE PTR __$EHRec$[ebp+8], 39 ; 00000027H
  0111b	8b 95 54 fb ff
	ff		 mov	 edx, DWORD PTR tv1241[ebp]
  01121	52		 push	 edx
  01122	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  01125	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0112a	8b c8		 mov	 ecx, eax
  0112c	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  01131	c6 45 fc 26	 mov	 BYTE PTR __$EHRec$[ebp+8], 38 ; 00000026H
  01135	8d 8d ac fd ff
	ff		 lea	 ecx, DWORD PTR $T360689[ebp]
  0113b	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  01140	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  01144	8d 8d c8 fd ff
	ff		 lea	 ecx, DWORD PTR $T360688[ebp]
  0114a	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN18@Providers_@15:

; 261  :         }
; 262  :         Source->Object = StillProvider->GetSource(i);

  0114f	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  01154	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStillProvider@@@@QBEPAVCStillProvider@@XZ ; SmartPtr<CStillProvider>::operator->
  01159	89 85 50 fb ff
	ff		 mov	 DWORD PTR tv846[ebp], eax
  0115f	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  01162	50		 push	 eax
  01163	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR $T360690[ebp]
  01169	51		 push	 ecx
  0116a	8b 95 50 fb ff
	ff		 mov	 edx, DWORD PTR tv846[ebp]
  01170	8b 02		 mov	 eax, DWORD PTR [edx]
  01172	8b 8d 50 fb ff
	ff		 mov	 ecx, DWORD PTR tv846[ebp]
  01178	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0117b	ff d2		 call	 edx
  0117d	89 85 4c fb ff
	ff		 mov	 DWORD PTR tv1342[ebp], eax
  01183	8b 85 4c fb ff
	ff		 mov	 eax, DWORD PTR tv1342[ebp]
  01189	89 85 48 fb ff
	ff		 mov	 DWORD PTR tv1243[ebp], eax
  0118f	c6 45 fc 28	 mov	 BYTE PTR __$EHRec$[ebp+8], 40 ; 00000028H
  01193	8b 8d 48 fb ff
	ff		 mov	 ecx, DWORD PTR tv1243[ebp]
  01199	51		 push	 ecx
  0119a	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  0119d	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  011a2	83 c0 1c	 add	 eax, 28			; 0000001cH
  011a5	8b c8		 mov	 ecx, eax
  011a7	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSource>::operator=
  011ac	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  011b0	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR $T360690[ebp]
  011b6	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 263  :         Source->DisplayInMenu = TRUE;

  011bb	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  011be	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  011c3	c7 40 24 01 00
	00 00		 mov	 DWORD PTR [eax+36], 1

; 264  :         Sources.push_back(Source);

  011ca	8d 55 ac	 lea	 edx, DWORD PTR _Source$[ebp]
  011cd	52		 push	 edx
  011ce	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  011d3	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back

; 265  :     }

  011d8	e9 4e fd ff ff	 jmp	 $LN21@Providers_@15
$LN20@Providers_@15:

; 266  : 
; 267  : #ifdef WANT_DSHOW_SUPPORT
; 268  :     DSProvider = new CDSProvider();

  011dd	6a 3c		 push	 60			; 0000003cH
  011df	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  011e4	83 c4 04	 add	 esp, 4
  011e7	89 85 9c fd ff
	ff		 mov	 DWORD PTR $T360692[ebp], eax
  011ed	c6 45 fc 29	 mov	 BYTE PTR __$EHRec$[ebp+8], 41 ; 00000029H
  011f1	83 bd 9c fd ff
	ff 00		 cmp	 DWORD PTR $T360692[ebp], 0
  011f8	74 13		 je	 SHORT $LN69@Providers_@15
  011fa	8b 8d 9c fd ff
	ff		 mov	 ecx, DWORD PTR $T360692[ebp]
  01200	e8 00 00 00 00	 call	 ??0CDSProvider@@QAE@XZ	; CDSProvider::CDSProvider
  01205	89 85 44 fb ff
	ff		 mov	 DWORD PTR tv900[ebp], eax
  0120b	eb 0a		 jmp	 SHORT $LN70@Providers_@15
$LN69@Providers_@15:
  0120d	c7 85 44 fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv900[ebp], 0
$LN70@Providers_@15:
  01217	8b 85 44 fb ff
	ff		 mov	 eax, DWORD PTR tv900[ebp]
  0121d	89 85 a0 fd ff
	ff		 mov	 DWORD PTR $T360691[ebp], eax
  01223	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  01227	8b 8d a0 fd ff
	ff		 mov	 ecx, DWORD PTR $T360691[ebp]
  0122d	51		 push	 ecx
  0122e	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  01233	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCDSProvider@@@@QAEAAV0@PAVCDSProvider@@@Z ; SmartPtr<CDSProvider>::operator=

; 269  :     for(i = 0; i < DSProvider->GetNumberOfSources(); ++i)

  01238	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0123f	eb 09		 jmp	 SHORT $LN17@Providers_@15
$LN16@Providers_@15:
  01241	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  01244	83 c2 01	 add	 edx, 1
  01247	89 55 e8	 mov	 DWORD PTR _i$[ebp], edx
$LN17@Providers_@15:
  0124a	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  0124f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
  01254	89 85 40 fb ff
	ff		 mov	 DWORD PTR tv908[ebp], eax
  0125a	8b 85 40 fb ff
	ff		 mov	 eax, DWORD PTR tv908[ebp]
  01260	8b 10		 mov	 edx, DWORD PTR [eax]
  01262	8b 8d 40 fb ff
	ff		 mov	 ecx, DWORD PTR tv908[ebp]
  01268	8b 02		 mov	 eax, DWORD PTR [edx]
  0126a	ff d0		 call	 eax
  0126c	39 45 e8	 cmp	 DWORD PTR _i$[ebp], eax
  0126f	0f 8d 97 03 00
	00		 jge	 $LN15@Providers_@15

; 270  :     {
; 271  :         if(AllowCx2388xDShow || DSProvider->GetSource(i)->IDString().find(_T("VEN_14F1&DEV_88")) == tstring::npos)

  01275	83 7d ec 00	 cmp	 DWORD PTR _AllowCx2388xDShow$[ebp], 0
  01279	0f 85 cc 00 00
	00		 jne	 $LN71@Providers_@15
  0127f	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  01284	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
  01289	89 85 3c fb ff
	ff		 mov	 DWORD PTR tv920[ebp], eax
  0128f	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  01292	51		 push	 ecx
  01293	8d 95 90 fd ff
	ff		 lea	 edx, DWORD PTR $T360696[ebp]
  01299	52		 push	 edx
  0129a	8b 85 3c fb ff
	ff		 mov	 eax, DWORD PTR tv920[ebp]
  012a0	8b 10		 mov	 edx, DWORD PTR [eax]
  012a2	8b 8d 3c fb ff
	ff		 mov	 ecx, DWORD PTR tv920[ebp]
  012a8	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  012ab	ff d0		 call	 eax
  012ad	89 85 38 fb ff
	ff		 mov	 DWORD PTR tv1344[ebp], eax
  012b3	8b 8d 38 fb ff
	ff		 mov	 ecx, DWORD PTR tv1344[ebp]
  012b9	89 8d 34 fb ff
	ff		 mov	 DWORD PTR tv1281[ebp], ecx
  012bf	c6 45 fc 2a	 mov	 BYTE PTR __$EHRec$[ebp+8], 42 ; 0000002aH
  012c3	8b 95 e8 fc ff
	ff		 mov	 edx, DWORD PTR $T360758[ebp]
  012c9	83 ca 01	 or	 edx, 1
  012cc	89 95 e8 fc ff
	ff		 mov	 DWORD PTR $T360758[ebp], edx
  012d2	8b 8d 34 fb ff
	ff		 mov	 ecx, DWORD PTR tv1281[ebp]
  012d8	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  012dd	89 85 30 fb ff
	ff		 mov	 DWORD PTR tv931[ebp], eax
  012e3	8d 85 74 fd ff
	ff		 lea	 eax, DWORD PTR $T360697[ebp]
  012e9	50		 push	 eax
  012ea	8b 8d 30 fb ff
	ff		 mov	 ecx, DWORD PTR tv931[ebp]
  012f0	8b 11		 mov	 edx, DWORD PTR [ecx]
  012f2	8b 8d 30 fb ff
	ff		 mov	 ecx, DWORD PTR tv931[ebp]
  012f8	8b 82 b4 00 00
	00		 mov	 eax, DWORD PTR [edx+180]
  012fe	ff d0		 call	 eax
  01300	89 85 2c fb ff
	ff		 mov	 DWORD PTR tv1346[ebp], eax
  01306	8b 8d 2c fb ff
	ff		 mov	 ecx, DWORD PTR tv1346[ebp]
  0130c	89 8d 28 fb ff
	ff		 mov	 DWORD PTR tv1286[ebp], ecx
  01312	c7 45 fc 2b 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 43 ; 0000002bH
  01319	8b 95 e8 fc ff
	ff		 mov	 edx, DWORD PTR $T360758[ebp]
  0131f	83 ca 02	 or	 edx, 2
  01322	89 95 e8 fc ff
	ff		 mov	 DWORD PTR $T360758[ebp], edx
  01328	6a 00		 push	 0
  0132a	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@JFFGBCPG@?$AAV?$AAE?$AAN?$AA_?$AA1?$AA4?$AAF?$AA1?$AA?$CG?$AAD?$AAE?$AAV?$AA_?$AA8?$AA8?$AA?$AA@
  0132f	8b 8d 28 fb ff
	ff		 mov	 ecx, DWORD PTR tv1286[ebp]
  01335	e8 00 00 00 00	 call	 ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::find
  0133a	83 f8 ff	 cmp	 eax, -1
  0133d	74 0c		 je	 SHORT $LN71@Providers_@15
  0133f	c7 85 24 fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv944[ebp], 0
  01349	eb 0a		 jmp	 SHORT $LN72@Providers_@15
$LN71@Providers_@15:
  0134b	c7 85 24 fb ff
	ff 01 00 00 00	 mov	 DWORD PTR tv944[ebp], 1
$LN72@Providers_@15:
  01355	8a 85 24 fb ff
	ff		 mov	 al, BYTE PTR tv944[ebp]
  0135b	88 85 9b fd ff
	ff		 mov	 BYTE PTR $T360695[ebp], al
  01361	c7 45 fc 2a 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 42 ; 0000002aH
  01368	8b 8d e8 fc ff
	ff		 mov	 ecx, DWORD PTR $T360758[ebp]
  0136e	83 e1 02	 and	 ecx, 2
  01371	74 12		 je	 SHORT $LN121@Providers_@15
  01373	83 a5 e8 fc ff
	ff fd		 and	 DWORD PTR $T360758[ebp], -3 ; fffffffdH
  0137a	8d 8d 74 fd ff
	ff		 lea	 ecx, DWORD PTR $T360697[ebp]
  01380	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN121@Providers_@15:
  01385	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  0138c	8b 95 e8 fc ff
	ff		 mov	 edx, DWORD PTR $T360758[ebp]
  01392	83 e2 01	 and	 edx, 1
  01395	74 12		 je	 SHORT $LN122@Providers_@15
  01397	83 a5 e8 fc ff
	ff fe		 and	 DWORD PTR $T360758[ebp], -2 ; fffffffeH
  0139e	8d 8d 90 fd ff
	ff		 lea	 ecx, DWORD PTR $T360696[ebp]
  013a4	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN122@Providers_@15:
  013a9	0f b6 85 9b fd
	ff ff		 movzx	 eax, BYTE PTR $T360695[ebp]
  013b0	85 c0		 test	 eax, eax
  013b2	0f 84 4f 02 00
	00		 je	 $LN14@Providers_@15

; 272  :         {
; 273  :             Source = new TSource;

  013b8	6a 28		 push	 40			; 00000028H
  013ba	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  013bf	83 c4 04	 add	 esp, 4
  013c2	89 85 6c fd ff
	ff		 mov	 DWORD PTR $T360701[ebp], eax
  013c8	c6 45 fc 2c	 mov	 BYTE PTR __$EHRec$[ebp+8], 44 ; 0000002cH
  013cc	83 bd 6c fd ff
	ff 00		 cmp	 DWORD PTR $T360701[ebp], 0
  013d3	74 13		 je	 SHORT $LN73@Providers_@15
  013d5	8b 8d 6c fd ff
	ff		 mov	 ecx, DWORD PTR $T360701[ebp]
  013db	e8 00 00 00 00	 call	 ??0TSource@@QAE@XZ
  013e0	89 85 20 fb ff
	ff		 mov	 DWORD PTR tv957[ebp], eax
  013e6	eb 0a		 jmp	 SHORT $LN74@Providers_@15
$LN73@Providers_@15:
  013e8	c7 85 20 fb ff
	ff 00 00 00 00	 mov	 DWORD PTR tv957[ebp], 0
$LN74@Providers_@15:
  013f2	8b 8d 20 fb ff
	ff		 mov	 ecx, DWORD PTR tv957[ebp]
  013f8	89 8d 70 fd ff
	ff		 mov	 DWORD PTR $T360700[ebp], ecx
  013fe	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  01402	8b 95 70 fd ff
	ff		 mov	 edx, DWORD PTR $T360700[ebp]
  01408	52		 push	 edx
  01409	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  0140c	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@PAUTSource@@@Z ; SmartPtr<TSource>::operator=

; 274  :             Source->Name = DSProvider->GetSourceName(i);

  01411	8b 45 e8	 mov	 eax, DWORD PTR _i$[ebp]
  01414	50		 push	 eax
  01415	8d 8d 50 fd ff
	ff		 lea	 ecx, DWORD PTR $T360704[ebp]
  0141b	51		 push	 ecx
  0141c	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  01421	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
  01426	8b c8		 mov	 ecx, eax
  01428	e8 00 00 00 00	 call	 ?GetSourceName@CDSProvider@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z ; CDSProvider::GetSourceName
  0142d	89 85 1c fb ff
	ff		 mov	 DWORD PTR tv1349[ebp], eax
  01433	8b 95 1c fb ff
	ff		 mov	 edx, DWORD PTR tv1349[ebp]
  01439	89 95 18 fb ff
	ff		 mov	 DWORD PTR tv1293[ebp], edx
  0143f	c6 45 fc 2d	 mov	 BYTE PTR __$EHRec$[ebp+8], 45 ; 0000002dH
  01443	8b 85 18 fb ff
	ff		 mov	 eax, DWORD PTR tv1293[ebp]
  01449	50		 push	 eax
  0144a	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  0144d	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  01452	8b c8		 mov	 ecx, eax
  01454	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  01459	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0145d	8d 8d 50 fd ff
	ff		 lea	 ecx, DWORD PTR $T360704[ebp]
  01463	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 275  :             Source->Name += _T(" (DShow)");

  01468	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@LCJILHPI@?$AA?5?$AA?$CI?$AAD?$AAS?$AAh?$AAo?$AAw?$AA?$CJ?$AA?$AA@
  0146d	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  01470	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  01475	8b c8		 mov	 ecx, eax
  01477	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=

; 276  :             Source->Object = DSProvider->GetSource(i);

  0147c	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  01481	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
  01486	89 85 14 fb ff
	ff		 mov	 DWORD PTR tv985[ebp], eax
  0148c	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  0148f	51		 push	 ecx
  01490	8d 95 48 fd ff
	ff		 lea	 edx, DWORD PTR $T360705[ebp]
  01496	52		 push	 edx
  01497	8b 85 14 fb ff
	ff		 mov	 eax, DWORD PTR tv985[ebp]
  0149d	8b 10		 mov	 edx, DWORD PTR [eax]
  0149f	8b 8d 14 fb ff
	ff		 mov	 ecx, DWORD PTR tv985[ebp]
  014a5	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  014a8	ff d0		 call	 eax
  014aa	89 85 10 fb ff
	ff		 mov	 DWORD PTR tv1350[ebp], eax
  014b0	8b 8d 10 fb ff
	ff		 mov	 ecx, DWORD PTR tv1350[ebp]
  014b6	89 8d 0c fb ff
	ff		 mov	 DWORD PTR tv1295[ebp], ecx
  014bc	c6 45 fc 2e	 mov	 BYTE PTR __$EHRec$[ebp+8], 46 ; 0000002eH
  014c0	8b 95 0c fb ff
	ff		 mov	 edx, DWORD PTR tv1295[ebp]
  014c6	52		 push	 edx
  014c7	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  014ca	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  014cf	83 c0 1c	 add	 eax, 28			; 0000001cH
  014d2	8b c8		 mov	 ecx, eax
  014d4	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSource>::operator=
  014d9	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  014dd	8d 8d 48 fd ff
	ff		 lea	 ecx, DWORD PTR $T360705[ebp]
  014e3	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 277  :             Source->DisplayInMenu = TRUE;

  014e8	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  014eb	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  014f0	c7 40 24 01 00
	00 00		 mov	 DWORD PTR [eax+36], 1

; 278  :             Sources.push_back(Source);

  014f7	8d 45 ac	 lea	 eax, DWORD PTR _Source$[ebp]
  014fa	50		 push	 eax
  014fb	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  01500	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEXABV?$SmartPtr@UTSource@@@@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::push_back

; 279  : 
; 280  :             // Set CurrentSource for Providers_GetCurrentSource function
; 281  :             // used in mixer code
; 282  :             CurrentSource = Sources.size()-1;

  01505	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0150a	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  0150f	83 e8 01	 sub	 eax, 1
  01512	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax

; 283  :             // The first time, setup the audio mixer for the card
; 284  :             if (((CDSSourceBase*)(DSProvider->GetSource(i).GetRawPointer()))->IsInitialSetup())

  01517	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  0151c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
  01521	89 85 08 fb ff
	ff		 mov	 DWORD PTR tv1011[ebp], eax
  01527	8b 4d e8	 mov	 ecx, DWORD PTR _i$[ebp]
  0152a	51		 push	 ecx
  0152b	8d 95 3c fd ff
	ff		 lea	 edx, DWORD PTR $T360707[ebp]
  01531	52		 push	 edx
  01532	8b 85 08 fb ff
	ff		 mov	 eax, DWORD PTR tv1011[ebp]
  01538	8b 10		 mov	 edx, DWORD PTR [eax]
  0153a	8b 8d 08 fb ff
	ff		 mov	 ecx, DWORD PTR tv1011[ebp]
  01540	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  01543	ff d0		 call	 eax
  01545	89 85 04 fb ff
	ff		 mov	 DWORD PTR tv1351[ebp], eax
  0154b	8b 8d 04 fb ff
	ff		 mov	 ecx, DWORD PTR tv1351[ebp]
  01551	89 8d 00 fb ff
	ff		 mov	 DWORD PTR tv1297[ebp], ecx
  01557	c6 45 fc 2f	 mov	 BYTE PTR __$EHRec$[ebp+8], 47 ; 0000002fH
  0155b	8b 8d 00 fb ff
	ff		 mov	 ecx, DWORD PTR tv1297[ebp]
  01561	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::GetRawPointer
  01566	8b c8		 mov	 ecx, eax
  01568	e8 00 00 00 00	 call	 ?IsInitialSetup@CDSSourceBase@@QAEHXZ ; CDSSourceBase::IsInitialSetup
  0156d	89 85 44 fd ff
	ff		 mov	 DWORD PTR $T360706[ebp], eax
  01573	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  01577	8d 8d 3c fd ff
	ff		 lea	 ecx, DWORD PTR $T360707[ebp]
  0157d	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  01582	83 bd 44 fd ff
	ff 00		 cmp	 DWORD PTR $T360706[ebp], 0
  01589	74 05		 je	 SHORT $LN13@Providers_@15

; 285  :             {
; 286  :                 Providers_MixerSetup();

  0158b	e8 00 00 00 00	 call	 ?Providers_MixerSetup@@YAXXZ ; Providers_MixerSetup
$LN13@Providers_@15:

; 287  :             }
; 288  : 
; 289  :             DSProvider->GetSource(i)->Mute();

  01590	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  01595	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCDSProvider@@@@QBEPAVCDSProvider@@XZ ; SmartPtr<CDSProvider>::operator->
  0159a	89 85 fc fa ff
	ff		 mov	 DWORD PTR tv1032[ebp], eax
  015a0	8b 55 e8	 mov	 edx, DWORD PTR _i$[ebp]
  015a3	52		 push	 edx
  015a4	8d 85 34 fd ff
	ff		 lea	 eax, DWORD PTR $T360708[ebp]
  015aa	50		 push	 eax
  015ab	8b 8d fc fa ff
	ff		 mov	 ecx, DWORD PTR tv1032[ebp]
  015b1	8b 11		 mov	 edx, DWORD PTR [ecx]
  015b3	8b 8d fc fa ff
	ff		 mov	 ecx, DWORD PTR tv1032[ebp]
  015b9	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  015bc	ff d0		 call	 eax
  015be	89 85 f8 fa ff
	ff		 mov	 DWORD PTR tv1352[ebp], eax
  015c4	8b 8d f8 fa ff
	ff		 mov	 ecx, DWORD PTR tv1352[ebp]
  015ca	89 8d f4 fa ff
	ff		 mov	 DWORD PTR tv1299[ebp], ecx
  015d0	c6 45 fc 30	 mov	 BYTE PTR __$EHRec$[ebp+8], 48 ; 00000030H
  015d4	8b 8d f4 fa ff
	ff		 mov	 ecx, DWORD PTR tv1299[ebp]
  015da	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  015df	89 85 f0 fa ff
	ff		 mov	 DWORD PTR tv1043[ebp], eax
  015e5	8b 95 f0 fa ff
	ff		 mov	 edx, DWORD PTR tv1043[ebp]
  015eb	8b 02		 mov	 eax, DWORD PTR [edx]
  015ed	8b 8d f0 fa ff
	ff		 mov	 ecx, DWORD PTR tv1043[ebp]
  015f3	8b 50 1c	 mov	 edx, DWORD PTR [eax+28]
  015f6	ff d2		 call	 edx
  015f8	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  015fc	8d 8d 34 fd ff
	ff		 lea	 ecx, DWORD PTR $T360708[ebp]
  01602	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN14@Providers_@15:

; 290  :         }
; 291  :     }

  01607	e9 35 fc ff ff	 jmp	 $LN16@Providers_@15
$LN15@Providers_@15:

; 292  : #endif
; 293  : 
; 294  :     DefaultSource = Providers_GetIntroSource();

  0160c	8d 85 2c fd ff
	ff		 lea	 eax, DWORD PTR $T360709[ebp]
  01612	50		 push	 eax
  01613	e8 00 00 00 00	 call	 ?Providers_GetIntroSource@@YA?AV?$SmartPtr@VCSource@@@@XZ ; Providers_GetIntroSource
  01618	83 c4 04	 add	 esp, 4
  0161b	89 85 ec fa ff
	ff		 mov	 DWORD PTR tv1353[ebp], eax
  01621	8b 8d ec fa ff
	ff		 mov	 ecx, DWORD PTR tv1353[ebp]
  01627	89 8d e8 fa ff
	ff		 mov	 DWORD PTR tv1301[ebp], ecx
  0162d	c6 45 fc 31	 mov	 BYTE PTR __$EHRec$[ebp+8], 49 ; 00000031H
  01631	8b 95 e8 fa ff
	ff		 mov	 edx, DWORD PTR tv1301[ebp]
  01637	52		 push	 edx
  01638	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  0163b	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSource>::operator=
  01640	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  01644	8d 8d 2c fd ff
	ff		 lea	 ecx, DWORD PTR $T360709[ebp]
  0164a	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>

; 295  :     if (!DefaultSource.IsValid() || !DefaultSource->IsAccessAllowed())

  0164f	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  01652	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VCSource@@@@QBEHXZ ; SmartPtr<CSource>::IsValid
  01657	85 c0		 test	 eax, eax
  01659	74 2c		 je	 SHORT $LN11@Providers_@15
  0165b	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  0165e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  01663	89 85 e4 fa ff
	ff		 mov	 DWORD PTR tv1058[ebp], eax
  01669	8b 85 e4 fa ff
	ff		 mov	 eax, DWORD PTR tv1058[ebp]
  0166f	8b 10		 mov	 edx, DWORD PTR [eax]
  01671	8b 8d e4 fa ff
	ff		 mov	 ecx, DWORD PTR tv1058[ebp]
  01677	8b 82 a4 00 00
	00		 mov	 eax, DWORD PTR [edx+164]
  0167d	ff d0		 call	 eax
  0167f	85 c0		 test	 eax, eax
  01681	0f 85 c9 00 00
	00		 jne	 $LN12@Providers_@15
$LN11@Providers_@15:

; 296  :     {
; 297  :         ErrorBox(_T("Can't load file DScaler.d3u or file defined in it"));

  01687	68 00 00 00 00	 push	 OFFSET ??_C@_1GE@FJNEBLKE@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAl?$AAo?$AAa?$AAd?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?4?$AAd?$AA3?$AAu?$AA?5?$AAo?$AAr?$AA?5?$AAf@
  0168c	8d 8d 10 fd ff
	ff		 lea	 ecx, DWORD PTR $T360710[ebp]
  01692	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  01697	c6 45 fc 32	 mov	 BYTE PTR __$EHRec$[ebp+8], 50 ; 00000032H
  0169b	8d 8d 10 fd ff
	ff		 lea	 ecx, DWORD PTR $T360710[ebp]
  016a1	51		 push	 ecx
  016a2	68 29 01 00 00	 push	 297			; 00000129H
  016a7	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@LIMALMPD@?$AA?4?$AA?2?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  016ac	6a 00		 push	 0
  016ae	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  016b3	83 c4 10	 add	 esp, 16			; 00000010H
  016b6	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  016ba	8d 8d 10 fd ff
	ff		 lea	 ecx, DWORD PTR $T360710[ebp]
  016c0	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 298  : 
; 299  :         // We destroy the source if it exists
; 300  :         DefSourceIdx = Providers_GetSourceIndex(DefaultSource);

  016c5	8d 55 b4	 lea	 edx, DWORD PTR _DefaultSource$[ebp]
  016c8	52		 push	 edx
  016c9	e8 00 00 00 00	 call	 ?Providers_GetSourceIndex@@YAJAAV?$SmartPtr@VCSource@@@@@Z ; Providers_GetSourceIndex
  016ce	83 c4 04	 add	 esp, 4
  016d1	a3 00 00 00 00	 mov	 DWORD PTR _DefSourceIdx, eax

; 301  :         if (DefSourceIdx >= 0 && static_cast<size_t>(DefSourceIdx) < Sources.size())

  016d6	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _DefSourceIdx, 0
  016dd	7c 67		 jl	 SHORT $LN10@Providers_@15
  016df	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  016e4	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  016e9	39 05 00 00 00
	00		 cmp	 DWORD PTR _DefSourceIdx, eax
  016ef	73 55		 jae	 SHORT $LN10@Providers_@15

; 302  :         {
; 303  :             Sources.erase(Sources.begin() + DefSourceIdx);

  016f1	a1 00 00 00 00	 mov	 eax, DWORD PTR _DefSourceIdx
  016f6	50		 push	 eax
  016f7	8d 8d f8 fc ff
	ff		 lea	 ecx, DWORD PTR $T360713[ebp]
  016fd	51		 push	 ecx
  016fe	8d 95 00 fd ff
	ff		 lea	 edx, DWORD PTR $T360712[ebp]
  01704	52		 push	 edx
  01705	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0170a	e8 00 00 00 00	 call	 ?begin@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::begin
  0170f	8b c8		 mov	 ecx, eax
  01711	e8 00 00 00 00	 call	 ??H?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBE?AV01@H@Z ; std::_Vector_iterator<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator+
  01716	8b 08		 mov	 ecx, DWORD PTR [eax]
  01718	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0171b	89 8d 08 fd ff
	ff		 mov	 DWORD PTR $T360711[ebp], ecx
  01721	89 95 0c fd ff
	ff		 mov	 DWORD PTR $T360711[ebp+4], edx
  01727	8b 85 0c fd ff
	ff		 mov	 eax, DWORD PTR $T360711[ebp+4]
  0172d	50		 push	 eax
  0172e	8b 8d 08 fd ff
	ff		 mov	 ecx, DWORD PTR $T360711[ebp]
  01734	51		 push	 ecx
  01735	8d 95 f0 fc ff
	ff		 lea	 edx, DWORD PTR $T360714[ebp]
  0173b	52		 push	 edx
  0173c	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  01741	e8 00 00 00 00	 call	 ?erase@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE?AV?$_Vector_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@V?$_Vector_const_iterator@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@2@@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::erase
$LN10@Providers_@15:

; 304  :         }
; 305  : 
; 306  :         DefaultSource = 0L;

  01746	6a 00		 push	 0
  01748	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  0174b	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSource@@@@QAEAAV0@PAVCSource@@@Z ; SmartPtr<CSource>::operator=
$LN12@Providers_@15:

; 307  :     }
; 308  : 
; 309  :     DefSourceIdx = Providers_GetSourceIndex(DefaultSource);

  01750	8d 45 b4	 lea	 eax, DWORD PTR _DefaultSource$[ebp]
  01753	50		 push	 eax
  01754	e8 00 00 00 00	 call	 ?Providers_GetSourceIndex@@YAJAAV?$SmartPtr@VCSource@@@@@Z ; Providers_GetSourceIndex
  01759	83 c4 04	 add	 esp, 4
  0175c	a3 00 00 00 00	 mov	 DWORD PTR _DefSourceIdx, eax

; 310  : 
; 311  :     // The default source is not listed in the menu
; 312  :     if (DefSourceIdx >= 0 && static_cast<size_t>(DefSourceIdx) < Sources.size())

  01761	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _DefSourceIdx, 0
  01768	7c 3b		 jl	 SHORT $LN9@Providers_@15
  0176a	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0176f	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  01774	39 05 00 00 00
	00		 cmp	 DWORD PTR _DefSourceIdx, eax
  0177a	73 29		 jae	 SHORT $LN9@Providers_@15

; 313  :     {
; 314  :         Source = Sources[DefSourceIdx];

  0177c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _DefSourceIdx
  01782	51		 push	 ecx
  01783	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  01788	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0178d	50		 push	 eax
  0178e	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  01791	e8 00 00 00 00	 call	 ??4?$SmartPtr@UTSource@@@@QAEAAV0@ABV0@@Z ; SmartPtr<TSource>::operator=

; 315  :         Source->DisplayInMenu = FALSE;

  01796	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  01799	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0179e	c7 40 24 00 00
	00 00		 mov	 DWORD PTR [eax+36], 0
$LN9@Providers_@15:

; 316  :     }
; 317  : 
; 318  :     if (InitSourceIdx >= 0 && static_cast<size_t>(InitSourceIdx) < Sources.size() &&
; 319  :         Sources[InitSourceIdx]->Object->IsAccessAllowed())

  017a5	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?InitSourceIdx@@3JA, 0 ; InitSourceIdx
  017ac	7c 62		 jl	 SHORT $LN8@Providers_@15
  017ae	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  017b3	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  017b8	39 05 00 00 00
	00		 cmp	 DWORD PTR ?InitSourceIdx@@3JA, eax ; InitSourceIdx
  017be	73 50		 jae	 SHORT $LN8@Providers_@15
  017c0	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?InitSourceIdx@@3JA ; InitSourceIdx
  017c6	52		 push	 edx
  017c7	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  017cc	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  017d1	8b c8		 mov	 ecx, eax
  017d3	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  017d8	83 c0 1c	 add	 eax, 28			; 0000001cH
  017db	8b c8		 mov	 ecx, eax
  017dd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  017e2	89 85 e0 fa ff
	ff		 mov	 DWORD PTR tv1121[ebp], eax
  017e8	8b 85 e0 fa ff
	ff		 mov	 eax, DWORD PTR tv1121[ebp]
  017ee	8b 10		 mov	 edx, DWORD PTR [eax]
  017f0	8b 8d e0 fa ff
	ff		 mov	 ecx, DWORD PTR tv1121[ebp]
  017f6	8b 82 a4 00 00
	00		 mov	 eax, DWORD PTR [edx+164]
  017fc	ff d0		 call	 eax
  017fe	85 c0		 test	 eax, eax
  01800	74 0e		 je	 SHORT $LN8@Providers_@15

; 320  :     {
; 321  :         CurrentSource = InitSourceIdx;

  01802	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?InitSourceIdx@@3JA ; InitSourceIdx
  01808	89 0d 00 00 00
	00		 mov	 DWORD PTR _CurrentSource, ecx
  0180e	eb 33		 jmp	 SHORT $LN7@Providers_@15
$LN8@Providers_@15:

; 322  :     }
; 323  :     else if (DefSourceIdx >= 0 && static_cast<size_t>(DefSourceIdx) < Sources.size())

  01810	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _DefSourceIdx, 0
  01817	7c 20		 jl	 SHORT $LN6@Providers_@15
  01819	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0181e	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  01823	39 05 00 00 00
	00		 cmp	 DWORD PTR _DefSourceIdx, eax
  01829	73 0e		 jae	 SHORT $LN6@Providers_@15

; 324  :     {
; 325  :         CurrentSource = DefSourceIdx;

  0182b	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _DefSourceIdx
  01831	89 15 00 00 00
	00		 mov	 DWORD PTR _CurrentSource, edx

; 326  :     }
; 327  :     else

  01837	eb 0a		 jmp	 SHORT $LN7@Providers_@15
$LN6@Providers_@15:

; 328  :     {
; 329  :         CurrentSource = Providers_FindSource();

  01839	e8 00 00 00 00	 call	 ?Providers_FindSource@@YAHXZ ; Providers_FindSource
  0183e	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax
$LN7@Providers_@15:

; 330  :     }
; 331  : 
; 332  :     Providers_NotifySourceChange(-1);

  01843	6a ff		 push	 -1
  01845	e8 00 00 00 00	 call	 ?Providers_NotifySourceChange@@YAXH@Z ; Providers_NotifySourceChange
  0184a	83 c4 04	 add	 esp, 4

; 333  : 
; 334  :     for(size_t n = 0; n < Sources.size() && n < 100 ; ++n)

  0184d	c7 45 a0 00 00
	00 00		 mov	 DWORD PTR _n$174035[ebp], 0
  01854	eb 09		 jmp	 SHORT $LN4@Providers_@15
$LN3@Providers_@15:
  01856	8b 45 a0	 mov	 eax, DWORD PTR _n$174035[ebp]
  01859	83 c0 01	 add	 eax, 1
  0185c	89 45 a0	 mov	 DWORD PTR _n$174035[ebp], eax
$LN4@Providers_@15:
  0185f	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  01864	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  01869	39 45 a0	 cmp	 DWORD PTR _n$174035[ebp], eax
  0186c	0f 83 b4 00 00
	00		 jae	 $LN2@Providers_@15
  01872	83 7d a0 64	 cmp	 DWORD PTR _n$174035[ebp], 100 ; 00000064H
  01876	0f 83 aa 00 00
	00		 jae	 $LN2@Providers_@15

; 335  :     {
; 336  :         if (Sources[n]->DisplayInMenu)

  0187c	8b 4d a0	 mov	 ecx, DWORD PTR _n$174035[ebp]
  0187f	51		 push	 ecx
  01880	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  01885	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0188a	8b c8		 mov	 ecx, eax
  0188c	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  01891	83 78 24 00	 cmp	 DWORD PTR [eax+36], 0
  01895	0f 84 86 00 00
	00		 je	 $LN1@Providers_@15

; 337  :         {
; 338  : //            AppendMenu(hSubMenu, MF_STRING | MF_ENABLED, IDM_SOURCE_FIRST + n, Sources[n]->Name.c_str());
; 339  :             MenuItemInfo.cbSize = sizeof (MenuItemInfo);

  0189b	c7 45 bc 2c 00
	00 00		 mov	 DWORD PTR _MenuItemInfo$[ebp], 44 ; 0000002cH

; 340  :             MenuItemInfo.fMask = MIIM_TYPE | MIIM_ID;

  018a2	c7 45 c0 12 00
	00 00		 mov	 DWORD PTR _MenuItemInfo$[ebp+4], 18 ; 00000012H

; 341  :             MenuItemInfo.fType = MFT_STRING;

  018a9	c7 45 c4 00 00
	00 00		 mov	 DWORD PTR _MenuItemInfo$[ebp+8], 0

; 342  :             MenuItemInfo.dwTypeData = (LPTSTR) Sources[n]->Name.c_str();

  018b0	8b 55 a0	 mov	 edx, DWORD PTR _n$174035[ebp]
  018b3	52		 push	 edx
  018b4	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  018b9	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  018be	8b c8		 mov	 ecx, eax
  018c0	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  018c5	8b c8		 mov	 ecx, eax
  018c7	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  018cc	89 45 e0	 mov	 DWORD PTR _MenuItemInfo$[ebp+36], eax

; 343  :             MenuItemInfo.cch = _tcslen (Sources[n]->Name.c_str());

  018cf	8b 45 a0	 mov	 eax, DWORD PTR _n$174035[ebp]
  018d2	50		 push	 eax
  018d3	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  018d8	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  018dd	8b c8		 mov	 ecx, eax
  018df	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  018e4	8b c8		 mov	 ecx, eax
  018e6	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  018eb	50		 push	 eax
  018ec	e8 00 00 00 00	 call	 _wcslen
  018f1	83 c4 04	 add	 esp, 4
  018f4	89 45 e4	 mov	 DWORD PTR _MenuItemInfo$[ebp+40], eax

; 344  :             MenuItemInfo.wID = IDM_SOURCE_FIRST + n;

  018f7	8b 4d a0	 mov	 ecx, DWORD PTR _n$174035[ebp]
  018fa	81 c1 26 08 00
	00		 add	 ecx, 2086		; 00000826H
  01900	89 4d cc	 mov	 DWORD PTR _MenuItemInfo$[ebp+16], ecx

; 345  :             InsertMenuItem(hSubMenu, GetMenuItemCount(hSubMenu) - 4, TRUE, &MenuItemInfo);

  01903	8d 55 bc	 lea	 edx, DWORD PTR _MenuItemInfo$[ebp]
  01906	52		 push	 edx
  01907	6a 01		 push	 1
  01909	8b 45 f0	 mov	 eax, DWORD PTR _hSubMenu$[ebp]
  0190c	50		 push	 eax
  0190d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetMenuItemCount@4
  01913	83 e8 04	 sub	 eax, 4
  01916	50		 push	 eax
  01917	8b 4d f0	 mov	 ecx, DWORD PTR _hSubMenu$[ebp]
  0191a	51		 push	 ecx
  0191b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InsertMenuItemW@16
$LN1@Providers_@15:

; 346  :         }
; 347  :     }

  01921	e9 30 ff ff ff	 jmp	 $LN3@Providers_@15
$LN2@Providers_@15:

; 348  : 
; 349  :     Providers_UpdateMenu(hMenu);

  01926	8b 55 08	 mov	 edx, DWORD PTR _hMenu$[ebp]
  01929	52		 push	 edx
  0192a	e8 00 00 00 00	 call	 ?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z ; Providers_UpdateMenu
  0192f	83 c4 04	 add	 esp, 4

; 350  : 
; 351  :     return Sources.size();

  01932	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  01937	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  0193c	89 85 ec fc ff
	ff		 mov	 DWORD PTR $T360715[ebp], eax
  01942	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  01946	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  01949	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
  0194e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  01955	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  01958	e8 00 00 00 00	 call	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>
  0195d	8b 85 ec fc ff
	ff		 mov	 eax, DWORD PTR $T360715[ebp]

; 352  : }

  01963	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  01966	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0196d	59		 pop	 ecx
  0196e	8b e5		 mov	 esp, ebp
  01970	5d		 pop	 ebp
  01971	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$0:
  00000	8d 4d ac	 lea	 ecx, DWORD PTR _Source$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@UTSource@@@@QAE@XZ ; SmartPtr<TSource>::~SmartPtr<TSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$1:
  00008	8d 4d b4	 lea	 ecx, DWORD PTR _DefaultSource$[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$2:
  00010	8b 45 98	 mov	 eax, DWORD PTR $T360619[ebp]
  00013	50		 push	 eax
  00014	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00019	59		 pop	 ecx
  0001a	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$3:
  0001b	8b 45 90	 mov	 eax, DWORD PTR $T360623[ebp]
  0001e	50		 push	 eax
  0001f	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00024	59		 pop	 ecx
  00025	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$4:
  00026	8b 4d 8c	 mov	 ecx, DWORD PTR $T360624[ebp]
  00029	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCHardwareDriver@@@@QAE@XZ ; SmartPtr<CHardwareDriver>::~SmartPtr<CHardwareDriver>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$5:
  0002e	8b 45 84	 mov	 eax, DWORD PTR $T360628[ebp]
  00031	50		 push	 eax
  00032	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00037	59		 pop	 ecx
  00038	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$6:
  00039	8d 8d 78 ff ff
	ff		 lea	 ecx, DWORD PTR $T360632[ebp]
  0003f	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$7:
  00044	8d 8d 5c ff ff
	ff		 lea	 ecx, DWORD PTR $T360633[ebp]
  0004a	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$8:
  0004f	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T360634[ebp]
  00055	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$9:
  0005a	8d 8d 38 ff ff
	ff		 lea	 ecx, DWORD PTR $T360635[ebp]
  00060	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$10:
  00065	8d 8d 30 ff ff
	ff		 lea	 ecx, DWORD PTR $T360636[ebp]
  0006b	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$11:
  00070	8d 8d 24 ff ff
	ff		 lea	 ecx, DWORD PTR $T360638[ebp]
  00076	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$12:
  0007b	8d 8d 1c ff ff
	ff		 lea	 ecx, DWORD PTR $T360639[ebp]
  00081	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$13:
  00086	8b 85 14 ff ff
	ff		 mov	 eax, DWORD PTR $T360641[ebp]
  0008c	50		 push	 eax
  0008d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00092	59		 pop	 ecx
  00093	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$14:
  00094	8b 8d 10 ff ff
	ff		 mov	 ecx, DWORD PTR $T360642[ebp]
  0009a	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCHardwareDriver@@@@QAE@XZ ; SmartPtr<CHardwareDriver>::~SmartPtr<CHardwareDriver>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$15:
  0009f	8b 85 08 ff ff
	ff		 mov	 eax, DWORD PTR $T360646[ebp]
  000a5	50		 push	 eax
  000a6	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000ab	59		 pop	 ecx
  000ac	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$16:
  000ad	8d 8d fc fe ff
	ff		 lea	 ecx, DWORD PTR $T360650[ebp]
  000b3	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$17:
  000b8	8d 8d e0 fe ff
	ff		 lea	 ecx, DWORD PTR $T360651[ebp]
  000be	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$18:
  000c3	8d 8d d8 fe ff
	ff		 lea	 ecx, DWORD PTR $T360652[ebp]
  000c9	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$19:
  000ce	8d 8d bc fe ff
	ff		 lea	 ecx, DWORD PTR $T360653[ebp]
  000d4	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$20:
  000d9	8d 8d b4 fe ff
	ff		 lea	 ecx, DWORD PTR $T360654[ebp]
  000df	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$21:
  000e4	8d 8d a8 fe ff
	ff		 lea	 ecx, DWORD PTR $T360656[ebp]
  000ea	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$22:
  000ef	8d 8d a0 fe ff
	ff		 lea	 ecx, DWORD PTR $T360657[ebp]
  000f5	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$23:
  000fa	8b 85 98 fe ff
	ff		 mov	 eax, DWORD PTR $T360659[ebp]
  00100	50		 push	 eax
  00101	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00106	59		 pop	 ecx
  00107	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$24:
  00108	8b 8d 94 fe ff
	ff		 mov	 ecx, DWORD PTR $T360660[ebp]
  0010e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCHardwareDriver@@@@QAE@XZ ; SmartPtr<CHardwareDriver>::~SmartPtr<CHardwareDriver>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$25:
  00113	8b 85 8c fe ff
	ff		 mov	 eax, DWORD PTR $T360664[ebp]
  00119	50		 push	 eax
  0011a	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0011f	59		 pop	 ecx
  00120	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$26:
  00121	8d 8d 80 fe ff
	ff		 lea	 ecx, DWORD PTR $T360668[ebp]
  00127	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$27:
  0012c	8d 8d 64 fe ff
	ff		 lea	 ecx, DWORD PTR $T360669[ebp]
  00132	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$28:
  00137	8d 8d 5c fe ff
	ff		 lea	 ecx, DWORD PTR $T360670[ebp]
  0013d	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$29:
  00142	8d 8d 40 fe ff
	ff		 lea	 ecx, DWORD PTR $T360671[ebp]
  00148	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$30:
  0014d	8d 8d 38 fe ff
	ff		 lea	 ecx, DWORD PTR $T360672[ebp]
  00153	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$31:
  00158	8d 8d 2c fe ff
	ff		 lea	 ecx, DWORD PTR $T360674[ebp]
  0015e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$32:
  00163	8d 8d 24 fe ff
	ff		 lea	 ecx, DWORD PTR $T360675[ebp]
  00169	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$33:
  0016e	8d 8d 08 fe ff
	ff		 lea	 ecx, DWORD PTR $T360676[ebp]
  00174	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$34:
  00179	8b 85 00 fe ff
	ff		 mov	 eax, DWORD PTR $T360678[ebp]
  0017f	50		 push	 eax
  00180	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00185	59		 pop	 ecx
  00186	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$35:
  00187	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR $T360682[ebp]
  0018d	50		 push	 eax
  0018e	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00193	59		 pop	 ecx
  00194	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$36:
  00195	8d 8d ec fd ff
	ff		 lea	 ecx, DWORD PTR $T360686[ebp]
  0019b	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$37:
  001a0	8d 8d d0 fd ff
	ff		 lea	 ecx, DWORD PTR $T360687[ebp]
  001a6	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$38:
  001ab	8d 8d c8 fd ff
	ff		 lea	 ecx, DWORD PTR $T360688[ebp]
  001b1	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$39:
  001b6	8d 8d ac fd ff
	ff		 lea	 ecx, DWORD PTR $T360689[ebp]
  001bc	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$40:
  001c1	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR $T360690[ebp]
  001c7	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$41:
  001cc	8b 85 9c fd ff
	ff		 mov	 eax, DWORD PTR $T360692[ebp]
  001d2	50		 push	 eax
  001d3	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  001d8	59		 pop	 ecx
  001d9	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$42:
  001da	8b 85 e8 fc ff
	ff		 mov	 eax, DWORD PTR $T360758[ebp]
  001e0	83 e0 01	 and	 eax, 1
  001e3	0f 84 12 00 00
	00		 je	 $LN118@Providers_@15
  001e9	83 a5 e8 fc ff
	ff fe		 and	 DWORD PTR $T360758[ebp], -2 ; fffffffeH
  001f0	8d 8d 90 fd ff
	ff		 lea	 ecx, DWORD PTR $T360696[ebp]
  001f6	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
$LN118@Providers_@15:
  001fb	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$43:
  001fc	8b 85 e8 fc ff
	ff		 mov	 eax, DWORD PTR $T360758[ebp]
  00202	83 e0 02	 and	 eax, 2
  00205	0f 84 12 00 00
	00		 je	 $LN120@Providers_@15
  0020b	83 a5 e8 fc ff
	ff fd		 and	 DWORD PTR $T360758[ebp], -3 ; fffffffdH
  00212	8d 8d 74 fd ff
	ff		 lea	 ecx, DWORD PTR $T360697[ebp]
  00218	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN120@Providers_@15:
  0021d	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$44:
  0021e	8b 85 6c fd ff
	ff		 mov	 eax, DWORD PTR $T360701[ebp]
  00224	50		 push	 eax
  00225	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0022a	59		 pop	 ecx
  0022b	c3		 ret	 0
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$45:
  0022c	8d 8d 50 fd ff
	ff		 lea	 ecx, DWORD PTR $T360704[ebp]
  00232	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$46:
  00237	8d 8d 48 fd ff
	ff		 lea	 ecx, DWORD PTR $T360705[ebp]
  0023d	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$47:
  00242	8d 8d 3c fd ff
	ff		 lea	 ecx, DWORD PTR $T360707[ebp]
  00248	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$48:
  0024d	8d 8d 34 fd ff
	ff		 lea	 ecx, DWORD PTR $T360708[ebp]
  00253	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$49:
  00258	8d 8d 2c fd ff
	ff		 lea	 ecx, DWORD PTR $T360709[ebp]
  0025e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSource@@@@QAE@XZ ; SmartPtr<CSource>::~SmartPtr<CSource>
__unwindfunclet$?Providers_Load@@YAHPAUHMENU__@@@Z$50:
  00263	8d 8d 10 fd ff
	ff		 lea	 ecx, DWORD PTR $T360710[ebp]
  00269	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?Providers_Load@@YAHPAUHMENU__@@@Z:
  0026e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00272	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00275	8b 8a e8 fa ff
	ff		 mov	 ecx, DWORD PTR [edx-1304]
  0027b	33 c8		 xor	 ecx, eax
  0027d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00282	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_Load@@YAHPAUHMENU__@@@Z
  00287	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_Load@@YAHPAUHMENU__@@@Z ENDP			; Providers_Load
PUBLIC	__$ArrayPad$
PUBLIC	?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z ; Providers_HandleWindowsCommands
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z$1
__ehfuncinfo$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z
_TEXT	SEGMENT
tv191 = -124						; size = 4
tv146 = -120						; size = 4
$T361177 = -116						; size = 4
$T361176 = -112						; size = 4
$T361175 = -108						; size = 28
$T361174 = -80						; size = 4
_OldSource$174164 = -76					; size = 4
_OldSource$174154 = -72					; size = 4
_i$174147 = -68						; size = 4
_OpenDlg$174145 = -64					; size = 40
__$ArrayPad$ = -24					; size = 4
_OldSource$174136 = -20					; size = 4
_NewSource$174133 = -16					; size = 4
__$EHRec$ = -12						; size = 12
_hWnd$ = 8						; size = 4
_wParam$ = 12						; size = 4
_lParam$ = 16						; size = 4
?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z PROC ; Providers_HandleWindowsCommands, COMDAT

; 496  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 70	 sub	 esp, 112		; 00000070H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 e8	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 497  :     if(LOWORD(wParam) >= IDM_SOURCE_FIRST && LOWORD(wParam) <= IDM_SOURCE_LAST)

  00028	8b 45 0c	 mov	 eax, DWORD PTR _wParam$[ebp]
  0002b	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00030	0f b7 c8	 movzx	 ecx, ax
  00033	81 f9 26 08 00
	00		 cmp	 ecx, 2086		; 00000826H
  00039	0f 8c 87 00 00
	00		 jl	 $LN16@Providers_@16
  0003f	8b 55 0c	 mov	 edx, DWORD PTR _wParam$[ebp]
  00042	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  00048	0f b7 c2	 movzx	 eax, dx
  0004b	3d 8a 08 00 00	 cmp	 eax, 2186		; 0000088aH
  00050	7f 74		 jg	 SHORT $LN16@Providers_@16

; 498  :     {
; 499  :         int NewSource(LOWORD(wParam) - IDM_SOURCE_FIRST);

  00052	8b 4d 0c	 mov	 ecx, DWORD PTR _wParam$[ebp]
  00055	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  0005b	0f b7 d1	 movzx	 edx, cx
  0005e	81 ea 26 08 00
	00		 sub	 edx, 2086		; 00000826H
  00064	89 55 f0	 mov	 DWORD PTR _NewSource$174133[ebp], edx

; 500  :         if(NewSource >= 0 && static_cast<size_t>(NewSource) < Sources.size())

  00067	78 58		 js	 SHORT $LN15@Providers_@16
  00069	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0006e	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00073	39 45 f0	 cmp	 DWORD PTR _NewSource$174133[ebp], eax
  00076	73 49		 jae	 SHORT $LN15@Providers_@16

; 501  :         {
; 502  :             Providers_NotifySourcePreChange();

  00078	e8 00 00 00 00	 call	 ?Providers_NotifySourcePreChange@@YAXXZ ; Providers_NotifySourcePreChange

; 503  :             Stop_Capture();

  0007d	e8 00 00 00 00	 call	 ?Stop_Capture@@YAXXZ	; Stop_Capture

; 504  :             WSS_init();

  00082	e8 00 00 00 00	 call	 ?WSS_init@@YAXXZ	; WSS_init

; 505  :             int OldSource = CurrentSource;

  00087	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  0008c	89 45 ec	 mov	 DWORD PTR _OldSource$174136[ebp], eax

; 506  :             CurrentSource = NewSource;

  0008f	8b 4d f0	 mov	 ecx, DWORD PTR _NewSource$174133[ebp]
  00092	89 0d 00 00 00
	00		 mov	 DWORD PTR _CurrentSource, ecx

; 507  :             Providers_NotifySourceChange(OldSource);

  00098	8b 55 ec	 mov	 edx, DWORD PTR _OldSource$174136[ebp]
  0009b	52		 push	 edx
  0009c	e8 00 00 00 00	 call	 ?Providers_NotifySourceChange@@YAXH@Z ; Providers_NotifySourceChange
  000a1	83 c4 04	 add	 esp, 4

; 508  :             Providers_UpdateMenu(hMenu);

  000a4	a1 00 00 00 00	 mov	 eax, DWORD PTR ?hMenu@@3PAUHMENU__@@A ; hMenu
  000a9	50		 push	 eax
  000aa	e8 00 00 00 00	 call	 ?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z ; Providers_UpdateMenu
  000af	83 c4 04	 add	 esp, 4

; 509  :             Start_Capture();

  000b2	e8 00 00 00 00	 call	 ?Start_Capture@@YAXXZ	; Start_Capture

; 510  :             return TRUE;

  000b7	b8 01 00 00 00	 mov	 eax, 1
  000bc	e9 8b 02 00 00	 jmp	 $LN17@Providers_@16
$LN15@Providers_@16:

; 511  :         }
; 512  :     }

  000c1	e9 2a 02 00 00	 jmp	 $LN14@Providers_@16
$LN16@Providers_@16:

; 513  :     else if (LOWORD(wParam) == IDM_SOURCE_INITIAL)

  000c6	8b 4d 0c	 mov	 ecx, DWORD PTR _wParam$[ebp]
  000c9	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000cf	0f b7 d1	 movzx	 edx, cx
  000d2	81 fa 04 80 00
	00		 cmp	 edx, 32772		; 00008004H
  000d8	75 19		 jne	 SHORT $LN13@Providers_@16

; 514  :     {
; 515  :         InitSourceIdx = CurrentSource;

  000da	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  000df	a3 00 00 00 00	 mov	 DWORD PTR ?InitSourceIdx@@3JA, eax ; InitSourceIdx

; 516  :         return TRUE;

  000e4	b8 01 00 00 00	 mov	 eax, 1
  000e9	e9 5e 02 00 00	 jmp	 $LN17@Providers_@16
  000ee	e9 fd 01 00 00	 jmp	 $LN14@Providers_@16
$LN13@Providers_@16:

; 517  :     }
; 518  :     else if (LOWORD(wParam) == IDM_OPEN_FILE)

  000f3	8b 4d 0c	 mov	 ecx, DWORD PTR _wParam$[ebp]
  000f6	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000fc	0f b7 d1	 movzx	 edx, cx
  000ff	81 fa 90 08 00
	00		 cmp	 edx, 2192		; 00000890H
  00105	0f 85 62 01 00
	00		 jne	 $LN11@Providers_@16

; 519  :     {
; 520  :         COpenDlg OpenDlg;

  0010b	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  0010e	e8 00 00 00 00	 call	 ??0COpenDlg@@QAE@XZ	; COpenDlg::COpenDlg
  00113	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 521  :         if(OpenDlg.DoModal(hWnd) == IDOK)

  0011a	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  0011d	50		 push	 eax
  0011e	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  00121	e8 00 00 00 00	 call	 ?DoModal@CDSDialog@@QAEHPAUHWND__@@@Z ; CDSDialog::DoModal
  00126	83 f8 01	 cmp	 eax, 1
  00129	0f 85 2a 01 00
	00		 jne	 $LN10@Providers_@16

; 522  :         {
; 523  :             Stop_Capture();

  0012f	e8 00 00 00 00	 call	 ?Stop_Capture@@YAXXZ	; Stop_Capture

; 524  :             for(size_t i = 0; i < Sources.size(); ++i)

  00134	c7 45 bc 00 00
	00 00		 mov	 DWORD PTR _i$174147[ebp], 0
  0013b	eb 09		 jmp	 SHORT $LN9@Providers_@16
$LN8@Providers_@16:
  0013d	8b 4d bc	 mov	 ecx, DWORD PTR _i$174147[ebp]
  00140	83 c1 01	 add	 ecx, 1
  00143	89 4d bc	 mov	 DWORD PTR _i$174147[ebp], ecx
$LN9@Providers_@16:
  00146	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0014b	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00150	39 45 bc	 cmp	 DWORD PTR _i$174147[ebp], eax
  00153	0f 83 c7 00 00
	00		 jae	 $LN7@Providers_@16

; 525  :             {
; 526  :                 if(Sources[i]->Object->OpenMediaFile(OpenDlg.GetFileName().c_str(), FALSE))

  00159	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  0015c	e8 00 00 00 00	 call	 ?GetFileName@COpenDlg@@QAEABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; COpenDlg::GetFileName
  00161	8b c8		 mov	 ecx, eax
  00163	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00168	50		 push	 eax
  00169	8d 4d 94	 lea	 ecx, DWORD PTR $T361175[ebp]
  0016c	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00171	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00175	8b 55 bc	 mov	 edx, DWORD PTR _i$174147[ebp]
  00178	52		 push	 edx
  00179	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  0017e	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  00183	8b c8		 mov	 ecx, eax
  00185	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  0018a	83 c0 1c	 add	 eax, 28			; 0000001cH
  0018d	8b c8		 mov	 ecx, eax
  0018f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  00194	89 45 88	 mov	 DWORD PTR tv146[ebp], eax
  00197	6a 00		 push	 0
  00199	8d 45 94	 lea	 eax, DWORD PTR $T361175[ebp]
  0019c	50		 push	 eax
  0019d	8b 4d 88	 mov	 ecx, DWORD PTR tv146[ebp]
  001a0	8b 11		 mov	 edx, DWORD PTR [ecx]
  001a2	8b 4d 88	 mov	 ecx, DWORD PTR tv146[ebp]
  001a5	8b 82 a0 00 00
	00		 mov	 eax, DWORD PTR [edx+160]
  001ab	ff d0		 call	 eax
  001ad	89 45 b0	 mov	 DWORD PTR $T361174[ebp], eax
  001b0	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  001b4	8d 4d 94	 lea	 ecx, DWORD PTR $T361175[ebp]
  001b7	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  001bc	83 7d b0 00	 cmp	 DWORD PTR $T361174[ebp], 0
  001c0	74 59		 je	 SHORT $LN6@Providers_@16

; 527  :                 {
; 528  :                     Providers_NotifySourcePreChange();

  001c2	e8 00 00 00 00	 call	 ?Providers_NotifySourcePreChange@@YAXXZ ; Providers_NotifySourcePreChange

; 529  : 
; 530  :                     int OldSource = CurrentSource;

  001c7	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _CurrentSource
  001cd	89 4d b8	 mov	 DWORD PTR _OldSource$174154[ebp], ecx

; 531  :                     CurrentSource = static_cast<long>(i);

  001d0	8b 55 bc	 mov	 edx, DWORD PTR _i$174147[ebp]
  001d3	89 15 00 00 00
	00		 mov	 DWORD PTR _CurrentSource, edx

; 532  :                     WSS_init();

  001d9	e8 00 00 00 00	 call	 ?WSS_init@@YAXXZ	; WSS_init

; 533  :                     Providers_UpdateMenu(hMenu);

  001de	a1 00 00 00 00	 mov	 eax, DWORD PTR ?hMenu@@3PAUHMENU__@@A ; hMenu
  001e3	50		 push	 eax
  001e4	e8 00 00 00 00	 call	 ?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z ; Providers_UpdateMenu
  001e9	83 c4 04	 add	 esp, 4

; 534  :                     Start_Capture();

  001ec	e8 00 00 00 00	 call	 ?Start_Capture@@YAXXZ	; Start_Capture

; 535  :                     Providers_NotifySourceChange(OldSource);

  001f1	8b 4d b8	 mov	 ecx, DWORD PTR _OldSource$174154[ebp]
  001f4	51		 push	 ecx
  001f5	e8 00 00 00 00	 call	 ?Providers_NotifySourceChange@@YAXH@Z ; Providers_NotifySourceChange
  001fa	83 c4 04	 add	 esp, 4

; 536  :                     return TRUE;

  001fd	c7 45 90 01 00
	00 00		 mov	 DWORD PTR $T361176[ebp], 1
  00204	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0020b	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  0020e	e8 00 00 00 00	 call	 ??1COpenDlg@@UAE@XZ
  00213	8b 45 90	 mov	 eax, DWORD PTR $T361176[ebp]
  00216	e9 31 01 00 00	 jmp	 $LN17@Providers_@16
$LN6@Providers_@16:

; 537  :                 }
; 538  :             }

  0021b	e9 1d ff ff ff	 jmp	 $LN8@Providers_@16
$LN7@Providers_@16:

; 539  :             Start_Capture();

  00220	e8 00 00 00 00	 call	 ?Start_Capture@@YAXXZ	; Start_Capture

; 540  :             MessageBox(hWnd, _T("Unsupported File Type"), _T("DScaler Warning"), MB_OK);

  00225	6a 00		 push	 0
  00227	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@HBAPGMMF@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAW?$AAa?$AAr?$AAn?$AAi?$AAn?$AAg?$AA?$AA@
  0022c	68 00 00 00 00	 push	 OFFSET ??_C@_1CM@ECILJPKG@?$AAU?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAT?$AAy?$AAp?$AAe?$AA?$AA@
  00231	8b 55 08	 mov	 edx, DWORD PTR _hWnd$[ebp]
  00234	52		 push	 edx
  00235	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 541  :             return TRUE;

  0023b	c7 45 8c 01 00
	00 00		 mov	 DWORD PTR $T361177[ebp], 1
  00242	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00249	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  0024c	e8 00 00 00 00	 call	 ??1COpenDlg@@UAE@XZ
  00251	8b 45 8c	 mov	 eax, DWORD PTR $T361177[ebp]
  00254	e9 f3 00 00 00	 jmp	 $LN17@Providers_@16
$LN10@Providers_@16:

; 542  :         }
; 543  :     }

  00259	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00260	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  00263	e8 00 00 00 00	 call	 ??1COpenDlg@@UAE@XZ
  00268	e9 83 00 00 00	 jmp	 $LN14@Providers_@16
$LN11@Providers_@16:

; 544  :     else if (LOWORD(wParam) == IDM_SWITCH_SOURCE)

  0026d	8b 45 0c	 mov	 eax, DWORD PTR _wParam$[ebp]
  00270	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00275	0f b7 c8	 movzx	 ecx, ax
  00278	81 f9 65 09 00
	00		 cmp	 ecx, 2405		; 00000965H
  0027e	75 70		 jne	 SHORT $LN14@Providers_@16

; 545  :     {
; 546  :         Providers_NotifySourcePreChange();

  00280	e8 00 00 00 00	 call	 ?Providers_NotifySourcePreChange@@YAXXZ ; Providers_NotifySourcePreChange

; 547  : 
; 548  :         Stop_Capture();

  00285	e8 00 00 00 00	 call	 ?Stop_Capture@@YAXXZ	; Stop_Capture

; 549  :         WSS_init();

  0028a	e8 00 00 00 00	 call	 ?WSS_init@@YAXXZ	; WSS_init

; 550  :         int OldSource = CurrentSource;

  0028f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _CurrentSource
  00295	89 55 b4	 mov	 DWORD PTR _OldSource$174164[ebp], edx

; 551  :         if (DefSourceIdx >= 0 && static_cast<size_t>(DefSourceIdx) < Sources.size())

  00298	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _DefSourceIdx, 0
  0029f	7c 1e		 jl	 SHORT $LN3@Providers_@16
  002a1	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  002a6	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  002ab	39 05 00 00 00
	00		 cmp	 DWORD PTR _DefSourceIdx, eax
  002b1	73 0c		 jae	 SHORT $LN3@Providers_@16

; 552  :         {
; 553  :             CurrentSource = DefSourceIdx;

  002b3	a1 00 00 00 00	 mov	 eax, DWORD PTR _DefSourceIdx
  002b8	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax

; 554  :         }
; 555  :         else

  002bd	eb 0a		 jmp	 SHORT $LN2@Providers_@16
$LN3@Providers_@16:

; 556  :         {
; 557  :             CurrentSource = Providers_FindSource();

  002bf	e8 00 00 00 00	 call	 ?Providers_FindSource@@YAHXZ ; Providers_FindSource
  002c4	a3 00 00 00 00	 mov	 DWORD PTR _CurrentSource, eax
$LN2@Providers_@16:

; 558  :         }
; 559  :         Providers_UpdateMenu(hMenu);

  002c9	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?hMenu@@3PAUHMENU__@@A ; hMenu
  002cf	51		 push	 ecx
  002d0	e8 00 00 00 00	 call	 ?Providers_UpdateMenu@@YAXPAUHMENU__@@@Z ; Providers_UpdateMenu
  002d5	83 c4 04	 add	 esp, 4

; 560  :         Start_Capture();

  002d8	e8 00 00 00 00	 call	 ?Start_Capture@@YAXXZ	; Start_Capture

; 561  : 
; 562  :         Providers_NotifySourceChange(OldSource);

  002dd	8b 55 b4	 mov	 edx, DWORD PTR _OldSource$174164[ebp]
  002e0	52		 push	 edx
  002e1	e8 00 00 00 00	 call	 ?Providers_NotifySourceChange@@YAXH@Z ; Providers_NotifySourceChange
  002e6	83 c4 04	 add	 esp, 4

; 563  :         return TRUE;

  002e9	b8 01 00 00 00	 mov	 eax, 1
  002ee	eb 5c		 jmp	 SHORT $LN17@Providers_@16
$LN14@Providers_@16:

; 564  :     }
; 565  :     if(CurrentSource >= 0 && static_cast<size_t>(CurrentSource) < Sources.size())

  002f0	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _CurrentSource, 0
  002f7	7c 51		 jl	 SHORT $LN1@Providers_@16
  002f9	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  002fe	e8 00 00 00 00	 call	 ?size@?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QBEIXZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::size
  00303	39 05 00 00 00
	00		 cmp	 DWORD PTR _CurrentSource, eax
  00309	73 3f		 jae	 SHORT $LN1@Providers_@16

; 566  :     {
; 567  :         return Sources[CurrentSource]->Object->HandleWindowsCommands(hWnd, wParam, lParam);

  0030b	a1 00 00 00 00	 mov	 eax, DWORD PTR _CurrentSource
  00310	50		 push	 eax
  00311	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00316	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAEAAV?$SmartPtr@UTSource@@@@I@Z ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::operator[]
  0031b	8b c8		 mov	 ecx, eax
  0031d	e8 00 00 00 00	 call	 ??C?$SmartPtr@UTSource@@@@QBEPAUTSource@@XZ ; SmartPtr<TSource>::operator->
  00322	83 c0 1c	 add	 eax, 28			; 0000001cH
  00325	8b c8		 mov	 ecx, eax
  00327	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSource@@@@QBEPAVCSource@@XZ ; SmartPtr<CSource>::operator->
  0032c	89 45 84	 mov	 DWORD PTR tv191[ebp], eax
  0032f	8b 4d 10	 mov	 ecx, DWORD PTR _lParam$[ebp]
  00332	51		 push	 ecx
  00333	8b 55 0c	 mov	 edx, DWORD PTR _wParam$[ebp]
  00336	52		 push	 edx
  00337	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  0033a	50		 push	 eax
  0033b	8b 4d 84	 mov	 ecx, DWORD PTR tv191[ebp]
  0033e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00340	8b 4d 84	 mov	 ecx, DWORD PTR tv191[ebp]
  00343	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  00346	ff d0		 call	 eax
  00348	eb 02		 jmp	 SHORT $LN17@Providers_@16
$LN1@Providers_@16:

; 568  :     }
; 569  :     return FALSE;

  0034a	33 c0		 xor	 eax, eax
$LN17@Providers_@16:

; 570  : }

  0034c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0034f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00356	59		 pop	 ecx
  00357	8b 4d e8	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  0035a	33 cd		 xor	 ecx, ebp
  0035c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00361	8b e5		 mov	 esp, ebp
  00363	5d		 pop	 ebp
  00364	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z$0:
  00000	8d 4d c0	 lea	 ecx, DWORD PTR _OpenDlg$174145[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1COpenDlg@@UAE@XZ
__unwindfunclet$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z$1:
  00008	8d 4d 94	 lea	 ecx, DWORD PTR $T361175[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a 8c	 mov	 ecx, DWORD PTR [edx-116]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00024	33 c8		 xor	 ecx, eax
  00026	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002b	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z
  00030	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Providers_HandleWindowsCommands@@YAHPAUHWND__@@IJ@Z ENDP ; Providers_HandleWindowsCommands
; Function compile flags: /Odtp
;	COMDAT ??__EDSProvider@@YAXXZ
text$yc	SEGMENT
??__EDSProvider@@YAXXZ PROC				; `dynamic initializer for 'DSProvider'', COMDAT

; 43   : static SmartPtr<CDSProvider> DSProvider;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCDSProvider@@@@QAE@XZ ; SmartPtr<CDSProvider>::SmartPtr<CDSProvider>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FDSProvider@@YAXXZ ; `dynamic atexit destructor for 'DSProvider''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EDSProvider@@YAXXZ ENDP				; `dynamic initializer for 'DSProvider''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__ESources@@YAXXZ
text$yc	SEGMENT
??__ESources@@YAXXZ PROC				; `dynamic initializer for 'Sources'', COMDAT

; 62   : static SOURCELIST Sources;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00008	e8 00 00 00 00	 call	 ??0?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0000d	68 00 00 00 00	 push	 OFFSET ??__FSources@@YAXXZ ; `dynamic atexit destructor for 'Sources''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__ESources@@YAXXZ ENDP				; `dynamic initializer for 'Sources''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__EHardwareDriver@@YAXXZ
text$yc	SEGMENT
??__EHardwareDriver@@YAXXZ PROC				; `dynamic initializer for 'HardwareDriver'', COMDAT

; 63   : static SmartPtr<CHardwareDriver> HardwareDriver;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _HardwareDriver
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCHardwareDriver@@@@QAE@XZ ; SmartPtr<CHardwareDriver>::SmartPtr<CHardwareDriver>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FHardwareDriver@@YAXXZ ; `dynamic atexit destructor for 'HardwareDriver''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EHardwareDriver@@YAXXZ ENDP				; `dynamic initializer for 'HardwareDriver''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__EBT848Provider@@YAXXZ
text$yc	SEGMENT
??__EBT848Provider@@YAXXZ PROC				; `dynamic initializer for 'BT848Provider'', COMDAT

; 66   : static SmartPtr<CBT848Provider> BT848Provider;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCBT848Provider@@@@QAE@XZ ; SmartPtr<CBT848Provider>::SmartPtr<CBT848Provider>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FBT848Provider@@YAXXZ ; `dynamic atexit destructor for 'BT848Provider''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EBT848Provider@@YAXXZ ENDP				; `dynamic initializer for 'BT848Provider''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__ECX2388xProvider@@YAXXZ
text$yc	SEGMENT
??__ECX2388xProvider@@YAXXZ PROC			; `dynamic initializer for 'CX2388xProvider'', COMDAT

; 70   : static SmartPtr<CCX2388xProvider> CX2388xProvider;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ ; SmartPtr<CCX2388xProvider>::SmartPtr<CCX2388xProvider>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FCX2388xProvider@@YAXXZ ; `dynamic atexit destructor for 'CX2388xProvider''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__ECX2388xProvider@@YAXXZ ENDP			; `dynamic initializer for 'CX2388xProvider''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__ESAA7134Provider@@YAXXZ
text$yc	SEGMENT
??__ESAA7134Provider@@YAXXZ PROC			; `dynamic initializer for 'SAA7134Provider'', COMDAT

; 74   : static SmartPtr<CSAA7134Provider> SAA7134Provider;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ ; SmartPtr<CSAA7134Provider>::SmartPtr<CSAA7134Provider>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FSAA7134Provider@@YAXXZ ; `dynamic atexit destructor for 'SAA7134Provider''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__ESAA7134Provider@@YAXXZ ENDP			; `dynamic initializer for 'SAA7134Provider''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__EStillProvider@@YAXXZ
text$yc	SEGMENT
??__EStillProvider@@YAXXZ PROC				; `dynamic initializer for 'StillProvider'', COMDAT

; 77   : static SmartPtr<CStillProvider> StillProvider;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCStillProvider@@@@QAE@XZ ; SmartPtr<CStillProvider>::SmartPtr<CStillProvider>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FStillProvider@@YAXXZ ; `dynamic atexit destructor for 'StillProvider''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EStillProvider@@YAXXZ ENDP				; `dynamic initializer for 'StillProvider''
; Function compile flags: /Odtp
;	COMDAT ??__FStillProvider@@YAXXZ
text$yd	SEGMENT
??__FStillProvider@@YAXXZ PROC				; `dynamic atexit destructor for 'StillProvider'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _StillProvider
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCStillProvider@@@@QAE@XZ ; SmartPtr<CStillProvider>::~SmartPtr<CStillProvider>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FStillProvider@@YAXXZ ENDP				; `dynamic atexit destructor for 'StillProvider''
; Function compile flags: /Odtp
text$yd	ENDS
;	COMDAT ??__FSAA7134Provider@@YAXXZ
text$yd	SEGMENT
??__FSAA7134Provider@@YAXXZ PROC			; `dynamic atexit destructor for 'SAA7134Provider'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _SAA7134Provider
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSAA7134Provider@@@@QAE@XZ ; SmartPtr<CSAA7134Provider>::~SmartPtr<CSAA7134Provider>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FSAA7134Provider@@YAXXZ ENDP			; `dynamic atexit destructor for 'SAA7134Provider''
; Function compile flags: /Odtp
text$yd	ENDS
;	COMDAT ??__FCX2388xProvider@@YAXXZ
text$yd	SEGMENT
??__FCX2388xProvider@@YAXXZ PROC			; `dynamic atexit destructor for 'CX2388xProvider'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _CX2388xProvider
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCCX2388xProvider@@@@QAE@XZ ; SmartPtr<CCX2388xProvider>::~SmartPtr<CCX2388xProvider>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FCX2388xProvider@@YAXXZ ENDP			; `dynamic atexit destructor for 'CX2388xProvider''
; Function compile flags: /Odtp
text$yd	ENDS
;	COMDAT ??__FDSProvider@@YAXXZ
text$yd	SEGMENT
??__FDSProvider@@YAXXZ PROC				; `dynamic atexit destructor for 'DSProvider'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _DSProvider
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCDSProvider@@@@QAE@XZ ; SmartPtr<CDSProvider>::~SmartPtr<CDSProvider>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FDSProvider@@YAXXZ ENDP				; `dynamic atexit destructor for 'DSProvider''
; Function compile flags: /Odtp
;	COMDAT ??__FBT848Provider@@YAXXZ
text$yd	SEGMENT
??__FBT848Provider@@YAXXZ PROC				; `dynamic atexit destructor for 'BT848Provider'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _BT848Provider
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCBT848Provider@@@@QAE@XZ ; SmartPtr<CBT848Provider>::~SmartPtr<CBT848Provider>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FBT848Provider@@YAXXZ ENDP				; `dynamic atexit destructor for 'BT848Provider''
; Function compile flags: /Odtp
;	COMDAT ??__FSources@@YAXXZ
text$yd	SEGMENT
??__FSources@@YAXXZ PROC				; `dynamic atexit destructor for 'Sources'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _Sources
  00008	e8 00 00 00 00	 call	 ??1?$vector@V?$SmartPtr@UTSource@@@@V?$allocator@V?$SmartPtr@UTSource@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >::~vector<SmartPtr<TSource>,std::allocator<SmartPtr<TSource> > >
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FSources@@YAXXZ ENDP				; `dynamic atexit destructor for 'Sources''
; Function compile flags: /Odtp
;	COMDAT ??__FHardwareDriver@@YAXXZ
text$yd	SEGMENT
??__FHardwareDriver@@YAXXZ PROC				; `dynamic atexit destructor for 'HardwareDriver'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET _HardwareDriver
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCHardwareDriver@@@@QAE@XZ ; SmartPtr<CHardwareDriver>::~SmartPtr<CHardwareDriver>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FHardwareDriver@@YAXXZ ENDP				; `dynamic atexit destructor for 'HardwareDriver''
	ALIGN	8

_StillProvider DQ 01H DUP (?)
_SAA7134Provider DQ 01H DUP (?)
_CX2388xProvider DQ 01H DUP (?)
_BT848Provider DQ 01H DUP (?)
_HardwareDriver DQ 01H DUP (?)
_Sources DB	018H DUP (?)
_DSProvider DQ	01H DUP (?)
_DSProvider$initializer$ DD FLAT:??__EDSProvider@@YAXXZ
_Sources$initializer$ DD FLAT:??__ESources@@YAXXZ
_HardwareDriver$initializer$ DD FLAT:??__EHardwareDriver@@YAXXZ
_BT848Provider$initializer$ DD FLAT:??__EBT848Provider@@YAXXZ
_CX2388xProvider$initializer$ DD FLAT:??__ECX2388xProvider@@YAXXZ
_SAA7134Provider$initializer$ DD FLAT:??__ESAA7134Provider@@YAXXZ
_StillProvider$initializer$ DD FLAT:??__EStillProvider@@YAXXZ
END
