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

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

INCLUDELIB OLDNAMES

PUBLIC	??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QBEHXZ ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::operator int
PUBLIC	??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>
PUBLIC	??0?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QAE@PB_WPBD@Z ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>
PUBLIC	??R?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QBEJPAUHWND__@@HPAXKPA_W@Z ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::operator()
PUBLIC	??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QBEHXZ ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::operator int
PUBLIC	??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>
PUBLIC	??0?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QAE@PB_WPBD@Z ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>
PUBLIC	??R?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QBEJPAUHWND__@@HPAXKPB_WPA_W@Z ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::operator()
PUBLIC	?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::begin
PUBLIC	?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::end
PUBLIC	?end@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::end
PUBLIC	?_Make_iter@?$vector@_WV?$allocator@_W@std@@@std@@QBE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Make_iter
PUBLIC	??8?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator==
PUBLIC	??9?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator!=
PUBLIC	??$_Copy_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>
PUBLIC	??$unchecked_copy@PA_WPA_W@stdext@@YAPA_WPA_W00@Z ; stdext::unchecked_copy<wchar_t *,wchar_t *>
PUBLIC	?erase@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::erase
PUBLIC	??$_Fill@PA_W_W@std@@YAXPA_W0AB_W@Z		; std::_Fill<wchar_t *,wchar_t>
PUBLIC	??$fill@PA_W_W@std@@YAXPA_W0AB_W@Z		; std::fill<wchar_t *,wchar_t>
PUBLIC	??$_Iter_random@PA_WPA_W@std@@YA?AUrandom_access_iterator_tag@0@ABQA_W0@Z ; std::_Iter_random<wchar_t *,wchar_t *>
PUBLIC	??$_Copy_backward_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_backward_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>
PUBLIC	??$_Move_backward_opt@PA_WPA_WUrandom_access_iterator_tag@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag,std::_Undefined_move_tag>
PUBLIC	??$_Unchecked_move_backward@PA_WPA_W@stdext@@YAPA_WPA_W00@Z ; stdext::_Unchecked_move_backward<wchar_t *,wchar_t *>
PUBLIC	?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert_n
PUBLIC	??Y?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator+=
PUBLIC	??Y?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::operator+=
PUBLIC	??H?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QBE?AV01@H@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::operator+
PUBLIC	?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::resize
PUBLIC	?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::resize
PUBLIC	??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@_WHPB_WAB_WV_Iterator_base_aux@2@@std@@QAE@XZ ; std::_Iterator_with_base<std::random_access_iterator_tag,wchar_t,int,wchar_t const *,wchar_t const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,wchar_t,int,wchar_t const *,wchar_t const &,std::_Iterator_base_aux>
PUBLIC	??0?$_Ranit@_WHPB_WAB_W@std@@QAE@XZ		; std::_Ranit<wchar_t,int,wchar_t const *,wchar_t const &>::_Ranit<wchar_t,int,wchar_t const *,wchar_t const &>
PUBLIC	??0?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >
PUBLIC	??0?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_iterator<wchar_t,std::allocator<wchar_t> >
PUBLIC	?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::begin
PUBLIC	?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::capacity
PUBLIC	?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse
PUBLIC	??$_Move_cat@PA_W@std@@YA?AU_Undefined_move_tag@0@ABQA_W@Z ; std::_Move_cat<wchar_t *>
PUBLIC	??$_Uninit_copy@PA_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$unchecked_uninitialized_copy@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z ; stdext::unchecked_uninitialized_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$_Uninit_move@PA_WPA_WV?$allocator@_W@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<wchar_t *,wchar_t *,std::allocator<wchar_t>,std::_Undefined_move_tag>
PUBLIC	??$_Unchecked_uninitialized_move@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z ; stdext::_Unchecked_uninitialized_move<wchar_t *,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
PUBLIC	??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Iter_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??$_Distance2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAIUrandom_access_iterator_tag@0@@Z ; std::_Distance2<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>
PUBLIC	??$_Distance@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAI@Z ; std::_Distance<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>
PUBLIC	?_Checked_iterator_base@?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Checked_iterator_base
PUBLIC	??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::_Different_checked_iterator_base_type_tag>
PUBLIC	??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??$_Ptr_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AAPA_W@Z ; std::_Ptr_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *>
PUBLIC	??$_Uninit_copy@PB_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPB_W0PA_WAAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<wchar_t const *,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$unchecked_uninitialized_copy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_WV?$allocator@_W@2@@stdext@@YAPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0PA_WAAV?$allocator@_W@2@@Z ; stdext::unchecked_uninitialized_copy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$_Ucopy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0PA_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??$insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Construct<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> ><std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
PUBLIC	??_C@_0BJ@OHFMJCIO@GetModuleFileName?5failed?$AA@ ; `string'
PUBLIC	??_C@_15PCEAIKAA@?$AA?4?$AA?2?$AA?$AA@		; `string'
PUBLIC	??_C@_0BB@JLFMFIGE@SHGetFolderPathW?$AA@	; `string'
PUBLIC	??_C@_1BI@ODIMJCCA@?$AAS?$AAh?$AAe?$AAl?$AAl?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ ; `string'
PUBLIC	??_C@_0BK@PFGNCDCO@SHGetFolderPathAndSubDirW?$AA@ ; `string'
PUBLIC	??_C@_1BE@BOBPAEPM@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA4?$AA?2?$AA?$AA@ ; `string'
EXTRN	__imp__GetModuleFileNameW@12:PROC
EXTRN	__imp__PathAppendW@8:PROC
;	COMDAT ??_C@_1BE@BOBPAEPM@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA4?$AA?2?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@BOBPAEPM@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA4?$AA?2?$AA?$AA@ DB 'D'
	DB	00H, 'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H
	DB	'4', 00H, '\', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BK@PFGNCDCO@SHGetFolderPathAndSubDirW?$AA@
CONST	SEGMENT
??_C@_0BK@PFGNCDCO@SHGetFolderPathAndSubDirW?$AA@ DB 'SHGetFolderPathAndS'
	DB	'ubDirW', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BI@ODIMJCCA@?$AAS?$AAh?$AAe?$AAl?$AAl?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
CONST	SEGMENT
??_C@_1BI@ODIMJCCA@?$AAS?$AAh?$AAe?$AAl?$AAl?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ DB 'S'
	DB	00H, 'h', 00H, 'e', 00H, 'l', 00H, 'l', 00H, '3', 00H, '2', 00H
	DB	'.', 00H, 'd', 00H, 'l', 00H, 'l', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@JLFMFIGE@SHGetFolderPathW?$AA@
CONST	SEGMENT
??_C@_0BB@JLFMFIGE@SHGetFolderPathW?$AA@ DB 'SHGetFolderPathW', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_15PCEAIKAA@?$AA?4?$AA?2?$AA?$AA@
CONST	SEGMENT
??_C@_15PCEAIKAA@?$AA?4?$AA?2?$AA?$AA@ DB '.', 00H, '\', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BJ@OHFMJCIO@GetModuleFileName?5failed?$AA@
CONST	SEGMENT
??_C@_0BJ@OHFMJCIO@GetModuleFileName?5failed?$AA@ DB 'GetModuleFileName f'
	DB	'ailed', 00H					; `string'
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?_Checked_iterator_base@?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?_Checked_iterator_base@?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ PROC ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Checked_iterator_base, COMDAT
; _this$ = ecx

; 53   : 	{

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

; 54   : 		return _Myptr;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 04	 mov	 eax, DWORD PTR [eax+4]

; 55   : 	}

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?_Checked_iterator_base@?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ENDP ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Checked_iterator_base
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
___formal$ = 12						; size = 1
??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::_Different_checked_iterator_base_type_tag>, COMDAT

; 1138 : 	{

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

; 1139 : 		return _It._Checked_iterator_base();

  00003	8b 4d 08	 mov	 ecx, DWORD PTR __It$[ebp]
  00006	e8 00 00 00 00	 call	 ?_Checked_iterator_base@?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Checked_iterator_base

; 1140 : 	}

  0000b	5d		 pop	 ebp
  0000c	c3		 ret	 0
??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::_Different_checked_iterator_base_type_tag>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
_TEXT	ENDS
;	COMDAT ??$_Uninit_copy@PB_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPB_W0PA_WAAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__Result$ = -8						; size = 4
__Count$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_copy@PB_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPB_W0PA_WAAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<wchar_t const *,wchar_t *,std::allocator<wchar_t> >, COMDAT

; 143  : 	{	// copy [_First, _Last) to raw _Dest, scalar type

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

; 144  : 	_DEBUG_RANGE(_First, _Last);
; 145  : 	_DEBUG_POINTER(_Dest);
; 146  : 	size_t _Count = (size_t)(_Last - _First);

  00006	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00009	2b 45 08	 sub	 eax, DWORD PTR __First$[ebp]
  0000c	d1 f8		 sar	 eax, 1
  0000e	89 45 fc	 mov	 DWORD PTR __Count$[ebp], eax

; 147  : 	_FwdIt _Result = _Dest + _Count;

  00011	8b 4d fc	 mov	 ecx, DWORD PTR __Count$[ebp]
  00014	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  00017	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  0001a	89 45 f8	 mov	 DWORD PTR __Result$[ebp], eax

; 148  : 	if (_Count > 0)

  0001d	74 1c		 je	 SHORT $LN1@Uninit_cop@6

; 149  : 		_CRT_SECURE_MEMMOVE(&*_Dest, _Count * sizeof (*_First), &*_First, _Count * sizeof (*_First));	// NB: non-overlapping move

  0001f	8b 4d fc	 mov	 ecx, DWORD PTR __Count$[ebp]
  00022	d1 e1		 shl	 ecx, 1
  00024	51		 push	 ecx
  00025	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00028	52		 push	 edx
  00029	8b 45 fc	 mov	 eax, DWORD PTR __Count$[ebp]
  0002c	d1 e0		 shl	 eax, 1
  0002e	50		 push	 eax
  0002f	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00032	51		 push	 ecx
  00033	e8 00 00 00 00	 call	 _memmove_s
  00038	83 c4 10	 add	 esp, 16			; 00000010H
$LN1@Uninit_cop@6:

; 150  : 	return _Result;

  0003b	8b 45 f8	 mov	 eax, DWORD PTR __Result$[ebp]

; 151  : 	}

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
??$_Uninit_copy@PB_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPB_W0PA_WAAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<wchar_t const *,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Ptr_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AAPA_W@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Ptr_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AAPA_W@Z PROC ; std::_Ptr_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *>, 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@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AAPA_W@Z ENDP ; std::_Ptr_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z
_TEXT	SEGMENT
__Base_tag$ = -1					; size = 1
__It$ = 8						; size = 4
??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z PROC ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, 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@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::_Different_checked_iterator_base_type_tag>
  00012	83 c4 08	 add	 esp, 8

; 1166 : 	}

  00015	8b e5		 mov	 esp, ebp
  00017	5d		 pop	 ebp
  00018	c3		 ret	 0
??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ENDP ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
_TEXT	ENDS
;	COMDAT ??$unchecked_uninitialized_copy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_WV?$allocator@_W@2@@stdext@@YAPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0PA_WAAV?$allocator@_W@2@@Z
_TEXT	SEGMENT
$T294711 = -2						; size = 1
$T294710 = -1						; size = 1
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
__Dest$ = 24						; size = 4
__Al$ = 28						; size = 4
??$unchecked_uninitialized_copy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_WV?$allocator@_W@2@@stdext@@YAPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0PA_WAAV?$allocator@_W@2@@Z PROC ; stdext::unchecked_uninitialized_copy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *,std::allocator<wchar_t> >, 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 $T294710[ebp], al
  00009	8d 4d 18	 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@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@AAPA_W@Z ; std::_Ptr_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T294711[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T294710[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T294711[ebp]
  00025	51		 push	 ecx
  00026	8b 55 1c	 mov	 edx, DWORD PTR __Al$[ebp]
  00029	52		 push	 edx
  0002a	8b 45 18	 mov	 eax, DWORD PTR __Dest$[ebp]
  0002d	50		 push	 eax
  0002e	8d 4d 10	 lea	 ecx, DWORD PTR __Last$[ebp]
  00031	51		 push	 ecx
  00032	e8 00 00 00 00	 call	 ??$_Checked_base@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  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@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YAPB_WAAV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Checked_base<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  00044	83 c4 04	 add	 esp, 4
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ??$_Uninit_copy@PB_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPB_W0PA_WAAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<wchar_t const *,wchar_t *,std::allocator<wchar_t> >
  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@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_WV?$allocator@_W@2@@stdext@@YAPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0PA_WAAV?$allocator@_W@2@@Z ENDP ; stdext::unchecked_uninitialized_copy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Uninit_copy@PA_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__Result$ = -8						; size = 4
__Count$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_copy@PA_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >, COMDAT

; 143  : 	{	// copy [_First, _Last) to raw _Dest, scalar type

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

; 144  : 	_DEBUG_RANGE(_First, _Last);
; 145  : 	_DEBUG_POINTER(_Dest);
; 146  : 	size_t _Count = (size_t)(_Last - _First);

  00006	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00009	2b 45 08	 sub	 eax, DWORD PTR __First$[ebp]
  0000c	d1 f8		 sar	 eax, 1
  0000e	89 45 fc	 mov	 DWORD PTR __Count$[ebp], eax

; 147  : 	_FwdIt _Result = _Dest + _Count;

  00011	8b 4d fc	 mov	 ecx, DWORD PTR __Count$[ebp]
  00014	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  00017	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  0001a	89 45 f8	 mov	 DWORD PTR __Result$[ebp], eax

; 148  : 	if (_Count > 0)

  0001d	74 1c		 je	 SHORT $LN1@Uninit_cop@7

; 149  : 		_CRT_SECURE_MEMMOVE(&*_Dest, _Count * sizeof (*_First), &*_First, _Count * sizeof (*_First));	// NB: non-overlapping move

  0001f	8b 4d fc	 mov	 ecx, DWORD PTR __Count$[ebp]
  00022	d1 e1		 shl	 ecx, 1
  00024	51		 push	 ecx
  00025	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00028	52		 push	 edx
  00029	8b 45 fc	 mov	 eax, DWORD PTR __Count$[ebp]
  0002c	d1 e0		 shl	 eax, 1
  0002e	50		 push	 eax
  0002f	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00032	51		 push	 ecx
  00033	e8 00 00 00 00	 call	 _memmove_s
  00038	83 c4 10	 add	 esp, 16			; 00000010H
$LN1@Uninit_cop@7:

; 150  : 	return _Result;

  0003b	8b 45 f8	 mov	 eax, DWORD PTR __Result$[ebp]

; 151  : 	}

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
??$_Uninit_copy@PA_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??$_Ucopy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0PA_W@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
__Ptr$ = 24						; size = 4
??$_Ucopy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0PA_W@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, COMDAT
; _this$ = ecx

; 1143 : 		pointer _Ucopy(_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

; 1144 : 		{	// copy initializing [_First, _Last), using allocator
; 1145 : 		return (_STDEXT unchecked_uninitialized_copy(_First, _Last,
; 1146 : 			_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 18	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  00011	51		 push	 ecx
  00012	8b 55 14	 mov	 edx, DWORD PTR __Last$[ebp+4]
  00015	52		 push	 edx
  00016	8b 45 10	 mov	 eax, DWORD PTR __Last$[ebp]
  00019	50		 push	 eax
  0001a	8b 4d 0c	 mov	 ecx, DWORD PTR __First$[ebp+4]
  0001d	51		 push	 ecx
  0001e	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00021	52		 push	 edx
  00022	e8 00 00 00 00	 call	 ??$unchecked_uninitialized_copy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PA_WV?$allocator@_W@2@@stdext@@YAPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0PA_WAAV?$allocator@_W@2@@Z ; stdext::unchecked_uninitialized_copy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,wchar_t *,std::allocator<wchar_t> >
  00027	83 c4 18	 add	 esp, 24			; 00000018H

; 1147 : 		}

  0002a	8b e5		 mov	 esp, ebp
  0002c	5d		 pop	 ebp
  0002d	c2 14 00	 ret	 20			; 00000014H
??$_Ucopy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0PA_W@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
__Temp$152854 = -4					; size = 2
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse, COMDAT
; _this$ = ecx

; 997  : 		{	// reverse a subrange

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

; 998  : 		for (; _First != _Last && _First != --_Last; ++_First)

  00009	eb 09		 jmp	 SHORT $LN3@Reverse
$LN2@Reverse:
  0000b	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  0000e	83 c0 02	 add	 eax, 2
  00011	89 45 08	 mov	 DWORD PTR __First$[ebp], eax
$LN3@Reverse:
  00014	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00017	3b 4d 0c	 cmp	 ecx, DWORD PTR __Last$[ebp]
  0001a	74 33		 je	 SHORT $LN4@Reverse
  0001c	8b 55 0c	 mov	 edx, DWORD PTR __Last$[ebp]
  0001f	83 ea 02	 sub	 edx, 2
  00022	89 55 0c	 mov	 DWORD PTR __Last$[ebp], edx
  00025	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00028	3b 45 0c	 cmp	 eax, DWORD PTR __Last$[ebp]
  0002b	74 22		 je	 SHORT $LN4@Reverse

; 999  : 			{	// swap distinct _First and _Last
; 1000 : 			value_type _Temp = *_First;

  0002d	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00030	66 8b 11	 mov	 dx, WORD PTR [ecx]
  00033	66 89 55 fc	 mov	 WORD PTR __Temp$152854[ebp], dx

; 1001 : 
; 1002 : 			*_First = *_Last;

  00037	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  0003a	8b 4d 0c	 mov	 ecx, DWORD PTR __Last$[ebp]
  0003d	66 8b 11	 mov	 dx, WORD PTR [ecx]
  00040	66 89 10	 mov	 WORD PTR [eax], dx

; 1003 : 			*_Last = _Temp;

  00043	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00046	66 8b 4d fc	 mov	 cx, WORD PTR __Temp$152854[ebp]
  0004a	66 89 08	 mov	 WORD PTR [eax], cx

; 1004 : 			}

  0004d	eb bc		 jmp	 SHORT $LN2@Reverse
$LN4@Reverse:

; 1005 : 		}

  0004f	8b e5		 mov	 esp, ebp
  00051	5d		 pop	 ebp
  00052	c2 08 00	 ret	 8
?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Copy_backward_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__Off$ = -8						; size = 4
__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@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_backward_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>, COMDAT

; 2672 : 	{	// copy [_First, _Last) backwards to [..., _Dest), pointers to scalars

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

; 2673 : 
; 2674 :  #if _HAS_ITERATOR_DEBUGGING
; 2675 : 	_DEBUG_RANGE(_First, _Last);
; 2676 : 	if (_First != _Last)
; 2677 : 		_DEBUG_POINTER(_Dest);
; 2678 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 2679 : 
; 2680 : 	ptrdiff_t _Off = _Last - _First;	// NB: non-overlapping move

  00006	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00009	2b 45 08	 sub	 eax, DWORD PTR __First$[ebp]
  0000c	d1 f8		 sar	 eax, 1
  0000e	89 45 f8	 mov	 DWORD PTR __Off$[ebp], eax

; 2681 : 	/* if _OutIt is range checked, this will make sure there is enough space for 
; 2682 : 	 * the memmove
; 2683 : 	 */
; 2684 : 	_OutIt _Result = _Dest - _Off;

  00011	8b 4d f8	 mov	 ecx, DWORD PTR __Off$[ebp]
  00014	d1 e1		 shl	 ecx, 1
  00016	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  00019	2b d1		 sub	 edx, ecx
  0001b	89 55 fc	 mov	 DWORD PTR __Result$[ebp], edx

; 2685 : 	if (_Off > 0)

  0001e	83 7d f8 00	 cmp	 DWORD PTR __Off$[ebp], 0
  00022	7e 1c		 jle	 SHORT $LN1@Copy_backw@8

; 2686 : 		_CRT_SECURE_MEMMOVE(&*_Result, _Off * sizeof (*_First), &*_First, _Off * sizeof (*_First));

  00024	8b 45 f8	 mov	 eax, DWORD PTR __Off$[ebp]
  00027	d1 e0		 shl	 eax, 1
  00029	50		 push	 eax
  0002a	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  0002d	51		 push	 ecx
  0002e	8b 55 f8	 mov	 edx, DWORD PTR __Off$[ebp]
  00031	d1 e2		 shl	 edx, 1
  00033	52		 push	 edx
  00034	8b 45 fc	 mov	 eax, DWORD PTR __Result$[ebp]
  00037	50		 push	 eax
  00038	e8 00 00 00 00	 call	 _memmove_s
  0003d	83 c4 10	 add	 esp, 16			; 00000010H
$LN1@Copy_backw@8:

; 2687 : 	return _Result;

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

; 2688 : 	}

  00043	8b e5		 mov	 esp, ebp
  00045	5d		 pop	 ebp
  00046	c3		 ret	 0
??$_Copy_backward_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_backward_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Move_cat@PA_W@std@@YA?AU_Undefined_move_tag@0@ABQA_W@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
??$_Move_cat@PA_W@std@@YA?AU_Undefined_move_tag@0@ABQA_W@Z PROC ; std::_Move_cat<wchar_t *>, 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@PA_W@std@@YA?AU_Undefined_move_tag@0@ABQA_W@Z ENDP ; std::_Move_cat<wchar_t *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Fill@PA_W_W@std@@YAXPA_W0AB_W@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Val$ = 16						; size = 4
??$_Fill@PA_W_W@std@@YAXPA_W0AB_W@Z PROC		; std::_Fill<wchar_t *,wchar_t>, 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@8
$LN2@Fill@8:
  00005	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00008	83 c0 02	 add	 eax, 2
  0000b	89 45 08	 mov	 DWORD PTR __First$[ebp], eax
$LN3@Fill@8:
  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@8

; 3133 : 		*_First = _Val;

  00016	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00019	8b 45 10	 mov	 eax, DWORD PTR __Val$[ebp]
  0001c	66 8b 08	 mov	 cx, WORD PTR [eax]
  0001f	66 89 0a	 mov	 WORD PTR [edx], cx
  00022	eb e1		 jmp	 SHORT $LN2@Fill@8
$LN4@Fill@8:

; 3134 : 	}

  00024	5d		 pop	 ebp
  00025	c3		 ret	 0
??$_Fill@PA_W_W@std@@YAXPA_W0AB_W@Z ENDP		; std::_Fill<wchar_t *,wchar_t>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Copy_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__Off$ = -8						; size = 4
__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@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>, COMDAT

; 2468 : 	{	// copy [_First, _Last) to [_Dest, ...), pointers to scalars

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

; 2469 : 
; 2470 :  #if _HAS_ITERATOR_DEBUGGING
; 2471 : 	_DEBUG_RANGE(_First, _Last);
; 2472 : 	if (_First != _Last)
; 2473 : 		_DEBUG_POINTER(_Dest);
; 2474 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 2475 : 
; 2476 : 	ptrdiff_t _Off = _Last - _First;	// NB: non-overlapping move

  00006	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00009	2b 45 08	 sub	 eax, DWORD PTR __First$[ebp]
  0000c	d1 f8		 sar	 eax, 1
  0000e	89 45 f8	 mov	 DWORD PTR __Off$[ebp], eax

; 2477 : 	// if _OutIt is range checked, this will make sure there is enough space for the memmove
; 2478 : 	_OutIt _Result = _Dest + _Off;

  00011	8b 4d f8	 mov	 ecx, DWORD PTR __Off$[ebp]
  00014	8b 55 10	 mov	 edx, DWORD PTR __Dest$[ebp]
  00017	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  0001a	89 45 fc	 mov	 DWORD PTR __Result$[ebp], eax

; 2479 : 	if (_Off > 0)

  0001d	83 7d f8 00	 cmp	 DWORD PTR __Off$[ebp], 0
  00021	7e 1c		 jle	 SHORT $LN1@Copy_opt@10

; 2480 : 		_CRT_SECURE_MEMMOVE(&*_Dest, _Off * sizeof (*_First), &*_First, _Off * sizeof (*_First));

  00023	8b 4d f8	 mov	 ecx, DWORD PTR __Off$[ebp]
  00026	d1 e1		 shl	 ecx, 1
  00028	51		 push	 ecx
  00029	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  0002c	52		 push	 edx
  0002d	8b 45 f8	 mov	 eax, DWORD PTR __Off$[ebp]
  00030	d1 e0		 shl	 eax, 1
  00032	50		 push	 eax
  00033	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00036	51		 push	 ecx
  00037	e8 00 00 00 00	 call	 _memmove_s
  0003c	83 c4 10	 add	 esp, 16			; 00000010H
$LN1@Copy_opt@10:

; 2481 : 	return _Result;

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

; 2482 : 	}

  00042	8b e5		 mov	 esp, ebp
  00044	5d		 pop	 ebp
  00045	c3		 ret	 0
??$_Copy_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Iter_random@PA_WPA_W@std@@YA?AUrandom_access_iterator_tag@0@ABQA_W0@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
??$_Iter_random@PA_WPA_W@std@@YA?AUrandom_access_iterator_tag@0@ABQA_W0@Z PROC ; std::_Iter_random<wchar_t *,wchar_t *>, 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@PA_WPA_W@std@@YA?AUrandom_access_iterator_tag@0@ABQA_W0@Z ENDP ; std::_Iter_random<wchar_t *,wchar_t *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z PROC ; std::_Iter_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, COMDAT

; 952  : 	{	// return category from iterator argument

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

; 953  : 	typename iterator_traits<_Iter>::iterator_category _Cat;
; 954  : 	return (_Cat);

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

; 955  : 	}

  00007	8b e5		 mov	 esp, ebp
  00009	5d		 pop	 ebp
  0000a	c3		 ret	 0
??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ENDP ; std::_Iter_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ
_TEXT	SEGMENT
tv70 = -8						; size = 4
_this$ = -4						; size = 4
?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::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@17
  00012	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv70[ebp], 0
  00019	eb 11		 jmp	 SHORT $LN4@capacity@17
$LN3@capacity@17:
  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	d1 f8		 sar	 eax, 1
  00029	89 45 f8	 mov	 DWORD PTR tv70[ebp], eax
$LN4@capacity@17:
  0002c	8b 45 f8	 mov	 eax, DWORD PTR tv70[ebp]

; 636  : 		}

  0002f	8b e5		 mov	 esp, ebp
  00031	5d		 pop	 ebp
  00032	c3		 ret	 0
?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::capacity
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dynamicfunction.h
_TEXT	ENDS
;	COMDAT ??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QBEHXZ PROC ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::operator int, COMDAT
; _this$ = ecx

; 39   :     {

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

; 40   :         return m_pFunc != 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	0f 95 c1	 setne	 cl
  00012	8b c1		 mov	 eax, ecx

; 41   :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QBEHXZ ENDP ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::operator int
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QBEJPAUHWND__@@HPAXKPB_WPA_W@Z
_TEXT	SEGMENT
tv82 = -8						; size = 4
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
_Param2$ = 12						; size = 4
_Param3$ = 16						; size = 4
_Param4$ = 20						; size = 4
_Param5$ = 24						; size = 4
_Param6$ = 28						; size = 4
??R?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QBEJPAUHWND__@@HPAXKPB_WPA_W@Z PROC ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::operator(), COMDAT
; _this$ = ecx

; 170  :     {

  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

; 171  :         return m_pFunc?m_pFunc(Param1, Param2, Param3, Param4, Param5, Param6):0;

  00009	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	74 24		 je	 SHORT $LN3@operator@7
  00011	8b 4d 1c	 mov	 ecx, DWORD PTR _Param6$[ebp]
  00014	51		 push	 ecx
  00015	8b 55 18	 mov	 edx, DWORD PTR _Param5$[ebp]
  00018	52		 push	 edx
  00019	8b 45 14	 mov	 eax, DWORD PTR _Param4$[ebp]
  0001c	50		 push	 eax
  0001d	8b 4d 10	 mov	 ecx, DWORD PTR _Param3$[ebp]
  00020	51		 push	 ecx
  00021	8b 55 0c	 mov	 edx, DWORD PTR _Param2$[ebp]
  00024	52		 push	 edx
  00025	8b 45 08	 mov	 eax, DWORD PTR _Param1$[ebp]
  00028	50		 push	 eax
  00029	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0002e	ff d2		 call	 edx
  00030	89 45 f8	 mov	 DWORD PTR tv82[ebp], eax
  00033	eb 07		 jmp	 SHORT $LN4@operator@7
$LN3@operator@7:
  00035	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv82[ebp], 0
$LN4@operator@7:
  0003c	8b 45 f8	 mov	 eax, DWORD PTR tv82[ebp]

; 172  :     }

  0003f	8b e5		 mov	 esp, ebp
  00041	5d		 pop	 ebp
  00042	c2 18 00	 ret	 24			; 00000018H
??R?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QBEJPAUHWND__@@HPAXKPB_WPA_W@Z ENDP ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::operator()
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QBEHXZ PROC ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::operator int, COMDAT
; _this$ = ecx

; 39   :     {

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

; 40   :         return m_pFunc != 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	0f 95 c1	 setne	 cl
  00012	8b c1		 mov	 eax, ecx

; 41   :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QBEHXZ ENDP ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::operator int
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QBEJPAUHWND__@@HPAXKPA_W@Z
_TEXT	SEGMENT
tv81 = -8						; size = 4
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
_Param2$ = 12						; size = 4
_Param3$ = 16						; size = 4
_Param4$ = 20						; size = 4
_Param5$ = 24						; size = 4
??R?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QBEJPAUHWND__@@HPAXKPA_W@Z PROC ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::operator(), COMDAT
; _this$ = ecx

; 154  :     {

  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

; 155  :         return m_pFunc?m_pFunc(Param1, Param2, Param3, Param4, Param5):0;

  00009	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	74 20		 je	 SHORT $LN3@operator@8
  00011	8b 4d 18	 mov	 ecx, DWORD PTR _Param5$[ebp]
  00014	51		 push	 ecx
  00015	8b 55 14	 mov	 edx, DWORD PTR _Param4$[ebp]
  00018	52		 push	 edx
  00019	8b 45 10	 mov	 eax, DWORD PTR _Param3$[ebp]
  0001c	50		 push	 eax
  0001d	8b 4d 0c	 mov	 ecx, DWORD PTR _Param2$[ebp]
  00020	51		 push	 ecx
  00021	8b 55 08	 mov	 edx, DWORD PTR _Param1$[ebp]
  00024	52		 push	 edx
  00025	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 08		 mov	 ecx, DWORD PTR [eax]
  0002a	ff d1		 call	 ecx
  0002c	89 45 f8	 mov	 DWORD PTR tv81[ebp], eax
  0002f	eb 07		 jmp	 SHORT $LN4@operator@8
$LN3@operator@8:
  00031	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv81[ebp], 0
$LN4@operator@8:
  00038	8b 45 f8	 mov	 eax, DWORD PTR tv81[ebp]

; 156  :     }

  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c2 14 00	 ret	 20			; 00000014H
??R?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QBEJPAUHWND__@@HPAXKPA_W@Z ENDP ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::operator()
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?IsXPOrUp@@YAHXZ				; IsXPOrUp
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\pathhelpers.cpp
;	COMDAT ?IsXPOrUp@@YAHXZ
_TEXT	SEGMENT
_ov$ = -288						; size = 276
__$ArrayPad$ = -4					; size = 4
?IsXPOrUp@@YAHXZ PROC					; IsXPOrUp, COMDAT

; 87   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec 20 01 00
	00		 sub	 esp, 288		; 00000120H
  00009	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000e	33 c5		 xor	 eax, ebp
  00010	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax

; 88   :     OSVERSIONINFO ov;
; 89   : 
; 90   :     ov.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

  00013	c7 85 e0 fe ff
	ff 14 01 00 00	 mov	 DWORD PTR _ov$[ebp], 276 ; 00000114H

; 91   :     GetVersionEx(&ov);

  0001d	8d 85 e0 fe ff
	ff		 lea	 eax, DWORD PTR _ov$[ebp]
  00023	50		 push	 eax
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetVersionExW@4

; 92   :     if(ov.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)

  0002a	83 bd f0 fe ff
	ff 01		 cmp	 DWORD PTR _ov$[ebp+16], 1
  00031	75 04		 jne	 SHORT $LN1@IsXPOrUp

; 93   :     {
; 94   :         return FALSE;

  00033	33 c0		 xor	 eax, eax
  00035	eb 0c		 jmp	 SHORT $LN2@IsXPOrUp
$LN1@IsXPOrUp:

; 95   :     }
; 96   : 
; 97   :     return (ov.dwMajorVersion >= 5);

  00037	83 bd e4 fe ff
	ff 05		 cmp	 DWORD PTR _ov$[ebp+4], 5
  0003e	1b c0		 sbb	 eax, eax
  00040	83 c0 01	 add	 eax, 1
$LN2@IsXPOrUp:

; 98   : }

  00043	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00046	33 cd		 xor	 ecx, ebp
  00048	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0004d	8b e5		 mov	 esp, ebp
  0004f	5d		 pop	 ebp
  00050	c3		 ret	 0
?IsXPOrUp@@YAHXZ ENDP					; IsXPOrUp
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Distance2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAIUrandom_access_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
__Off$ = 24						; size = 4
___formal$ = 28						; size = 1
??$_Distance2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAIUrandom_access_iterator_tag@0@@Z PROC ; std::_Distance2<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>, COMDAT

; 1840 : 	{	// add to _Off distance between random-access iterators

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

; 1841 : 
; 1842 :  #if _HAS_ITERATOR_DEBUGGING
; 1843 : 	if (_First != _Last)
; 1844 : 		{	// check for null pointers
; 1845 : 		_DEBUG_POINTER(_First);
; 1846 : 		_DEBUG_POINTER(_Last);
; 1847 : 		}
; 1848 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1849 : 
; 1850 : 	_Off += _Last - _First;

  00003	8d 45 08	 lea	 eax, DWORD PTR __First$[ebp]
  00006	50		 push	 eax
  00007	8d 4d 10	 lea	 ecx, DWORD PTR __Last$[ebp]
  0000a	e8 00 00 00 00	 call	 ??G?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV01@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator-
  0000f	8b 4d 18	 mov	 ecx, DWORD PTR __Off$[ebp]
  00012	03 01		 add	 eax, DWORD PTR [ecx]
  00014	8b 55 18	 mov	 edx, DWORD PTR __Off$[ebp]
  00017	89 02		 mov	 DWORD PTR [edx], eax

; 1851 : 	}

  00019	5d		 pop	 ebp
  0001a	c3		 ret	 0
??$_Distance2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAIUrandom_access_iterator_tag@0@@Z ENDP ; std::_Distance2<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Distance@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAI@Z
_TEXT	SEGMENT
$T307572 = -1						; size = 1
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
__Off$ = 24						; size = 4
??$_Distance@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAI@Z PROC ; std::_Distance<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>, COMDAT

; 1866 : 	{	// add to _Off distance between iterators

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

; 1867 : 	_Distance2(_First, _Last, _Off, _Iter_cat(_First));

  00004	8d 45 08	 lea	 eax, DWORD PTR __First$[ebp]
  00007	50		 push	 eax
  00008	8d 4d ff	 lea	 ecx, DWORD PTR $T307572[ebp]
  0000b	51		 push	 ecx
  0000c	e8 00 00 00 00	 call	 ??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Iter_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  00011	83 c4 08	 add	 esp, 8
  00014	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  00017	52		 push	 edx
  00018	8b 45 18	 mov	 eax, DWORD PTR __Off$[ebp]
  0001b	50		 push	 eax
  0001c	8b 4d 14	 mov	 ecx, DWORD PTR __Last$[ebp+4]
  0001f	51		 push	 ecx
  00020	8b 55 10	 mov	 edx, DWORD PTR __Last$[ebp]
  00023	52		 push	 edx
  00024	8b 45 0c	 mov	 eax, DWORD PTR __First$[ebp+4]
  00027	50		 push	 eax
  00028	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  0002b	51		 push	 ecx
  0002c	e8 00 00 00 00	 call	 ??$_Distance2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAIUrandom_access_iterator_tag@0@@Z ; std::_Distance2<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>
  00031	83 c4 18	 add	 esp, 24			; 00000018H

; 1868 : 	}

  00034	8b e5		 mov	 esp, ebp
  00036	5d		 pop	 ebp
  00037	c3		 ret	 0
??$_Distance@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAI@Z ENDP ; std::_Distance<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
_TEXT	ENDS
;	COMDAT ??$unchecked_uninitialized_copy@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z
_TEXT	SEGMENT
$T307576 = -2						; size = 1
$T307575 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_copy@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z PROC ; stdext::unchecked_uninitialized_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >, 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 $T307575[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@PA_WPA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPA_W0@Z ; std::_Ptr_cat<wchar_t *,wchar_t *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T307576[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T307575[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T307576[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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  00044	83 c4 04	 add	 esp, 4
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ??$_Uninit_copy@PA_WPA_WV?$allocator@_W@std@@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >
  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@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z ENDP ; stdext::unchecked_uninitialized_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Uninit_move@PA_WPA_WV?$allocator@_W@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00AAV?$allocator@_W@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@PA_WPA_WV?$allocator@_W@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_move<wchar_t *,wchar_t *,std::allocator<wchar_t>,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@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z ; stdext::unchecked_uninitialized_copy<wchar_t *,wchar_t *,std::allocator<wchar_t> >
  00018	83 c4 10	 add	 esp, 16			; 00000010H

; 206  : 	}

  0001b	5d		 pop	 ebp
  0001c	c3		 ret	 0
??$_Uninit_move@PA_WPA_WV?$allocator@_W@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_move<wchar_t *,wchar_t *,std::allocator<wchar_t>,std::_Undefined_move_tag>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Move_backward_opt@PA_WPA_WUrandom_access_iterator_tag@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T307582 = -2						; size = 1
$T307581 = -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@PA_WPA_WUrandom_access_iterator_tag@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Move_backward_opt<wchar_t *,wchar_t *,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 $T307581[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@PA_WPA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPA_W0@Z ; std::_Ptr_cat<wchar_t *,wchar_t *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T307582[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T307581[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T307582[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@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_backward_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>
  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@PA_WPA_WUrandom_access_iterator_tag@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Move_backward_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag,std::_Undefined_move_tag>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
_TEXT	ENDS
;	COMDAT ??$_Unchecked_uninitialized_move@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z
_TEXT	SEGMENT
$T307586 = -2						; size = 1
$T307585 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$_Unchecked_uninitialized_move@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z PROC ; stdext::_Unchecked_uninitialized_move<wchar_t *,wchar_t *,std::allocator<wchar_t> >, 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 $T307585[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@PA_W@std@@YA?AU_Undefined_move_tag@0@ABQA_W@Z ; std::_Move_cat<wchar_t *>
  00012	83 c4 04	 add	 esp, 4
  00015	88 45 fe	 mov	 BYTE PTR $T307586[ebp], al
  00018	0f b6 55 ff	 movzx	 edx, BYTE PTR $T307585[ebp]
  0001c	52		 push	 edx
  0001d	0f b6 45 fe	 movzx	 eax, BYTE PTR $T307586[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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  00040	83 c4 04	 add	 esp, 4
  00043	50		 push	 eax
  00044	e8 00 00 00 00	 call	 ??$_Uninit_move@PA_WPA_WV?$allocator@_W@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00AAV?$allocator@_W@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<wchar_t *,wchar_t *,std::allocator<wchar_t>,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@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z ENDP ; stdext::_Unchecked_uninitialized_move<wchar_t *,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Unchecked_move_backward@PA_WPA_W@stdext@@YAPA_WPA_W00@Z
_TEXT	SEGMENT
$T307591 = -3						; size = 1
$T307590 = -2						; size = 1
$T307589 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
??$_Unchecked_move_backward@PA_WPA_W@stdext@@YAPA_WPA_W00@Z PROC ; stdext::_Unchecked_move_backward<wchar_t *,wchar_t *>, 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 $T307589[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@PA_W@std@@YA?AU_Undefined_move_tag@0@ABQA_W@Z ; std::_Move_cat<wchar_t *>
  00012	83 c4 04	 add	 esp, 4
  00015	88 45 fe	 mov	 BYTE PTR $T307590[ebp], al
  00018	0f b6 55 ff	 movzx	 edx, BYTE PTR $T307589[ebp]
  0001c	52		 push	 edx
  0001d	0f b6 45 fe	 movzx	 eax, BYTE PTR $T307590[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 $T307591[ebp]
  0002d	50		 push	 eax
  0002e	e8 00 00 00 00	 call	 ??$_Iter_random@PA_WPA_W@std@@YA?AUrandom_access_iterator_tag@0@ABQA_W0@Z ; std::_Iter_random<wchar_t *,wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  00054	83 c4 04	 add	 esp, 4
  00057	50		 push	 eax
  00058	e8 00 00 00 00	 call	 ??$_Move_backward_opt@PA_WPA_WUrandom_access_iterator_tag@std@@U_Undefined_move_tag@2@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Undefined_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<wchar_t *,wchar_t *,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@PA_WPA_W@stdext@@YAPA_WPA_W00@Z ENDP ; stdext::_Unchecked_move_backward<wchar_t *,wchar_t *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$fill@PA_W_W@std@@YAXPA_W0AB_W@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Val$ = 16						; size = 4
??$fill@PA_W_W@std@@YAXPA_W0AB_W@Z PROC			; std::fill<wchar_t *,wchar_t>, 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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  0001d	83 c4 04	 add	 esp, 4
  00020	50		 push	 eax
  00021	e8 00 00 00 00	 call	 ??$_Fill@PA_W_W@std@@YAXPA_W0AB_W@Z ; std::_Fill<wchar_t *,wchar_t>
  00026	83 c4 0c	 add	 esp, 12			; 0000000cH

; 3162 : 	}

  00029	5d		 pop	 ebp
  0002a	c3		 ret	 0
??$fill@PA_W_W@std@@YAXPA_W0AB_W@Z ENDP			; std::fill<wchar_t *,wchar_t>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Ptr$ = 16						; size = 4
??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>, 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@PA_WPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPA_W00AAV?$allocator@_W@std@@@Z ; stdext::_Unchecked_uninitialized_move<wchar_t *,wchar_t *,std::allocator<wchar_t> >
  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@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$unchecked_copy@PA_WPA_W@stdext@@YAPA_WPA_W00@Z
_TEXT	SEGMENT
$T307600 = -3						; size = 1
$T307599 = -2						; size = 1
$T307598 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
??$unchecked_copy@PA_WPA_W@stdext@@YAPA_WPA_W00@Z PROC	; stdext::unchecked_copy<wchar_t *,wchar_t *>, 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 $T307598[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@PA_WPA_W@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPA_W0@Z ; std::_Ptr_cat<wchar_t *,wchar_t *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T307599[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T307598[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T307599[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 $T307600[ebp]
  00031	51		 push	 ecx
  00032	e8 00 00 00 00	 call	 ??$_Iter_random@PA_WPA_W@std@@YA?AUrandom_access_iterator_tag@0@ABQA_W0@Z ; std::_Iter_random<wchar_t *,wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  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@PA_W@std@@YAPA_WAAPA_W@Z ; std::_Checked_base<wchar_t *>
  00058	83 c4 04	 add	 esp, 4
  0005b	50		 push	 eax
  0005c	e8 00 00 00 00	 call	 ??$_Copy_opt@PA_WPA_WUrandom_access_iterator_tag@std@@@std@@YAPA_WPA_W00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<wchar_t *,wchar_t *,std::random_access_iterator_tag>
  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@PA_WPA_W@stdext@@YAPA_WPA_W00@Z ENDP	; stdext::unchecked_copy<wchar_t *,wchar_t *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@_WHPB_WAB_WV_Iterator_base_aux@2@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@_WHPB_WAB_WV_Iterator_base_aux@2@@std@@QAE@XZ PROC ; std::_Iterator_with_base<std::random_access_iterator_tag,wchar_t,int,wchar_t const *,wchar_t const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,wchar_t,int,wchar_t const *,wchar_t 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@@_WHPB_WAB_WV_Iterator_base_aux@2@@std@@QAE@XZ ENDP ; std::_Iterator_with_base<std::random_access_iterator_tag,wchar_t,int,wchar_t const *,wchar_t const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,wchar_t,int,wchar_t const *,wchar_t const &,std::_Iterator_base_aux>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Ranit@_WHPB_WAB_W@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$_Ranit@_WHPB_WAB_W@std@@QAE@XZ PROC		; std::_Ranit<wchar_t,int,wchar_t const *,wchar_t const &>::_Ranit<wchar_t,int,wchar_t const *,wchar_t 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@@_WHPB_WAB_WV_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@_WHPB_WAB_W@std@@QAE@XZ ENDP		; std::_Ranit<wchar_t,int,wchar_t const *,wchar_t const &>::_Ranit<wchar_t,int,wchar_t const *,wchar_t const &>
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??8?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??8?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z PROC ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::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@132
  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@132
$LN4@operator@132:
  00029	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@132:
  0002e	33 c0		 xor	 eax, eax
  00030	75 fc		 jne	 SHORT $LN2@operator@132

; 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@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z ENDP ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator==
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Pvector$ = 12						; size = 4
??0?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z PROC ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >, 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@_WHPB_WAB_W@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@17
  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@17
  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@17
$LN4@Vector_con@17:
  0002b	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@Vector_con@17:
  00030	33 c9		 xor	 ecx, ecx
  00032	75 fc		 jne	 SHORT $LN2@Vector_con@17

; 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@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ENDP ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??9?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??9?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z PROC ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z ENDP ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator!=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Pvector$ = 12						; size = 4
??0?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z PROC ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_iterator<wchar_t,std::allocator<wchar_t> >, 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@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >

; 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@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ENDP ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_iterator<wchar_t,std::allocator<wchar_t> >
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?_Make_iter@?$vector@_WV?$allocator@_W@std@@@std@@QBE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
__Where$ = 12						; size = 8
?_Make_iter@?$vector@_WV?$allocator@_W@std@@@std@@QBE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_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@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_iterator<wchar_t,std::allocator<wchar_t> >
  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@_WV?$allocator@_W@std@@@std@@QBE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Make_iter
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?erase@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@0@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
__Ptr$152137 = -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@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@0@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QBE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_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@_WV?$allocator@_W@std@@@std@@QBE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_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@_WV?$allocator@_W@std@@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator!=
  0003d	0f b6 c8	 movzx	 ecx, al
  00040	85 c9		 test	 ecx, ecx
  00042	74 36		 je	 SHORT $LN1@erase@6

; 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@PA_WPA_W@stdext@@YAPA_WPA_W00@Z ; stdext::unchecked_copy<wchar_t *,wchar_t *>
  00058	83 c4 0c	 add	 esp, 12			; 0000000cH
  0005b	89 45 ec	 mov	 DWORD PTR __Ptr$152137[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$152137[ebp]
  00068	52		 push	 edx
  00069	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0006c	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Destroy

; 1054 : 			_Mylast = _Ptr;

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

; 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@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@0@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::erase
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?end@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?end@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_iterator<wchar_t,std::allocator<wchar_t> >
  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@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::end
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QAE@PA_WPBV_Container_base_aux@1@@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::_Vector_iterator<wchar_t,std::allocator<wchar_t> >
  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@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::begin
; Function compile flags: /Odtp
;	COMDAT ??Y?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Off$ = 8						; size = 4
??Y?$_Vector_const_iterator@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z PROC ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::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@432
  00017	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN7@operator@432:
  0001c	33 c9		 xor	 ecx, ecx
  0001e	75 fc		 jne	 SHORT $LN7@operator@432

; 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 48	 lea	 esi, DWORD PTR [eax+ecx*2]
  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@432
  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 48	 lea	 esi, DWORD PTR [eax+ecx*2]
  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@432
$LN4@operator@432:

; 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@432:
  00057	33 d2		 xor	 edx, edx
  00059	75 fc		 jne	 SHORT $LN2@operator@432

; 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 51	 lea	 eax, DWORD PTR [ecx+edx*2]
  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@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z ENDP ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::operator+=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??Y?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Off$ = 8						; size = 4
??Y?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z PROC ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z ENDP ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::operator+=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??H?$_Vector_iterator@_WV?$allocator@_W@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@_WV?$allocator@_W@std@@@std@@QBE?AV01@H@Z PROC ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QAEAAV01@H@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::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@_WV?$allocator@_W@std@@@std@@QBE?AV01@H@Z ENDP ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::operator+
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
_TEXT	ENDS
;	COMDAT ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ PROC ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::end, COMDAT
; _this$ = ecx

; 1516 : 		{	// return iterator for end of nonmutable 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

; 1517 : 		return (_STRING_CONST_ITERATOR(_Myptr() + _Mysize));

  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	e8 00 00 00 00	 call	 ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr
  00013	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	8b 51 14	 mov	 edx, DWORD PTR [ecx+20]
  00019	8d 04 50	 lea	 eax, DWORD PTR [eax+edx*2]
  0001c	50		 push	 eax
  0001d	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00020	e8 00 00 00 00	 call	 ??0?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WPBV_Container_base_secure@1@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00025	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 1518 : 		}

  00028	8b e5		 mov	 esp, ebp
  0002a	5d		 pop	 ebp
  0002b	c2 04 00	 ret	 4
?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ENDP ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::end
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ PROC ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::begin, COMDAT
; _this$ = ecx

; 1506 : 		{	// return iterator for beginning of nonmutable 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

; 1507 : 		return (_STRING_CONST_ITERATOR(_Myptr()));

  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	e8 00 00 00 00	 call	 ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr
  00013	50		 push	 eax
  00014	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00017	e8 00 00 00 00	 call	 ??0?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WPBV_Container_base_secure@1@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0001c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 1508 : 		}

  0001f	8b e5		 mov	 esp, ebp
  00021	5d		 pop	 ebp
  00022	c2 04 00	 ret	 4
?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ENDP ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::begin
PUBLIC	?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; StripFile
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\pathhelpers.cpp
xdata$x	SEGMENT
__unwindtable$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0
__ehfuncinfo$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
_TEXT	SEGMENT
$T328761 = -20						; size = 4
_LastSlash$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_FileName$ = 12						; size = 4
?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z PROC ; StripFile, COMDAT

; 74   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@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	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR $T328761[ebp], 0

; 75   :     size_t LastSlash(FileName.rfind('\\'));

  0002c	6a ff		 push	 -1
  0002e	6a 5c		 push	 92			; 0000005cH
  00030	8b 4d 0c	 mov	 ecx, DWORD PTR _FileName$[ebp]
  00033	e8 00 00 00 00	 call	 ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::rfind
  00038	89 45 f0	 mov	 DWORD PTR _LastSlash$[ebp], eax

; 76   :     if(LastSlash != tstring::npos)

  0003b	83 7d f0 ff	 cmp	 DWORD PTR _LastSlash$[ebp], -1
  0003f	74 29		 je	 SHORT $LN2@StripFile

; 77   :     {
; 78   :         return FileName.substr(0, LastSlash);

  00041	8b 45 f0	 mov	 eax, DWORD PTR _LastSlash$[ebp]
  00044	50		 push	 eax
  00045	6a 00		 push	 0
  00047	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0004a	51		 push	 ecx
  0004b	8b 4d 0c	 mov	 ecx, DWORD PTR _FileName$[ebp]
  0004e	e8 00 00 00 00	 call	 ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::substr
  00053	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0005a	8b 55 ec	 mov	 edx, DWORD PTR $T328761[ebp]
  0005d	83 ca 01	 or	 edx, 1
  00060	89 55 ec	 mov	 DWORD PTR $T328761[ebp], edx
  00063	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  00066	eb 22		 jmp	 SHORT $LN3@StripFile

; 79   :     }
; 80   :     else

  00068	eb 20		 jmp	 SHORT $LN3@StripFile
$LN2@StripFile:

; 81   :     {
; 82   :         return _T(".\\");

  0006a	68 00 00 00 00	 push	 OFFSET ??_C@_15PCEAIKAA@?$AA?4?$AA?2?$AA?$AA@
  0006f	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00072	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> >
  00077	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0007e	8b 45 ec	 mov	 eax, DWORD PTR $T328761[ebp]
  00081	83 c8 01	 or	 eax, 1
  00084	89 45 ec	 mov	 DWORD PTR $T328761[ebp], eax
  00087	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
$LN3@StripFile:

; 83   :     }
; 84   : }

  0008a	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008d	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00094	59		 pop	 ecx
  00095	8b e5		 mov	 esp, ebp
  00097	5d		 pop	 ebp
  00098	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T328761[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN6@StripFile
  0000c	83 65 ec fe	 and	 DWORD PTR $T328761[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	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> >
$LN6@StripFile:
  00018	c3		 ret	 0
__ehhandler$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@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 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$?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ENDP ; StripFile
PUBLIC	__$ArrayPad$
PUBLIC	?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; StripPath
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0
__ehfuncinfo$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
_TEXT	SEGMENT
$T328774 = -52						; size = 4
_LastSlash$ = -48					; size = 4
_RetVal$ = -44						; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_FileName$ = 12						; size = 4
?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z PROC ; StripPath, COMDAT

; 59   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 28	 sub	 esp, 40			; 00000028H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 f0	 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
  00028	c7 45 cc 00 00
	00 00		 mov	 DWORD PTR $T328774[ebp], 0

; 60   :     tstring RetVal;

  0002f	8d 4d d4	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00032	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> >
  00037	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 61   :     size_t LastSlash(FileName.rfind('\\'));

  0003e	6a ff		 push	 -1
  00040	6a 5c		 push	 92			; 0000005cH
  00042	8b 4d 0c	 mov	 ecx, DWORD PTR _FileName$[ebp]
  00045	e8 00 00 00 00	 call	 ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::rfind
  0004a	89 45 d0	 mov	 DWORD PTR _LastSlash$[ebp], eax

; 62   :     if(LastSlash != tstring::npos)

  0004d	83 7d d0 ff	 cmp	 DWORD PTR _LastSlash$[ebp], -1
  00051	74 31		 je	 SHORT $LN2@StripPath

; 63   :     {
; 64   :         return FileName.substr(LastSlash + 1);

  00053	6a ff		 push	 -1
  00055	8b 45 d0	 mov	 eax, DWORD PTR _LastSlash$[ebp]
  00058	83 c0 01	 add	 eax, 1
  0005b	50		 push	 eax
  0005c	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0005f	51		 push	 ecx
  00060	8b 4d 0c	 mov	 ecx, DWORD PTR _FileName$[ebp]
  00063	e8 00 00 00 00	 call	 ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::substr
  00068	8b 55 cc	 mov	 edx, DWORD PTR $T328774[ebp]
  0006b	83 ca 01	 or	 edx, 1
  0006e	89 55 cc	 mov	 DWORD PTR $T328774[ebp], edx
  00071	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00075	8d 4d d4	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00078	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> >
  0007d	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  00080	eb 34		 jmp	 SHORT $LN3@StripPath

; 65   :     }
; 66   :     else

  00082	eb 26		 jmp	 SHORT $LN1@StripPath
$LN2@StripPath:

; 67   :     {
; 68   :         return FileName;

  00084	8b 45 0c	 mov	 eax, DWORD PTR _FileName$[ebp]
  00087	50		 push	 eax
  00088	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0008b	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@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> >
  00090	8b 4d cc	 mov	 ecx, DWORD PTR $T328774[ebp]
  00093	83 c9 01	 or	 ecx, 1
  00096	89 4d cc	 mov	 DWORD PTR $T328774[ebp], ecx
  00099	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0009d	8d 4d d4	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  000a0	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> >
  000a5	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000a8	eb 0c		 jmp	 SHORT $LN3@StripPath
$LN1@StripPath:

; 69   :     }
; 70   : }

  000aa	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000ae	8d 4d d4	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  000b1	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> >
$LN3@StripPath:
  000b6	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000b9	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000c0	59		 pop	 ecx
  000c1	8b 4d f0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000c4	33 cd		 xor	 ecx, ebp
  000c6	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000cb	8b e5		 mov	 esp, ebp
  000cd	5d		 pop	 ebp
  000ce	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR _RetVal$[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$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$1:
  00008	8b 45 cc	 mov	 eax, DWORD PTR $T328774[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN7@StripPath
  00014	83 65 cc fe	 and	 DWORD PTR $T328774[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	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> >
$LN7@StripPath:
  00020	c3		 ret	 0
__ehhandler$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a d4	 mov	 ecx, DWORD PTR [edx-44]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00035	33 c8		 xor	 ecx, eax
  00037	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  00041	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?StripPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ENDP ; StripPath
PUBLIC	?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; GetExtension
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0
__ehfuncinfo$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
_TEXT	SEGMENT
$T328785 = -20						; size = 4
_LastDot$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_FileName$ = 12						; size = 4
?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z PROC ; GetExtension, COMDAT

; 46   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@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	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR $T328785[ebp], 0

; 47   :     size_t LastDot(FileName.rfind('.'));

  0002c	6a ff		 push	 -1
  0002e	6a 2e		 push	 46			; 0000002eH
  00030	8b 4d 0c	 mov	 ecx, DWORD PTR _FileName$[ebp]
  00033	e8 00 00 00 00	 call	 ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::rfind
  00038	89 45 f0	 mov	 DWORD PTR _LastDot$[ebp], eax

; 48   :     if(LastDot != tstring::npos)

  0003b	83 7d f0 ff	 cmp	 DWORD PTR _LastDot$[ebp], -1
  0003f	74 2c		 je	 SHORT $LN2@GetExtensi

; 49   :     {
; 50   :         return FileName.substr(LastDot + 1);

  00041	6a ff		 push	 -1
  00043	8b 45 f0	 mov	 eax, DWORD PTR _LastDot$[ebp]
  00046	83 c0 01	 add	 eax, 1
  00049	50		 push	 eax
  0004a	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0004d	51		 push	 ecx
  0004e	8b 4d 0c	 mov	 ecx, DWORD PTR _FileName$[ebp]
  00051	e8 00 00 00 00	 call	 ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::substr
  00056	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0005d	8b 55 ec	 mov	 edx, DWORD PTR $T328785[ebp]
  00060	83 ca 01	 or	 edx, 1
  00063	89 55 ec	 mov	 DWORD PTR $T328785[ebp], edx
  00066	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  00069	eb 22		 jmp	 SHORT $LN3@GetExtensi

; 51   :     }
; 52   :     else

  0006b	eb 20		 jmp	 SHORT $LN3@GetExtensi
$LN2@GetExtensi:

; 53   :     {
; 54   :         return _T("");

  0006d	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  00072	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00075	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> >
  0007a	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00081	8b 45 ec	 mov	 eax, DWORD PTR $T328785[ebp]
  00084	83 c8 01	 or	 eax, 1
  00087	89 45 ec	 mov	 DWORD PTR $T328785[ebp], eax
  0008a	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
$LN3@GetExtensi:

; 55   :     }
; 56   : }

  0008d	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00090	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00097	59		 pop	 ecx
  00098	8b e5		 mov	 esp, ebp
  0009a	5d		 pop	 ebp
  0009b	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T328785[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN6@GetExtensi
  0000c	83 65 ec fe	 and	 DWORD PTR $T328785[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	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> >
$LN6@GetExtensi:
  00018	c3		 ret	 0
__ehhandler$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@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 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$?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetExtension@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ENDP ; GetExtension
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
xdata$x	SEGMENT
__unwindtable$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z$0
__tryblocktable$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z$2
__ehfuncinfo$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z
_TEXT	SEGMENT
tv87 = -40						; size = 4
_this$ = -36						; size = 4
__Newvec$152798 = -32					; size = 4
__Ptr$152799 = -28					; size = 4
__Capacity$ = -24					; size = 4
__Count$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Where$ = 8						; size = 8
__First$ = 16						; size = 8
__Last$ = 24						; size = 8
___formal$ = 32						; size = 1
??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, COMDAT
; _this$ = ecx

; 925  : 		void _Insert(const_iterator _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@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@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 18	 sub	 esp, 24			; 00000018H
  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 dc	 mov	 DWORD PTR _this$[ebp], ecx

; 926  : 			_Iter _First, _Iter _Last, forward_iterator_tag)
; 927  : 		{	// insert [_First, _Last) at _Where, forward iterators
; 928  : 
; 929  :  #if _HAS_ITERATOR_DEBUGGING
; 930  : 		if (_Where._Mycont != this
; 931  : 			|| _Where._Myptr < _Myfirst || _Mylast < _Where._Myptr)
; 932  : 			_DEBUG_ERROR("vector insert iterator outside range");
; 933  : 		_DEBUG_RANGE(_First, _Last);
; 934  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 935  : 
; 936  : 		size_type _Count = 0;

  0002f	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR __Count$[ebp], 0

; 937  : 		_Distance(_First, _Last, _Count);

  00036	8d 45 ec	 lea	 eax, DWORD PTR __Count$[ebp]
  00039	50		 push	 eax
  0003a	8b 4d 1c	 mov	 ecx, DWORD PTR __Last$[ebp+4]
  0003d	51		 push	 ecx
  0003e	8b 55 18	 mov	 edx, DWORD PTR __Last$[ebp]
  00041	52		 push	 edx
  00042	8b 45 14	 mov	 eax, DWORD PTR __First$[ebp+4]
  00045	50		 push	 eax
  00046	8b 4d 10	 mov	 ecx, DWORD PTR __First$[ebp]
  00049	51		 push	 ecx
  0004a	e8 00 00 00 00	 call	 ??$_Distance@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@I@std@@YAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0AAI@Z ; std::_Distance<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,unsigned int>
  0004f	83 c4 14	 add	 esp, 20			; 00000014H

; 938  : 		size_type _Capacity = capacity();

  00052	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00055	e8 00 00 00 00	 call	 ?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::capacity
  0005a	89 45 e8	 mov	 DWORD PTR __Capacity$[ebp], eax

; 939  : 
; 940  : 		if (_Count == 0)

  0005d	83 7d ec 00	 cmp	 DWORD PTR __Count$[ebp], 0
  00061	75 05		 jne	 SHORT $LN9@Insert@6
  00063	e9 24 02 00 00	 jmp	 $LN11@Insert@6
$LN9@Insert@6:

; 941  : 			;
; 942  : 		else if (max_size() - size() < _Count)

  00068	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006b	e8 00 00 00 00	 call	 ?max_size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::max_size
  00070	8b f0		 mov	 esi, eax
  00072	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00075	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  0007a	2b f0		 sub	 esi, eax
  0007c	3b 75 ec	 cmp	 esi, DWORD PTR __Count$[ebp]
  0007f	73 0a		 jae	 SHORT $LN7@Insert@6

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

  00081	e8 00 00 00 00	 call	 ?_Xlen@?$vector@_WV?$allocator@_W@std@@@std@@KAXXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::_Xlen
  00086	e9 01 02 00 00	 jmp	 $LN11@Insert@6
$LN7@Insert@6:

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

  0008b	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0008e	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00093	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  00096	39 45 e8	 cmp	 DWORD PTR __Capacity$[ebp], eax
  00099	0f 83 74 01 00
	00		 jae	 $LN5@Insert@6

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

  0009f	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000a2	e8 00 00 00 00	 call	 ?max_size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::max_size
  000a7	8b 55 e8	 mov	 edx, DWORD PTR __Capacity$[ebp]
  000aa	d1 ea		 shr	 edx, 1
  000ac	2b c2		 sub	 eax, edx
  000ae	3b 45 e8	 cmp	 eax, DWORD PTR __Capacity$[ebp]
  000b1	73 09		 jae	 SHORT $LN12@Insert@6
  000b3	c7 45 d8 00 00
	00 00		 mov	 DWORD PTR tv87[ebp], 0
  000ba	eb 0b		 jmp	 SHORT $LN13@Insert@6
$LN12@Insert@6:
  000bc	8b 45 e8	 mov	 eax, DWORD PTR __Capacity$[ebp]
  000bf	d1 e8		 shr	 eax, 1
  000c1	03 45 e8	 add	 eax, DWORD PTR __Capacity$[ebp]
  000c4	89 45 d8	 mov	 DWORD PTR tv87[ebp], eax
$LN13@Insert@6:
  000c7	8b 4d d8	 mov	 ecx, DWORD PTR tv87[ebp]
  000ca	89 4d e8	 mov	 DWORD PTR __Capacity$[ebp], ecx

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

  000cd	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d0	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  000d5	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  000d8	39 45 e8	 cmp	 DWORD PTR __Capacity$[ebp], eax
  000db	73 0e		 jae	 SHORT $LN4@Insert@6

; 949  : 				_Capacity = size() + _Count;

  000dd	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000e0	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  000e5	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  000e8	89 45 e8	 mov	 DWORD PTR __Capacity$[ebp], eax
$LN4@Insert@6:

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

  000eb	8b 55 e8	 mov	 edx, DWORD PTR __Capacity$[ebp]
  000ee	52		 push	 edx
  000ef	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000f2	83 c1 08	 add	 ecx, 8
  000f5	e8 00 00 00 00	 call	 ?allocate@?$allocator@_W@std@@QAEPA_WI@Z ; std::allocator<wchar_t>::allocate
  000fa	89 45 e0	 mov	 DWORD PTR __Newvec$152798[ebp], eax

; 951  : 			pointer _Ptr = _Newvec;

  000fd	8b 45 e0	 mov	 eax, DWORD PTR __Newvec$152798[ebp]
  00100	89 45 e4	 mov	 DWORD PTR __Ptr$152799[ebp], eax

; 952  : 
; 953  : 			_TRY_BEGIN

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

; 954  : 			_Ptr = _Umove(_Myfirst, _VEC_ITER_BASE(_Where),
; 955  : 				_Newvec);	// copy prefix

  0010a	8b 4d e0	 mov	 ecx, DWORD PTR __Newvec$152798[ebp]
  0010d	51		 push	 ecx
  0010e	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00111	52		 push	 edx
  00112	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00115	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00118	51		 push	 ecx
  00119	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0011c	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  00121	89 45 e4	 mov	 DWORD PTR __Ptr$152799[ebp], eax

; 956  : 			_Ptr = _Ucopy(_First, _Last, _Ptr);	// add new stuff

  00124	8b 55 e4	 mov	 edx, DWORD PTR __Ptr$152799[ebp]
  00127	52		 push	 edx
  00128	8b 45 1c	 mov	 eax, DWORD PTR __Last$[ebp+4]
  0012b	50		 push	 eax
  0012c	8b 4d 18	 mov	 ecx, DWORD PTR __Last$[ebp]
  0012f	51		 push	 ecx
  00130	8b 55 14	 mov	 edx, DWORD PTR __First$[ebp+4]
  00133	52		 push	 edx
  00134	8b 45 10	 mov	 eax, DWORD PTR __First$[ebp]
  00137	50		 push	 eax
  00138	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0013b	e8 00 00 00 00	 call	 ??$_Ucopy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0PA_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  00140	89 45 e4	 mov	 DWORD PTR __Ptr$152799[ebp], eax

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

  00143	8b 4d e4	 mov	 ecx, DWORD PTR __Ptr$152799[ebp]
  00146	51		 push	 ecx
  00147	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  0014a	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  0014d	50		 push	 eax
  0014e	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00151	51		 push	 ecx
  00152	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00155	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  0015a	eb 39		 jmp	 SHORT $LN14@Insert@6
__catch$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z$0:

; 958  : 			_CATCH_ALL
; 959  : 			_Destroy(_Newvec, _Ptr);

  0015c	8b 55 e4	 mov	 edx, DWORD PTR __Ptr$152799[ebp]
  0015f	52		 push	 edx
  00160	8b 45 e0	 mov	 eax, DWORD PTR __Newvec$152798[ebp]
  00163	50		 push	 eax
  00164	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00167	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Destroy

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

  0016c	8b 4d e8	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  0016f	51		 push	 ecx
  00170	8b 55 e0	 mov	 edx, DWORD PTR __Newvec$152798[ebp]
  00173	52		 push	 edx
  00174	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00177	83 c1 08	 add	 ecx, 8
  0017a	e8 00 00 00 00	 call	 ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z ; std::allocator<wchar_t>::deallocate

; 961  : 			_RERAISE;

  0017f	6a 00		 push	 0
  00181	6a 00		 push	 0
  00183	e8 00 00 00 00	 call	 __CxxThrowException@8

; 962  : 			_CATCH_END

  00188	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  0018f	b8 00 00 00 00	 mov	 eax, __tryend$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z$1
  00194	c3		 ret	 0
$LN14@Insert@6:
  00195	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z$1:

; 963  : 
; 964  : 			_Count += size();

  0019c	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0019f	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  001a4	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  001a7	89 45 ec	 mov	 DWORD PTR __Count$[ebp], eax

; 965  : 			if (_Myfirst != 0)

  001aa	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  001ad	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  001b1	74 37		 je	 SHORT $LN2@Insert@6

; 966  : 				{	// destroy and deallocate old array
; 967  : 				_Destroy(_Myfirst, _Mylast);

  001b3	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001b6	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  001b9	52		 push	 edx
  001ba	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  001bd	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  001c0	51		 push	 ecx
  001c1	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001c4	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Destroy

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

  001c9	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  001cc	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  001cf	8b 4a 14	 mov	 ecx, DWORD PTR [edx+20]
  001d2	2b 48 0c	 sub	 ecx, DWORD PTR [eax+12]
  001d5	d1 f9		 sar	 ecx, 1
  001d7	51		 push	 ecx
  001d8	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  001db	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  001de	50		 push	 eax
  001df	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001e2	83 c1 08	 add	 ecx, 8
  001e5	e8 00 00 00 00	 call	 ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z ; std::allocator<wchar_t>::deallocate
$LN2@Insert@6:

; 969  : 				}
; 970  : 
; 971  :  #if _HAS_ITERATOR_DEBUGGING
; 972  : 			this->_Orphan_all();
; 973  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 974  : 
; 975  : 			_Myend = _Newvec + _Capacity;

  001ea	8b 4d e8	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  001ed	8b 55 e0	 mov	 edx, DWORD PTR __Newvec$152798[ebp]
  001f0	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  001f3	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001f6	89 41 14	 mov	 DWORD PTR [ecx+20], eax

; 976  : 			_Mylast = _Newvec + _Count;

  001f9	8b 55 ec	 mov	 edx, DWORD PTR __Count$[ebp]
  001fc	8b 45 e0	 mov	 eax, DWORD PTR __Newvec$152798[ebp]
  001ff	8d 0c 50	 lea	 ecx, DWORD PTR [eax+edx*2]
  00202	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00205	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 977  : 			_Myfirst = _Newvec;

  00208	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0020b	8b 4d e0	 mov	 ecx, DWORD PTR __Newvec$152798[ebp]
  0020e	89 48 0c	 mov	 DWORD PTR [eax+12], ecx

; 978  : 			}
; 979  : 		else

  00211	eb 79		 jmp	 SHORT $LN11@Insert@6
$LN5@Insert@6:

; 980  : 			{	// new stuff fits, append and rotate into place
; 981  : 			_Ucopy(_First, _Last, _Mylast);

  00213	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00216	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00219	50		 push	 eax
  0021a	8b 4d 1c	 mov	 ecx, DWORD PTR __Last$[ebp+4]
  0021d	51		 push	 ecx
  0021e	8b 55 18	 mov	 edx, DWORD PTR __Last$[ebp]
  00221	52		 push	 edx
  00222	8b 45 14	 mov	 eax, DWORD PTR __First$[ebp+4]
  00225	50		 push	 eax
  00226	8b 4d 10	 mov	 ecx, DWORD PTR __First$[ebp]
  00229	51		 push	 ecx
  0022a	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0022d	e8 00 00 00 00	 call	 ??$_Ucopy@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0PA_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >

; 982  : 
; 983  : 			_Reverse(_Where._Myptr, _Mylast);

  00232	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00235	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00238	50		 push	 eax
  00239	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  0023c	51		 push	 ecx
  0023d	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00240	e8 00 00 00 00	 call	 ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse

; 984  : 			_Reverse(_Mylast, _Mylast + _Count);

  00245	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00248	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  0024b	8b 4d ec	 mov	 ecx, DWORD PTR __Count$[ebp]
  0024e	8d 14 48	 lea	 edx, DWORD PTR [eax+ecx*2]
  00251	52		 push	 edx
  00252	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00255	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00258	51		 push	 ecx
  00259	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0025c	e8 00 00 00 00	 call	 ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse

; 985  : 			_Reverse(_Where._Myptr, _Mylast + _Count);

  00261	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00264	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00267	8b 4d ec	 mov	 ecx, DWORD PTR __Count$[ebp]
  0026a	8d 14 48	 lea	 edx, DWORD PTR [eax+ecx*2]
  0026d	52		 push	 edx
  0026e	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  00271	50		 push	 eax
  00272	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00275	e8 00 00 00 00	 call	 ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse

; 986  : 
; 987  : 			_Mylast += _Count;

  0027a	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0027d	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00280	8b 45 ec	 mov	 eax, DWORD PTR __Count$[ebp]
  00283	8d 0c 42	 lea	 ecx, DWORD PTR [edx+eax*2]
  00286	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00289	89 4a 10	 mov	 DWORD PTR [edx+16], ecx
$LN11@Insert@6:

; 988  : 
; 989  :  #if _HAS_ITERATOR_DEBUGGING
; 990  : 			_Orphan_range(_Where._Myptr, _Mylast);
; 991  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 992  : 
; 993  : 			}
; 994  : 		}

  0028c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  0028f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00296	59		 pop	 ecx
  00297	5f		 pop	 edi
  00298	5e		 pop	 esi
  00299	5b		 pop	 ebx
  0029a	8b e5		 mov	 esp, ebp
  0029c	5d		 pop	 ebp
  0029d	c2 1c 00	 ret	 28			; 0000001cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@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 d4	 mov	 ecx, DWORD PTR [edx-44]
  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$??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
; Function compile flags: /Odtp
;	COMDAT ??$insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
$T341244 = -2						; size = 1
$T341243 = -1						; size = 1
__Where$ = 8						; size = 8
__First$ = 16						; size = 8
__Last$ = 24						; size = 8
??$insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, COMDAT
; _this$ = ecx

; 887  : 		void insert(const_iterator _Where, _Iter _First, _Iter _Last)

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

; 888  : 		{	// insert [_First, _Last) at _Where
; 889  : 		_Insert(_Where, _First, _Last, _Iter_cat(_First));

  00009	8d 45 10	 lea	 eax, DWORD PTR __First$[ebp]
  0000c	50		 push	 eax
  0000d	8d 4d ff	 lea	 ecx, DWORD PTR $T341243[ebp]
  00010	51		 push	 ecx
  00011	e8 00 00 00 00	 call	 ??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Iter_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  00016	83 c4 08	 add	 esp, 8
  00019	0f b6 55 fe	 movzx	 edx, BYTE PTR $T341244[ebp]
  0001d	52		 push	 edx
  0001e	8b 45 1c	 mov	 eax, DWORD PTR __Last$[ebp+4]
  00021	50		 push	 eax
  00022	8b 4d 18	 mov	 ecx, DWORD PTR __Last$[ebp]
  00025	51		 push	 ecx
  00026	8b 55 14	 mov	 edx, DWORD PTR __First$[ebp+4]
  00029	52		 push	 edx
  0002a	8b 45 10	 mov	 eax, DWORD PTR __First$[ebp]
  0002d	50		 push	 eax
  0002e	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00031	51		 push	 ecx
  00032	8b 55 08	 mov	 edx, DWORD PTR __Where$[ebp]
  00035	52		 push	 edx
  00036	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00039	e8 00 00 00 00	 call	 ??$_Insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1Uforward_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >

; 890  : 		}

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c2 18 00	 ret	 24			; 00000018H
??$insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z$0
__tryblocktable$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z$2
__ehfuncinfo$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z
_TEXT	SEGMENT
_this$ = -36						; size = 4
$T341248 = -32						; size = 8
$T341247 = -24						; size = 8
__$EHRec$ = -16						; size = 16
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
___formal$ = 24						; size = 1
??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Construct<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, COMDAT
; _this$ = ecx

; 532  : 		void _Construct(_Iter _First,

  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?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@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 14	 sub	 esp, 20			; 00000014H
  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 dc	 mov	 DWORD PTR _this$[ebp], ecx

; 533  : 			_Iter _Last, input_iterator_tag)
; 534  : 		{	// initialize with [_First, _Last), input iterators
; 535  : 		_Buy(0);

  0002f	6a 00		 push	 0
  00031	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	e8 00 00 00 00	 call	 ?_Buy@?$vector@_WV?$allocator@_W@std@@@std@@IAE_NI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Buy

; 536  : 		_TRY_BEGIN

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

; 537  : 		insert(begin(), _First, _Last);

  00040	8d 45 e0	 lea	 eax, DWORD PTR $T341248[ebp]
  00043	50		 push	 eax
  00044	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	e8 00 00 00 00	 call	 ?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::begin
  0004c	8b 08		 mov	 ecx, DWORD PTR [eax]
  0004e	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00051	89 4d e8	 mov	 DWORD PTR $T341247[ebp], ecx
  00054	89 55 ec	 mov	 DWORD PTR $T341247[ebp+4], edx
  00057	8b 45 14	 mov	 eax, DWORD PTR __Last$[ebp+4]
  0005a	50		 push	 eax
  0005b	8b 4d 10	 mov	 ecx, DWORD PTR __Last$[ebp]
  0005e	51		 push	 ecx
  0005f	8b 55 0c	 mov	 edx, DWORD PTR __First$[ebp+4]
  00062	52		 push	 edx
  00063	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00066	50		 push	 eax
  00067	8b 4d ec	 mov	 ecx, DWORD PTR $T341247[ebp+4]
  0006a	51		 push	 ecx
  0006b	8b 55 e8	 mov	 edx, DWORD PTR $T341247[ebp]
  0006e	52		 push	 edx
  0006f	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00072	e8 00 00 00 00	 call	 ??$insert@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@1@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  00077	eb 1e		 jmp	 SHORT $LN4@Construct@36
__catch$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z$0:

; 538  : 		_CATCH_ALL
; 539  : 		_Tidy();

  00079	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007c	e8 00 00 00 00	 call	 ?_Tidy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::_Tidy

; 540  : 		_RERAISE;

  00081	6a 00		 push	 0
  00083	6a 00		 push	 0
  00085	e8 00 00 00 00	 call	 __CxxThrowException@8

; 541  : 		_CATCH_END

  0008a	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00091	b8 00 00 00 00	 mov	 eax, $LN3@Construct@36
  00096	c3		 ret	 0
$LN4@Construct@36:
  00097	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
$LN3@Construct@36:

; 542  : 		}

  0009e	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000a1	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000a8	59		 pop	 ecx
  000a9	5f		 pop	 edi
  000aa	5e		 pop	 esi
  000ab	5b		 pop	 ebx
  000ac	8b e5		 mov	 esp, ebp
  000ae	5d		 pop	 ebp
  000af	c2 14 00	 ret	 20			; 00000014H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@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 d8	 mov	 ecx, DWORD PTR [edx-40]
  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$??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Construct<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z$0
__ehfuncinfo$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
$T341266 = -18						; size = 1
$T341265 = -17						; size = 1
$T341264 = -16						; size = 4
__$EHRec$ = -12						; size = 12
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> ><std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >, COMDAT
; _this$ = ecx

; 513  : 		{	// construct from [_First, _Last)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 0c	 sub	 esp, 12			; 0000000cH
  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
  00028	51		 push	 ecx
  00029	8b cc		 mov	 ecx, esp
  0002b	89 65 f0	 mov	 DWORD PTR $T341264[ebp], esp
  0002e	e8 00 00 00 00	 call	 ??0?$allocator@_W@std@@QAE@XZ ; std::allocator<wchar_t>::allocator<wchar_t>
  00033	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00036	e8 00 00 00 00	 call	 ??0?$_Vector_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z ; std::_Vector_val<wchar_t,std::allocator<wchar_t> >::_Vector_val<wchar_t,std::allocator<wchar_t> >
  0003b	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 514  : 		_Construct(_First, _Last, _Iter_cat(_First));

  00042	8d 45 08	 lea	 eax, DWORD PTR __First$[ebp]
  00045	50		 push	 eax
  00046	8d 4d ef	 lea	 ecx, DWORD PTR $T341265[ebp]
  00049	51		 push	 ecx
  0004a	e8 00 00 00 00	 call	 ??$_Iter_cat@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z ; std::_Iter_cat<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  0004f	83 c4 08	 add	 esp, 8
  00052	0f b6 55 ee	 movzx	 edx, BYTE PTR $T341266[ebp]
  00056	52		 push	 edx
  00057	8b 45 14	 mov	 eax, DWORD PTR __Last$[ebp+4]
  0005a	50		 push	 eax
  0005b	8b 4d 10	 mov	 ecx, DWORD PTR __Last$[ebp]
  0005e	51		 push	 ecx
  0005f	8b 55 0c	 mov	 edx, DWORD PTR __First$[ebp+4]
  00062	52		 push	 edx
  00063	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00066	50		 push	 eax
  00067	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	e8 00 00 00 00	 call	 ??$_Construct@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0Uinput_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Construct<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >

; 515  : 		}

  0006f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00076	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00079	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0007c	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00083	59		 pop	 ecx
  00084	8b e5		 mov	 esp, ebp
  00086	5d		 pop	 ebp
  00087	c2 10 00	 ret	 16			; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z$0:
  00000	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$_Vector_val@_WV?$allocator@_W@std@@@std@@QAE@XZ
__ehhandler$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@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 f0	 mov	 ecx, DWORD PTR [edx-16]
  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$??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> ><std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$4 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$0
__catchsym$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$5 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$2
__tryblocktable$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$4
	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:__catchsym$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$5
__ehfuncinfo$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z
	DD	02H
	DD	FLAT:__tryblocktable$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z
_TEXT	SEGMENT
tv84 = -48						; size = 4
_this$ = -44						; size = 4
__Tmp$152190 = -40					; size = 2
__Oldend$152191 = -36					; size = 4
__Tmp$152180 = -32					; size = 2
__Newvec$152168 = -28					; size = 4
__Ptr$152169 = -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@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_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@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@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 20	 sub	 esp, 32			; 00000020H
  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 d4	 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 d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	e8 00 00 00 00	 call	 ?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::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@37
  00040	e9 e8 02 00 00	 jmp	 $LN14@Insert_n@37
$LN12@Insert_n@37:

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

  00045	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00048	e8 00 00 00 00	 call	 ?max_size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::max_size
  0004d	8b f0		 mov	 esi, eax
  0004f	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00052	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::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@37

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

  0005e	e8 00 00 00 00	 call	 ?_Xlen@?$vector@_WV?$allocator@_W@std@@@std@@KAXXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::_Xlen
  00063	e9 c5 02 00 00	 jmp	 $LN14@Insert_n@37
$LN10@Insert_n@37:

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

  00068	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0006b	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00070	03 45 10	 add	 eax, DWORD PTR __Count$[ebp]
  00073	39 45 ec	 cmp	 DWORD PTR __Capacity$[ebp], eax
  00076	0f 83 6f 01 00
	00		 jae	 $LN8@Insert_n@37

; 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 d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	e8 00 00 00 00	 call	 ?max_size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::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@37
  00090	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR tv84[ebp], 0
  00097	eb 0b		 jmp	 SHORT $LN16@Insert_n@37
$LN15@Insert_n@37:
  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 d0	 mov	 DWORD PTR tv84[ebp], edx
$LN16@Insert_n@37:
  000a4	8b 45 d0	 mov	 eax, DWORD PTR tv84[ebp]
  000a7	89 45 ec	 mov	 DWORD PTR __Capacity$[ebp], eax

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

  000aa	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  000ad	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::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@37

; 1177 : 				_Capacity = size() + _Count;

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

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

  000c8	8b 4d ec	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  000cb	51		 push	 ecx
  000cc	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  000cf	83 c1 08	 add	 ecx, 8
  000d2	e8 00 00 00 00	 call	 ?allocate@?$allocator@_W@std@@QAEPA_WI@Z ; std::allocator<wchar_t>::allocate
  000d7	89 45 e4	 mov	 DWORD PTR __Newvec$152168[ebp], eax

; 1179 : 			pointer _Ptr = _Newvec;

  000da	8b 55 e4	 mov	 edx, DWORD PTR __Newvec$152168[ebp]
  000dd	89 55 e8	 mov	 DWORD PTR __Ptr$152169[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$152168[ebp]
  000ea	50		 push	 eax
  000eb	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  000ee	51		 push	 ecx
  000ef	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  000f2	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  000f5	50		 push	 eax
  000f6	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  000f9	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  000fe	89 45 e8	 mov	 DWORD PTR __Ptr$152169[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$152169[ebp]
  0010c	50		 push	 eax
  0010d	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00110	e8 00 00 00 00	 call	 ?_Ufill@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_WIAB_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ufill
  00115	89 45 e8	 mov	 DWORD PTR __Ptr$152169[ebp], eax

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

  00118	8b 4d e8	 mov	 ecx, DWORD PTR __Ptr$152169[ebp]
  0011b	51		 push	 ecx
  0011c	8b 55 d4	 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 d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0012a	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  0012f	eb 39		 jmp	 SHORT $LN17@Insert_n@37
__catch$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$0:

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

  00131	8b 55 e8	 mov	 edx, DWORD PTR __Ptr$152169[ebp]
  00134	52		 push	 edx
  00135	8b 45 e4	 mov	 eax, DWORD PTR __Newvec$152168[ebp]
  00138	50		 push	 eax
  00139	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0013c	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_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$152168[ebp]
  00148	52		 push	 edx
  00149	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0014c	83 c1 08	 add	 ecx, 8
  0014f	e8 00 00 00 00	 call	 ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z ; std::allocator<wchar_t>::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@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$1
  00169	c3		 ret	 0
$LN17@Insert_n@37:
  0016a	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$1:

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

  00171	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00174	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::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 d4	 mov	 eax, DWORD PTR _this$[ebp]
  00182	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  00186	74 37		 je	 SHORT $LN5@Insert_n@37

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

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

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

  0019e	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  001a1	8b 45 d4	 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	d1 f9		 sar	 ecx, 1
  001ac	51		 push	 ecx
  001ad	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  001b0	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  001b3	50		 push	 eax
  001b4	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  001b7	83 c1 08	 add	 ecx, 8
  001ba	e8 00 00 00 00	 call	 ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z ; std::allocator<wchar_t>::deallocate
$LN5@Insert_n@37:

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

  001bf	8b 4d ec	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  001c2	8b 55 e4	 mov	 edx, DWORD PTR __Newvec$152168[ebp]
  001c5	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  001c8	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  001cb	89 41 14	 mov	 DWORD PTR [ecx+20], eax

; 1204 : 			_Mylast = _Newvec + _Count;

  001ce	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  001d1	8b 45 e4	 mov	 eax, DWORD PTR __Newvec$152168[ebp]
  001d4	8d 0c 50	 lea	 ecx, DWORD PTR [eax+edx*2]
  001d7	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  001da	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 1205 : 			_Myfirst = _Newvec;

  001dd	8b 45 d4	 mov	 eax, DWORD PTR _this$[ebp]
  001e0	8b 4d e4	 mov	 ecx, DWORD PTR __Newvec$152168[ebp]
  001e3	89 48 0c	 mov	 DWORD PTR [eax+12], ecx
  001e6	e9 42 01 00 00	 jmp	 $LN14@Insert_n@37
$LN8@Insert_n@37:

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

  001eb	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  001ee	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  001f1	2b 45 0c	 sub	 eax, DWORD PTR __Where$[ebp+4]
  001f4	d1 f8		 sar	 eax, 1
  001f6	3b 45 10	 cmp	 eax, DWORD PTR __Count$[ebp]
  001f9	0f 83 c2 00 00
	00		 jae	 $LN3@Insert_n@37

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

  001ff	8b 4d 14	 mov	 ecx, DWORD PTR __Val$[ebp]
  00202	66 8b 11	 mov	 dx, WORD PTR [ecx]
  00205	66 89 55 e0	 mov	 WORD PTR __Tmp$152180[ebp], dx

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

  00209	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  0020c	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  0020f	8d 14 41	 lea	 edx, DWORD PTR [ecx+eax*2]
  00212	52		 push	 edx
  00213	8b 45 d4	 mov	 eax, DWORD PTR _this$[ebp]
  00216	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00219	51		 push	 ecx
  0021a	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  0021d	52		 push	 edx
  0021e	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00221	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>

; 1213 : 
; 1214 : 			_TRY_BEGIN

  00226	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2

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

  0022d	8d 45 e0	 lea	 eax, DWORD PTR __Tmp$152180[ebp]
  00230	50		 push	 eax
  00231	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00234	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00237	2b 55 0c	 sub	 edx, DWORD PTR __Where$[ebp+4]
  0023a	d1 fa		 sar	 edx, 1
  0023c	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  0023f	2b c2		 sub	 eax, edx
  00241	50		 push	 eax
  00242	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00245	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00248	52		 push	 edx
  00249	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0024c	e8 00 00 00 00	 call	 ?_Ufill@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_WIAB_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ufill
  00251	eb 35		 jmp	 SHORT $LN19@Insert_n@37
__catch$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$2:

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

  00253	8b 45 d4	 mov	 eax, DWORD PTR _this$[ebp]
  00256	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00259	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  0025c	8d 04 51	 lea	 eax, DWORD PTR [ecx+edx*2]
  0025f	50		 push	 eax
  00260	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  00263	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00266	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  00269	50		 push	 eax
  0026a	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  0026d	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Destroy

; 1219 : 			_RERAISE;

  00272	6a 00		 push	 0
  00274	6a 00		 push	 0
  00276	e8 00 00 00 00	 call	 __CxxThrowException@8

; 1220 : 			_CATCH_END

  0027b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00282	b8 00 00 00 00	 mov	 eax, __tryend$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$3
  00287	c3		 ret	 0
$LN19@Insert_n@37:
  00288	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z$3:

; 1221 : 
; 1222 : 			_Mylast += _Count;

  0028f	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  00292	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00295	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  00298	8d 0c 42	 lea	 ecx, DWORD PTR [edx+eax*2]
  0029b	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  0029e	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 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

  002a1	8d 45 e0	 lea	 eax, DWORD PTR __Tmp$152180[ebp]
  002a4	50		 push	 eax
  002a5	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  002a8	d1 e1		 shl	 ecx, 1
  002aa	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  002ad	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  002b0	2b c1		 sub	 eax, ecx
  002b2	50		 push	 eax
  002b3	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  002b6	51		 push	 ecx
  002b7	e8 00 00 00 00	 call	 ??$fill@PA_W_W@std@@YAXPA_W0AB_W@Z ; std::fill<wchar_t *,wchar_t>
  002bc	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1230 : 			}
; 1231 : 		else

  002bf	eb 6c		 jmp	 SHORT $LN14@Insert_n@37
$LN3@Insert_n@37:

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

  002c1	8b 55 14	 mov	 edx, DWORD PTR __Val$[ebp]
  002c4	66 8b 02	 mov	 ax, WORD PTR [edx]
  002c7	66 89 45 d8	 mov	 WORD PTR __Tmp$152190[ebp], ax

; 1234 : 
; 1235 : 			pointer _Oldend = _Mylast;

  002cb	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  002ce	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  002d1	89 55 dc	 mov	 DWORD PTR __Oldend$152191[ebp], edx

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

  002d4	8b 45 d4	 mov	 eax, DWORD PTR _this$[ebp]
  002d7	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  002da	51		 push	 ecx
  002db	8b 55 dc	 mov	 edx, DWORD PTR __Oldend$152191[ebp]
  002de	52		 push	 edx
  002df	8b 45 10	 mov	 eax, DWORD PTR __Count$[ebp]
  002e2	d1 e0		 shl	 eax, 1
  002e4	8b 4d dc	 mov	 ecx, DWORD PTR __Oldend$152191[ebp]
  002e7	2b c8		 sub	 ecx, eax
  002e9	51		 push	 ecx
  002ea	8b 4d d4	 mov	 ecx, DWORD PTR _this$[ebp]
  002ed	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  002f2	8b 55 d4	 mov	 edx, DWORD PTR _this$[ebp]
  002f5	89 42 10	 mov	 DWORD PTR [edx+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

  002f8	8b 45 dc	 mov	 eax, DWORD PTR __Oldend$152191[ebp]
  002fb	50		 push	 eax
  002fc	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  002ff	d1 e1		 shl	 ecx, 1
  00301	8b 55 dc	 mov	 edx, DWORD PTR __Oldend$152191[ebp]
  00304	2b d1		 sub	 edx, ecx
  00306	52		 push	 edx
  00307	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  0030a	50		 push	 eax
  0030b	e8 00 00 00 00	 call	 ??$_Unchecked_move_backward@PA_WPA_W@stdext@@YAPA_WPA_W00@Z ; stdext::_Unchecked_move_backward<wchar_t *,wchar_t *>
  00310	83 c4 0c	 add	 esp, 12			; 0000000cH

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

  00313	8d 4d d8	 lea	 ecx, DWORD PTR __Tmp$152190[ebp]
  00316	51		 push	 ecx
  00317	8b 55 10	 mov	 edx, DWORD PTR __Count$[ebp]
  0031a	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  0031d	8d 0c 50	 lea	 ecx, DWORD PTR [eax+edx*2]
  00320	51		 push	 ecx
  00321	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00324	52		 push	 edx
  00325	e8 00 00 00 00	 call	 ??$fill@PA_W_W@std@@YAXPA_W0AB_W@Z ; std::fill<wchar_t *,wchar_t>
  0032a	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN14@Insert_n@37:

; 1247 : 			}
; 1248 : 		}

  0032d	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  00330	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00337	59		 pop	 ecx
  00338	5f		 pop	 edi
  00339	5e		 pop	 esi
  0033a	5b		 pop	 ebx
  0033b	8b e5		 mov	 esp, ebp
  0033d	5d		 pop	 ebp
  0033e	c2 10 00	 ret	 16			; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@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 cc	 mov	 ecx, DWORD PTR [edx-52]
  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$?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert_n
; Function compile flags: /Odtp
;	COMDAT ?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI_W@Z
_TEXT	SEGMENT
_this$ = -68						; size = 4
$T341306 = -64						; size = 8
$T341305 = -56						; size = 8
$T341304 = -48						; size = 8
$T341303 = -40						; size = 8
$T341302 = -32						; size = 8
$T341301 = -24						; size = 8
$T341300 = -16						; size = 8
$T341299 = -8						; size = 8
__Newsize$ = 8						; size = 4
__Val$ = 12						; size = 2
?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI_W@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::resize, COMDAT
; _this$ = ecx

; 717  : 		{	// determine new length, padding with _Val elements as needed

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 44	 sub	 esp, 68			; 00000044H
  00006	89 4d bc	 mov	 DWORD PTR _this$[ebp], ecx

; 718  : 		if (size() < _Newsize)

  00009	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000c	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00011	3b 45 08	 cmp	 eax, DWORD PTR __Newsize$[ebp]
  00014	73 3b		 jae	 SHORT $LN3@resize@5

; 719  : 			_Insert_n(end(), _Newsize - size(), _Val);

  00016	8d 45 f0	 lea	 eax, DWORD PTR $T341300[ebp]
  00019	50		 push	 eax
  0001a	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	e8 00 00 00 00	 call	 ?end@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::end
  00022	8b 08		 mov	 ecx, DWORD PTR [eax]
  00024	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00027	89 4d f8	 mov	 DWORD PTR $T341299[ebp], ecx
  0002a	89 55 fc	 mov	 DWORD PTR $T341299[ebp+4], edx
  0002d	8d 45 0c	 lea	 eax, DWORD PTR __Val$[ebp]
  00030	50		 push	 eax
  00031	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00039	8b 4d 08	 mov	 ecx, DWORD PTR __Newsize$[ebp]
  0003c	2b c8		 sub	 ecx, eax
  0003e	51		 push	 ecx
  0003f	8b 55 fc	 mov	 edx, DWORD PTR $T341299[ebp+4]
  00042	52		 push	 edx
  00043	8b 45 f8	 mov	 eax, DWORD PTR $T341299[ebp]
  00046	50		 push	 eax
  00047	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004a	e8 00 00 00 00	 call	 ?_Insert_n@?$vector@_WV?$allocator@_W@std@@@std@@IAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@IAB_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert_n
  0004f	eb 66		 jmp	 SHORT $LN4@resize@5
$LN3@resize@5:

; 720  : 		else if (_Newsize < size())

  00051	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00054	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00059	39 45 08	 cmp	 DWORD PTR __Newsize$[ebp], eax
  0005c	73 59		 jae	 SHORT $LN4@resize@5

; 721  : 			erase(begin() + _Newsize, end());

  0005e	8d 4d e0	 lea	 ecx, DWORD PTR $T341302[ebp]
  00061	51		 push	 ecx
  00062	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00065	e8 00 00 00 00	 call	 ?end@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::end
  0006a	8b 10		 mov	 edx, DWORD PTR [eax]
  0006c	8b 40 04	 mov	 eax, DWORD PTR [eax+4]
  0006f	89 55 e8	 mov	 DWORD PTR $T341301[ebp], edx
  00072	89 45 ec	 mov	 DWORD PTR $T341301[ebp+4], eax
  00075	8b 4d 08	 mov	 ecx, DWORD PTR __Newsize$[ebp]
  00078	51		 push	 ecx
  00079	8d 55 c8	 lea	 edx, DWORD PTR $T341305[ebp]
  0007c	52		 push	 edx
  0007d	8d 45 d0	 lea	 eax, DWORD PTR $T341304[ebp]
  00080	50		 push	 eax
  00081	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00084	e8 00 00 00 00	 call	 ?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::begin
  00089	8b c8		 mov	 ecx, eax
  0008b	e8 00 00 00 00	 call	 ??H?$_Vector_iterator@_WV?$allocator@_W@std@@@std@@QBE?AV01@H@Z ; std::_Vector_iterator<wchar_t,std::allocator<wchar_t> >::operator+
  00090	8b 08		 mov	 ecx, DWORD PTR [eax]
  00092	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00095	89 4d d8	 mov	 DWORD PTR $T341303[ebp], ecx
  00098	89 55 dc	 mov	 DWORD PTR $T341303[ebp+4], edx
  0009b	8b 45 ec	 mov	 eax, DWORD PTR $T341301[ebp+4]
  0009e	50		 push	 eax
  0009f	8b 4d e8	 mov	 ecx, DWORD PTR $T341301[ebp]
  000a2	51		 push	 ecx
  000a3	8b 55 dc	 mov	 edx, DWORD PTR $T341303[ebp+4]
  000a6	52		 push	 edx
  000a7	8b 45 d8	 mov	 eax, DWORD PTR $T341303[ebp]
  000aa	50		 push	 eax
  000ab	8d 4d c0	 lea	 ecx, DWORD PTR $T341306[ebp]
  000ae	51		 push	 ecx
  000af	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000b2	e8 00 00 00 00	 call	 ?erase@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::erase
$LN4@resize@5:

; 722  : 		}

  000b7	8b e5		 mov	 esp, ebp
  000b9	5d		 pop	 ebp
  000ba	c2 08 00	 ret	 8
?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI_W@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::resize
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Newsize$ = 8						; size = 4
?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::resize, COMDAT
; _this$ = ecx

; 712  : 		{	// determine new length, padding with _Ty() elements as needed

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

; 713  : 		resize(_Newsize, _Ty());

  00007	6a 00		 push	 0
  00009	8b 45 08	 mov	 eax, DWORD PTR __Newsize$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::resize

; 714  : 		}

  00015	8b e5		 mov	 esp, ebp
  00017	5d		 pop	 ebp
  00018	c2 04 00	 ret	 4
?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::resize
_TEXT	ENDS
PUBLIC	?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z ; AddFileToPath
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\pathhelpers.cpp
xdata$x	SEGMENT
__unwindtable$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z$0
__ehfuncinfo$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z
_TEXT	SEGMENT
$T341315 = -56						; size = 4
$T341312 = -52						; size = 8
$T341311 = -44						; size = 8
_RetVal$ = -36						; size = 24
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_Path$ = 12						; size = 4
_FileName$ = 16						; size = 4
?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z PROC ; AddFileToPath, COMDAT

; 151  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 2c	 sub	 esp, 44			; 0000002cH
  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 c8 00 00
	00 00		 mov	 DWORD PTR $T341315[ebp], 0

; 152  :     vector<TCHAR> RetVal(Path.begin(), Path.end());

  0002c	8d 45 d4	 lea	 eax, DWORD PTR $T341311[ebp]
  0002f	50		 push	 eax
  00030	8b 4d 0c	 mov	 ecx, DWORD PTR _Path$[ebp]
  00033	e8 00 00 00 00	 call	 ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::end
  00038	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0003b	51		 push	 ecx
  0003c	8b 10		 mov	 edx, DWORD PTR [eax]
  0003e	52		 push	 edx
  0003f	8d 45 cc	 lea	 eax, DWORD PTR $T341312[ebp]
  00042	50		 push	 eax
  00043	8b 4d 0c	 mov	 ecx, DWORD PTR _Path$[ebp]
  00046	e8 00 00 00 00	 call	 ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::begin
  0004b	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0004e	51		 push	 ecx
  0004f	8b 10		 mov	 edx, DWORD PTR [eax]
  00051	52		 push	 edx
  00052	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00055	e8 00 00 00 00	 call	 ??$?0V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@?$vector@_WV?$allocator@_W@std@@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> ><std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  0005a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 153  :     RetVal.resize(MAX_PATH);

  00061	68 04 01 00 00	 push	 260			; 00000104H
  00066	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00069	e8 00 00 00 00	 call	 ?resize@?$vector@_WV?$allocator@_W@std@@@std@@QAEXI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::resize

; 154  :     if(PathAppend(&RetVal[0], FileName.c_str()) == TRUE)

  0006e	8b 4d 10	 mov	 ecx, DWORD PTR _FileName$[ebp]
  00071	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
  00076	50		 push	 eax
  00077	6a 00		 push	 0
  00079	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  0007c	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00081	50		 push	 eax
  00082	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__PathAppendW@8
  00088	83 f8 01	 cmp	 eax, 1
  0008b	75 2f		 jne	 SHORT $LN2@AddFileToP

; 155  :     {
; 156  :         return &RetVal[0];

  0008d	6a 00		 push	 0
  0008f	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00092	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00097	50		 push	 eax
  00098	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0009b	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> >
  000a0	8b 45 c8	 mov	 eax, DWORD PTR $T341315[ebp]
  000a3	83 c8 01	 or	 eax, 1
  000a6	89 45 c8	 mov	 DWORD PTR $T341315[ebp], eax
  000a9	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000ad	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  000b0	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000b5	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000b8	eb 34		 jmp	 SHORT $LN3@AddFileToP

; 157  :     }
; 158  :     else

  000ba	eb 26		 jmp	 SHORT $LN1@AddFileToP
$LN2@AddFileToP:

; 159  :     {
; 160  :         // return something half sensible
; 161  :         return FileName;

  000bc	8b 4d 10	 mov	 ecx, DWORD PTR _FileName$[ebp]
  000bf	51		 push	 ecx
  000c0	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000c3	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@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> >
  000c8	8b 55 c8	 mov	 edx, DWORD PTR $T341315[ebp]
  000cb	83 ca 01	 or	 edx, 1
  000ce	89 55 c8	 mov	 DWORD PTR $T341315[ebp], edx
  000d1	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000d5	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  000d8	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000dd	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000e0	eb 0c		 jmp	 SHORT $LN3@AddFileToP
$LN1@AddFileToP:

; 162  :     }
; 163  : }

  000e2	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000e6	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  000e9	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
$LN3@AddFileToP:
  000ee	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000f1	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000f8	59		 pop	 ecx
  000f9	8b e5		 mov	 esp, ebp
  000fb	5d		 pop	 ebp
  000fc	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z$0:
  00000	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__unwindfunclet$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z$1:
  00008	8b 45 c8	 mov	 eax, DWORD PTR $T341315[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN7@AddFileToP
  00014	83 65 c8 fe	 and	 DWORD PTR $T341315[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	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> >
$LN7@AddFileToP:
  00020	c3		 ret	 0
__ehhandler$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a d0	 mov	 ecx, DWORD PTR [edx-48]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?AddFileToPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@0@Z ENDP ; AddFileToPath
PUBLIC	?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetMainExeName
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$2
	DD	00H
	DD	FLAT:__unwindfunclet$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
	DD	01H
	DD	FLAT:__unwindfunclet$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1
__ehfuncinfo$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
$T341330 = -108						; size = 4
$T341326 = -104						; size = 28
$T341325 = -76						; size = 40
_RetVal$ = -36						; size = 24
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; GetMainExeName, COMDAT

; 31   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 60	 sub	 esp, 96			; 00000060H
  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 94 00 00
	00 00		 mov	 DWORD PTR $T341330[ebp], 0

; 32   :     vector<TCHAR> RetVal(MAX_PATH);

  0002c	68 04 01 00 00	 push	 260			; 00000104H
  00031	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00034	e8 00 00 00 00	 call	 ??0?$vector@_WV?$allocator@_W@std@@@std@@QAE@I@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> >
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 33   :     if(GetModuleFileName (NULL, &RetVal[0], MAX_PATH) == 0)

  00040	68 04 01 00 00	 push	 260			; 00000104H
  00045	6a 00		 push	 0
  00047	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  0004a	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  0004f	50		 push	 eax
  00050	6a 00		 push	 0
  00052	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetModuleFileNameW@12
  00058	85 c0		 test	 eax, eax
  0005a	75 37		 jne	 SHORT $LN1@GetMainExe

; 34   :     {
; 35   :         throw std::logic_error("GetModuleFileName failed");

  0005c	68 00 00 00 00	 push	 OFFSET ??_C@_0BJ@OHFMJCIO@GetModuleFileName?5failed?$AA@
  00061	8d 4d 98	 lea	 ecx, DWORD PTR $T341326[ebp]
  00064	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> >
  00069	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  0006d	8d 45 98	 lea	 eax, DWORD PTR $T341326[ebp]
  00070	50		 push	 eax
  00071	8d 4d b4	 lea	 ecx, DWORD PTR $T341325[ebp]
  00074	e8 00 00 00 00	 call	 ??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::logic_error::logic_error
  00079	68 00 00 00 00	 push	 OFFSET __TI2?AVlogic_error@std@@
  0007e	8d 4d b4	 lea	 ecx, DWORD PTR $T341325[ebp]
  00081	51		 push	 ecx
  00082	e8 00 00 00 00	 call	 __CxxThrowException@8
  00087	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0008b	8d 4d 98	 lea	 ecx, DWORD PTR $T341326[ebp]
  0008e	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> >
$LN1@GetMainExe:

; 36   :     }
; 37   :     return &RetVal[0];

  00093	6a 00		 push	 0
  00095	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00098	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  0009d	50		 push	 eax
  0009e	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000a1	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> >
  000a6	8b 55 94	 mov	 edx, DWORD PTR $T341330[ebp]
  000a9	83 ca 01	 or	 edx, 1
  000ac	89 55 94	 mov	 DWORD PTR $T341330[ebp], edx
  000af	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000b3	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  000b6	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000bb	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
$LN3@GetMainExe:

; 38   : }

  000be	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000c1	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000c8	59		 pop	 ecx
  000c9	8b e5		 mov	 esp, ebp
  000cb	5d		 pop	 ebp
  000cc	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8d 4d dc	 lea	 ecx, DWORD PTR _RetVal$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__unwindfunclet$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1:
  00008	8d 4d 98	 lea	 ecx, DWORD PTR $T341326[ebp]
  0000b	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> >
__unwindfunclet$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$2:
  00010	8b 45 94	 mov	 eax, DWORD PTR $T341330[ebp]
  00013	83 e0 01	 and	 eax, 1
  00016	0f 84 0c 00 00
	00		 je	 $LN7@GetMainExe
  0001c	83 65 94 fe	 and	 DWORD PTR $T341330[ebp], -2 ; fffffffeH
  00020	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00023	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> >
$LN7@GetMainExe:
  00028	c3		 ret	 0
__ehhandler$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ:
  00029	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0002d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00030	8b 4a 9c	 mov	 ecx, DWORD PTR [edx-100]
  00033	33 c8		 xor	 ecx, eax
  00035	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0003f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; GetMainExeName
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dynamicfunction.h
;	COMDAT ??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>, COMDAT
; _this$ = ecx

; 30   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 31   :         HMODULE LibraryModule = LibraryCache::GetLibraryHandle(LibraryName);

  00012	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  00015	51		 push	 ecx
  00016	e8 00 00 00 00	 call	 ?GetLibraryHandle@LibraryCache@@SAPAUHINSTANCE__@@PB_W@Z ; LibraryCache::GetLibraryHandle
  0001b	83 c4 04	 add	 esp, 4
  0001e	89 45 fc	 mov	 DWORD PTR _LibraryModule$[ebp], eax

; 32   :         if(LibraryModule)

  00021	83 7d fc 00	 cmp	 DWORD PTR _LibraryModule$[ebp], 0
  00025	74 13		 je	 SHORT $LN2@DynamicFun@11

; 33   :         {
; 34   :             m_pFunc = (FUNCTYPE)GetProcAddress(LibraryModule,FunctionName);

  00027	8b 55 0c	 mov	 edx, DWORD PTR _FunctionName$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _LibraryModule$[ebp]
  0002e	50		 push	 eax
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@DynamicFun@11:

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>, COMDAT
; _this$ = ecx

; 30   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 31   :         HMODULE LibraryModule = LibraryCache::GetLibraryHandle(LibraryName);

  00012	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  00015	51		 push	 ecx
  00016	e8 00 00 00 00	 call	 ?GetLibraryHandle@LibraryCache@@SAPAUHINSTANCE__@@PB_W@Z ; LibraryCache::GetLibraryHandle
  0001b	83 c4 04	 add	 esp, 4
  0001e	89 45 fc	 mov	 DWORD PTR _LibraryModule$[ebp], eax

; 32   :         if(LibraryModule)

  00021	83 7d fc 00	 cmp	 DWORD PTR _LibraryModule$[ebp], 0
  00025	74 13		 je	 SHORT $LN2@DynamicFun@12

; 33   :         {
; 34   :             m_pFunc = (FUNCTYPE)GetProcAddress(LibraryModule,FunctionName);

  00027	8b 55 0c	 mov	 edx, DWORD PTR _FunctionName$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _LibraryModule$[ebp]
  0002e	50		 push	 eax
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@DynamicFun@12:

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QAE@PB_WPBD@Z PROC ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>, COMDAT
; _this$ = ecx

; 166  :     {

  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 _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>

; 167  :     }

  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?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QAE@PB_WPBD@Z PROC ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>, COMDAT
; _this$ = ecx

; 150  :     {

  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 _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>

; 151  :     }

  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?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>
_TEXT	ENDS
PUBLIC	?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetInstallationPath
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\pathhelpers.cpp
xdata$x	SEGMENT
__unwindtable$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1
	DD	00H
	DD	FLAT:__unwindfunclet$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
__ehfuncinfo$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
tv73 = -52						; size = 4
tv78 = -48						; size = 4
$T343606 = -44						; size = 4
$T343603 = -40						; size = 28
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; GetInstallationPath, COMDAT

; 41   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 28	 sub	 esp, 40			; 00000028H
  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 d4 00 00
	00 00		 mov	 DWORD PTR $T343606[ebp], 0

; 42   :     return StripFile(GetMainExeName());

  0002c	8d 45 d8	 lea	 eax, DWORD PTR $T343603[ebp]
  0002f	50		 push	 eax
  00030	e8 00 00 00 00	 call	 ?GetMainExeName@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetMainExeName
  00035	83 c4 04	 add	 esp, 4
  00038	89 45 d0	 mov	 DWORD PTR tv78[ebp], eax
  0003b	8b 4d d0	 mov	 ecx, DWORD PTR tv78[ebp]
  0003e	89 4d cc	 mov	 DWORD PTR tv73[ebp], ecx
  00041	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  00048	8b 55 cc	 mov	 edx, DWORD PTR tv73[ebp]
  0004b	52		 push	 edx
  0004c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0004f	50		 push	 eax
  00050	e8 00 00 00 00	 call	 ?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; StripFile
  00055	83 c4 08	 add	 esp, 8
  00058	8b 4d d4	 mov	 ecx, DWORD PTR $T343606[ebp]
  0005b	83 c9 01	 or	 ecx, 1
  0005e	89 4d d4	 mov	 DWORD PTR $T343606[ebp], ecx
  00061	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00065	8d 4d d8	 lea	 ecx, DWORD PTR $T343603[ebp]
  00068	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> >
  0006d	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 43   : }

  00070	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00073	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0007a	59		 pop	 ecx
  0007b	8b e5		 mov	 esp, ebp
  0007d	5d		 pop	 ebp
  0007e	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR $T343603[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$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1:
  00008	8b 45 d4	 mov	 eax, DWORD PTR $T343606[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN5@GetInstall
  00014	83 65 d4 fe	 and	 DWORD PTR $T343606[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	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> >
$LN5@GetInstall:
  00020	c3		 ret	 0
__ehhandler$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a d4	 mov	 ecx, DWORD PTR [edx-44]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; GetInstallationPath
PUBLIC	?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetUserFilePath
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1
	DD	00H
	DD	FLAT:__unwindfunclet$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
__ehfuncinfo$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
$T344570 = -44						; size = 4
_GetFolderPathAndSubDir$ = -40				; size = 4
_Buffer$ = -36						; size = 24
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; GetUserFilePath, COMDAT

; 121  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  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
  00025	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR $T344570[ebp], 0

; 122  :     DynamicFunctionS6<HRESULT, HWND, int, HANDLE, DWORD, LPCTSTR, PTSTR>  GetFolderPathAndSubDir(_T("Shell32.dll"), ADD_API_LETTER(SHGetFolderPathAndSubDir));

  0002c	68 00 00 00 00	 push	 OFFSET ??_C@_0BK@PFGNCDCO@SHGetFolderPathAndSubDirW?$AA@
  00031	68 00 00 00 00	 push	 OFFSET ??_C@_1BI@ODIMJCCA@?$AAS?$AAh?$AAe?$AAl?$AAl?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  00036	8d 4d d8	 lea	 ecx, DWORD PTR _GetFolderPathAndSubDir$[ebp]
  00039	e8 00 00 00 00	 call	 ??0?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QAE@PB_WPBD@Z ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>

; 123  :     vector<TCHAR> Buffer(MAX_PATH);

  0003e	68 04 01 00 00	 push	 260			; 00000104H
  00043	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00046	e8 00 00 00 00	 call	 ??0?$vector@_WV?$allocator@_W@std@@@std@@QAE@I@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> >
  0004b	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 124  : 
; 125  :     if(IsXPOrUp() && GetFolderPathAndSubDir)

  00052	e8 00 00 00 00	 call	 ?IsXPOrUp@@YAHXZ	; IsXPOrUp
  00057	85 c0		 test	 eax, eax
  00059	0f 84 88 00 00
	00		 je	 $LN3@GetUserFil
  0005f	8d 4d d8	 lea	 ecx, DWORD PTR _GetFolderPathAndSubDir$[ebp]
  00062	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPB_WPA_W@Z@@QBEHXZ ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *)>::operator int
  00067	85 c0		 test	 eax, eax
  00069	74 7c		 je	 SHORT $LN3@GetUserFil

; 126  :     {
; 127  :         if(FAILED(GetFolderPathAndSubDir(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, 0, _T("DScaler4\\"), &Buffer[0])))

  0006b	6a 00		 push	 0
  0006d	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00070	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00075	50		 push	 eax
  00076	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@BOBPAEPM@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA4?$AA?2?$AA?$AA@
  0007b	6a 00		 push	 0
  0007d	6a 00		 push	 0
  0007f	68 1a 80 00 00	 push	 32794			; 0000801aH
  00084	6a 00		 push	 0
  00086	8d 4d d8	 lea	 ecx, DWORD PTR _GetFolderPathAndSubDir$[ebp]
  00089	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS6@JPAUHWND__@@HPAXKPB_WPA_W@@QBEJPAUHWND__@@HPAXKPB_WPA_W@Z ; DynamicFunctionS6<long,HWND__ *,int,void *,unsigned long,wchar_t const *,wchar_t *>::operator()
  0008e	85 c0		 test	 eax, eax
  00090	7d 26		 jge	 SHORT $LN2@GetUserFil

; 128  :         {
; 129  :             return GetInstallationPath();

  00092	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  00095	50		 push	 eax
  00096	e8 00 00 00 00	 call	 ?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetInstallationPath
  0009b	83 c4 04	 add	 esp, 4
  0009e	8b 4d d4	 mov	 ecx, DWORD PTR $T344570[ebp]
  000a1	83 c9 01	 or	 ecx, 1
  000a4	89 4d d4	 mov	 DWORD PTR $T344570[ebp], ecx
  000a7	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000ab	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000ae	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000b3	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000b6	eb 61		 jmp	 SHORT $LN4@GetUserFil
$LN2@GetUserFil:

; 130  :         }
; 131  : 
; 132  :         return &Buffer[0];

  000b8	6a 00		 push	 0
  000ba	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000bd	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  000c2	50		 push	 eax
  000c3	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000c6	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> >
  000cb	8b 55 d4	 mov	 edx, DWORD PTR $T344570[ebp]
  000ce	83 ca 01	 or	 edx, 1
  000d1	89 55 d4	 mov	 DWORD PTR $T344570[ebp], edx
  000d4	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000d8	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000db	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000e0	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000e3	eb 34		 jmp	 SHORT $LN4@GetUserFil

; 133  :     }
; 134  :     else

  000e5	eb 26		 jmp	 SHORT $LN1@GetUserFil
$LN3@GetUserFil:

; 135  :     {
; 136  :         return GetInstallationPath();

  000e7	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000ea	50		 push	 eax
  000eb	e8 00 00 00 00	 call	 ?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetInstallationPath
  000f0	83 c4 04	 add	 esp, 4
  000f3	8b 4d d4	 mov	 ecx, DWORD PTR $T344570[ebp]
  000f6	83 c9 01	 or	 ecx, 1
  000f9	89 4d d4	 mov	 DWORD PTR $T344570[ebp], ecx
  000fc	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00100	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00103	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  00108	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0010b	eb 0c		 jmp	 SHORT $LN4@GetUserFil
$LN1@GetUserFil:

; 137  :     }
; 138  : }

  0010d	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00111	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00114	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
$LN4@GetUserFil:
  00119	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0011c	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00123	59		 pop	 ecx
  00124	8b e5		 mov	 esp, ebp
  00126	5d		 pop	 ebp
  00127	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__unwindfunclet$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1:
  00008	8b 45 d4	 mov	 eax, DWORD PTR $T344570[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN8@GetUserFil
  00014	83 65 d4 fe	 and	 DWORD PTR $T344570[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	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> >
$LN8@GetUserFil:
  00020	c3		 ret	 0
__ehhandler$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a dc	 mov	 ecx, DWORD PTR [edx-36]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; GetUserFilePath
PUBLIC	?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z ; GetUserFolder
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z$0
__ehfuncinfo$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z
_TEXT	SEGMENT
$T344582 = -44						; size = 4
_Buffer$ = -40						; size = 24
_GetFolderPath$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_clsid$ = 12						; size = 4
?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z PROC ; GetUserFolder, COMDAT

; 101  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@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
  00025	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR $T344582[ebp], 0

; 102  :     DynamicFunctionS5<HRESULT, HWND, int, HANDLE, DWORD, PTSTR>  GetFolderPath(_T("Shell32.dll"), ADD_API_LETTER(SHGetFolderPath));

  0002c	68 00 00 00 00	 push	 OFFSET ??_C@_0BB@JLFMFIGE@SHGetFolderPathW?$AA@
  00031	68 00 00 00 00	 push	 OFFSET ??_C@_1BI@ODIMJCCA@?$AAS?$AAh?$AAe?$AAl?$AAl?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  00036	8d 4d f0	 lea	 ecx, DWORD PTR _GetFolderPath$[ebp]
  00039	e8 00 00 00 00	 call	 ??0?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QAE@PB_WPBD@Z ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>

; 103  :     vector<TCHAR> Buffer(MAX_PATH);

  0003e	68 04 01 00 00	 push	 260			; 00000104H
  00043	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00046	e8 00 00 00 00	 call	 ??0?$vector@_WV?$allocator@_W@std@@@std@@QAE@I@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> >
  0004b	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 104  : 
; 105  :     if(IsXPOrUp() && GetFolderPath)

  00052	e8 00 00 00 00	 call	 ?IsXPOrUp@@YAHXZ	; IsXPOrUp
  00057	85 c0		 test	 eax, eax
  00059	0f 84 87 00 00
	00		 je	 $LN3@GetUserFol
  0005f	8d 4d f0	 lea	 ecx, DWORD PTR _GetFolderPath$[ebp]
  00062	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GJPAUHWND__@@HPAXKPA_W@Z@@QBEHXZ ; DynamicFunctionParent<long (__stdcall*)(HWND__ *,int,void *,unsigned long,wchar_t *)>::operator int
  00067	85 c0		 test	 eax, eax
  00069	74 7b		 je	 SHORT $LN3@GetUserFol

; 106  :     {
; 107  :         if(FAILED(GetFolderPath(NULL, clsid | CSIDL_FLAG_CREATE, NULL, 0, &Buffer[0])))

  0006b	6a 00		 push	 0
  0006d	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00070	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00075	50		 push	 eax
  00076	6a 00		 push	 0
  00078	6a 00		 push	 0
  0007a	8b 45 0c	 mov	 eax, DWORD PTR _clsid$[ebp]
  0007d	0d 00 80 00 00	 or	 eax, 32768		; 00008000H
  00082	50		 push	 eax
  00083	6a 00		 push	 0
  00085	8d 4d f0	 lea	 ecx, DWORD PTR _GetFolderPath$[ebp]
  00088	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS5@JPAUHWND__@@HPAXKPA_W@@QBEJPAUHWND__@@HPAXKPA_W@Z ; DynamicFunctionS5<long,HWND__ *,int,void *,unsigned long,wchar_t *>::operator()
  0008d	85 c0		 test	 eax, eax
  0008f	7d 26		 jge	 SHORT $LN2@GetUserFol

; 108  :         {
; 109  :             return GetInstallationPath();

  00091	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00094	51		 push	 ecx
  00095	e8 00 00 00 00	 call	 ?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetInstallationPath
  0009a	83 c4 04	 add	 esp, 4
  0009d	8b 55 d4	 mov	 edx, DWORD PTR $T344582[ebp]
  000a0	83 ca 01	 or	 edx, 1
  000a3	89 55 d4	 mov	 DWORD PTR $T344582[ebp], edx
  000a6	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000aa	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000ad	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000b2	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000b5	eb 61		 jmp	 SHORT $LN4@GetUserFol
$LN2@GetUserFol:

; 110  :         }
; 111  : 
; 112  :         return &Buffer[0];

  000b7	6a 00		 push	 0
  000b9	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000bc	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  000c1	50		 push	 eax
  000c2	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000c5	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> >
  000ca	8b 45 d4	 mov	 eax, DWORD PTR $T344582[ebp]
  000cd	83 c8 01	 or	 eax, 1
  000d0	89 45 d4	 mov	 DWORD PTR $T344582[ebp], eax
  000d3	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000d7	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000da	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000df	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  000e2	eb 34		 jmp	 SHORT $LN4@GetUserFol

; 113  :     }
; 114  :     else

  000e4	eb 26		 jmp	 SHORT $LN1@GetUserFol
$LN3@GetUserFol:

; 115  :     {
; 116  :         return GetInstallationPath();

  000e6	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000e9	51		 push	 ecx
  000ea	e8 00 00 00 00	 call	 ?GetInstallationPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetInstallationPath
  000ef	83 c4 04	 add	 esp, 4
  000f2	8b 55 d4	 mov	 edx, DWORD PTR $T344582[ebp]
  000f5	83 ca 01	 or	 edx, 1
  000f8	89 55 d4	 mov	 DWORD PTR $T344582[ebp], edx
  000fb	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000ff	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00102	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  00107	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0010a	eb 0c		 jmp	 SHORT $LN4@GetUserFol
$LN1@GetUserFol:

; 117  :     }
; 118  : }

  0010c	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00110	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00113	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
$LN4@GetUserFol:
  00118	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0011b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00122	59		 pop	 ecx
  00123	8b e5		 mov	 esp, ebp
  00125	5d		 pop	 ebp
  00126	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__unwindfunclet$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z$1:
  00008	8b 45 d4	 mov	 eax, DWORD PTR $T344582[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN8@GetUserFol
  00014	83 65 d4 fe	 and	 DWORD PTR $T344582[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	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> >
$LN8@GetUserFol:
  00020	c3		 ret	 0
__ehhandler$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a dc	 mov	 ecx, DWORD PTR [edx-36]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z ENDP ; GetUserFolder
PUBLIC	?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetUserVideoPath
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
__ehfuncinfo$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
$T346226 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; GetUserVideoPath, COMDAT

; 146  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@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	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T346226[ebp], 0

; 147  :     return GetUserFolder(CSIDL_MYVIDEO);

  0002a	6a 0e		 push	 14			; 0000000eH
  0002c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0002f	50		 push	 eax
  00030	e8 00 00 00 00	 call	 ?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z ; GetUserFolder
  00035	83 c4 08	 add	 esp, 8
  00038	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0003f	8b 4d f0	 mov	 ecx, DWORD PTR $T346226[ebp]
  00042	83 c9 01	 or	 ecx, 1
  00045	89 4d f0	 mov	 DWORD PTR $T346226[ebp], ecx
  00048	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 148  : }

  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$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T346226[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@GetUserVid
  0000c	83 65 f0 fe	 and	 DWORD PTR $T346226[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	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> >
$LN4@GetUserVid:
  00018	c3		 ret	 0
__ehhandler$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@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 f8	 mov	 ecx, DWORD PTR [edx-8]
  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$?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; GetUserVideoPath
PUBLIC	?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetUserPicturePath
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
__ehfuncinfo$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
$T346237 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; GetUserPicturePath, COMDAT

; 141  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@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	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T346237[ebp], 0

; 142  :     return GetUserFolder(CSIDL_MYPICTURES);

  0002a	6a 27		 push	 39			; 00000027H
  0002c	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  0002f	50		 push	 eax
  00030	e8 00 00 00 00	 call	 ?GetUserFolder@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@H@Z ; GetUserFolder
  00035	83 c4 08	 add	 esp, 8
  00038	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0003f	8b 4d f0	 mov	 ecx, DWORD PTR $T346237[ebp]
  00042	83 c9 01	 or	 ecx, 1
  00045	89 4d f0	 mov	 DWORD PTR $T346237[ebp], ecx
  00048	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 143  : }

  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$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T346237[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@GetUserPic
  0000c	83 65 f0 fe	 and	 DWORD PTR $T346237[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	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> >
$LN4@GetUserPic:
  00018	c3		 ret	 0
__ehhandler$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@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 f8	 mov	 ecx, DWORD PTR [edx-8]
  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$?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetUserPicturePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; GetUserPicturePath
END
