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

	TITLE	d:\# METIN2\work in progress\source client\Client\EterBase\Utils.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?_Value@?$_Is_swap_move@U_Swap_move_tag@std@@@std@@2_NB ; std::_Is_swap_move<std::_Swap_move_tag>::_Value
PUBLIC	?collate@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::collate
PUBLIC	?ctype@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::ctype
PUBLIC	?monetary@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::monetary
PUBLIC	?numeric@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::numeric
PUBLIC	?time@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::time
PUBLIC	?messages@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::messages
PUBLIC	?all@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::all
PUBLIC	?none@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::none
PUBLIC	?table_size@?$ctype@D@std@@2IB			; std::ctype<char>::table_size
PUBLIC	?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::skipws
PUBLIC	?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::unitbuf
PUBLIC	?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::uppercase
PUBLIC	?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showbase
PUBLIC	?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpoint
PUBLIC	?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpos
PUBLIC	?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::left
PUBLIC	?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::right
PUBLIC	?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::internal
PUBLIC	?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::dec
PUBLIC	?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::oct
PUBLIC	?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::hex
PUBLIC	?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::scientific
PUBLIC	?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::fixed
PUBLIC	?hexfloat@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::hexfloat
PUBLIC	?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::boolalpha
PUBLIC	?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::_Stdio
PUBLIC	?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::adjustfield
PUBLIC	?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::basefield
PUBLIC	?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::floatfield
PUBLIC	?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::goodbit
PUBLIC	?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::eofbit
PUBLIC	?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::failbit
PUBLIC	?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::badbit
PUBLIC	?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::_Hardfail
PUBLIC	?in@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::in
PUBLIC	?out@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::out
PUBLIC	?ate@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::ate
PUBLIC	?app@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::app
PUBLIC	?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::trunc
PUBLIC	?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Nocreate
PUBLIC	?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Noreplace
PUBLIC	?binary@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::binary
PUBLIC	?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::beg
PUBLIC	?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::cur
PUBLIC	?end@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::end
PUBLIC	?value@?$integral_constant@_N$0A@@tr1@std@@2_NB	; std::tr1::integral_constant<bool,0>::value
PUBLIC	?value@?$integral_constant@_N$00@tr1@std@@2_NB	; std::tr1::integral_constant<bool,1>::value
PUBLIC	?_EEM_DS@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@2HB ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_EEM_DS
;	COMDAT ?_EEM_DS@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@2HB
CONST	SEGMENT
?_EEM_DS@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@2HB DD 01H ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_EEM_DS
CONST	ENDS
;	COMDAT ?value@?$integral_constant@_N$00@tr1@std@@2_NB
CONST	SEGMENT
?value@?$integral_constant@_N$00@tr1@std@@2_NB DB 01H	; std::tr1::integral_constant<bool,1>::value
CONST	ENDS
;	COMDAT ?value@?$integral_constant@_N$0A@@tr1@std@@2_NB
CONST	SEGMENT
?value@?$integral_constant@_N$0A@@tr1@std@@2_NB DB 00H	; std::tr1::integral_constant<bool,0>::value
CONST	ENDS
;	COMDAT ?end@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?end@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 02H		; std::_Iosb<int>::end
CONST	ENDS
;	COMDAT ?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 01H		; std::_Iosb<int>::cur
CONST	ENDS
;	COMDAT ?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 00H		; std::_Iosb<int>::beg
CONST	ENDS
;	COMDAT ?binary@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?binary@?$_Iosb@H@std@@2W4_Openmode@12@B DD 020H	; std::_Iosb<int>::binary
CONST	ENDS
;	COMDAT ?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B DD 080H	; std::_Iosb<int>::_Noreplace
CONST	ENDS
;	COMDAT ?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 040H	; std::_Iosb<int>::_Nocreate
CONST	ENDS
;	COMDAT ?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B DD 010H		; std::_Iosb<int>::trunc
CONST	ENDS
;	COMDAT ?app@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?app@?$_Iosb@H@std@@2W4_Openmode@12@B DD 08H		; std::_Iosb<int>::app
CONST	ENDS
;	COMDAT ?ate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?ate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 04H		; std::_Iosb<int>::ate
CONST	ENDS
;	COMDAT ?out@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?out@?$_Iosb@H@std@@2W4_Openmode@12@B DD 02H		; std::_Iosb<int>::out
CONST	ENDS
;	COMDAT ?in@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?in@?$_Iosb@H@std@@2W4_Openmode@12@B DD 01H		; std::_Iosb<int>::in
CONST	ENDS
;	COMDAT ?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B DD 010H	; std::_Iosb<int>::_Hardfail
CONST	ENDS
;	COMDAT ?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 04H		; std::_Iosb<int>::badbit
CONST	ENDS
;	COMDAT ?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 02H		; std::_Iosb<int>::failbit
CONST	ENDS
;	COMDAT ?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 01H		; std::_Iosb<int>::eofbit
CONST	ENDS
;	COMDAT ?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 00H		; std::_Iosb<int>::goodbit
CONST	ENDS
;	COMDAT ?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 03000H	; std::_Iosb<int>::floatfield
CONST	ENDS
;	COMDAT ?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0e00H	; std::_Iosb<int>::basefield
CONST	ENDS
;	COMDAT ?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01c0H	; std::_Iosb<int>::adjustfield
CONST	ENDS
;	COMDAT ?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08000H	; std::_Iosb<int>::_Stdio
CONST	ENDS
;	COMDAT ?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04000H	; std::_Iosb<int>::boolalpha
CONST	ENDS
;	COMDAT ?hexfloat@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?hexfloat@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 03000H	; std::_Iosb<int>::hexfloat
CONST	ENDS
;	COMDAT ?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02000H	; std::_Iosb<int>::fixed
CONST	ENDS
;	COMDAT ?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01000H	; std::_Iosb<int>::scientific
CONST	ENDS
;	COMDAT ?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0800H		; std::_Iosb<int>::hex
CONST	ENDS
;	COMDAT ?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0400H		; std::_Iosb<int>::oct
CONST	ENDS
;	COMDAT ?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0200H		; std::_Iosb<int>::dec
CONST	ENDS
;	COMDAT ?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0100H	; std::_Iosb<int>::internal
CONST	ENDS
;	COMDAT ?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 080H		; std::_Iosb<int>::right
CONST	ENDS
;	COMDAT ?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 040H		; std::_Iosb<int>::left
CONST	ENDS
;	COMDAT ?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 020H	; std::_Iosb<int>::showpos
CONST	ENDS
;	COMDAT ?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 010H	; std::_Iosb<int>::showpoint
CONST	ENDS
;	COMDAT ?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08H	; std::_Iosb<int>::showbase
CONST	ENDS
;	COMDAT ?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04H	; std::_Iosb<int>::uppercase
CONST	ENDS
;	COMDAT ?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02H	; std::_Iosb<int>::unitbuf
CONST	ENDS
;	COMDAT ?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01H		; std::_Iosb<int>::skipws
CONST	ENDS
;	COMDAT ?table_size@?$ctype@D@std@@2IB
CONST	SEGMENT
?table_size@?$ctype@D@std@@2IB DD 0100H			; std::ctype<char>::table_size
CONST	ENDS
;	COMDAT ?none@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?none@?$_Locbase@H@std@@2HB DD 00H			; std::_Locbase<int>::none
CONST	ENDS
;	COMDAT ?all@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?all@?$_Locbase@H@std@@2HB DD 03fH			; std::_Locbase<int>::all
CONST	ENDS
;	COMDAT ?messages@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?messages@?$_Locbase@H@std@@2HB DD 020H			; std::_Locbase<int>::messages
CONST	ENDS
;	COMDAT ?time@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?time@?$_Locbase@H@std@@2HB DD 010H			; std::_Locbase<int>::time
CONST	ENDS
;	COMDAT ?numeric@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?numeric@?$_Locbase@H@std@@2HB DD 08H			; std::_Locbase<int>::numeric
CONST	ENDS
;	COMDAT ?monetary@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?monetary@?$_Locbase@H@std@@2HB DD 04H			; std::_Locbase<int>::monetary
CONST	ENDS
;	COMDAT ?ctype@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?ctype@?$_Locbase@H@std@@2HB DD 02H			; std::_Locbase<int>::ctype
CONST	ENDS
;	COMDAT ?collate@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?collate@?$_Locbase@H@std@@2HB DD 01H			; std::_Locbase<int>::collate
CONST	ENDS
_DATA	SEGMENT
__bad_alloc_Message DD FLAT:??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
_DATA	ENDS
;	COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
CONST	SEGMENT
??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string'
CONST	ENDS
;	COMDAT ?_Value@?$_Is_swap_move@U_Swap_move_tag@std@@@std@@2_NB
CONST	SEGMENT
?_Value@?$_Is_swap_move@U_Swap_move_tag@std@@@std@@2_NB DB 01H ; std::_Is_swap_move<std::_Swap_move_tag>::_Value
CONST	ENDS
PUBLIC	?assign@?$char_traits@D@std@@SAXAADABD@Z	; std::char_traits<char>::assign
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
;	COMDAT ?assign@?$char_traits@D@std@@SAXAADABD@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
?assign@?$char_traits@D@std@@SAXAADABD@Z PROC		; std::char_traits<char>::assign, COMDAT

; 425  : 		_Left = _Right;

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	8a 08		 mov	 cl, BYTE PTR [eax]
  00006	8b 54 24 04	 mov	 edx, DWORD PTR __Left$[esp-4]
  0000a	88 0a		 mov	 BYTE PTR [edx], cl

; 426  : 		}

  0000c	c3		 ret	 0
?assign@?$char_traits@D@std@@SAXAADABD@Z ENDP		; std::char_traits<char>::assign
_TEXT	ENDS
PUBLIC	?length@?$char_traits@D@std@@SAIPBD@Z		; std::char_traits<char>::length
; Function compile flags: /Ogtpy
;	COMDAT ?length@?$char_traits@D@std@@SAIPBD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
?length@?$char_traits@D@std@@SAIPBD@Z PROC		; std::char_traits<char>::length, COMDAT

; 448  : //		_DEBUG_POINTER(_First);
; 449  : 		return (::strlen(_First));

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __First$[esp-4]
  00004	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL3@length:
  00007	8a 08		 mov	 cl, BYTE PTR [eax]
  00009	40		 inc	 eax
  0000a	84 c9		 test	 cl, cl
  0000c	75 f9		 jne	 SHORT $LL3@length
  0000e	2b c2		 sub	 eax, edx

; 450  : 		}

  00010	c3		 ret	 0
?length@?$char_traits@D@std@@SAIPBD@Z ENDP		; std::char_traits<char>::length
_TEXT	ENDS
PUBLIC	?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z	; std::char_traits<char>::_Copy_s
EXTRN	_memcpy_s:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size_in_bytes$ = 12					; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z PROC	; std::char_traits<char>::_Copy_s, COMDAT

; 463  : //		_DEBUG_POINTER(_First1);
; 464  : //		_DEBUG_POINTER(_First2);
; 465  : 		_CRT_SECURE_MEMCPY(_First1, _Size_in_bytes, _First2, _Count);

  00000	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 0c	 mov	 ecx, DWORD PTR __First2$[esp-4]
  00008	8b 54 24 08	 mov	 edx, DWORD PTR __Size_in_bytes$[esp-4]
  0000c	56		 push	 esi
  0000d	8b 74 24 08	 mov	 esi, DWORD PTR __First1$[esp]
  00011	50		 push	 eax
  00012	51		 push	 ecx
  00013	52		 push	 edx
  00014	56		 push	 esi
  00015	e8 00 00 00 00	 call	 _memcpy_s
  0001a	83 c4 10	 add	 esp, 16			; 00000010H

; 466  : 		return _First1;

  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi

; 467  : 		}

  00020	c3		 ret	 0
?_Copy_s@?$char_traits@D@std@@SAPADPADIPBDI@Z ENDP	; std::char_traits<char>::_Copy_s
_TEXT	ENDS
PUBLIC	?find@?$char_traits@D@std@@SAPBDPBDIABD@Z	; std::char_traits<char>::find
EXTRN	_memchr:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Ch$ = 16						; size = 4
?find@?$char_traits@D@std@@SAPBDPBDIABD@Z PROC		; std::char_traits<char>::find, COMDAT

; 472  : //		_DEBUG_POINTER(_First);
; 473  : 		return ((const _Elem *)::memchr(_First, _Ch, _Count));

  00000	8b 4c 24 0c	 mov	 ecx, DWORD PTR __Ch$[esp-4]
  00004	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00008	0f be 11	 movsx	 edx, BYTE PTR [ecx]
  0000b	50		 push	 eax
  0000c	8b 44 24 08	 mov	 eax, DWORD PTR __First$[esp]
  00010	52		 push	 edx
  00011	50		 push	 eax
  00012	e8 00 00 00 00	 call	 _memchr
  00017	83 c4 0c	 add	 esp, 12			; 0000000cH

; 474  : 		}

  0001a	c3		 ret	 0
?find@?$char_traits@D@std@@SAPBDPBDIABD@Z ENDP		; std::char_traits<char>::find
_TEXT	ENDS
PUBLIC	?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z	; std::char_traits<char>::_Move_s
EXTRN	_memmove_s:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size_in_bytes$ = 12					; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z PROC	; std::char_traits<char>::_Move_s, COMDAT

; 487  : //		_DEBUG_POINTER(_First1);
; 488  : //		_DEBUG_POINTER(_First2);
; 489  : 		_CRT_SECURE_MEMMOVE(_First1, _Size_in_bytes, _First2, _Count);

  00000	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 0c	 mov	 ecx, DWORD PTR __First2$[esp-4]
  00008	8b 54 24 08	 mov	 edx, DWORD PTR __Size_in_bytes$[esp-4]
  0000c	56		 push	 esi
  0000d	8b 74 24 08	 mov	 esi, DWORD PTR __First1$[esp]
  00011	50		 push	 eax
  00012	51		 push	 ecx
  00013	52		 push	 edx
  00014	56		 push	 esi
  00015	e8 00 00 00 00	 call	 _memmove_s
  0001a	83 c4 10	 add	 esp, 16			; 00000010H

; 490  : 		return _First1;

  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi

; 491  : 		}

  00020	c3		 ret	 0
?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z ENDP	; std::char_traits<char>::_Move_s
_TEXT	ENDS
PUBLIC	?assign@?$char_traits@D@std@@SAPADPADID@Z	; std::char_traits<char>::assign
EXTRN	_memset:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$char_traits@D@std@@SAPADPADID@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Ch$ = 16						; size = 1
?assign@?$char_traits@D@std@@SAPADPADID@Z PROC		; std::char_traits<char>::assign, COMDAT

; 495  : //		_DEBUG_POINTER(_First);
; 496  : 		return ((_Elem *)::memset(_First, _Ch, _Count));

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	0f be 4c 24 0c	 movsx	 ecx, BYTE PTR __Ch$[esp-4]
  00009	8b 54 24 04	 mov	 edx, DWORD PTR __First$[esp-4]
  0000d	50		 push	 eax
  0000e	51		 push	 ecx
  0000f	52		 push	 edx
  00010	e8 00 00 00 00	 call	 _memset
  00015	83 c4 0c	 add	 esp, 12			; 0000000cH

; 497  : 		}

  00018	c3		 ret	 0
?assign@?$char_traits@D@std@@SAPADPADID@Z ENDP		; std::char_traits<char>::assign
_TEXT	ENDS
PUBLIC	??0_Aux_cont@std@@QAE@QBV_Container_base_aux@1@@Z ; std::_Aux_cont::_Aux_cont
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??0_Aux_cont@std@@QAE@QBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
__Pcont$ = 8						; size = 4
??0_Aux_cont@std@@QAE@QBV_Container_base_aux@1@@Z PROC	; std::_Aux_cont::_Aux_cont, COMDAT
; _this$ = ecx

; 364  : 	explicit _Aux_cont(const _Container_base_aux * const _Pcont)

  00000	8b c1		 mov	 eax, ecx
  00002	8b 4c 24 04	 mov	 ecx, DWORD PTR __Pcont$[esp-4]
  00006	89 08		 mov	 DWORD PTR [eax], ecx
  00008	c2 04 00	 ret	 4
??0_Aux_cont@std@@QAE@QBV_Container_base_aux@1@@Z ENDP	; std::_Aux_cont::_Aux_cont
_TEXT	ENDS
PUBLIC	?_Getcont@_Aux_cont@std@@QBEPBV_Container_base_aux@2@XZ ; std::_Aux_cont::_Getcont
; Function compile flags: /Ogtpy
;	COMDAT ?_Getcont@_Aux_cont@std@@QBEPBV_Container_base_aux@2@XZ
_TEXT	SEGMENT
?_Getcont@_Aux_cont@std@@QBEPBV_Container_base_aux@2@XZ PROC ; std::_Aux_cont::_Getcont, COMDAT
; _this$ = ecx

; 369  : 		return _Mycontainer;

  00000	8b 01		 mov	 eax, DWORD PTR [ecx]

; 370  : 		}

  00002	c3		 ret	 0
?_Getcont@_Aux_cont@std@@QBEPBV_Container_base_aux@2@XZ ENDP ; std::_Aux_cont::_Getcont
_TEXT	ENDS
PUBLIC	??0_Container_base_aux@std@@QAE@XZ		; std::_Container_base_aux::_Container_base_aux
; Function compile flags: /Ogtpy
;	COMDAT ??0_Container_base_aux@std@@QAE@XZ
_TEXT	SEGMENT
??0_Container_base_aux@std@@QAE@XZ PROC			; std::_Container_base_aux::_Container_base_aux, COMDAT
; _this$ = ecx

; 379  : 	_Container_base_aux()

  00000	8b c1		 mov	 eax, ecx

; 380  : 		{
; 381  : 		// Do nothing: _Container_base_aux_alloc_real() will construct the aux object.
; 382  : 		}

  00002	c3		 ret	 0
??0_Container_base_aux@std@@QAE@XZ ENDP			; std::_Container_base_aux::_Container_base_aux
_TEXT	ENDS
PUBLIC	??1_Container_base_aux@std@@QAE@XZ		; std::_Container_base_aux::~_Container_base_aux
; Function compile flags: /Ogtpy
;	COMDAT ??1_Container_base_aux@std@@QAE@XZ
_TEXT	SEGMENT
??1_Container_base_aux@std@@QAE@XZ PROC			; std::_Container_base_aux::~_Container_base_aux, COMDAT
; _this$ = ecx

; 403  : 		// Do nothing: ~_Container_base_aux_alloc_real() previously destroyed the aux object.
; 404  : 		}

  00000	c3		 ret	 0
??1_Container_base_aux@std@@QAE@XZ ENDP			; std::_Container_base_aux::~_Container_base_aux
_TEXT	ENDS
PUBLIC	??0_Iterator_base_aux@std@@QAE@XZ		; std::_Iterator_base_aux::_Iterator_base_aux
; Function compile flags: /Ogtpy
;	COMDAT ??0_Iterator_base_aux@std@@QAE@XZ
_TEXT	SEGMENT
??0_Iterator_base_aux@std@@QAE@XZ PROC			; std::_Iterator_base_aux::_Iterator_base_aux, COMDAT
; _this$ = ecx

; 448  : 	_Iterator_base_aux()

  00000	8b c1		 mov	 eax, ecx
  00002	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00008	c3		 ret	 0
??0_Iterator_base_aux@std@@QAE@XZ ENDP			; std::_Iterator_base_aux::_Iterator_base_aux
_TEXT	ENDS
PUBLIC	?_Set_container@_Iterator_base_aux@std@@QAEXQBV_Container_base_aux@2@@Z ; std::_Iterator_base_aux::_Set_container
; Function compile flags: /Ogtpy
;	COMDAT ?_Set_container@_Iterator_base_aux@std@@QAEXQBV_Container_base_aux@2@@Z
_TEXT	SEGMENT
__Pcont$ = 8						; size = 4
?_Set_container@_Iterator_base_aux@std@@QAEXQBV_Container_base_aux@2@@Z PROC ; std::_Iterator_base_aux::_Set_container, COMDAT
; _this$ = ecx

; 453  : 		_Myaux = _Pcont->_Myownedaux;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Pcont$[esp-4]
  00004	8b 10		 mov	 edx, DWORD PTR [eax]
  00006	89 11		 mov	 DWORD PTR [ecx], edx

; 454  : 		}

  00008	c2 04 00	 ret	 4
?_Set_container@_Iterator_base_aux@std@@QAEXQBV_Container_base_aux@2@@Z ENDP ; std::_Iterator_base_aux::_Set_container
_TEXT	ENDS
PUBLIC	?_Getmycont@_Iterator_base_aux@std@@QBEPBV_Container_base_aux@2@XZ ; std::_Iterator_base_aux::_Getmycont
; Function compile flags: /Ogtpy
;	COMDAT ?_Getmycont@_Iterator_base_aux@std@@QBEPBV_Container_base_aux@2@XZ
_TEXT	SEGMENT
?_Getmycont@_Iterator_base_aux@std@@QBEPBV_Container_base_aux@2@XZ PROC ; std::_Iterator_base_aux::_Getmycont, COMDAT
; _this$ = ecx

; 458  : 		return _Myaux ? _Myaux->_Getcont() : 0;

  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	85 c0		 test	 eax, eax
  00004	74 03		 je	 SHORT $LN3@Getmycont
  00006	8b 00		 mov	 eax, DWORD PTR [eax]

; 459  : 		}

  00008	c3		 ret	 0
$LN3@Getmycont:

; 458  : 		return _Myaux ? _Myaux->_Getcont() : 0;

  00009	33 c0		 xor	 eax, eax

; 459  : 		}

  0000b	c3		 ret	 0
?_Getmycont@_Iterator_base_aux@std@@QBEPBV_Container_base_aux@2@XZ ENDP ; std::_Iterator_base_aux::_Getmycont
_TEXT	ENDS
PUBLIC	?_Same_container@_Iterator_base_aux@std@@QBE_NABV12@@Z ; std::_Iterator_base_aux::_Same_container
; Function compile flags: /Ogtpy
;	COMDAT ?_Same_container@_Iterator_base_aux@std@@QBE_NABV12@@Z
_TEXT	SEGMENT
__Other$ = 8						; size = 4
?_Same_container@_Iterator_base_aux@std@@QBE_NABV12@@Z PROC ; std::_Iterator_base_aux::_Same_container, COMDAT
; _this$ = ecx

; 463  : 		return _Myaux == _Other._Myaux;

  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	8b 54 24 04	 mov	 edx, DWORD PTR __Other$[esp-4]
  00006	33 c9		 xor	 ecx, ecx
  00008	3b 02		 cmp	 eax, DWORD PTR [edx]
  0000a	0f 94 c1	 sete	 cl
  0000d	8a c1		 mov	 al, cl

; 464  : 		}

  0000f	c2 04 00	 ret	 4
?_Same_container@_Iterator_base_aux@std@@QBE_NABV12@@Z ENDP ; std::_Iterator_base_aux::_Same_container
_TEXT	ENDS
PUBLIC	?_Has_container@_Iterator_base_aux@std@@QBE_NXZ	; std::_Iterator_base_aux::_Has_container
; Function compile flags: /Ogtpy
;	COMDAT ?_Has_container@_Iterator_base_aux@std@@QBE_NXZ
_TEXT	SEGMENT
?_Has_container@_Iterator_base_aux@std@@QBE_NXZ PROC	; std::_Iterator_base_aux::_Has_container, COMDAT
; _this$ = ecx

; 468  : 		return _Myaux != 0;

  00000	33 c0		 xor	 eax, eax
  00002	39 01		 cmp	 DWORD PTR [ecx], eax
  00004	0f 95 c0	 setne	 al

; 469  : 		}

  00007	c3		 ret	 0
?_Has_container@_Iterator_base_aux@std@@QBE_NXZ ENDP	; std::_Iterator_base_aux::_Has_container
_TEXT	ENDS
PUBLIC	??_7bad_alloc@std@@6B@				; std::bad_alloc::`vftable'
PUBLIC	??0bad_alloc@std@@QAE@PBD@Z			; std::bad_alloc::bad_alloc
PUBLIC	??_R4bad_alloc@std@@6B@				; std::bad_alloc::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVbad_alloc@std@@@8			; std::bad_alloc `RTTI Type Descriptor'
PUBLIC	??_R3bad_alloc@std@@8				; std::bad_alloc::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2bad_alloc@std@@8				; std::bad_alloc::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@bad_alloc@std@@8			; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@exception@std@@8			; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVexception@std@@@8			; std::exception `RTTI Type Descriptor'
PUBLIC	??_R3exception@std@@8				; std::exception::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2exception@std@@8				; std::exception::`RTTI Base Class Array'
EXTRN	??0exception@std@@QAE@ABQBD@Z:PROC		; std::exception::exception
EXTRN	??_7type_info@@6B@:QWORD			; type_info::`vftable'
EXTRN	??_Ebad_alloc@std@@UAEPAXI@Z:PROC		; std::bad_alloc::`vector deleting destructor'
EXTRN	?what@exception@std@@UBEPBDXZ:PROC		; std::exception::what
;	COMDAT ??_R2exception@std@@8
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\exception
rdata$r	SEGMENT
??_R2exception@std@@8 DD FLAT:??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3exception@std@@8
rdata$r	SEGMENT
??_R3exception@std@@8 DD 00H				; std::exception::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVexception@std@@@8
_DATA	SEGMENT
??_R0?AVexception@std@@@8 DD FLAT:??_7type_info@@6B@	; std::exception `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVexception@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@exception@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@exception@std@@8 DD FLAT:??_R0?AVexception@std@@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@bad_alloc@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@bad_alloc@std@@8 DD FLAT:??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3bad_alloc@std@@8
rdata$r	ENDS
;	COMDAT ??_R2bad_alloc@std@@8
rdata$r	SEGMENT
??_R2bad_alloc@std@@8 DD FLAT:??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R3bad_alloc@std@@8
rdata$r	SEGMENT
??_R3bad_alloc@std@@8 DD 00H				; std::bad_alloc::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2bad_alloc@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVbad_alloc@std@@@8
_DATA	SEGMENT
??_R0?AVbad_alloc@std@@@8 DD FLAT:??_7type_info@@6B@	; std::bad_alloc `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVbad_alloc@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4bad_alloc@std@@6B@
rdata$r	SEGMENT
??_R4bad_alloc@std@@6B@ DD 00H				; std::bad_alloc::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	FLAT:??_R3bad_alloc@std@@8
rdata$r	ENDS
;	COMDAT ??_7bad_alloc@std@@6B@
CONST	SEGMENT
??_7bad_alloc@std@@6B@ DD FLAT:??_R4bad_alloc@std@@6B@	; std::bad_alloc::`vftable'
	DD	FLAT:??_Ebad_alloc@std@@UAEPAXI@Z
	DD	FLAT:?what@exception@std@@UBEPBDXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@PBD@Z
_TEXT	SEGMENT
__Message$ = 8						; size = 4
??0bad_alloc@std@@QAE@PBD@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx

; 371  : 		{	// construct from message string

  00000	56		 push	 esi
  00001	8d 44 24 08	 lea	 eax, DWORD PTR __Message$[esp]
  00005	50		 push	 eax
  00006	8b f1		 mov	 esi, ecx
  00008	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABQBD@Z ; std::exception::exception
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@

; 372  : 		}

  00013	8b c6		 mov	 eax, esi
  00015	5e		 pop	 esi
  00016	c2 04 00	 ret	 4
??0bad_alloc@std@@QAE@PBD@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??1bad_alloc@std@@UAE@XZ			; std::bad_alloc::~bad_alloc
EXTRN	??1exception@std@@UAE@XZ:PROC			; std::exception::~exception
; Function compile flags: /Ogtpy
;	COMDAT ??1bad_alloc@std@@UAE@XZ
_TEXT	SEGMENT
??1bad_alloc@std@@UAE@XZ PROC				; std::bad_alloc::~bad_alloc, COMDAT
; _this$ = ecx

; 380  : 		{	// destroy the object

  00000	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET ??_7bad_alloc@std@@6B@

; 381  : 		}

  00006	e9 00 00 00 00	 jmp	 ??1exception@std@@UAE@XZ ; std::exception::~exception
??1bad_alloc@std@@UAE@XZ ENDP				; std::bad_alloc::~bad_alloc
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:PROC				; operator delete
; Function compile flags: /Ogtpy
;	COMDAT ??_Gbad_alloc@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gbad_alloc@std@@UAEPAXI@Z PROC			; std::bad_alloc::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
  00009	e8 00 00 00 00	 call	 ??1exception@std@@UAE@XZ ; std::exception::~exception
  0000e	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  00013	74 09		 je	 SHORT $LN6@scalar
  00015	56		 push	 esi
  00016	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0001b	83 c4 04	 add	 esp, 4
$LN6@scalar:
  0001e	8b c6		 mov	 eax, esi
  00020	5e		 pop	 esi
  00021	c2 04 00	 ret	 4
??_Gbad_alloc@std@@UAEPAXI@Z ENDP			; std::bad_alloc::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??2@YAPAXIPAX@Z					; operator new
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\new
;	COMDAT ??2@YAPAXIPAX@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__Where$ = 12						; size = 4
??2@YAPAXIPAX@Z PROC					; operator new, COMDAT

; 59   : 	return (_Where);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Where$[esp-4]

; 60   : 	}

  00004	c3		 ret	 0
??2@YAPAXIPAX@Z ENDP					; operator new
_TEXT	ENDS
PUBLIC	??3@YAXPAX0@Z					; operator delete
; Function compile flags: /Ogtpy
;	COMDAT ??3@YAXPAX0@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??3@YAXPAX0@Z PROC					; operator delete, COMDAT

; 64   : 	}

  00000	c3		 ret	 0
??3@YAXPAX0@Z ENDP					; operator delete
_TEXT	ENDS
PUBLIC	??_C@_03NGHAOOHL@etb?$AA@			; `string'
PUBLIC	__$ArrayPad$
PUBLIC	?CreateTempFileName@@YAPBDPBD@Z			; CreateTempFileName
EXTRN	__imp__GetTempFileNameA@16:PROC
EXTRN	__imp__GetTempPathA@8:PROC
EXTRN	___security_cookie:DWORD
EXTRN	@__security_check_cookie@4:PROC
;	COMDAT ?szTempName@?1??CreateTempFileName@@YAPBDPBD@Z@4PADA
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
_BSS	SEGMENT
?szTempName@?1??CreateTempFileName@@YAPBDPBD@Z@4PADA DB 0105H DUP (?) ; `CreateTempFileName'::`2'::szTempName
_BSS	ENDS
;	COMDAT ??_C@_03NGHAOOHL@etb?$AA@
CONST	SEGMENT
??_C@_03NGHAOOHL@etb?$AA@ DB 'etb', 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?CreateTempFileName@@YAPBDPBD@Z
_TEXT	SEGMENT
_szTempPath$ = -268					; size = 261
__$ArrayPad$ = -4					; size = 4
_c_pszPrefix$ = 8					; size = 4
?CreateTempFileName@@YAPBDPBD@Z PROC			; CreateTempFileName, COMDAT

; 14   : {

  00000	81 ec 0c 01 00
	00		 sub	 esp, 268		; 0000010cH
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 08 01
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+268], eax
  00014	56		 push	 esi
  00015	8b b4 24 14 01
	00 00		 mov	 esi, DWORD PTR _c_pszPrefix$[esp+268]

; 15   : 	char szTempPath[MAX_PATH + 1];
; 16   : 	static char szTempName[MAX_PATH + 1];
; 17   : 
; 18   : 	GetTempPath(MAX_PATH, szTempPath);

  0001c	8d 44 24 04	 lea	 eax, DWORD PTR _szTempPath$[esp+272]
  00020	50		 push	 eax
  00021	68 04 01 00 00	 push	 260			; 00000104H
  00026	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTempPathA@8

; 19   : 
; 20   : 	GetTempFileName(szTempPath,									// directory for temp files 
; 21   : 					c_pszPrefix ? c_pszPrefix : "etb",		    // temp file name prefix 
; 22   : 					c_pszPrefix ? true : false,					// create unique name 
; 23   : 					szTempName);								// buffer for name 

  0002c	8b c6		 mov	 eax, esi
  0002e	85 f6		 test	 esi, esi
  00030	75 05		 jne	 SHORT $LN4@CreateTemp
  00032	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_03NGHAOOHL@etb?$AA@
$LN4@CreateTemp:
  00037	33 c9		 xor	 ecx, ecx
  00039	85 f6		 test	 esi, esi
  0003b	0f 95 c1	 setne	 cl
  0003e	68 00 00 00 00	 push	 OFFSET ?szTempName@?1??CreateTempFileName@@YAPBDPBD@Z@4PADA
  00043	8d 54 24 08	 lea	 edx, DWORD PTR _szTempPath$[esp+276]
  00047	51		 push	 ecx
  00048	50		 push	 eax
  00049	52		 push	 edx
  0004a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTempFileNameA@16

; 24   : 
; 25   : 	return (szTempName);
; 26   : }

  00050	8b 8c 24 0c 01
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+272]
  00057	5e		 pop	 esi
  00058	33 cc		 xor	 ecx, esp
  0005a	b8 00 00 00 00	 mov	 eax, OFFSET ?szTempName@?1??CreateTempFileName@@YAPBDPBD@Z@4PADA
  0005f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00064	81 c4 0c 01 00
	00		 add	 esp, 268		; 0000010cH
  0006a	c3		 ret	 0
?CreateTempFileName@@YAPBDPBD@Z ENDP			; CreateTempFileName
_TEXT	ENDS
PUBLIC	?GetFileNameParts@@YAXPBDHPAD11@Z		; GetFileNameParts
; Function compile flags: /Ogtpy
;	COMDAT ?GetFileNameParts@@YAXPBDHPAD11@Z
_TEXT	SEGMENT
_c_szFile$ = 8						; size = 4
_len$ = 12						; size = 4
_pszPath$ = 16						; size = 4
_pszName$ = 20						; size = 4
_pszExt$ = 24						; size = 4
?GetFileNameParts@@YAXPBDHPAD11@Z PROC			; GetFileNameParts, COMDAT

; 100  : {

  00000	53		 push	 ebx

; 101  : 	assert(pszPath!=NULL);
; 102  : 	assert(pszName!=NULL);
; 103  : 	assert(pszExt!=NULL);
; 104  : 
; 105  : 	int ext=len;

  00001	8b 5c 24 0c	 mov	 ebx, DWORD PTR _len$[esp]
  00005	55		 push	 ebp

; 106  : 	int pos=len;
; 107  : 	while (pos>0)

  00006	8b 6c 24 0c	 mov	 ebp, DWORD PTR _c_szFile$[esp+4]
  0000a	56		 push	 esi
  0000b	57		 push	 edi
  0000c	8b f3		 mov	 esi, ebx
  0000e	8b c3		 mov	 eax, ebx
  00010	85 db		 test	 ebx, ebx
  00012	7e 33		 jle	 SHORT $LN39@GetFileNam
$LL23@GetFileNam:

; 108  : 	{
; 109  : 		--pos;
; 110  : 		char c=c_szFile[pos];

  00014	8a 4c 28 ff	 mov	 cl, BYTE PTR [eax+ebp-1]
  00018	48		 dec	 eax

; 111  : 		if (ext==len && c=='.') 

  00019	80 f9 2e	 cmp	 cl, 46			; 0000002eH
  0001c	74 10		 je	 SHORT $LN31@GetFileNam

; 114  : 			break;
; 115  : 		}
; 116  : 
; 117  : 		if (c=='/') break;

  0001e	80 f9 2f	 cmp	 cl, 47			; 0000002fH
  00021	74 0d		 je	 SHORT $LN32@GetFileNam

; 118  : 		else if (c=='\\') break;

  00023	80 f9 5c	 cmp	 cl, 92			; 0000005cH
  00026	74 08		 je	 SHORT $LN32@GetFileNam

; 106  : 	int pos=len;
; 107  : 	while (pos>0)

  00028	85 c0		 test	 eax, eax
  0002a	7f e8		 jg	 SHORT $LL23@GetFileNam

; 127  : 		else if (c=='\\') break;

  0002c	eb 19		 jmp	 SHORT $LN39@GetFileNam
$LN31@GetFileNam:

; 112  : 		{
; 113  : 			ext=pos;			

  0002e	8b f0		 mov	 esi, eax
$LN32@GetFileNam:

; 119  : 	}
; 120  : 
; 121  : 	while (pos>0)

  00030	85 c0		 test	 eax, eax
  00032	7e 15		 jle	 SHORT $LN40@GetFileNam
$LL17@GetFileNam:

; 122  : 	{
; 123  : 		--pos;
; 124  : 		char c=c_szFile[pos];

  00034	8a 4c 28 ff	 mov	 cl, BYTE PTR [eax+ebp-1]
  00038	48		 dec	 eax

; 125  : 
; 126  : 		if (c=='/') break;

  00039	80 f9 2f	 cmp	 cl, 47			; 0000002fH
  0003c	74 09		 je	 SHORT $LN39@GetFileNam

; 127  : 		else if (c=='\\') break;

  0003e	80 f9 5c	 cmp	 cl, 92			; 0000005cH
  00041	74 04		 je	 SHORT $LN39@GetFileNam

; 119  : 	}
; 120  : 
; 121  : 	while (pos>0)

  00043	85 c0		 test	 eax, eax
  00045	7f ed		 jg	 SHORT $LL17@GetFileNam
$LN39@GetFileNam:

; 128  : 	}
; 129  : 
; 130  : 	if (pos) 

  00047	85 c0		 test	 eax, eax
$LN40@GetFileNam:
  00049	74 2c		 je	 SHORT $LN12@GetFileNam

; 131  : 	{
; 132  : 		++pos;
; 133  : 		for (int i = 0; i < pos; ++i)

  0004b	8b 54 24 1c	 mov	 edx, DWORD PTR _pszPath$[esp+12]
  0004f	40		 inc	 eax
  00050	85 c0		 test	 eax, eax
  00052	7e 1f		 jle	 SHORT $LN9@GetFileNam
  00054	8b fd		 mov	 edi, ebp
  00056	8b ca		 mov	 ecx, edx
  00058	2b fa		 sub	 edi, edx
  0005a	8b e8		 mov	 ebp, eax
  0005c	8d 64 24 00	 npad	 4
$LL11@GetFileNam:

; 134  : 		{
; 135  : 			pszPath[i] = c_szFile[i];

  00060	8a 1c 0f	 mov	 bl, BYTE PTR [edi+ecx]
  00063	88 19		 mov	 BYTE PTR [ecx], bl
  00065	41		 inc	 ecx
  00066	83 ed 01	 sub	 ebp, 1
  00069	75 f5		 jne	 SHORT $LL11@GetFileNam
  0006b	8b 5c 24 18	 mov	 ebx, DWORD PTR _len$[esp+12]
  0006f	8b 6c 24 14	 mov	 ebp, DWORD PTR _c_szFile$[esp+12]
$LN9@GetFileNam:

; 136  : 		}
; 137  : 		pszPath[pos] = '\0';

  00073	c6 04 10 00	 mov	 BYTE PTR [eax+edx], 0
$LN12@GetFileNam:

; 138  : 	}
; 139  : 
; 140  : 	if (ext>pos)

  00077	3b f0		 cmp	 esi, eax
  00079	7e 28		 jle	 SHORT $LN8@GetFileNam

; 141  : 	{
; 142  : 		int count = 0;
; 143  : 		for (int i = pos; i < ext; ++i)

  0007b	8b 54 24 20	 mov	 edx, DWORD PTR _pszName$[esp+12]
  0007f	33 ff		 xor	 edi, edi
  00081	3b c6		 cmp	 eax, esi
  00083	7d 1a		 jge	 SHORT $LN5@GetFileNam
  00085	8b ca		 mov	 ecx, edx
  00087	8b fe		 mov	 edi, esi
  00089	2b c8		 sub	 ecx, eax
  0008b	2b f8		 sub	 edi, eax
  0008d	8d 49 00	 npad	 3
$LL7@GetFileNam:

; 144  : 		{
; 145  : 			pszName[count++] = c_szFile[i];

  00090	8a 1c 28	 mov	 bl, BYTE PTR [eax+ebp]
  00093	88 1c 01	 mov	 BYTE PTR [ecx+eax], bl
  00096	40		 inc	 eax
  00097	3b c6		 cmp	 eax, esi
  00099	7c f5		 jl	 SHORT $LL7@GetFileNam

; 141  : 	{
; 142  : 		int count = 0;
; 143  : 		for (int i = pos; i < ext; ++i)

  0009b	8b 5c 24 18	 mov	 ebx, DWORD PTR _len$[esp+12]
$LN5@GetFileNam:

; 146  : 		}
; 147  : 		pszName[count] = '\0';

  0009f	c6 04 17 00	 mov	 BYTE PTR [edi+edx], 0
$LN8@GetFileNam:

; 148  : 	}
; 149  : 
; 150  : 	++ext;		

  000a3	46		 inc	 esi

; 151  : 	if (len > ext)

  000a4	3b de		 cmp	 ebx, esi
  000a6	7e 29		 jle	 SHORT $LN4@GetFileNam

; 152  : 	{
; 153  : 		int count = 0;
; 154  : 		for (int i = ext; i < len; ++i)

  000a8	8b 54 24 24	 mov	 edx, DWORD PTR _pszExt$[esp+12]
  000ac	33 ff		 xor	 edi, edi
  000ae	3b f3		 cmp	 esi, ebx
  000b0	8b c6		 mov	 eax, esi
  000b2	7d 19		 jge	 SHORT $LN1@GetFileNam
  000b4	8b ca		 mov	 ecx, edx
  000b6	8b fb		 mov	 edi, ebx
  000b8	2b ce		 sub	 ecx, esi
  000ba	2b fe		 sub	 edi, esi
  000bc	8d 64 24 00	 npad	 4
$LL3@GetFileNam:

; 155  : 		{
; 156  : 			pszExt[count++] = c_szFile[i];

  000c0	8a 1c 28	 mov	 bl, BYTE PTR [eax+ebp]
  000c3	88 1c 01	 mov	 BYTE PTR [ecx+eax], bl
  000c6	40		 inc	 eax
  000c7	3b 44 24 18	 cmp	 eax, DWORD PTR _len$[esp+12]
  000cb	7c f3		 jl	 SHORT $LL3@GetFileNam
$LN1@GetFileNam:

; 157  : 		}
; 158  : 		pszExt[count] = '\0';

  000cd	c6 04 17 00	 mov	 BYTE PTR [edi+edx], 0
$LN4@GetFileNam:
  000d1	5f		 pop	 edi
  000d2	5e		 pop	 esi
  000d3	5d		 pop	 ebp
  000d4	5b		 pop	 ebx

; 159  : 	}
; 160  : }

  000d5	c3		 ret	 0
?GetFileNameParts@@YAXPBDHPAD11@Z ENDP			; GetFileNameParts
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?GetOldIndexingName@@YAXPADH@Z			; GetOldIndexingName
EXTRN	__ecvt:PROC
EXTRN	__fltused:DWORD
; Function compile flags: /Ogtpy
;	COMDAT ?GetOldIndexingName@@YAXPADH@Z
_TEXT	SEGMENT
_dec$ = -524						; size = 4
_sign$ = -520						; size = 4
_Temp$ = -516						; size = 512
__$ArrayPad$ = -4					; size = 4
_szName$ = 8						; size = 4
_Index$ = 12						; size = 4
?GetOldIndexingName@@YAXPADH@Z PROC			; GetOldIndexingName, COMDAT

; 163  : {

  00000	81 ec 0c 02 00
	00		 sub	 esp, 524		; 0000020cH
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 08 02
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+524], eax

; 164  : 	int dec, sign;
; 165  : 	char Temp[512];
; 166  : 	
; 167  : 	strcpy(Temp, _ecvt(Index, 256, &dec, &sign));

  00014	db 84 24 14 02
	00 00		 fild	 DWORD PTR _Index$[esp+520]
  0001b	56		 push	 esi
  0001c	57		 push	 edi
  0001d	8b bc 24 18 02
	00 00		 mov	 edi, DWORD PTR _szName$[esp+528]
  00024	8d 44 24 0c	 lea	 eax, DWORD PTR _sign$[esp+532]
  00028	50		 push	 eax
  00029	8d 4c 24 0c	 lea	 ecx, DWORD PTR _dec$[esp+536]
  0002d	51		 push	 ecx
  0002e	68 00 01 00 00	 push	 256			; 00000100H
  00033	83 ec 08	 sub	 esp, 8
  00036	dd 1c 24	 fstp	 QWORD PTR [esp]
  00039	e8 00 00 00 00	 call	 __ecvt
  0003e	83 c4 14	 add	 esp, 20			; 00000014H
  00041	8d 54 24 10	 lea	 edx, DWORD PTR _Temp$[esp+532]
$LL3@GetOldInde:
  00045	8a 08		 mov	 cl, BYTE PTR [eax]
  00047	88 0a		 mov	 BYTE PTR [edx], cl
  00049	40		 inc	 eax
  0004a	42		 inc	 edx
  0004b	84 c9		 test	 cl, cl
  0004d	75 f6		 jne	 SHORT $LL3@GetOldInde

; 168  : 	Temp[dec] = '\0';

  0004f	8b 54 24 08	 mov	 edx, DWORD PTR _dec$[esp+532]

; 169  : 	
; 170  : 	strcat(szName, Temp);

  00053	8d 44 24 10	 lea	 eax, DWORD PTR _Temp$[esp+532]
  00057	88 4c 14 10	 mov	 BYTE PTR _Temp$[esp+edx+532], cl
  0005b	8b d0		 mov	 edx, eax
  0005d	8d 49 00	 npad	 3
$LL5@GetOldInde:
  00060	8a 08		 mov	 cl, BYTE PTR [eax]
  00062	40		 inc	 eax
  00063	84 c9		 test	 cl, cl
  00065	75 f9		 jne	 SHORT $LL5@GetOldInde
  00067	2b c2		 sub	 eax, edx
  00069	4f		 dec	 edi
  0006a	8d 9b 00 00 00
	00		 npad	 6
$LL6@GetOldInde:
  00070	8a 4f 01	 mov	 cl, BYTE PTR [edi+1]
  00073	47		 inc	 edi
  00074	84 c9		 test	 cl, cl
  00076	75 f8		 jne	 SHORT $LL6@GetOldInde
  00078	8b c8		 mov	 ecx, eax
  0007a	c1 e9 02	 shr	 ecx, 2
  0007d	8b f2		 mov	 esi, edx
  0007f	f3 a5		 rep movsd
  00081	8b c8		 mov	 ecx, eax
  00083	83 e1 03	 and	 ecx, 3
  00086	f3 a4		 rep movsb

; 171  : }

  00088	8b 8c 24 10 02
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+532]
  0008f	5f		 pop	 edi
  00090	5e		 pop	 esi
  00091	33 cc		 xor	 ecx, esp
  00093	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00098	81 c4 0c 02 00
	00		 add	 esp, 524		; 0000020cH
  0009e	c3		 ret	 0
?GetOldIndexingName@@YAXPADH@Z ENDP			; GetOldIndexingName
_TEXT	ENDS
PUBLIC	??_C@_02GMHACPFF@?$CFu?$AA@			; `string'
PUBLIC	?GetIndexingName@@YAXPADK@Z			; GetIndexingName
EXTRN	_sprintf:PROC
;	COMDAT ??_C@_02GMHACPFF@?$CFu?$AA@
CONST	SEGMENT
??_C@_02GMHACPFF@?$CFu?$AA@ DB '%u', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetIndexingName@@YAXPADK@Z
_TEXT	SEGMENT
_szName$ = 8						; size = 4
_Index$ = 12						; size = 4
?GetIndexingName@@YAXPADK@Z PROC			; GetIndexingName, COMDAT

; 175  : 	sprintf(szName + strlen(szName), "%u", Index);

  00000	8b 54 24 04	 mov	 edx, DWORD PTR _szName$[esp-4]
  00004	8b c2		 mov	 eax, edx
  00006	56		 push	 esi
  00007	8d 70 01	 lea	 esi, DWORD PTR [eax+1]
  0000a	8d 9b 00 00 00
	00		 npad	 6
$LL3@GetIndexin:
  00010	8a 08		 mov	 cl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 c9		 test	 cl, cl
  00015	75 f9		 jne	 SHORT $LL3@GetIndexin
  00017	8b 4c 24 0c	 mov	 ecx, DWORD PTR _Index$[esp]
  0001b	51		 push	 ecx
  0001c	2b c6		 sub	 eax, esi
  0001e	03 c2		 add	 eax, edx
  00020	68 00 00 00 00	 push	 OFFSET ??_C@_02GMHACPFF@?$CFu?$AA@
  00025	50		 push	 eax
  00026	e8 00 00 00 00	 call	 _sprintf
  0002b	83 c4 0c	 add	 esp, 12			; 0000000cH
  0002e	5e		 pop	 esi

; 176  : }

  0002f	c3		 ret	 0
?GetIndexingName@@YAXPADK@Z ENDP			; GetIndexingName
_TEXT	ENDS
PUBLIC	?StringLowers@@YAXPAD@Z				; StringLowers
EXTRN	?korean_tolower@@YADD@Z:PROC			; korean_tolower
; Function compile flags: /Ogtpy
;	COMDAT ?StringLowers@@YAXPAD@Z
_TEXT	SEGMENT
tv67 = -4						; size = 4
_String$ = 8						; size = 4
?StringLowers@@YAXPAD@Z PROC				; StringLowers, COMDAT

; 274  : {

  00000	51		 push	 ecx
  00001	56		 push	 esi
  00002	57		 push	 edi

; 275  : 	for (DWORD i = 0; i < strlen(String); ++i)

  00003	8b 7c 24 10	 mov	 edi, DWORD PTR _String$[esp+8]
  00007	8b c7		 mov	 eax, edi
  00009	33 f6		 xor	 esi, esi
  0000b	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0000e	8b ff		 npad	 2
$LL8@StringLowe:
  00010	8a 08		 mov	 cl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 c9		 test	 cl, cl
  00015	75 f9		 jne	 SHORT $LL8@StringLowe
  00017	2b c2		 sub	 eax, edx
  00019	74 28		 je	 SHORT $LN1@StringLowe
  0001b	eb 03 8d 49 00	 npad	 5
$LL3@StringLowe:

; 276  : 	{
; 277  : 		String[i] = korean_tolower(String[i]);

  00020	0f b6 04 3e	 movzx	 eax, BYTE PTR [esi+edi]
  00024	50		 push	 eax
  00025	e8 00 00 00 00	 call	 ?korean_tolower@@YADD@Z	; korean_tolower
  0002a	88 04 3e	 mov	 BYTE PTR [esi+edi], al
  0002d	8b c7		 mov	 eax, edi
  0002f	83 c4 04	 add	 esp, 4
  00032	46		 inc	 esi
  00033	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL9@StringLowe:
  00036	8a 08		 mov	 cl, BYTE PTR [eax]
  00038	40		 inc	 eax
  00039	84 c9		 test	 cl, cl
  0003b	75 f9		 jne	 SHORT $LL9@StringLowe
  0003d	2b c2		 sub	 eax, edx
  0003f	3b f0		 cmp	 esi, eax
  00041	72 dd		 jb	 SHORT $LL3@StringLowe
$LN1@StringLowe:
  00043	5f		 pop	 edi
  00044	5e		 pop	 esi

; 278  : 	}
; 279  : }

  00045	59		 pop	 ecx
  00046	c3		 ret	 0
?StringLowers@@YAXPAD@Z ENDP				; StringLowers
_TEXT	ENDS
PUBLIC	?StringPath@@YAXPAD@Z				; StringPath
; Function compile flags: /Ogtpy
;	COMDAT ?StringPath@@YAXPAD@Z
_TEXT	SEGMENT
tv67 = -4						; size = 4
_pString$ = 8						; size = 4
?StringPath@@YAXPAD@Z PROC				; StringPath, COMDAT

; 293  : {

  00000	51		 push	 ecx
  00001	56		 push	 esi
  00002	57		 push	 edi

; 294  : 	for (DWORD i = 0; i < strlen(pString); ++i)

  00003	8b 7c 24 10	 mov	 edi, DWORD PTR _pString$[esp+8]
  00007	8b c7		 mov	 eax, edi
  00009	33 f6		 xor	 esi, esi
  0000b	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0000e	8b ff		 npad	 2
$LL10@StringPath:
  00010	8a 08		 mov	 cl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 c9		 test	 cl, cl
  00015	75 f9		 jne	 SHORT $LL10@StringPath
  00017	2b c2		 sub	 eax, edx
  00019	74 32		 je	 SHORT $LN3@StringPath
  0001b	eb 03 8d 49 00	 npad	 5
$LL5@StringPath:

; 295  : 	{
; 296  : 		if (pString[i] == '\\')

  00020	8a 04 3e	 mov	 al, BYTE PTR [esi+edi]
  00023	3c 5c		 cmp	 al, 92			; 0000005cH
  00025	75 06		 jne	 SHORT $LN2@StringPath

; 297  : 			pString[i] = '/';

  00027	c6 04 3e 2f	 mov	 BYTE PTR [esi+edi], 47	; 0000002fH

; 298  : 		else

  0002b	eb 0c		 jmp	 SHORT $LN4@StringPath
$LN2@StringPath:

; 299  : 			pString[i] = korean_tolower(pString[i]);

  0002d	50		 push	 eax
  0002e	e8 00 00 00 00	 call	 ?korean_tolower@@YADD@Z	; korean_tolower
  00033	83 c4 04	 add	 esp, 4
  00036	88 04 3e	 mov	 BYTE PTR [esi+edi], al
$LN4@StringPath:
  00039	8b c7		 mov	 eax, edi
  0003b	46		 inc	 esi
  0003c	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0003f	90		 npad	 1
$LL11@StringPath:
  00040	8a 08		 mov	 cl, BYTE PTR [eax]
  00042	40		 inc	 eax
  00043	84 c9		 test	 cl, cl
  00045	75 f9		 jne	 SHORT $LL11@StringPath
  00047	2b c2		 sub	 eax, edx
  00049	3b f0		 cmp	 esi, eax
  0004b	72 d3		 jb	 SHORT $LL5@StringPath
$LN3@StringPath:
  0004d	5f		 pop	 edi
  0004e	5e		 pop	 esi

; 300  : 	}
; 301  : }

  0004f	59		 pop	 ecx
  00050	c3		 ret	 0
?StringPath@@YAXPAD@Z ENDP				; StringPath
_TEXT	ENDS
PUBLIC	?StringPath@@YAXPBDPAD@Z			; StringPath
; Function compile flags: /Ogtpy
;	COMDAT ?StringPath@@YAXPBDPAD@Z
_TEXT	SEGMENT
tv67 = -4						; size = 4
_c_szSrc$ = 8						; size = 4
_szDest$ = 12						; size = 4
?StringPath@@YAXPBDPAD@Z PROC				; StringPath, COMDAT

; 304  : {

  00000	51		 push	 ecx
  00001	53		 push	 ebx

; 305  : 	for (DWORD i = 0; i < strlen(c_szSrc); ++i)

  00002	8b 5c 24 0c	 mov	 ebx, DWORD PTR _c_szSrc$[esp+4]
  00006	8b c3		 mov	 eax, ebx
  00008	57		 push	 edi
  00009	33 ff		 xor	 edi, edi
  0000b	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0000e	8b ff		 npad	 2
$LL10@StringPath@2:
  00010	8a 08		 mov	 cl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 c9		 test	 cl, cl
  00015	75 f9		 jne	 SHORT $LL10@StringPath@2
  00017	2b c2		 sub	 eax, edx
  00019	74 37		 je	 SHORT $LN3@StringPath@2
  0001b	55		 push	 ebp
  0001c	56		 push	 esi
  0001d	8b 74 24 1c	 mov	 esi, DWORD PTR _szDest$[esp+16]
  00021	8b eb		 mov	 ebp, ebx
  00023	2b ee		 sub	 ebp, esi
$LL5@StringPath@2:

; 306  : 	{
; 307  : 		if (c_szSrc[i] == '\\')

  00025	8a 04 2e	 mov	 al, BYTE PTR [esi+ebp]
  00028	3c 5c		 cmp	 al, 92			; 0000005cH
  0002a	75 05		 jne	 SHORT $LN2@StringPath@2

; 308  : 			szDest[i] = '/';

  0002c	c6 06 2f	 mov	 BYTE PTR [esi], 47	; 0000002fH

; 309  : 		else

  0002f	eb 0b		 jmp	 SHORT $LN4@StringPath@2
$LN2@StringPath@2:

; 310  : 			szDest[i] = korean_tolower(c_szSrc[i]);

  00031	50		 push	 eax
  00032	e8 00 00 00 00	 call	 ?korean_tolower@@YADD@Z	; korean_tolower
  00037	83 c4 04	 add	 esp, 4
  0003a	88 06		 mov	 BYTE PTR [esi], al
$LN4@StringPath@2:
  0003c	8b c3		 mov	 eax, ebx
  0003e	47		 inc	 edi
  0003f	46		 inc	 esi
  00040	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL11@StringPath@2:
  00043	8a 08		 mov	 cl, BYTE PTR [eax]
  00045	40		 inc	 eax
  00046	84 c9		 test	 cl, cl
  00048	75 f9		 jne	 SHORT $LL11@StringPath@2
  0004a	2b c2		 sub	 eax, edx
  0004c	3b f8		 cmp	 edi, eax
  0004e	72 d5		 jb	 SHORT $LL5@StringPath@2
  00050	5e		 pop	 esi
  00051	5d		 pop	 ebp
$LN3@StringPath@2:
  00052	5f		 pop	 edi
  00053	5b		 pop	 ebx

; 311  : 	}
; 312  : }

  00054	59		 pop	 ecx
  00055	c3		 ret	 0
?StringPath@@YAXPBDPAD@Z ENDP				; StringPath
_TEXT	ENDS
PUBLIC	??_C@_01EEMJAFIK@?6?$AA@			; `string'
PUBLIC	??_C@_02HAOIJKIC@?$CFc?$AA@			; `string'
PUBLIC	??_C@_01CLKCMJKC@?5?$AA@			; `string'
PUBLIC	??_C@_02MINBJDHL@?$HM?5?$AA@			; `string'
PUBLIC	??_C@_05CNDJFPDP@?$CF02x?5?$AA@			; `string'
PUBLIC	??_C@_03NDEAONJP@?5?5?5?$AA@			; `string'
PUBLIC	??_C@_0EE@CAMDODON@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@ ; `string'
PUBLIC	?PrintAsciiData@@YAXPBXH@Z			; PrintAsciiData
EXTRN	_isprint:PROC
EXTRN	_fprintf:PROC
EXTRN	___iob_func:PROC
;	COMDAT ??_C@_01EEMJAFIK@?6?$AA@
CONST	SEGMENT
??_C@_01EEMJAFIK@?6?$AA@ DB 0aH, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_02HAOIJKIC@?$CFc?$AA@
CONST	SEGMENT
??_C@_02HAOIJKIC@?$CFc?$AA@ DB '%c', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_01CLKCMJKC@?5?$AA@
CONST	SEGMENT
??_C@_01CLKCMJKC@?5?$AA@ DB ' ', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_02MINBJDHL@?$HM?5?$AA@
CONST	SEGMENT
??_C@_02MINBJDHL@?$HM?5?$AA@ DB '| ', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_05CNDJFPDP@?$CF02x?5?$AA@
CONST	SEGMENT
??_C@_05CNDJFPDP@?$CF02x?5?$AA@ DB '%02x ', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_03NDEAONJP@?5?5?5?$AA@
CONST	SEGMENT
??_C@_03NDEAONJP@?5?5?5?$AA@ DB '   ', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0EE@CAMDODON@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
CONST	SEGMENT
??_C@_0EE@CAMDODON@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@ DB '-'
	DB	'-------------------------------------------------------------'
	DB	'----', 0aH, 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?PrintAsciiData@@YAXPBXH@Z
_TEXT	SEGMENT
_j$ = 8							; size = 4
_void_data$ = 8						; size = 4
_bytes$ = 12						; size = 4
?PrintAsciiData@@YAXPBXH@Z PROC				; PrintAsciiData, COMDAT

; 331  : {

  00000	53		 push	 ebx
  00001	55		 push	 ebp

; 332  :     int                 i, j, k;
; 333  :     const unsigned char* p;
; 334  : 	const unsigned char* data;
; 335  : 
; 336  : 	data = (const unsigned char*) void_data;

  00002	8b 6c 24 0c	 mov	 ebp, DWORD PTR _void_data$[esp+4]
  00006	56		 push	 esi
  00007	57		 push	 edi

; 337  : 
; 338  :     fprintf(stdout, "------------------------------------------------------------------\n");

  00008	68 00 00 00 00	 push	 OFFSET ??_C@_0EE@CAMDODON@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
  0000d	e8 00 00 00 00	 call	 ___iob_func
  00012	83 c0 20	 add	 eax, 32			; 00000020H
  00015	50		 push	 eax
  00016	e8 00 00 00 00	 call	 _fprintf

; 339  :     j = bytes;

  0001b	8b 5c 24 20	 mov	 ebx, DWORD PTR _bytes$[esp+20]
  0001f	83 c4 08	 add	 esp, 8
  00022	89 5c 24 14	 mov	 DWORD PTR _j$[esp+12], ebx
  00026	eb 0c		 jmp	 SHORT $LN13@PrintAscii
  00028	eb 06 8d 9b 00
	00 00 00	 npad	 8
$LL27@PrintAscii:
  00030	8b 5c 24 14	 mov	 ebx, DWORD PTR _j$[esp+12]
$LN13@PrintAscii:

; 340  :     while (1)
; 341  :     {
; 342  :         k = j >= 16 ? 16 : j;

  00034	83 fb 10	 cmp	 ebx, 16			; 00000010H
  00037	7c 05		 jl	 SHORT $LN16@PrintAscii
  00039	bb 10 00 00 00	 mov	 ebx, 16			; 00000010H
$LN16@PrintAscii:

; 343  : 
; 344  :         p = data;
; 345  :         for (i = 0; i < 16; ++i)

  0003e	33 f6		 xor	 esi, esi
$LL11@PrintAscii:

; 346  :         {
; 347  :             if (i >= k)

  00040	3b f3		 cmp	 esi, ebx
  00042	7c 18		 jl	 SHORT $LN8@PrintAscii

; 348  :                 fprintf(stdout, "   ");

  00044	68 00 00 00 00	 push	 OFFSET ??_C@_03NDEAONJP@?5?5?5?$AA@
  00049	e8 00 00 00 00	 call	 ___iob_func
  0004e	83 c0 20	 add	 eax, 32			; 00000020H
  00051	50		 push	 eax
  00052	e8 00 00 00 00	 call	 _fprintf
  00057	83 c4 08	 add	 esp, 8

; 349  :             else

  0005a	eb 1b		 jmp	 SHORT $LN7@PrintAscii
$LN8@PrintAscii:

; 350  :                 fprintf(stdout, "%02x ", *p);

  0005c	0f b6 04 2e	 movzx	 eax, BYTE PTR [esi+ebp]
  00060	50		 push	 eax
  00061	68 00 00 00 00	 push	 OFFSET ??_C@_05CNDJFPDP@?$CF02x?5?$AA@
  00066	e8 00 00 00 00	 call	 ___iob_func
  0006b	83 c0 20	 add	 eax, 32			; 00000020H
  0006e	50		 push	 eax
  0006f	e8 00 00 00 00	 call	 _fprintf
  00074	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN7@PrintAscii:
  00077	46		 inc	 esi
  00078	83 fe 10	 cmp	 esi, 16			; 00000010H
  0007b	7c c3		 jl	 SHORT $LL11@PrintAscii

; 351  :             p++;
; 352  :         }
; 353  : 
; 354  :         fprintf(stdout, "| ");

  0007d	68 00 00 00 00	 push	 OFFSET ??_C@_02MINBJDHL@?$HM?5?$AA@
  00082	e8 00 00 00 00	 call	 ___iob_func
  00087	83 c0 20	 add	 eax, 32			; 00000020H
  0008a	50		 push	 eax
  0008b	e8 00 00 00 00	 call	 _fprintf
  00090	83 c4 08	 add	 esp, 8

; 355  : 
; 356  :         p = data;
; 357  :         for (i = 0; i < k; ++i)

  00093	33 ff		 xor	 edi, edi
  00095	8b f5		 mov	 esi, ebp
  00097	85 db		 test	 ebx, ebx
  00099	7e 5d		 jle	 SHORT $LN4@PrintAscii

; 358  :         {
; 359  :             if (i >= k)

  0009b	3b fb		 cmp	 edi, ebx
  0009d	7c 18		 jl	 SHORT $LN3@PrintAscii

; 360  :                 fprintf(stdout, " ");

  0009f	68 00 00 00 00	 push	 OFFSET ??_C@_01CLKCMJKC@?5?$AA@
  000a4	e8 00 00 00 00	 call	 ___iob_func
  000a9	83 c0 20	 add	 eax, 32			; 00000020H
  000ac	50		 push	 eax
  000ad	e8 00 00 00 00	 call	 _fprintf
  000b2	83 c4 08	 add	 esp, 8

; 361  :             else

  000b5	eb 3b		 jmp	 SHORT $LN2@PrintAscii
$LN3@PrintAscii:

; 362  :                 fprintf(stdout, "%c", ishprint(*p) ? *p : '.');

  000b7	8a 06		 mov	 al, BYTE PTR [esi]
  000b9	8a c8		 mov	 cl, al
  000bb	80 e1 e0	 and	 cl, 224			; 000000e0H
  000be	80 f9 90	 cmp	 cl, 144			; 00000090H
  000c1	77 15		 ja	 SHORT $LN18@PrintAscii
  000c3	0f b6 d0	 movzx	 edx, al
  000c6	52		 push	 edx
  000c7	e8 00 00 00 00	 call	 _isprint
  000cc	83 c4 04	 add	 esp, 4
  000cf	85 c0		 test	 eax, eax
  000d1	b8 2e 00 00 00	 mov	 eax, 46			; 0000002eH
  000d6	74 03		 je	 SHORT $LN19@PrintAscii
$LN18@PrintAscii:
  000d8	0f b6 06	 movzx	 eax, BYTE PTR [esi]
$LN19@PrintAscii:
  000db	50		 push	 eax
  000dc	68 00 00 00 00	 push	 OFFSET ??_C@_02HAOIJKIC@?$CFc?$AA@
  000e1	e8 00 00 00 00	 call	 ___iob_func
  000e6	83 c0 20	 add	 eax, 32			; 00000020H
  000e9	50		 push	 eax
  000ea	e8 00 00 00 00	 call	 _fprintf
  000ef	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN2@PrintAscii:
  000f2	47		 inc	 edi

; 363  :             p++;

  000f3	46		 inc	 esi
  000f4	3b fb		 cmp	 edi, ebx
  000f6	7c bf		 jl	 SHORT $LN3@PrintAscii
$LN4@PrintAscii:

; 364  :         }
; 365  : 
; 366  :         fprintf(stdout, "\n");

  000f8	68 00 00 00 00	 push	 OFFSET ??_C@_01EEMJAFIK@?6?$AA@
  000fd	e8 00 00 00 00	 call	 ___iob_func
  00102	83 c0 20	 add	 eax, 32			; 00000020H
  00105	50		 push	 eax
  00106	e8 00 00 00 00	 call	 _fprintf

; 367  : 
; 368  :         j       -= 16;

  0010b	8b 44 24 1c	 mov	 eax, DWORD PTR _j$[esp+20]
  0010f	83 e8 10	 sub	 eax, 16			; 00000010H
  00112	83 c4 08	 add	 esp, 8

; 369  :         data    += 16;

  00115	83 c5 10	 add	 ebp, 16			; 00000010H
  00118	89 44 24 14	 mov	 DWORD PTR _j$[esp+12], eax

; 370  : 
; 371  :         if (j <= 0)

  0011c	85 c0		 test	 eax, eax
  0011e	0f 8f 0c ff ff
	ff		 jg	 $LL27@PrintAscii

; 372  :             break;
; 373  :     }
; 374  : 
; 375  :     fprintf(stdout, "------------------------------------------------------------------\n");

  00124	68 00 00 00 00	 push	 OFFSET ??_C@_0EE@CAMDODON@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
  00129	e8 00 00 00 00	 call	 ___iob_func
  0012e	83 c0 20	 add	 eax, 32			; 00000020H
  00131	50		 push	 eax
  00132	e8 00 00 00 00	 call	 _fprintf
  00137	83 c4 08	 add	 esp, 8
  0013a	5f		 pop	 edi
  0013b	5e		 pop	 esi
  0013c	5d		 pop	 ebp
  0013d	5b		 pop	 ebx

; 376  : }

  0013e	c3		 ret	 0
?PrintAsciiData@@YAXPBXH@Z ENDP				; PrintAsciiData
_TEXT	ENDS
PUBLIC	?MIN@@YAHHH@Z					; MIN
; Function compile flags: /Ogtpy
;	COMDAT ?MIN@@YAHHH@Z
_TEXT	SEGMENT
_a$ = 8							; size = 4
_b$ = 12						; size = 4
?MIN@@YAHHH@Z PROC					; MIN, COMDAT

; 380  :     return a < b ? a : b;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _a$[esp-4]
  00004	8b 4c 24 08	 mov	 ecx, DWORD PTR _b$[esp-4]
  00008	3b c1		 cmp	 eax, ecx
  0000a	7c 02		 jl	 SHORT $LN4@MIN
  0000c	8b c1		 mov	 eax, ecx
$LN4@MIN:

; 381  : }   

  0000e	c3		 ret	 0
?MIN@@YAHHH@Z ENDP					; MIN
_TEXT	ENDS
PUBLIC	?MAX@@YAHHH@Z					; MAX
; Function compile flags: /Ogtpy
;	COMDAT ?MAX@@YAHHH@Z
_TEXT	SEGMENT
_a$ = 8							; size = 4
_b$ = 12						; size = 4
?MAX@@YAHHH@Z PROC					; MAX, COMDAT

; 385  :     return a > b ? a : b;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _a$[esp-4]
  00004	8b 4c 24 08	 mov	 ecx, DWORD PTR _b$[esp-4]
  00008	3b c1		 cmp	 eax, ecx
  0000a	7f 02		 jg	 SHORT $LN4@MAX
  0000c	8b c1		 mov	 eax, ecx
$LN4@MAX:

; 386  : }       

  0000e	c3		 ret	 0
?MAX@@YAHHH@Z ENDP					; MAX
_TEXT	ENDS
PUBLIC	?MINMAX@@YAHHHH@Z				; MINMAX
; Function compile flags: /Ogtpy
;	COMDAT ?MINMAX@@YAHHHH@Z
_TEXT	SEGMENT
_min$ = 8						; size = 4
_value$ = 12						; size = 4
_max$ = 16						; size = 4
?MINMAX@@YAHHHH@Z PROC					; MINMAX, COMDAT

; 390  : 	if (max < min)

  00000	8b 54 24 0c	 mov	 edx, DWORD PTR _max$[esp-4]
  00004	8b 44 24 04	 mov	 eax, DWORD PTR _min$[esp-4]
  00008	3b d0		 cmp	 edx, eax

; 391  : 		return MAX(min, value);

  0000a	8b 4c 24 08	 mov	 ecx, DWORD PTR _value$[esp-4]
  0000e	7d 0b		 jge	 SHORT $LN1@MINMAX
  00010	51		 push	 ecx
  00011	50		 push	 eax
  00012	e8 00 00 00 00	 call	 ?MAX@@YAHHH@Z		; MAX
  00017	83 c4 08	 add	 esp, 8

; 396  : }

  0001a	c3		 ret	 0
$LN1@MINMAX:

; 392  : 
; 393  :     register int tv;
; 394  :     tv = (min > value ? min : value);

  0001b	3b c1		 cmp	 eax, ecx
  0001d	7f 02		 jg	 SHORT $LN5@MINMAX
  0001f	8b c1		 mov	 eax, ecx
$LN5@MINMAX:

; 395  :     return (max < tv) ? max : tv;

  00021	3b d0		 cmp	 edx, eax
  00023	7d 02		 jge	 SHORT $LN2@MINMAX
  00025	8b c2		 mov	 eax, edx
$LN2@MINMAX:

; 396  : }

  00027	c3		 ret	 0
?MINMAX@@YAHHHH@Z ENDP					; MINMAX
_TEXT	ENDS
PUBLIC	?fMIN@@YAMMM@Z					; fMIN
; Function compile flags: /Ogtpy
;	COMDAT ?fMIN@@YAMMM@Z
_TEXT	SEGMENT
tv67 = 8						; size = 4
_a$ = 8							; size = 4
_b$ = 12						; size = 4
?fMIN@@YAMMM@Z PROC					; fMIN, COMDAT

; 400  :     return a < b ? a : b;

  00000	d9 44 24 04	 fld	 DWORD PTR _a$[esp-4]
  00004	d9 44 24 08	 fld	 DWORD PTR _b$[esp-4]
  00008	d8 d1		 fcom	 ST(1)
  0000a	df e0		 fnstsw	 ax
  0000c	f6 c4 41	 test	 ah, 65			; 00000041H
  0000f	75 0b		 jne	 SHORT $LN6@fMIN
  00011	dd d8		 fstp	 ST(0)
  00013	d9 5c 24 04	 fstp	 DWORD PTR tv67[esp-4]
  00017	d9 44 24 04	 fld	 DWORD PTR tv67[esp-4]

; 401  : }   

  0001b	c3		 ret	 0
$LN6@fMIN:

; 400  :     return a < b ? a : b;

  0001c	dd d9		 fstp	 ST(1)
  0001e	d9 5c 24 04	 fstp	 DWORD PTR tv67[esp-4]
  00022	d9 44 24 04	 fld	 DWORD PTR tv67[esp-4]

; 401  : }   

  00026	c3		 ret	 0
?fMIN@@YAMMM@Z ENDP					; fMIN
_TEXT	ENDS
PUBLIC	?fMAX@@YAMMM@Z					; fMAX
; Function compile flags: /Ogtpy
;	COMDAT ?fMAX@@YAMMM@Z
_TEXT	SEGMENT
tv67 = 8						; size = 4
_a$ = 8							; size = 4
_b$ = 12						; size = 4
?fMAX@@YAMMM@Z PROC					; fMAX, COMDAT

; 405  :     return a > b ? a : b;

  00000	d9 44 24 04	 fld	 DWORD PTR _a$[esp-4]
  00004	d9 44 24 08	 fld	 DWORD PTR _b$[esp-4]
  00008	d8 d1		 fcom	 ST(1)
  0000a	df e0		 fnstsw	 ax
  0000c	f6 c4 05	 test	 ah, 5
  0000f	7a 0b		 jp	 SHORT $LN6@fMAX
  00011	dd d8		 fstp	 ST(0)
  00013	d9 5c 24 04	 fstp	 DWORD PTR tv67[esp-4]
  00017	d9 44 24 04	 fld	 DWORD PTR tv67[esp-4]

; 406  : }       

  0001b	c3		 ret	 0
$LN6@fMAX:

; 405  :     return a > b ? a : b;

  0001c	dd d9		 fstp	 ST(1)
  0001e	d9 5c 24 04	 fstp	 DWORD PTR tv67[esp-4]
  00022	d9 44 24 04	 fld	 DWORD PTR tv67[esp-4]

; 406  : }       

  00026	c3		 ret	 0
?fMAX@@YAMMM@Z ENDP					; fMAX
_TEXT	ENDS
PUBLIC	?fMINMAX@@YAMMMM@Z				; fMINMAX
; Function compile flags: /Ogtpy
;	COMDAT ?fMINMAX@@YAMMMM@Z
_TEXT	SEGMENT
tv71 = 8						; size = 4
_tv$ = 8						; size = 4
_min$ = 8						; size = 4
_value$ = 12						; size = 4
_max$ = 16						; size = 4
?fMINMAX@@YAMMMM@Z PROC					; fMINMAX, COMDAT

; 410  :     register float tv;
; 411  : 	
; 412  :     tv = (min > value ? min : value);

  00000	d9 44 24 04	 fld	 DWORD PTR _min$[esp-4]
  00004	d9 44 24 08	 fld	 DWORD PTR _value$[esp-4]
  00008	d8 d1		 fcom	 ST(1)
  0000a	df e0		 fnstsw	 ax
  0000c	f6 c4 05	 test	 ah, 5
  0000f	7a 04		 jp	 SHORT $LN8@fMINMAX
  00011	dd d8		 fstp	 ST(0)
  00013	eb 02		 jmp	 SHORT $LN13@fMINMAX
$LN8@fMINMAX:
  00015	dd d9		 fstp	 ST(1)
$LN13@fMINMAX:
  00017	d9 5c 24 04	 fstp	 DWORD PTR _tv$[esp-4]

; 413  :     return (max < tv) ? max : tv;

  0001b	d9 44 24 0c	 fld	 DWORD PTR _max$[esp-4]
  0001f	d9 44 24 04	 fld	 DWORD PTR _tv$[esp-4]
  00023	d8 d1		 fcom	 ST(1)
  00025	df e0		 fnstsw	 ax
  00027	f6 c4 41	 test	 ah, 65			; 00000041H
  0002a	75 0b		 jne	 SHORT $LN11@fMINMAX
  0002c	dd d8		 fstp	 ST(0)
  0002e	d9 5c 24 04	 fstp	 DWORD PTR tv71[esp-4]
  00032	d9 44 24 04	 fld	 DWORD PTR tv71[esp-4]

; 414  : }

  00036	c3		 ret	 0
$LN11@fMINMAX:

; 413  :     return (max < tv) ? max : tv;

  00037	dd d9		 fstp	 ST(1)
  00039	d9 5c 24 04	 fstp	 DWORD PTR tv71[esp-4]
  0003d	d9 44 24 04	 fld	 DWORD PTR tv71[esp-4]

; 414  : }

  00041	c3		 ret	 0
?fMINMAX@@YAMMMM@Z ENDP					; fMINMAX
_TEXT	ENDS
PUBLIC	?IsFile@@YA_NPBD@Z				; IsFile
EXTRN	__access:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?IsFile@@YA_NPBD@Z
_TEXT	SEGMENT
_filename$ = 8						; size = 4
?IsFile@@YA_NPBD@Z PROC					; IsFile, COMDAT

; 418  : 	return _access(filename, 0) == 0 ? true : false;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _filename$[esp-4]
  00004	6a 00		 push	 0
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 __access
  0000c	83 c4 08	 add	 esp, 8
  0000f	85 c0		 test	 eax, eax
  00011	0f 94 c0	 sete	 al

; 419  : }

  00014	c3		 ret	 0
?IsFile@@YA_NPBD@Z ENDP					; IsFile
_TEXT	ENDS
PUBLIC	?IsGlobalFileName@@YA_NPBD@Z			; IsGlobalFileName
EXTRN	_strchr:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?IsGlobalFileName@@YA_NPBD@Z
_TEXT	SEGMENT
_c_szFileName$ = 8					; size = 4
?IsGlobalFileName@@YA_NPBD@Z PROC			; IsGlobalFileName, COMDAT

; 423  : 	return strchr(c_szFileName, ':') != NULL;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _c_szFileName$[esp-4]
  00004	6a 3a		 push	 58			; 0000003aH
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 _strchr
  0000c	83 c4 08	 add	 esp, 8
  0000f	f7 d8		 neg	 eax
  00011	1b c0		 sbb	 eax, eax
  00013	f7 d8		 neg	 eax

; 424  : }

  00015	c3		 ret	 0
?IsGlobalFileName@@YA_NPBD@Z ENDP			; IsGlobalFileName
_TEXT	ENDS
PUBLIC	?MyCreateDirectory@@YAXPBD@Z			; MyCreateDirectory
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	__imp__CreateDirectoryA@8:PROC
EXTRN	_strncpy:PROC
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
; Function compile flags: /Ogtpy
;	COMDAT ?MyCreateDirectory@@YAXPBD@Z
_TEXT	SEGMENT
_p$ = 8							; size = 4
_path$ = 8						; size = 4
?MyCreateDirectory@@YAXPBD@Z PROC			; MyCreateDirectory, COMDAT

; 427  : {

  00000	57		 push	 edi

; 428  : 	if (!path || !*path)

  00001	8b 7c 24 08	 mov	 edi, DWORD PTR _path$[esp]
  00005	85 ff		 test	 edi, edi
  00007	0f 84 9a 00 00
	00		 je	 $LN7@MyCreateDi
  0000d	80 3f 00	 cmp	 BYTE PTR [edi], 0
  00010	0f 84 91 00 00
	00		 je	 $LN7@MyCreateDi

; 429  : 		return;
; 430  : 
; 431  : 	char * dir;
; 432  : 	const char * p;
; 433  : 
; 434  : 	if (strlen(path) >= 3)

  00016	8b c7		 mov	 eax, edi
  00018	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0001b	eb 03 8d 49 00	 npad	 5
$LL13@MyCreateDi:
  00020	8a 08		 mov	 cl, BYTE PTR [eax]
  00022	40		 inc	 eax
  00023	84 c9		 test	 cl, cl
  00025	75 f9		 jne	 SHORT $LL13@MyCreateDi
  00027	2b c2		 sub	 eax, edx
  00029	83 f8 03	 cmp	 eax, 3
  0002c	72 09		 jb	 SHORT $LN5@MyCreateDi

; 435  : 	{
; 436  : 		if (*(path + 1) == ':')	// C:, D: °°Àº °æ¿ì¸¦ Ã¼Å©

  0002e	80 7f 01 3a	 cmp	 BYTE PTR [edi+1], 58	; 0000003aH
  00032	75 03		 jne	 SHORT $LN5@MyCreateDi

; 437  : 			path += 3;

  00034	83 c7 03	 add	 edi, 3
$LN5@MyCreateDi:

; 438  : 	}
; 439  : 
; 440  : 	p = path;
; 441  : 
; 442  : 	int len = strlen(path) + 1;

  00037	8b c7		 mov	 eax, edi
  00039	89 7c 24 08	 mov	 DWORD PTR _p$[esp], edi
  0003d	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL14@MyCreateDi:
  00040	8a 08		 mov	 cl, BYTE PTR [eax]
  00042	40		 inc	 eax
  00043	84 c9		 test	 cl, cl
  00045	75 f9		 jne	 SHORT $LL14@MyCreateDi
  00047	55		 push	 ebp
  00048	2b c2		 sub	 eax, edx
  0004a	8d 68 01	 lea	 ebp, DWORD PTR [eax+1]
  0004d	56		 push	 esi

; 443  : 	dir = new char[len];

  0004e	55		 push	 ebp
  0004f	e8 00 00 00 00	 call	 ??_U@YAPAXI@Z		; operator new[]
  00054	83 c4 04	 add	 esp, 4

; 444  : 
; 445  : 	while (*p)

  00057	80 3f 00	 cmp	 BYTE PTR [edi], 0
  0005a	8b f0		 mov	 esi, eax
  0005c	74 3e		 je	 SHORT $LN3@MyCreateDi
  0005e	53		 push	 ebx
  0005f	33 db		 xor	 ebx, ebx
$LL4@MyCreateDi:

; 446  : 	{
; 447  : 		if (*p == '/' || *p == '\\')

  00061	8b 44 24 14	 mov	 eax, DWORD PTR _p$[esp+12]
  00065	8a 00		 mov	 al, BYTE PTR [eax]
  00067	3c 2f		 cmp	 al, 47			; 0000002fH
  00069	74 04		 je	 SHORT $LN1@MyCreateDi
  0006b	3c 5c		 cmp	 al, 92			; 0000005cH
  0006d	75 1d		 jne	 SHORT $LN2@MyCreateDi
$LN1@MyCreateDi:

; 448  : 		{
; 449  : 			memset(dir, 0, len);

  0006f	55		 push	 ebp
  00070	6a 00		 push	 0
  00072	56		 push	 esi
  00073	e8 00 00 00 00	 call	 _memset

; 450  : 			strncpy(dir, path, p - path);

  00078	53		 push	 ebx
  00079	57		 push	 edi
  0007a	56		 push	 esi
  0007b	e8 00 00 00 00	 call	 _strncpy
  00080	83 c4 18	 add	 esp, 24			; 00000018H

; 451  : 			CreateDirectory(dir, NULL);

  00083	6a 00		 push	 0
  00085	56		 push	 esi
  00086	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateDirectoryA@8
$LN2@MyCreateDi:

; 452  : 		}
; 453  : 
; 454  : 		++p;

  0008c	8b 44 24 14	 mov	 eax, DWORD PTR _p$[esp+12]
  00090	40		 inc	 eax
  00091	43		 inc	 ebx
  00092	80 38 00	 cmp	 BYTE PTR [eax], 0
  00095	89 44 24 14	 mov	 DWORD PTR _p$[esp+12], eax
  00099	75 c6		 jne	 SHORT $LL4@MyCreateDi
  0009b	5b		 pop	 ebx
$LN3@MyCreateDi:

; 455  : 	}
; 456  : 
; 457  : 	delete [] dir;

  0009c	56		 push	 esi
  0009d	e8 00 00 00 00	 call	 ??_V@YAXPAX@Z		; operator delete[]
  000a2	83 c4 04	 add	 esp, 4
  000a5	5e		 pop	 esi
  000a6	5d		 pop	 ebp
$LN7@MyCreateDi:
  000a7	5f		 pop	 edi

; 458  : }

  000a8	c3		 ret	 0
?MyCreateDirectory@@YAXPBD@Z ENDP			; MyCreateDirectory
_TEXT	ENDS
PUBLIC	??_7CDirRemover@@6B@				; CDirRemover::`vftable'
PUBLIC	??0CDirRemover@@QAE@XZ				; CDirRemover::CDirRemover
PUBLIC	??_R4CDirRemover@@6B@				; CDirRemover::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVCDirRemover@@@8				; CDirRemover `RTTI Type Descriptor'
PUBLIC	??_R3CDirRemover@@8				; CDirRemover::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CDirRemover@@8				; CDirRemover::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CDirRemover@@8			; CDirRemover::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@CDir@@8				; CDir::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCDir@@@8				; CDir `RTTI Type Descriptor'
PUBLIC	??_R3CDir@@8					; CDir::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CDir@@8					; CDir::`RTTI Base Class Array'
PUBLIC	?OnFolder@CDirRemover@@UAE_NPBD00@Z		; CDirRemover::OnFolder
PUBLIC	?OnFile@CDirRemover@@UAE_NPBD0@Z		; CDirRemover::OnFile
EXTRN	??0CDir@@QAE@XZ:PROC				; CDir::CDir
EXTRN	??_ECDirRemover@@UAEPAXI@Z:PROC			; CDirRemover::`vector deleting destructor'
;	COMDAT ??_R2CDir@@8
rdata$r	SEGMENT
??_R2CDir@@8 DD	FLAT:??_R1A@?0A@EA@CDir@@8		; CDir::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3CDir@@8
rdata$r	SEGMENT
??_R3CDir@@8 DD	00H					; CDir::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2CDir@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCDir@@@8
_DATA	SEGMENT
??_R0?AVCDir@@@8 DD FLAT:??_7type_info@@6B@		; CDir `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCDir@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@CDir@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CDir@@8 DD FLAT:??_R0?AVCDir@@@8		; CDir::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CDir@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CDirRemover@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CDirRemover@@8 DD FLAT:??_R0?AVCDirRemover@@@8 ; CDirRemover::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CDirRemover@@8
rdata$r	ENDS
;	COMDAT ??_R2CDirRemover@@8
rdata$r	SEGMENT
??_R2CDirRemover@@8 DD FLAT:??_R1A@?0A@EA@CDirRemover@@8 ; CDirRemover::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CDir@@8
rdata$r	ENDS
;	COMDAT ??_R3CDirRemover@@8
rdata$r	SEGMENT
??_R3CDirRemover@@8 DD 00H				; CDirRemover::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2CDirRemover@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCDirRemover@@@8
_DATA	SEGMENT
??_R0?AVCDirRemover@@@8 DD FLAT:??_7type_info@@6B@	; CDirRemover `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCDirRemover@@', 00H
_DATA	ENDS
;	COMDAT ??_R4CDirRemover@@6B@
rdata$r	SEGMENT
??_R4CDirRemover@@6B@ DD 00H				; CDirRemover::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCDirRemover@@@8
	DD	FLAT:??_R3CDirRemover@@8
rdata$r	ENDS
;	COMDAT ??_7CDirRemover@@6B@
CONST	SEGMENT
??_7CDirRemover@@6B@ DD FLAT:??_R4CDirRemover@@6B@	; CDirRemover::`vftable'
	DD	FLAT:??_ECDirRemover@@UAEPAXI@Z
	DD	FLAT:?OnFolder@CDirRemover@@UAE_NPBD00@Z
	DD	FLAT:?OnFile@CDirRemover@@UAE_NPBD0@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0CDirRemover@@QAE@XZ
_TEXT	SEGMENT
??0CDirRemover@@QAE@XZ PROC				; CDirRemover::CDirRemover, COMDAT
; _this$ = ecx

; 463  : 		CDirRemover()

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??0CDir@@QAE@XZ		; CDir::CDir
  00008	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7CDirRemover@@6B@

; 464  : 		{
; 465  : 		}

  0000e	8b c6		 mov	 eax, esi
  00010	5e		 pop	 esi
  00011	c3		 ret	 0
??0CDirRemover@@QAE@XZ ENDP				; CDirRemover::CDirRemover
_TEXT	ENDS
PUBLIC	??1CDirRemover@@UAE@XZ				; CDirRemover::~CDirRemover
EXTRN	??1CDir@@UAE@XZ:PROC				; CDir::~CDir
; Function compile flags: /Ogtpy
;	COMDAT ??1CDirRemover@@UAE@XZ
_TEXT	SEGMENT
??1CDirRemover@@UAE@XZ PROC				; CDirRemover::~CDirRemover, COMDAT
; _this$ = ecx

; 467  : 		{

  00000	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET ??_7CDirRemover@@6B@

; 468  : 		}

  00006	e9 00 00 00 00	 jmp	 ??1CDir@@UAE@XZ		; CDir::~CDir
??1CDirRemover@@UAE@XZ ENDP				; CDirRemover::~CDirRemover
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GCDirRemover@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GCDirRemover@@UAEPAXI@Z PROC				; CDirRemover::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7CDirRemover@@6B@
  00009	e8 00 00 00 00	 call	 ??1CDir@@UAE@XZ		; CDir::~CDir
  0000e	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  00013	74 09		 je	 SHORT $LN7@scalar@2
  00015	56		 push	 esi
  00016	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0001b	83 c4 04	 add	 esp, 4
$LN7@scalar@2:
  0001e	8b c6		 mov	 eax, esi
  00020	5e		 pop	 esi
  00021	c2 04 00	 ret	 4
??_GCDirRemover@@UAEPAXI@Z ENDP				; CDirRemover::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?_getf@@YAPBDPBDZZ				; _getf
EXTRN	__vsnprintf:PROC
;	COMDAT ?szBuf@?1??_getf@@YAPBDPBDZZ@4PADA
_BSS	SEGMENT
?szBuf@?1??_getf@@YAPBDPBDZZ@4PADA DB 0100H DUP (?)	; `_getf'::`2'::szBuf
; Function compile flags: /Ogtpy
_BSS	ENDS
;	COMDAT ?_getf@@YAPBDPBDZZ
_TEXT	SEGMENT
_c_szFormat$ = 8					; size = 4
?_getf@@YAPBDPBDZZ PROC					; _getf, COMDAT

; 588  : 	static char szBuf[256];
; 589  : 
; 590  : 	va_list args;
; 591  : 	va_start(args, c_szFormat);
; 592  : 	_vsnprintf(szBuf, sizeof(szBuf), c_szFormat, args);

  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR _c_szFormat$[esp-4]
  00004	8d 44 24 08	 lea	 eax, DWORD PTR _c_szFormat$[esp]
  00008	50		 push	 eax
  00009	51		 push	 ecx
  0000a	68 00 01 00 00	 push	 256			; 00000100H
  0000f	68 00 00 00 00	 push	 OFFSET ?szBuf@?1??_getf@@YAPBDPBDZZ@4PADA
  00014	e8 00 00 00 00	 call	 __vsnprintf
  00019	83 c4 10	 add	 esp, 16			; 00000010H

; 593  : 	va_end(args);
; 594  : 
; 595  : 	return szBuf;

  0001c	b8 00 00 00 00	 mov	 eax, OFFSET ?szBuf@?1??_getf@@YAPBDPBDZZ@4PADA

; 596  : }

  00021	c3		 ret	 0
?_getf@@YAPBDPBDZZ ENDP					; _getf
_TEXT	ENDS
PUBLIC	?CommandLineToArgv@@YAPAPADPADPAH@Z		; CommandLineToArgv
EXTRN	__imp__GlobalAlloc@8:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?CommandLineToArgv@@YAPAPADPADPAH@Z
_TEXT	SEGMENT
_in_QM$ = -9						; size = 1
tv279 = -8						; size = 4
__argv$ = -4						; size = 4
_in_TEXT$ = 8						; size = 1
_CmdLine$ = 8						; size = 4
__argc$ = 12						; size = 4
?CommandLineToArgv@@YAPAPADPADPAH@Z PROC		; CommandLineToArgv, COMDAT

; 599  : {

  00000	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00003	53		 push	 ebx

; 600  : 	PCHAR* argv;
; 601  : 	PCHAR  _argv;
; 602  : 	ULONG   len;
; 603  : 	ULONG   argc;
; 604  : 	CHAR   a;
; 605  : 	ULONG   i, j;
; 606  : 
; 607  : 	BOOLEAN  in_QM;
; 608  : 	BOOLEAN  in_TEXT;
; 609  : 	BOOLEAN  in_SPACE;
; 610  : 
; 611  : 	len = strlen(CmdLine);

  00004	8b 5c 24 14	 mov	 ebx, DWORD PTR _CmdLine$[esp+12]
  00008	55		 push	 ebp
  00009	56		 push	 esi
  0000a	8b c3		 mov	 eax, ebx
  0000c	57		 push	 edi
  0000d	8d 70 01	 lea	 esi, DWORD PTR [eax+1]
$LL19@CommandLin:
  00010	8a 08		 mov	 cl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 c9		 test	 cl, cl
  00015	75 f9		 jne	 SHORT $LL19@CommandLin
  00017	2b c6		 sub	 eax, esi

; 612  : 	i = ((len+2)/2)*sizeof(PVOID) + sizeof(PVOID);

  00019	8d 70 02	 lea	 esi, DWORD PTR [eax+2]
  0001c	d1 ee		 shr	 esi, 1
  0001e	8d 34 b5 04 00
	00 00		 lea	 esi, DWORD PTR [esi*4+4]

; 613  : 
; 614  : 	argv = (PCHAR*)GlobalAlloc(GMEM_FIXED,
; 615  : 		i + (len+2)*sizeof(CHAR));

  00025	8d 44 06 02	 lea	 eax, DWORD PTR [esi+eax+2]
  00029	50		 push	 eax
  0002a	6a 00		 push	 0
  0002c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GlobalAlloc@8
  00032	8b f8		 mov	 edi, eax

; 616  : 
; 617  : 	_argv = (PCHAR)(((PUCHAR)argv)+i);

  00034	8d 14 37	 lea	 edx, DWORD PTR [edi+esi]

; 618  : 
; 619  : 	argc = 0;
; 620  : 	argv[argc] = _argv;

  00037	89 17		 mov	 DWORD PTR [edi], edx

; 621  : 	in_QM = FALSE;
; 622  : 	in_TEXT = FALSE;
; 623  : 	in_SPACE = TRUE;
; 624  : 	i = 0;
; 625  : 	j = 0;
; 626  : 
; 627  : 	while( a = CmdLine[i] ) {

  00039	8a 0b		 mov	 cl, BYTE PTR [ebx]
  0003b	33 ed		 xor	 ebp, ebp
  0003d	33 f6		 xor	 esi, esi
  0003f	89 54 24 18	 mov	 DWORD PTR __argv$[esp+28], edx
  00043	c6 44 24 13 00	 mov	 BYTE PTR _in_QM$[esp+28], 0
  00048	c6 44 24 20 00	 mov	 BYTE PTR _in_TEXT$[esp+24], 0
  0004d	b0 01		 mov	 al, 1
  0004f	84 c9		 test	 cl, cl
  00051	0f 84 92 00 00
	00		 je	 $LN13@CommandLin

; 600  : 	PCHAR* argv;
; 601  : 	PCHAR  _argv;
; 602  : 	ULONG   len;
; 603  : 	ULONG   argc;
; 604  : 	CHAR   a;
; 605  : 	ULONG   i, j;
; 606  : 
; 607  : 	BOOLEAN  in_QM;
; 608  : 	BOOLEAN  in_TEXT;
; 609  : 	BOOLEAN  in_SPACE;
; 610  : 
; 611  : 	len = strlen(CmdLine);

  00057	89 5c 24 14	 mov	 DWORD PTR tv279[esp+28], ebx
  0005b	eb 03 8d 49 00	 npad	 5
$LL14@CommandLin:

; 628  : 		if(in_QM) {

  00060	80 7c 24 13 00	 cmp	 BYTE PTR _in_QM$[esp+28], 0
  00065	74 12		 je	 SHORT $LN12@CommandLin

; 629  : 			if(a == '\"') {

  00067	80 f9 22	 cmp	 cl, 34			; 00000022H
  0006a	75 07		 jne	 SHORT $LN11@CommandLin

; 630  : 				in_QM = FALSE;

  0006c	c6 44 24 13 00	 mov	 BYTE PTR _in_QM$[esp+28], 0

; 631  : 			} else {

  00071	eb 5f		 jmp	 SHORT $LN7@CommandLin
$LN11@CommandLin:

; 632  : 				_argv[j] = a;

  00073	88 0a		 mov	 BYTE PTR [edx], cl

; 633  : 				j++;

  00075	46		 inc	 esi
  00076	42		 inc	 edx

; 634  : 			}
; 635  : 		} else {

  00077	eb 59		 jmp	 SHORT $LN7@CommandLin
$LN12@CommandLin:

; 636  : 			switch(a) {

  00079	0f be d9	 movsx	 ebx, cl
  0007c	83 c3 f7	 add	 ebx, -9			; fffffff7H
  0007f	83 fb 19	 cmp	 ebx, 25			; 00000019H
  00082	77 3b		 ja	 SHORT $LN2@CommandLin
  00084	0f b6 9b 00 00
	00 00		 movzx	 ebx, BYTE PTR $LN20@CommandLin[ebx]
  0008b	ff 24 9d 00 00
	00 00		 jmp	 DWORD PTR $LN23@CommandLin[ebx*4]
$LN6@CommandLin:

; 637  : 				case '\"':
; 638  : 					in_QM = TRUE;

  00092	b9 01 00 00 00	 mov	 ecx, 1
  00097	88 4c 24 13	 mov	 BYTE PTR _in_QM$[esp+28], cl

; 639  : 					in_TEXT = TRUE;

  0009b	88 4c 24 20	 mov	 BYTE PTR _in_TEXT$[esp+24], cl

; 640  : 					if(in_SPACE) {

  0009f	84 c0		 test	 al, al
  000a1	74 2d		 je	 SHORT $LN5@CommandLin

; 641  : 						argv[argc] = _argv+j;

  000a3	89 14 af	 mov	 DWORD PTR [edi+ebp*4], edx

; 642  : 						argc++;

  000a6	03 e9		 add	 ebp, ecx

; 643  : 					}
; 644  : 					in_SPACE = FALSE;
; 645  : 					break;

  000a8	eb 26		 jmp	 SHORT $LN5@CommandLin
$LN4@CommandLin:

; 646  : 				case ' ':
; 647  : 				case '\t':
; 648  : 				case '\n':
; 649  : 				case '\r':
; 650  : 					if(in_TEXT) {

  000aa	80 7c 24 20 00	 cmp	 BYTE PTR _in_TEXT$[esp+24], 0
  000af	74 05		 je	 SHORT $LN21@CommandLin

; 651  : 						_argv[j] = '\0';

  000b1	c6 02 00	 mov	 BYTE PTR [edx], 0

; 652  : 						j++;

  000b4	46		 inc	 esi
  000b5	42		 inc	 edx
$LN21@CommandLin:

; 653  : 					}
; 654  : 					in_TEXT = FALSE;

  000b6	c6 44 24 20 00	 mov	 BYTE PTR _in_TEXT$[esp+24], 0

; 655  : 					in_SPACE = TRUE;

  000bb	b0 01		 mov	 al, 1

; 656  : 					break;

  000bd	eb 13		 jmp	 SHORT $LN7@CommandLin
$LN2@CommandLin:

; 657  : 				default:
; 658  : 					in_TEXT = TRUE;

  000bf	c6 44 24 20 01	 mov	 BYTE PTR _in_TEXT$[esp+24], 1

; 659  : 					if(in_SPACE) {

  000c4	84 c0		 test	 al, al
  000c6	74 04		 je	 SHORT $LN22@CommandLin

; 660  : 						argv[argc] = _argv+j;

  000c8	89 14 af	 mov	 DWORD PTR [edi+ebp*4], edx

; 661  : 						argc++;

  000cb	45		 inc	 ebp
$LN22@CommandLin:

; 662  : 					}
; 663  : 					_argv[j] = a;

  000cc	88 0a		 mov	 BYTE PTR [edx], cl

; 664  : 					j++;

  000ce	46		 inc	 esi
  000cf	42		 inc	 edx
$LN5@CommandLin:

; 665  : 					in_SPACE = FALSE;

  000d0	32 c0		 xor	 al, al
$LN7@CommandLin:

; 666  : 					break;
; 667  : 			}
; 668  : 		}
; 669  : 		i++;

  000d2	8b 4c 24 14	 mov	 ecx, DWORD PTR tv279[esp+28]
  000d6	41		 inc	 ecx
  000d7	89 4c 24 14	 mov	 DWORD PTR tv279[esp+28], ecx
  000db	8a 09		 mov	 cl, BYTE PTR [ecx]
  000dd	84 c9		 test	 cl, cl
  000df	0f 85 7b ff ff
	ff		 jne	 $LL14@CommandLin

; 621  : 	in_QM = FALSE;
; 622  : 	in_TEXT = FALSE;
; 623  : 	in_SPACE = TRUE;
; 624  : 	i = 0;
; 625  : 	j = 0;
; 626  : 
; 627  : 	while( a = CmdLine[i] ) {

  000e5	8b 54 24 18	 mov	 edx, DWORD PTR __argv$[esp+28]
$LN13@CommandLin:

; 670  : 	}
; 671  : 	_argv[j] = '\0';
; 672  : 	argv[argc] = NULL;
; 673  : 
; 674  : 	(*_argc) = argc;

  000e9	8b 4c 24 24	 mov	 ecx, DWORD PTR __argc$[esp+24]
  000ed	c6 04 16 00	 mov	 BYTE PTR [esi+edx], 0
  000f1	c7 04 af 00 00
	00 00		 mov	 DWORD PTR [edi+ebp*4], 0

; 675  : 	return argv;

  000f8	8b c7		 mov	 eax, edi
  000fa	5f		 pop	 edi
  000fb	5e		 pop	 esi
  000fc	89 29		 mov	 DWORD PTR [ecx], ebp
  000fe	5d		 pop	 ebp
  000ff	5b		 pop	 ebx

; 676  : }

  00100	83 c4 0c	 add	 esp, 12			; 0000000cH
  00103	c3		 ret	 0
$LN23@CommandLin:
  00104	00 00 00 00	 DD	 $LN4@CommandLin
  00108	00 00 00 00	 DD	 $LN6@CommandLin
  0010c	00 00 00 00	 DD	 $LN2@CommandLin
$LN20@CommandLin:
  00110	00		 DB	 0
  00111	00		 DB	 0
  00112	02		 DB	 2
  00113	02		 DB	 2
  00114	00		 DB	 0
  00115	02		 DB	 2
  00116	02		 DB	 2
  00117	02		 DB	 2
  00118	02		 DB	 2
  00119	02		 DB	 2
  0011a	02		 DB	 2
  0011b	02		 DB	 2
  0011c	02		 DB	 2
  0011d	02		 DB	 2
  0011e	02		 DB	 2
  0011f	02		 DB	 2
  00120	02		 DB	 2
  00121	02		 DB	 2
  00122	02		 DB	 2
  00123	02		 DB	 2
  00124	02		 DB	 2
  00125	02		 DB	 2
  00126	02		 DB	 2
  00127	00		 DB	 0
  00128	02		 DB	 2
  00129	01		 DB	 1
?CommandLineToArgv@@YAPAPADPADPAH@Z ENDP		; CommandLineToArgv
_TEXT	ENDS
PUBLIC	?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::length
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT
?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::length, COMDAT
; _this$ = ecx

; 1661 : 		return (_Mysize);

  00000	8b 41 14	 mov	 eax, DWORD PTR [ecx+20]

; 1662 : 		}

  00003	c3		 ret	 0
?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::length
_TEXT	ENDS
PUBLIC	?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size
; Function compile flags: /Ogtpy
;	COMDAT ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT
?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size, COMDAT
; _this$ = ecx

; 1666 : 		return (_Mysize);

  00000	8b 41 14	 mov	 eax, DWORD PTR [ecx+20]

; 1667 : 		}

  00003	c3		 ret	 0
?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size
_TEXT	ENDS
PUBLIC	?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
; Function compile flags: /Ogtpy
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr, COMDAT
; _this$ = ecx

; 2170 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

  00000	83 79 18 10	 cmp	 DWORD PTR [ecx+24], 16	; 00000010H
  00004	72 04		 jb	 SHORT $LN3@Myptr
  00006	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]

; 2171 : 		}

  00009	c3		 ret	 0
$LN3@Myptr:

; 2170 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

  0000a	8d 41 04	 lea	 eax, DWORD PTR [ecx+4]

; 2171 : 		}

  0000d	c3		 ret	 0
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
_TEXT	ENDS
PUBLIC	?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
; Function compile flags: /Ogtpy
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ
_TEXT	SEGMENT
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr, COMDAT
; _this$ = ecx

; 2175 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

  00000	83 79 18 10	 cmp	 DWORD PTR [ecx+24], 16	; 00000010H
  00004	72 04		 jb	 SHORT $LN3@Myptr@2
  00006	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]

; 2176 : 		}

  00009	c3		 ret	 0
$LN3@Myptr@2:

; 2175 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

  0000a	8d 41 04	 lea	 eax, DWORD PTR [ecx+4]

; 2176 : 		}

  0000d	c3		 ret	 0
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 119  : 	allocator() _THROW0()

  00000	8b c1		 mov	 eax, ecx

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

  00002	c3		 ret	 0
??0?$allocator@D@std@@QAE@XZ ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@XZ ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
;	COMDAT ??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@XZ PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT
; _this$ = ecx

; 119  : 	allocator() _THROW0()

  00000	8b c1		 mov	 eax, ecx

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

  00002	c3		 ret	 0
??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@XZ ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	?deallocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::deallocate
; Function compile flags: /Ogtpy
;	COMDAT ?deallocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::deallocate, COMDAT
; _this$ = ecx

; 140  : 		::operator delete(_Ptr);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Ptr$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0000a	59		 pop	 ecx

; 141  : 		}

  0000b	c2 08 00	 ret	 8
?deallocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::deallocate
_TEXT	ENDS
PUBLIC	??D?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*
EXTRN	__invalid_parameter_noinfo:PROC
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??D?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ
_TEXT	SEGMENT
??D?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ PROC ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*, COMDAT
; _this$ = ecx

; 136  : 			{	// return designated object

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 137  : 			size_type _Block = _Myoff / _DEQUESIZ;
; 138  : 			size_type _Off = _Myoff & (_DEQUESIZ - 1);	// assume power of 2
; 139  : 			_SCL_SECURE_VALIDATE(this->_Has_container());

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	57		 push	 edi
  00006	8b 7e 04	 mov	 edi, DWORD PTR [esi+4]
  00009	85 c0		 test	 eax, eax
  0000b	75 0b		 jne	 SHORT $LN44@operator
  0000d	e8 00 00 00 00	 call	 __invalid_parameter_noinfo

; 140  : 			_SCL_SECURE_VALIDATE_RANGE(_Myoff < ((_Mydeque *)(this->_Getmycont()))->_Myoff + ((_Mydeque *)(this->_Getmycont()))->_Mysize);

  00012	8b 06		 mov	 eax, DWORD PTR [esi]
  00014	85 c0		 test	 eax, eax
  00016	74 04		 je	 SHORT $LN16@operator
$LN44@operator:
  00018	8b 08		 mov	 ecx, DWORD PTR [eax]
  0001a	eb 02		 jmp	 SHORT $LN17@operator
$LN16@operator:
  0001c	33 c9		 xor	 ecx, ecx
$LN17@operator:
  0001e	85 c0		 test	 eax, eax
  00020	74 04		 je	 SHORT $LN22@operator
  00022	8b 00		 mov	 eax, DWORD PTR [eax]
  00024	eb 02		 jmp	 SHORT $LN23@operator
$LN22@operator:
  00026	33 c0		 xor	 eax, eax
$LN23@operator:
  00028	8b 40 1c	 mov	 eax, DWORD PTR [eax+28]
  0002b	03 41 18	 add	 eax, DWORD PTR [ecx+24]
  0002e	39 46 04	 cmp	 DWORD PTR [esi+4], eax
  00031	72 05		 jb	 SHORT $LN4@operator
  00033	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN4@operator:

; 141  : 			if (static_cast<const _Mydeque *>(this->_Getmycont())->_Mapsize <= _Block)

  00038	8b 36		 mov	 esi, DWORD PTR [esi]
  0003a	85 f6		 test	 esi, esi
  0003c	74 04		 je	 SHORT $LN28@operator
  0003e	8b 06		 mov	 eax, DWORD PTR [esi]
  00040	eb 02		 jmp	 SHORT $LN29@operator
$LN28@operator:
  00042	33 c0		 xor	 eax, eax
$LN29@operator:
  00044	39 78 14	 cmp	 DWORD PTR [eax+20], edi
  00047	77 0d		 ja	 SHORT $LN1@operator

; 142  : 				_Block -= static_cast<const _Mydeque *>(this->_Getmycont())->_Mapsize;

  00049	85 f6		 test	 esi, esi
  0004b	74 04		 je	 SHORT $LN34@operator
  0004d	8b 06		 mov	 eax, DWORD PTR [esi]
  0004f	eb 02		 jmp	 SHORT $LN35@operator
$LN34@operator:
  00051	33 c0		 xor	 eax, eax
$LN35@operator:
  00053	2b 78 14	 sub	 edi, DWORD PTR [eax+20]
$LN1@operator:

; 143  : 			return ((static_cast<const _Mydeque *>(this->_Getmycont())->_Map)[_Block][_Off]);

  00056	85 f6		 test	 esi, esi
  00058	74 0b		 je	 SHORT $LN40@operator
  0005a	8b 36		 mov	 esi, DWORD PTR [esi]
  0005c	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  0005f	8b 04 b9	 mov	 eax, DWORD PTR [ecx+edi*4]
  00062	5f		 pop	 edi
  00063	5e		 pop	 esi

; 144  : 			}

  00064	c3		 ret	 0

; 143  : 			return ((static_cast<const _Mydeque *>(this->_Getmycont())->_Map)[_Block][_Off]);

$LN40@operator:
  00065	33 c0		 xor	 eax, eax
  00067	8b 50 10	 mov	 edx, DWORD PTR [eax+16]
  0006a	8b 04 ba	 mov	 eax, DWORD PTR [edx+edi*4]
  0006d	5f		 pop	 edi
  0006e	5e		 pop	 esi

; 144  : 			}

  0006f	c3		 ret	 0
??D?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ ENDP ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*
_TEXT	ENDS
PUBLIC	??E?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator++
; Function compile flags: /Ogtpy
;	COMDAT ??E?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ
_TEXT	SEGMENT
??E?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ PROC ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator++, COMDAT
; _this$ = ecx

; 153  : 		{	// preincrement

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 154  : 		_SCL_SECURE_TRAITS_VALIDATE(this->_Has_container());

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	85 c0		 test	 eax, eax
  00007	75 0b		 jne	 SHORT $LN27@operator@2
  00009	e8 00 00 00 00	 call	 __invalid_parameter_noinfo

; 155  : 		_SCL_SECURE_TRAITS_VALIDATE_RANGE(_Myoff < ((_Mydeque *)(this->_Getmycont()))->_Myoff + ((_Mydeque *)(this->_Getmycont()))->_Mysize);

  0000e	8b 06		 mov	 eax, DWORD PTR [esi]
  00010	85 c0		 test	 eax, eax
  00012	74 04		 je	 SHORT $LN17@operator@2
$LN27@operator@2:
  00014	8b 08		 mov	 ecx, DWORD PTR [eax]
  00016	eb 02		 jmp	 SHORT $LN18@operator@2
$LN17@operator@2:
  00018	33 c9		 xor	 ecx, ecx
$LN18@operator@2:
  0001a	85 c0		 test	 eax, eax
  0001c	74 04		 je	 SHORT $LN23@operator@2
  0001e	8b 00		 mov	 eax, DWORD PTR [eax]
  00020	eb 02		 jmp	 SHORT $LN24@operator@2
$LN23@operator@2:
  00022	33 c0		 xor	 eax, eax
$LN24@operator@2:
  00024	8b 40 1c	 mov	 eax, DWORD PTR [eax+28]
  00027	03 41 18	 add	 eax, DWORD PTR [ecx+24]
  0002a	39 46 04	 cmp	 DWORD PTR [esi+4], eax
  0002d	72 05		 jb	 SHORT $LN28@operator@2
  0002f	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN28@operator@2:

; 156  : 
; 157  :  #if _HAS_ITERATOR_DEBUGGING
; 158  : 		if (this->_Mycont == 0
; 159  : 			|| ((_Mydeque *)this->_Mycont)->_Myoff
; 160  : 				+ ((_Mydeque *)this->_Mycont)->_Mysize == _Myoff)
; 161  : 			_DEBUG_ERROR("deque iterator not incrementable");
; 162  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 163  : 
; 164  : 		++_Myoff;

  00034	ff 46 04	 inc	 DWORD PTR [esi+4]

; 165  : 		return (*this);

  00037	8b c6		 mov	 eax, esi
  00039	5e		 pop	 esi

; 166  : 		}

  0003a	c3		 ret	 0
??E?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ ENDP ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator++
_TEXT	ENDS
PUBLIC	??8?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator==
; Function compile flags: /Ogtpy
;	COMDAT ??8?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??8?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z PROC ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator==, COMDAT
; _this$ = ecx

; 243  : 		{	// test for iterator equality

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 244  : 
; 245  :  #if _HAS_ITERATOR_DEBUGGING
; 246  : 		_Compat(_Right);
; 247  : 		return (_Myoff == _Right._Myoff);
; 248  : 		}
; 249  : 
; 250  :  #elif _SECURE_SCL
; 251  : 		_SCL_SECURE_TRAITS_VALIDATE(this->_Has_container() && this->_Same_container(_Right));

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	57		 push	 edi
  00006	8b 7c 24 0c	 mov	 edi, DWORD PTR __Right$[esp+4]
  0000a	85 c0		 test	 eax, eax
  0000c	74 04		 je	 SHORT $LN4@operator@3
  0000e	3b 07		 cmp	 eax, DWORD PTR [edi]
  00010	74 05		 je	 SHORT $LN3@operator@3
$LN4@operator@3:
  00012	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN3@operator@3:

; 252  : 		return (_Myoff == _Right._Myoff);

  00017	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0001a	33 c9		 xor	 ecx, ecx
  0001c	3b 47 04	 cmp	 eax, DWORD PTR [edi+4]
  0001f	5f		 pop	 edi
  00020	0f 94 c1	 sete	 cl
  00023	8a c1		 mov	 al, cl
  00025	5e		 pop	 esi

; 253  : 		}

  00026	c2 04 00	 ret	 4
??8?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z ENDP ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator==
_TEXT	ENDS
PUBLIC	?capacity@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::capacity
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?capacity@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ
_TEXT	SEGMENT
?capacity@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::capacity, COMDAT
; _this$ = ecx

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

  00000	8b 41 0c	 mov	 eax, DWORD PTR [ecx+12]
  00003	85 c0		 test	 eax, eax
  00005	75 01		 jne	 SHORT $LN3@capacity

; 636  : 		}

  00007	c3		 ret	 0
$LN3@capacity:

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

  00008	8b 49 14	 mov	 ecx, DWORD PTR [ecx+20]
  0000b	2b c8		 sub	 ecx, eax
  0000d	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00012	f7 e9		 imul	 ecx
  00014	03 d1		 add	 edx, ecx
  00016	c1 fa 04	 sar	 edx, 4
  00019	8b c2		 mov	 eax, edx
  0001b	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  0001e	03 c2		 add	 eax, edx

; 636  : 		}

  00020	c3		 ret	 0
?capacity@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::capacity
_TEXT	ENDS
PUBLIC	?size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::size
; Function compile flags: /Ogtpy
;	COMDAT ?size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ
_TEXT	SEGMENT
?size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::size, COMDAT
; _this$ = ecx

; 725  : 		{	// return length of sequence

  00000	56		 push	 esi

; 726  : 		return (_Mylast - _Myfirst);

  00001	8b 71 10	 mov	 esi, DWORD PTR [ecx+16]
  00004	2b 71 0c	 sub	 esi, DWORD PTR [ecx+12]
  00007	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  0000c	f7 ee		 imul	 esi
  0000e	03 d6		 add	 edx, esi
  00010	c1 fa 04	 sar	 edx, 4
  00013	8b c2		 mov	 eax, edx
  00015	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  00018	03 c2		 add	 eax, edx
  0001a	5e		 pop	 esi

; 727  : 		}

  0001b	c3		 ret	 0
?size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::size
_TEXT	ENDS
PUBLIC	?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
__Count$ = 12						; size = 4
__Ch$ = 16						; size = 1
?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign, COMDAT
; _this$ = ecx

; 2076 : 		if (_Count == 1)

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	83 f8 01	 cmp	 eax, 1
  00007	75 28		 jne	 SHORT $LN2@Chassign

; 2077 : 			_Traits::assign(*(_Myptr() + _Off), _Ch);

  00009	83 79 18 10	 cmp	 DWORD PTR [ecx+24], 16	; 00000010H
  0000d	72 11		 jb	 SHORT $LN7@Chassign
  0000f	8b 49 04	 mov	 ecx, DWORD PTR [ecx+4]
  00012	8a 44 24 0c	 mov	 al, BYTE PTR __Ch$[esp-4]
  00016	8b 54 24 04	 mov	 edx, DWORD PTR __Off$[esp-4]
  0001a	88 04 11	 mov	 BYTE PTR [ecx+edx], al

; 2080 : 		}

  0001d	c2 0c 00	 ret	 12			; 0000000cH

; 2077 : 			_Traits::assign(*(_Myptr() + _Off), _Ch);

$LN7@Chassign:
  00020	8a 44 24 0c	 mov	 al, BYTE PTR __Ch$[esp-4]
  00024	8b 54 24 04	 mov	 edx, DWORD PTR __Off$[esp-4]
  00028	83 c1 04	 add	 ecx, 4
  0002b	88 04 11	 mov	 BYTE PTR [ecx+edx], al

; 2080 : 		}

  0002e	c2 0c 00	 ret	 12			; 0000000cH
$LN2@Chassign:

; 2078 : 		else
; 2079 : 			_Traits::assign(_Myptr() + _Off, _Count, _Ch);

  00031	83 79 18 10	 cmp	 DWORD PTR [ecx+24], 16	; 00000010H
  00035	72 05		 jb	 SHORT $LN13@Chassign
  00037	8b 49 04	 mov	 ecx, DWORD PTR [ecx+4]
  0003a	eb 03		 jmp	 SHORT $LN14@Chassign
$LN13@Chassign:
  0003c	83 c1 04	 add	 ecx, 4
$LN14@Chassign:
  0003f	8b 54 24 04	 mov	 edx, DWORD PTR __Off$[esp-4]
  00043	50		 push	 eax
  00044	0f be 44 24 10	 movsx	 eax, BYTE PTR __Ch$[esp]
  00049	50		 push	 eax
  0004a	03 ca		 add	 ecx, edx
  0004c	51		 push	 ecx
  0004d	e8 00 00 00 00	 call	 _memset
  00052	83 c4 0c	 add	 esp, 12			; 0000000cH

; 2080 : 		}

  00055	c2 0c 00	 ret	 12			; 0000000cH
?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@ABV01@@Z		; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??0?$allocator@D@std@@QAE@ABV01@@Z PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

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

  00000	8b c1		 mov	 eax, ecx

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

  00002	c2 04 00	 ret	 4
??0?$allocator@D@std@@QAE@ABV01@@Z ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	?deallocate@?$allocator@D@std@@QAEXPADI@Z	; std::allocator<char>::deallocate
; Function compile flags: /Ogtpy
;	COMDAT ?deallocate@?$allocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@D@std@@QAEXPADI@Z PROC		; std::allocator<char>::deallocate, COMDAT
; _this$ = ecx

; 140  : 		::operator delete(_Ptr);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Ptr$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0000a	59		 pop	 ecx

; 141  : 		}

  0000b	c2 08 00	 ret	 8
?deallocate@?$allocator@D@std@@QAEXPADI@Z ENDP		; std::allocator<char>::deallocate
_TEXT	ENDS
PUBLIC	?empty@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::empty
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ?empty@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NXZ
_TEXT	SEGMENT
?empty@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NXZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::empty, COMDAT
; _this$ = ecx

; 734  : 		return (_Mysize == 0);

  00000	33 c0		 xor	 eax, eax
  00002	39 41 1c	 cmp	 DWORD PTR [ecx+28], eax
  00005	0f 94 c0	 sete	 al

; 735  : 		}

  00008	c3		 ret	 0
?empty@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NXZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::empty
_TEXT	ENDS
PUBLIC	??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV01@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV01@@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT
; _this$ = ecx

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

  00000	8b c1		 mov	 eax, ecx

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

  00002	c2 04 00	 ret	 4
??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV01@@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	?max_size@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QBEIXZ ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::max_size
; Function compile flags: /Ogtpy
;	COMDAT ?max_size@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QBEIXZ PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::max_size, COMDAT
; _this$ = ecx

; 165  : 		_SIZT _Count = (_SIZT)(-1) / sizeof (_Ty);
; 166  : 		return (0 < _Count ? _Count : 1);

  00000	b8 49 92 24 09	 mov	 eax, 153391689		; 09249249H

; 167  : 		}

  00005	c3		 ret	 0
?max_size@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QBEIXZ ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::max_size
_TEXT	ENDS
PUBLIC	?deallocate@?$allocator@V_Aux_cont@std@@@std@@QAEXPAV_Aux_cont@2@I@Z ; std::allocator<std::_Aux_cont>::deallocate
; Function compile flags: /Ogtpy
;	COMDAT ?deallocate@?$allocator@V_Aux_cont@std@@@std@@QAEXPAV_Aux_cont@2@I@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@V_Aux_cont@std@@@std@@QAEXPAV_Aux_cont@2@I@Z PROC ; std::allocator<std::_Aux_cont>::deallocate, COMDAT
; _this$ = ecx

; 140  : 		::operator delete(_Ptr);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Ptr$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0000a	59		 pop	 ecx

; 141  : 		}

  0000b	c2 08 00	 ret	 8
?deallocate@?$allocator@V_Aux_cont@std@@@std@@QAEXPAV_Aux_cont@2@I@Z ENDP ; std::allocator<std::_Aux_cont>::deallocate
_TEXT	ENDS
PUBLIC	?deallocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::deallocate
; Function compile flags: /Ogtpy
;	COMDAT ?deallocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::deallocate, COMDAT
; _this$ = ecx

; 140  : 		::operator delete(_Ptr);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Ptr$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0000a	59		 pop	 ecx

; 141  : 		}

  0000b	c2 08 00	 ret	 8
?deallocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::deallocate
_TEXT	ENDS
PUBLIC	??G?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEHABV01@@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator-
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??G?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEHABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??G?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEHABV01@@Z PROC ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator-, COMDAT
; _this$ = ecx

; 186  : 		{	// return difference of iterators

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

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

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	57		 push	 edi
  00006	8b 7c 24 0c	 mov	 edi, DWORD PTR __Right$[esp+4]
  0000a	85 c0		 test	 eax, eax
  0000c	74 04		 je	 SHORT $LN4@operator@4
  0000e	3b 07		 cmp	 eax, DWORD PTR [edi]
  00010	74 05		 je	 SHORT $LN3@operator@4
$LN4@operator@4:
  00012	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN3@operator@4:

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

  00017	8b 4e 04	 mov	 ecx, DWORD PTR [esi+4]
  0001a	2b 4f 04	 sub	 ecx, DWORD PTR [edi+4]
  0001d	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00022	f7 e9		 imul	 ecx
  00024	03 d1		 add	 edx, ecx
  00026	c1 fa 04	 sar	 edx, 4
  00029	8b c2		 mov	 eax, edx
  0002b	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  0002e	5f		 pop	 edi
  0002f	03 c2		 add	 eax, edx
  00031	5e		 pop	 esi

; 195  : 		}

  00032	c2 04 00	 ret	 4
??G?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEHABV01@@Z ENDP ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator-
_TEXT	ENDS
PUBLIC	??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@HPBV32@ABV32@V_Iterator_base_aux@2@@std@@QAE@XZ ; std::_Iterator_with_base<std::random_access_iterator_tag,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::_Iterator_base_aux>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@HPBV32@ABV32@V_Iterator_base_aux@2@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@HPBV32@ABV32@V_Iterator_base_aux@2@@std@@QAE@XZ PROC ; std::_Iterator_with_base<std::random_access_iterator_tag,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::_Iterator_base_aux>, COMDAT
; _this$ = ecx
  00000	8b c1		 mov	 eax, ecx
  00002	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00008	c3		 ret	 0
??0?$_Iterator_with_base@Urandom_access_iterator_tag@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@HPBV32@ABV32@V_Iterator_base_aux@2@@std@@QAE@XZ ENDP ; std::_Iterator_with_base<std::random_access_iterator_tag,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::_Iterator_base_aux>::_Iterator_with_base<std::random_access_iterator_tag,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::_Iterator_base_aux>
_TEXT	ENDS
PUBLIC	?max_size@?$allocator@D@std@@QBEIXZ		; std::allocator<char>::max_size
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?max_size@?$allocator@D@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$allocator@D@std@@QBEIXZ PROC		; std::allocator<char>::max_size, COMDAT
; _this$ = ecx

; 165  : 		_SIZT _Count = (_SIZT)(-1) / sizeof (_Ty);
; 166  : 		return (0 < _Count ? _Count : 1);

  00000	83 c8 ff	 or	 eax, -1

; 167  : 		}

  00003	c3		 ret	 0
?max_size@?$allocator@D@std@@QBEIXZ ENDP		; std::allocator<char>::max_size
_TEXT	ENDS
PUBLIC	??8?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator==
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??8?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??8?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z PROC ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator==, COMDAT
; _this$ = ecx

; 203  : 		{	// test for iterator equality

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

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

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	57		 push	 edi
  00006	8b 7c 24 0c	 mov	 edi, DWORD PTR __Right$[esp+4]
  0000a	85 c0		 test	 eax, eax
  0000c	74 04		 je	 SHORT $LN4@operator@5
  0000e	3b 07		 cmp	 eax, DWORD PTR [edi]
  00010	74 05		 je	 SHORT $LN3@operator@5
$LN4@operator@5:
  00012	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN3@operator@5:

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

  00017	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0001a	33 c9		 xor	 ecx, ecx
  0001c	3b 47 04	 cmp	 eax, DWORD PTR [edi+4]
  0001f	5f		 pop	 edi
  00020	0f 94 c1	 sete	 cl
  00023	8a c1		 mov	 al, cl
  00025	5e		 pop	 esi

; 212  : 		}

  00026	c2 04 00	 ret	 4
??8?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z ENDP ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator==
_TEXT	ENDS
PUBLIC	??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z PROC ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=, COMDAT
; _this$ = ecx

; 159  : 		{	// increment by integer

  00000	56		 push	 esi
  00001	57		 push	 edi
  00002	8b f9		 mov	 edi, ecx

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

  00004	8b 0f		 mov	 ecx, DWORD PTR [edi]
  00006	85 c9		 test	 ecx, ecx
  00008	75 0b		 jne	 SHORT $LN26@operator@6
  0000a	e8 00 00 00 00	 call	 __invalid_parameter_noinfo

; 161  : 		_SCL_SECURE_VALIDATE_RANGE(

  0000f	8b 0f		 mov	 ecx, DWORD PTR [edi]
  00011	85 c9		 test	 ecx, ecx
  00013	74 04		 je	 SHORT $LN16@operator@6
$LN26@operator@6:
  00015	8b 11		 mov	 edx, DWORD PTR [ecx]
  00017	eb 02		 jmp	 SHORT $LN17@operator@6
$LN16@operator@6:
  00019	33 d2		 xor	 edx, edx
$LN17@operator@6:
  0001b	8b 44 24 0c	 mov	 eax, DWORD PTR __Off$[esp+4]
  0001f	8d 34 c5 00 00
	00 00		 lea	 esi, DWORD PTR [eax*8]
  00026	2b f0		 sub	 esi, eax
  00028	8b 47 04	 mov	 eax, DWORD PTR [edi+4]
  0002b	03 f6		 add	 esi, esi
  0002d	03 f6		 add	 esi, esi
  0002f	03 c6		 add	 eax, esi
  00031	3b 42 10	 cmp	 eax, DWORD PTR [edx+16]
  00034	77 0f		 ja	 SHORT $LN4@operator@6
  00036	85 c9		 test	 ecx, ecx
  00038	74 04		 je	 SHORT $LN22@operator@6
  0003a	8b 09		 mov	 ecx, DWORD PTR [ecx]
  0003c	eb 02		 jmp	 SHORT $LN23@operator@6
$LN22@operator@6:
  0003e	33 c9		 xor	 ecx, ecx
$LN23@operator@6:
  00040	3b 41 0c	 cmp	 eax, DWORD PTR [ecx+12]
  00043	73 05		 jae	 SHORT $LN27@operator@6
$LN4@operator@6:

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

  00045	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN27@operator@6:

; 164  : 		_Myptr += _Off;

  0004a	01 77 04	 add	 DWORD PTR [edi+4], esi

; 165  : 		return (*this);

  0004d	8b c7		 mov	 eax, edi
  0004f	5f		 pop	 edi
  00050	5e		 pop	 esi

; 166  : 		}

  00051	c2 04 00	 ret	 4
??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ENDP ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
PUBLIC	__CTA2?AVbad_alloc@std@@
PUBLIC	__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
PUBLIC	??0bad_alloc@std@@QAE@ABV01@@Z			; std::bad_alloc::bad_alloc
PUBLIC	__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
EXTRN	??2@YAPAXI@Z:PROC				; operator new
EXTRN	__CxxThrowException@8:PROC
EXTRN	??0exception@std@@QAE@ABV01@@Z:PROC		; std::exception::exception
;	COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\exception
xdata$x	SEGMENT
__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVexception@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0exception@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_alloc@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_alloc@std@@
xdata$x	SEGMENT
__CTA2?AVbad_alloc@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVbad_alloc@std@@
xdata$x	SEGMENT
__TI2?AVbad_alloc@std@@ DD 00H
	DD	FLAT:??1bad_alloc@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_alloc@std@@
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
xdata$x	ENDS
;	COMDAT ??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z
_TEXT	SEGMENT
$T99234 = -12						; size = 12
$T99239 = 8						; size = 4
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z PROC ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT

; 37   : 	if (_Count <= 0)

  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR __Count$[esp-4]
  00004	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00007	85 c9		 test	 ecx, ecx
  00009	77 1c		 ja	 SHORT $LN3@Allocate

; 38   : 		_Count = 0;

  0000b	33 c9		 xor	 ecx, ecx
$LN1@Allocate:

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

  0000d	8d 14 cd 00 00
	00 00		 lea	 edx, DWORD PTR [ecx*8]
  00014	2b d1		 sub	 edx, ecx
  00016	03 d2		 add	 edx, edx
  00018	03 d2		 add	 edx, edx
  0001a	52		 push	 edx
  0001b	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00020	83 c4 04	 add	 esp, 4

; 44   : 	}

  00023	83 c4 0c	 add	 esp, 12			; 0000000cH
  00026	c3		 ret	 0
$LN3@Allocate:

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

  00027	83 c8 ff	 or	 eax, -1
  0002a	33 d2		 xor	 edx, edx
  0002c	f7 f1		 div	 ecx
  0002e	83 f8 1c	 cmp	 eax, 28			; 0000001cH
  00031	73 da		 jae	 SHORT $LN1@Allocate

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

  00033	8d 44 24 10	 lea	 eax, DWORD PTR $T99239[esp+8]
  00037	50		 push	 eax
  00038	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99234[esp+16]
  0003c	c7 44 24 14 00
	00 00 00	 mov	 DWORD PTR $T99239[esp+12], 0
  00044	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABQBD@Z ; std::exception::exception
  00049	68 00 00 00 00	 push	 OFFSET __TI2?AVbad_alloc@std@@
  0004e	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99234[esp+16]
  00052	51		 push	 ecx
  00053	c7 44 24 08 00
	00 00 00	 mov	 DWORD PTR $T99234[esp+20], OFFSET ??_7bad_alloc@std@@6B@
  0005b	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN9@Allocate:
$LN8@Allocate:
  00060	cc		 int	 3
??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z ENDP ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
;	COMDAT ??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT
; _this$ = ecx

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

  00000	8b c1		 mov	 eax, ecx

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

  00002	c2 04 00	 ret	 4
??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	??$_Allocate@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Allocate@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAPAV10@@Z
_TEXT	SEGMENT
$T99248 = -12						; size = 12
$T99252 = 8						; size = 4
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAPAV10@@Z PROC ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 37   : 	if (_Count <= 0)

  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR __Count$[esp-4]
  00004	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00007	85 c9		 test	 ecx, ecx
  00009	77 16		 ja	 SHORT $LN3@Allocate@2

; 38   : 		_Count = 0;

  0000b	33 c9		 xor	 ecx, ecx
$LN1@Allocate@2:

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

  0000d	8d 14 8d 00 00
	00 00		 lea	 edx, DWORD PTR [ecx*4]
  00014	52		 push	 edx
  00015	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0001a	83 c4 04	 add	 esp, 4

; 44   : 	}

  0001d	83 c4 0c	 add	 esp, 12			; 0000000cH
  00020	c3		 ret	 0
$LN3@Allocate@2:

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

  00021	83 c8 ff	 or	 eax, -1
  00024	33 d2		 xor	 edx, edx
  00026	f7 f1		 div	 ecx
  00028	83 f8 04	 cmp	 eax, 4
  0002b	73 e0		 jae	 SHORT $LN1@Allocate@2

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

  0002d	8d 44 24 10	 lea	 eax, DWORD PTR $T99252[esp+8]
  00031	50		 push	 eax
  00032	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99248[esp+16]
  00036	c7 44 24 14 00
	00 00 00	 mov	 DWORD PTR $T99252[esp+12], 0
  0003e	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABQBD@Z ; std::exception::exception
  00043	68 00 00 00 00	 push	 OFFSET __TI2?AVbad_alloc@std@@
  00048	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99248[esp+16]
  0004c	51		 push	 ecx
  0004d	c7 44 24 08 00
	00 00 00	 mov	 DWORD PTR $T99248[esp+20], OFFSET ??_7bad_alloc@std@@6B@
  00055	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN9@Allocate@2:
$LN8@Allocate@2:
  0005a	cc		 int	 3
??$_Allocate@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAPAV10@@Z ENDP ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Destroy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::_Destroy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Destroy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??$_Destroy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z PROC ; std::_Destroy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 59   : 	_DESTRUCTOR(_Ty, _Ptr);
; 60   : 	}

  00000	c3		 ret	 0
??$_Destroy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ENDP ; std::_Destroy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Allocate@D@std@@YAPADIPAD@Z			; std::_Allocate<char>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Allocate@D@std@@YAPADIPAD@Z
_TEXT	SEGMENT
$T99261 = -12						; size = 12
$T99265 = 8						; size = 4
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@D@std@@YAPADIPAD@Z PROC			; std::_Allocate<char>, COMDAT

; 37   : 	if (_Count <= 0)

  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR __Count$[esp-4]
  00004	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00007	85 c9		 test	 ecx, ecx
  00009	77 0f		 ja	 SHORT $LN3@Allocate@3

; 38   : 		_Count = 0;

  0000b	33 c9		 xor	 ecx, ecx
$LN1@Allocate@3:

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

  0000d	51		 push	 ecx
  0000e	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00013	83 c4 04	 add	 esp, 4

; 44   : 	}

  00016	83 c4 0c	 add	 esp, 12			; 0000000cH
  00019	c3		 ret	 0
$LN3@Allocate@3:

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

  0001a	83 c8 ff	 or	 eax, -1
  0001d	33 d2		 xor	 edx, edx
  0001f	f7 f1		 div	 ecx
  00021	83 f8 01	 cmp	 eax, 1
  00024	73 e7		 jae	 SHORT $LN1@Allocate@3

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

  00026	8d 44 24 10	 lea	 eax, DWORD PTR $T99265[esp+8]
  0002a	50		 push	 eax
  0002b	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99261[esp+16]
  0002f	c7 44 24 14 00
	00 00 00	 mov	 DWORD PTR $T99265[esp+12], 0
  00037	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABQBD@Z ; std::exception::exception
  0003c	68 00 00 00 00	 push	 OFFSET __TI2?AVbad_alloc@std@@
  00041	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99261[esp+16]
  00045	51		 push	 ecx
  00046	c7 44 24 08 00
	00 00 00	 mov	 DWORD PTR $T99261[esp+20], OFFSET ??_7bad_alloc@std@@6B@
  0004e	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN9@Allocate@3:
$LN8@Allocate@3:
  00053	cc		 int	 3
??$_Allocate@D@std@@YAPADIPAD@Z ENDP			; std::_Allocate<char>
_TEXT	ENDS
PUBLIC	??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
;	COMDAT ??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z PROC ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT
; _this$ = ecx

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

  00000	8b c1		 mov	 eax, ecx

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

  00002	c2 04 00	 ret	 4
??$?0V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$allocator@V_Aux_cont@std@@@std@@QAE@ABV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ENDP ; std::allocator<std::_Aux_cont>::allocator<std::_Aux_cont><std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	??$_Allocate@V_Aux_cont@std@@@std@@YAPAV_Aux_cont@0@IPAV10@@Z ; std::_Allocate<std::_Aux_cont>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Allocate@V_Aux_cont@std@@@std@@YAPAV_Aux_cont@0@IPAV10@@Z
_TEXT	SEGMENT
$T99274 = -12						; size = 12
$T99278 = 8						; size = 4
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@V_Aux_cont@std@@@std@@YAPAV_Aux_cont@0@IPAV10@@Z PROC ; std::_Allocate<std::_Aux_cont>, COMDAT

; 37   : 	if (_Count <= 0)

  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR __Count$[esp-4]
  00004	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00007	85 c9		 test	 ecx, ecx
  00009	77 16		 ja	 SHORT $LN3@Allocate@4

; 38   : 		_Count = 0;

  0000b	33 c9		 xor	 ecx, ecx
$LN1@Allocate@4:

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

  0000d	8d 14 8d 00 00
	00 00		 lea	 edx, DWORD PTR [ecx*4]
  00014	52		 push	 edx
  00015	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0001a	83 c4 04	 add	 esp, 4

; 44   : 	}

  0001d	83 c4 0c	 add	 esp, 12			; 0000000cH
  00020	c3		 ret	 0
$LN3@Allocate@4:

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

  00021	83 c8 ff	 or	 eax, -1
  00024	33 d2		 xor	 edx, edx
  00026	f7 f1		 div	 ecx
  00028	83 f8 04	 cmp	 eax, 4
  0002b	73 e0		 jae	 SHORT $LN1@Allocate@4

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

  0002d	8d 44 24 10	 lea	 eax, DWORD PTR $T99278[esp+8]
  00031	50		 push	 eax
  00032	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99274[esp+16]
  00036	c7 44 24 14 00
	00 00 00	 mov	 DWORD PTR $T99278[esp+12], 0
  0003e	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABQBD@Z ; std::exception::exception
  00043	68 00 00 00 00	 push	 OFFSET __TI2?AVbad_alloc@std@@
  00048	8d 4c 24 04	 lea	 ecx, DWORD PTR $T99274[esp+16]
  0004c	51		 push	 ecx
  0004d	c7 44 24 08 00
	00 00 00	 mov	 DWORD PTR $T99274[esp+20], OFFSET ??_7bad_alloc@std@@6B@
  00055	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN9@Allocate@4:
$LN8@Allocate@4:
  0005a	cc		 int	 3
??$_Allocate@V_Aux_cont@std@@@std@@YAPAV_Aux_cont@0@IPAV10@@Z ENDP ; std::_Allocate<std::_Aux_cont>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
  00000	8b 44 24 04	 mov	 eax, DWORD PTR ___that$[esp-4]
  00004	56		 push	 esi
  00005	50		 push	 eax
  00006	8b f1		 mov	 esi, ecx
  00008	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABV01@@Z ; std::exception::exception
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
  00013	8b c6		 mov	 eax, esi
  00015	5e		 pop	 esi
  00016	c2 04 00	 ret	 4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ ; std::_Char_traits_cat<std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
;	COMDAT ??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ
_TEXT	SEGMENT
__Secure$ = -1						; size = 1
??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ PROC ; std::_Char_traits_cat<std::char_traits<char> >, COMDAT

; 575  : 	{

  00000	51		 push	 ecx

; 576  : 		typename _Char_traits_category<_Traits>::_Secure_char_traits _Secure;
; 577  : 		return (_Secure);

  00001	8a 44 24 03	 mov	 al, BYTE PTR __Secure$[esp+4]

; 578  : 	}

  00005	59		 pop	 ecx
  00006	c3		 ret	 0
??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ ENDP ; std::_Char_traits_cat<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z ; std::_Traits_helper::copy_s<std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size$ = 12						; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
___formal$ = 24						; size = 1
??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z PROC ; std::_Traits_helper::copy_s<std::char_traits<char> >, COMDAT

; 597  : 		return _Traits::_Copy_s(_First1, _Size, _First2, _Count);

  00000	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 0c	 mov	 ecx, DWORD PTR __First2$[esp-4]
  00008	8b 54 24 08	 mov	 edx, DWORD PTR __Size$[esp-4]
  0000c	56		 push	 esi
  0000d	8b 74 24 08	 mov	 esi, DWORD PTR __First1$[esp]
  00011	50		 push	 eax
  00012	51		 push	 ecx
  00013	52		 push	 edx
  00014	56		 push	 esi
  00015	e8 00 00 00 00	 call	 _memcpy_s
  0001a	83 c4 10	 add	 esp, 16			; 00000010H
  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi

; 598  : 	}

  00020	c3		 ret	 0
??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z ENDP ; std::_Traits_helper::copy_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$_Ptr_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ; std::_Ptr_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Ptr_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Ptr_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z PROC ; std::_Ptr_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>, COMDAT

; 1509 : 	{

  00000	51		 push	 ecx

; 1510 : 	typename _Ptr_cat_helper<_T1, _T2>::_Ptr_cat _Cat;
; 1511 : 	return (_Cat);

  00001	8a 44 24 03	 mov	 al, BYTE PTR __Cat$[esp+4]

; 1512 : 	}

  00005	59		 pop	 ecx
  00006	c3		 ret	 0
??$_Ptr_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@@std@@YA?AU_Scalar_ptr_iterator_tag@0@AAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ENDP ; std::_Ptr_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
_TEXT	ENDS
PUBLIC	??$_Uninit_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAPAV10@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
;	COMDAT ??$_Uninit_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAPAV10@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAPAV10@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >, COMDAT

; 146  : 	_DEBUG_RANGE(_First, _Last);
; 147  : 	_DEBUG_POINTER(_Dest);
; 148  : 	size_t _Count = (size_t)(_Last - _First);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Last$[esp-4]
  00004	8b 54 24 04	 mov	 edx, DWORD PTR __First$[esp-4]
  00008	2b c2		 sub	 eax, edx
  0000a	56		 push	 esi
  0000b	c1 f8 02	 sar	 eax, 2
  0000e	57		 push	 edi

; 149  : 	_FwdIt _Result = _Dest + _Count;

  0000f	8b 7c 24 14	 mov	 edi, DWORD PTR __Dest$[esp+4]
  00013	8d 0c 85 00 00
	00 00		 lea	 ecx, DWORD PTR [eax*4]
  0001a	8d 34 39	 lea	 esi, DWORD PTR [ecx+edi]

; 150  : 	if (_Count > 0)

  0001d	85 c0		 test	 eax, eax
  0001f	76 0c		 jbe	 SHORT $LN4@Uninit_cop

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

  00021	51		 push	 ecx
  00022	52		 push	 edx
  00023	51		 push	 ecx
  00024	57		 push	 edi
  00025	e8 00 00 00 00	 call	 _memmove_s
  0002a	83 c4 10	 add	 esp, 16			; 00000010H
$LN4@Uninit_cop:
  0002d	5f		 pop	 edi

; 152  : 	return (_Result);

  0002e	8b c6		 mov	 eax, esi
  00030	5e		 pop	 esi

; 153  : 	}

  00031	c3		 ret	 0
??$_Uninit_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAPAV10@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
_TEXT	ENDS
PUBLIC	??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Al$ = 16						; size = 4
___formal$ = 20						; size = 1
??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@@Z PROC ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >, COMDAT

; 242  : 	}

  00000	c3		 ret	 0
??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@@Z ENDP ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
_TEXT	ENDS
PUBLIC	??$_Iter_random@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ; std::_Iter_random<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Iter_random@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
??$_Iter_random@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z PROC ; std::_Iter_random<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp-4]

; 998  : 	}

  00004	c3		 ret	 0
??$_Iter_random@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AUrandom_access_iterator_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ENDP ; std::_Iter_random<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Ptr_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ; std::_Ptr_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Ptr_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Ptr_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z PROC ; std::_Ptr_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 1509 : 	{

  00000	51		 push	 ecx

; 1510 : 	typename _Ptr_cat_helper<_T1, _T2>::_Ptr_cat _Cat;
; 1511 : 	return (_Cat);

  00001	8a 44 24 03	 mov	 al, BYTE PTR __Cat$[esp+4]

; 1512 : 	}

  00005	59		 pop	 ecx
  00006	c3		 ret	 0
??$_Ptr_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ENDP ; std::_Ptr_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z ; std::_Traits_helper::move_s<std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
;	COMDAT ??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size$ = 12						; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
___formal$ = 24						; size = 1
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z PROC ; std::_Traits_helper::move_s<std::char_traits<char> >, COMDAT

; 624  : 		return _Traits::_Move_s(_First1, _Size, _First2, _Count);

  00000	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 0c	 mov	 ecx, DWORD PTR __First2$[esp-4]
  00008	8b 54 24 08	 mov	 edx, DWORD PTR __Size$[esp-4]
  0000c	56		 push	 esi
  0000d	8b 74 24 08	 mov	 esi, DWORD PTR __First1$[esp]
  00011	50		 push	 eax
  00012	51		 push	 ecx
  00013	52		 push	 edx
  00014	56		 push	 esi
  00015	e8 00 00 00 00	 call	 _memmove_s
  0001a	83 c4 10	 add	 esp, 16			; 00000010H
  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi

; 625  : 	}

  00020	c3		 ret	 0
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z ENDP ; std::_Traits_helper::move_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$_Move_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AU_Swap_move_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::_Move_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Move_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AU_Swap_move_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
??$_Move_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AU_Swap_move_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z PROC ; std::_Move_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 1200 : 	{

  00000	51		 push	 ecx

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

  00001	8a 44 24 03	 mov	 al, BYTE PTR __Cat$[esp+4]

; 1203 : 	}

  00005	59		 pop	 ecx
  00006	c3		 ret	 0
??$_Move_cat@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AU_Swap_move_tag@0@ABQAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ENDP ; std::_Move_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
___formal$ = 12						; size = 1
??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>, COMDAT

; 1147 : 		return _It;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __It$[esp-4]
  00004	8b 00		 mov	 eax, DWORD PTR [eax]

; 1148 : 	}

  00006	c3		 ret	 0
??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
_TEXT	ENDS
PUBLIC	??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
___formal$ = 12						; size = 1
??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 1147 : 		return _It;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __It$[esp-4]
  00004	8b 00		 mov	 eax, DWORD PTR [eax]

; 1148 : 	}

  00006	c3		 ret	 0
??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Iter_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABQAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::_Iter_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Iter_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABQAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
??$_Iter_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABQAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z PROC ; std::_Iter_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>, COMDAT

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp-4]

; 955  : 	}

  00004	c3		 ret	 0
??$_Iter_cat@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YA?AUrandom_access_iterator_tag@0@ABQAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ENDP ; std::_Iter_cat<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
_TEXT	ENDS
PUBLIC	?_Checked_iterator_base@?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Checked_iterator_base
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?_Checked_iterator_base@?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
?_Checked_iterator_base@?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Checked_iterator_base, COMDAT
; _this$ = ecx

; 305  : 		return (this->_Myptr);

  00000	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]

; 306  : 		}

  00003	c3		 ret	 0
?_Checked_iterator_base@?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Checked_iterator_base
_TEXT	ENDS
PUBLIC	??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@U_Range_checked_iterator_tag@0@@Z ; std::_Fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
___formal$ = 20						; size = 1
??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

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

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	76 16		 jbe	 SHORT $LN1@Fill_n
  00008	8b 54 24 0c	 mov	 edx, DWORD PTR __Val$[esp-4]
  0000c	8b 4c 24 04	 mov	 ecx, DWORD PTR __First$[esp-4]
  00010	56		 push	 esi
$LL3@Fill_n:

; 3198 : 		*_First = _Val;

  00011	8b 32		 mov	 esi, DWORD PTR [edx]
  00013	89 31		 mov	 DWORD PTR [ecx], esi
  00015	48		 dec	 eax
  00016	83 c1 04	 add	 ecx, 4
  00019	85 c0		 test	 eax, eax
  0001b	77 f4		 ja	 SHORT $LL3@Fill_n
  0001d	5e		 pop	 esi
$LN1@Fill_n:

; 3199 : 	}

  0001e	c3		 ret	 0
??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$?8DD@std@@YA_NABV?$allocator@D@0@0@Z		; std::operator==<char,char>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$?8DD@std@@YA_NABV?$allocator@D@0@0@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??$?8DD@std@@YA_NABV?$allocator@D@0@0@Z PROC		; std::operator==<char,char>, COMDAT

; 175  : 	return (true);

  00000	b0 01		 mov	 al, 1

; 176  : 	}

  00002	c3		 ret	 0
??$?8DD@std@@YA_NABV?$allocator@D@0@0@Z ENDP		; std::operator==<char,char>
_TEXT	ENDS
PUBLIC	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[], COMDAT
; _this$ = ecx

; 1557 : 		{	// subscript mutable sequence

  00000	56		 push	 esi
  00001	57		 push	 edi

; 1558 : 
; 1559 :  #if _HAS_ITERATOR_DEBUGGING
; 1560 : 		// skip debug checks if the container is initizialed with _IGNORE_MYITERLIST
; 1561 : 		if (this->_Myfirstiter != _IGNORE_MYITERLIST)
; 1562 : 			{
; 1563 : 			if (_Mysize < _Off)
; 1564 : 				{
; 1565 : 				_DEBUG_ERROR("string subscript out of range");
; 1566 : 				_SCL_SECURE_OUT_OF_RANGE;
; 1567 : 				}
; 1568 : 			}
; 1569 :  #else
; 1570 : 		_SCL_SECURE_VALIDATE_RANGE(_Off <= _Mysize);

  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR __Off$[esp+4]
  00006	8b f1		 mov	 esi, ecx
  00008	3b 7e 14	 cmp	 edi, DWORD PTR [esi+20]
  0000b	76 05		 jbe	 SHORT $LN3@operator@7
  0000d	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN3@operator@7:

; 1571 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1572 : 
; 1573 : 		return (_Myptr()[_Off]);

  00012	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00016	72 0b		 jb	 SHORT $LN9@operator@7
  00018	8b 76 04	 mov	 esi, DWORD PTR [esi+4]
  0001b	8d 04 3e	 lea	 eax, DWORD PTR [esi+edi]
  0001e	5f		 pop	 edi
  0001f	5e		 pop	 esi

; 1574 : 		}

  00020	c2 04 00	 ret	 4

; 1571 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1572 : 
; 1573 : 		return (_Myptr()[_Off]);

$LN9@operator@7:
  00023	8d 44 3e 04	 lea	 eax, DWORD PTR [esi+edi+4]
  00027	5f		 pop	 edi
  00028	5e		 pop	 esi

; 1574 : 		}

  00029	c2 04 00	 ret	 4
??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
_TEXT	ENDS
PUBLIC	?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str
; Function compile flags: /Ogtpy
;	COMDAT ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ
_TEXT	SEGMENT
?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str, COMDAT
; _this$ = ecx

; 1651 : 		return (_Myptr());

  00000	83 79 18 10	 cmp	 DWORD PTR [ecx+24], 16	; 00000010H
  00004	72 04		 jb	 SHORT $LN5@c_str
  00006	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]

; 1652 : 		}

  00009	c3		 ret	 0

; 1651 : 		return (_Myptr());

$LN5@c_str:
  0000a	8d 41 04	 lea	 eax, DWORD PTR [ecx+4]

; 1652 : 		}

  0000d	c3		 ret	 0
?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str
_TEXT	ENDS
PUBLIC	??D?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??D?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ
_TEXT	SEGMENT
??D?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ PROC ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*, COMDAT
; _this$ = ecx

; 386  : 		return ((reference)**(_Mybase *)this);

  00000	e9 00 00 00 00	 jmp	 ??D?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*
??D?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ ENDP ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*
_TEXT	ENDS
PUBLIC	??E?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator++
; Function compile flags: /Ogtpy
;	COMDAT ??E?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ
_TEXT	SEGMENT
??E?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ PROC ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator++, COMDAT
; _this$ = ecx

; 395  : 		{	// preincrement

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 396  : 		++*(_Mybase *)this;

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	85 c0		 test	 eax, eax
  00007	75 0b		 jne	 SHORT $LN29@operator@8
  00009	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  0000e	8b 06		 mov	 eax, DWORD PTR [esi]
  00010	85 c0		 test	 eax, eax
  00012	74 04		 je	 SHORT $LN19@operator@8
$LN29@operator@8:
  00014	8b 08		 mov	 ecx, DWORD PTR [eax]
  00016	eb 02		 jmp	 SHORT $LN20@operator@8
$LN19@operator@8:
  00018	33 c9		 xor	 ecx, ecx
$LN20@operator@8:
  0001a	85 c0		 test	 eax, eax
  0001c	74 04		 je	 SHORT $LN25@operator@8
  0001e	8b 00		 mov	 eax, DWORD PTR [eax]
  00020	eb 02		 jmp	 SHORT $LN26@operator@8
$LN25@operator@8:
  00022	33 c0		 xor	 eax, eax
$LN26@operator@8:
  00024	8b 40 1c	 mov	 eax, DWORD PTR [eax+28]
  00027	03 41 18	 add	 eax, DWORD PTR [ecx+24]
  0002a	39 46 04	 cmp	 DWORD PTR [esi+4], eax
  0002d	72 05		 jb	 SHORT $LN30@operator@8
  0002f	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN30@operator@8:
  00034	ff 46 04	 inc	 DWORD PTR [esi+4]

; 397  : 		return (*this);

  00037	8b c6		 mov	 eax, esi
  00039	5e		 pop	 esi

; 398  : 		}

  0003a	c3		 ret	 0
??E?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAEAAV01@XZ ENDP ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator++
_TEXT	ENDS
PUBLIC	??9?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator!=
; Function compile flags: /Ogtpy
;	COMDAT ??9?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??9?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z PROC ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator!=, COMDAT
; _this$ = ecx

; 261  : 		{	// test for iterator inequality

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

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

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	57		 push	 edi
  00006	8b 7c 24 0c	 mov	 edi, DWORD PTR __Right$[esp+4]
  0000a	85 c0		 test	 eax, eax
  0000c	74 04		 je	 SHORT $LN6@operator@9
  0000e	3b 07		 cmp	 eax, DWORD PTR [edi]
  00010	74 05		 je	 SHORT $LN5@operator@9
$LN6@operator@9:
  00012	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN5@operator@9:
  00017	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0001a	33 c9		 xor	 ecx, ecx
  0001c	3b 47 04	 cmp	 eax, DWORD PTR [edi+4]
  0001f	5f		 pop	 edi
  00020	0f 95 c1	 setne	 cl
  00023	8a c1		 mov	 al, cl
  00025	5e		 pop	 esi

; 263  : 		}

  00026	c2 04 00	 ret	 4
??9?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBE_NABV01@@Z ENDP ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator!=
_TEXT	ENDS
PUBLIC	?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Off$ = 12						; size = 4
__Count$ = 16						; size = 4
?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of, COMDAT
; _this$ = ecx

; 1855 : 		{	// look for one of [_Ptr, _Ptr + _Count) at or after _Off

  00000	51		 push	 ecx

; 1856 : 
; 1857 :  #if _HAS_ITERATOR_DEBUGGING
; 1858 : 		if (_Count != 0)
; 1859 : 			_DEBUG_POINTER(_Ptr);
; 1860 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1861 : 
; 1862 : 		if (0 < _Count && _Off < _Mysize)

  00001	83 7c 24 10 00	 cmp	 DWORD PTR __Count$[esp], 0
  00006	53		 push	 ebx
  00007	55		 push	 ebp
  00008	56		 push	 esi
  00009	8b d9		 mov	 ebx, ecx
  0000b	57		 push	 edi
  0000c	89 5c 24 10	 mov	 DWORD PTR _this$[esp+20], ebx
  00010	76 4f		 jbe	 SHORT $LN2@find_first
  00012	8b 53 14	 mov	 edx, DWORD PTR [ebx+20]
  00015	8b 74 24 1c	 mov	 esi, DWORD PTR __Off$[esp+16]
  00019	3b f2		 cmp	 esi, edx
  0001b	73 44		 jae	 SHORT $LN2@find_first

; 1863 : 			{	// room for match, look for it
; 1864 : 			const _Elem *const _Vptr = _Myptr() + _Mysize;

  0001d	8b 4b 18	 mov	 ecx, DWORD PTR [ebx+24]
  00020	83 c3 04	 add	 ebx, 4
  00023	83 f9 10	 cmp	 ecx, 16			; 00000010H
  00026	72 04		 jb	 SHORT $LN10@find_first
  00028	8b 03		 mov	 eax, DWORD PTR [ebx]
  0002a	eb 02		 jmp	 SHORT $LN11@find_first
$LN10@find_first:
  0002c	8b c3		 mov	 eax, ebx
$LN11@find_first:
  0002e	8d 3c 02	 lea	 edi, DWORD PTR [edx+eax]

; 1865 : 			for (const _Elem *_Uptr = _Myptr() + _Off; _Uptr < _Vptr; ++_Uptr)

  00031	83 f9 10	 cmp	 ecx, 16			; 00000010H
  00034	72 04		 jb	 SHORT $LN14@find_first
  00036	8b 03		 mov	 eax, DWORD PTR [ebx]
  00038	eb 02		 jmp	 SHORT $LN15@find_first
$LN14@find_first:
  0003a	8b c3		 mov	 eax, ebx
$LN15@find_first:
  0003c	03 f0		 add	 esi, eax
  0003e	3b f7		 cmp	 esi, edi
  00040	73 1f		 jae	 SHORT $LN2@find_first
  00042	8b 6c 24 18	 mov	 ebp, DWORD PTR __Ptr$[esp+16]
$LL4@find_first:

; 1866 : 				if (_Traits::find(_Ptr, _Count, *_Uptr) != 0)

  00046	8b 44 24 20	 mov	 eax, DWORD PTR __Count$[esp+16]
  0004a	0f be 0e	 movsx	 ecx, BYTE PTR [esi]
  0004d	50		 push	 eax
  0004e	51		 push	 ecx
  0004f	55		 push	 ebp
  00050	e8 00 00 00 00	 call	 _memchr
  00055	83 c4 0c	 add	 esp, 12			; 0000000cH
  00058	85 c0		 test	 eax, eax
  0005a	75 10		 jne	 SHORT $LN23@find_first
  0005c	46		 inc	 esi
  0005d	3b f7		 cmp	 esi, edi
  0005f	72 e5		 jb	 SHORT $LL4@find_first
$LN2@find_first:
  00061	5f		 pop	 edi
  00062	5e		 pop	 esi
  00063	5d		 pop	 ebp

; 1868 : 			}
; 1869 : 
; 1870 : 		return (npos);	// no match

  00064	83 c8 ff	 or	 eax, -1
  00067	5b		 pop	 ebx

; 1871 : 		}

  00068	59		 pop	 ecx
  00069	c2 0c 00	 ret	 12			; 0000000cH
$LN23@find_first:

; 1867 : 					return (_Uptr - _Myptr());	// found a match

  0006c	8b 54 24 10	 mov	 edx, DWORD PTR _this$[esp+20]
  00070	83 7a 18 10	 cmp	 DWORD PTR [edx+24], 16	; 00000010H
  00074	72 02		 jb	 SHORT $LN20@find_first
  00076	8b 1b		 mov	 ebx, DWORD PTR [ebx]
$LN20@find_first:
  00078	5f		 pop	 edi
  00079	8b c6		 mov	 eax, esi
  0007b	5e		 pop	 esi
  0007c	5d		 pop	 ebp
  0007d	2b c3		 sub	 eax, ebx
  0007f	5b		 pop	 ebx

; 1871 : 		}

  00080	59		 pop	 ecx
  00081	c2 0c 00	 ret	 12			; 0000000cH
?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
_TEXT	ENDS
PUBLIC	?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of
; Function compile flags: /Ogtpy
;	COMDAT ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Off$ = 12						; size = 4
__Count$ = 16						; size = 4
?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of, COMDAT
; _this$ = ecx

; 1931 : 		{	// look for none of [_Ptr, _Ptr + _Count) at or after _Off

  00000	51		 push	 ecx
  00001	53		 push	 ebx
  00002	55		 push	 ebp
  00003	8b d9		 mov	 ebx, ecx

; 1932 : 
; 1933 :  #if _HAS_ITERATOR_DEBUGGING
; 1934 : 		if (_Count != 0)
; 1935 : 			_DEBUG_POINTER(_Ptr);
; 1936 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1937 : 
; 1938 : 		if (_Off < _Mysize)

  00005	8b 53 14	 mov	 edx, DWORD PTR [ebx+20]
  00008	56		 push	 esi
  00009	8b 74 24 18	 mov	 esi, DWORD PTR __Off$[esp+12]
  0000d	57		 push	 edi
  0000e	89 5c 24 10	 mov	 DWORD PTR _this$[esp+20], ebx
  00012	3b f2		 cmp	 esi, edx
  00014	73 45		 jae	 SHORT $LN2@find_first@2

; 1939 : 			{	// room for match, look for it
; 1940 : 			const _Elem *const _Vptr = _Myptr() + _Mysize;

  00016	8b 4b 18	 mov	 ecx, DWORD PTR [ebx+24]
  00019	83 c3 04	 add	 ebx, 4
  0001c	83 f9 10	 cmp	 ecx, 16			; 00000010H
  0001f	72 04		 jb	 SHORT $LN10@find_first@2
  00021	8b 03		 mov	 eax, DWORD PTR [ebx]
  00023	eb 02		 jmp	 SHORT $LN11@find_first@2
$LN10@find_first@2:
  00025	8b c3		 mov	 eax, ebx
$LN11@find_first@2:
  00027	8d 3c 02	 lea	 edi, DWORD PTR [edx+eax]

; 1941 : 			for (const _Elem *_Uptr = _Myptr() + _Off; _Uptr < _Vptr; ++_Uptr)

  0002a	83 f9 10	 cmp	 ecx, 16			; 00000010H
  0002d	72 04		 jb	 SHORT $LN14@find_first@2
  0002f	8b 03		 mov	 eax, DWORD PTR [ebx]
  00031	eb 02		 jmp	 SHORT $LN15@find_first@2
$LN14@find_first@2:
  00033	8b c3		 mov	 eax, ebx
$LN15@find_first@2:
  00035	03 f0		 add	 esi, eax
  00037	3b f7		 cmp	 esi, edi
  00039	73 20		 jae	 SHORT $LN2@find_first@2
  0003b	8b 6c 24 20	 mov	 ebp, DWORD PTR __Count$[esp+16]
  0003f	90		 npad	 1
$LL4@find_first@2:

; 1942 : 				if (_Traits::find(_Ptr, _Count, *_Uptr) == 0)

  00040	0f be 06	 movsx	 eax, BYTE PTR [esi]
  00043	8b 4c 24 18	 mov	 ecx, DWORD PTR __Ptr$[esp+16]
  00047	55		 push	 ebp
  00048	50		 push	 eax
  00049	51		 push	 ecx
  0004a	e8 00 00 00 00	 call	 _memchr
  0004f	83 c4 0c	 add	 esp, 12			; 0000000cH
  00052	85 c0		 test	 eax, eax
  00054	74 10		 je	 SHORT $LN23@find_first@2
  00056	46		 inc	 esi
  00057	3b f7		 cmp	 esi, edi
  00059	72 e5		 jb	 SHORT $LL4@find_first@2
$LN2@find_first@2:
  0005b	5f		 pop	 edi
  0005c	5e		 pop	 esi
  0005d	5d		 pop	 ebp

; 1944 : 			}
; 1945 : 		return (npos);

  0005e	83 c8 ff	 or	 eax, -1
  00061	5b		 pop	 ebx

; 1946 : 		}

  00062	59		 pop	 ecx
  00063	c2 0c 00	 ret	 12			; 0000000cH
$LN23@find_first@2:

; 1943 : 					return (_Uptr - _Myptr());

  00066	8b 54 24 10	 mov	 edx, DWORD PTR _this$[esp+20]
  0006a	83 7a 18 10	 cmp	 DWORD PTR [edx+24], 16	; 00000010H
  0006e	72 02		 jb	 SHORT $LN20@find_first@2
  00070	8b 1b		 mov	 ebx, DWORD PTR [ebx]
$LN20@find_first@2:
  00072	5f		 pop	 edi
  00073	8b c6		 mov	 eax, esi
  00075	5e		 pop	 esi
  00076	5d		 pop	 ebp
  00077	2b c3		 sub	 eax, ebx
  00079	5b		 pop	 ebx

; 1946 : 		}

  0007a	59		 pop	 ecx
  0007b	c2 0c 00	 ret	 12			; 0000000cH
?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of
_TEXT	ENDS
PUBLIC	?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::get_allocator
; Function compile flags: /Ogtpy
;	COMDAT ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::get_allocator, COMDAT
; _this$ = ecx

; 2058 : 		return (_Mybase::_Alval);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp-4]

; 2059 : 		}

  00004	c2 04 00	 ret	 4
?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::get_allocator
_TEXT	ENDS
PUBLIC	?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos
; Function compile flags: /Ogtpy
;	COMDAT ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos, COMDAT
; _this$ = ecx

; 2114 : 		_Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem());

  00000	83 79 18 10	 cmp	 DWORD PTR [ecx+24], 16	; 00000010H
  00004	8b 44 24 04	 mov	 eax, DWORD PTR __Newsize$[esp-4]
  00008	89 41 14	 mov	 DWORD PTR [ecx+20], eax
  0000b	72 0a		 jb	 SHORT $LN5@Eos
  0000d	8b 49 04	 mov	 ecx, DWORD PTR [ecx+4]
  00010	c6 04 01 00	 mov	 BYTE PTR [ecx+eax], 0

; 2115 : 		}

  00014	c2 04 00	 ret	 4

; 2114 : 		_Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem());

$LN5@Eos:
  00017	c6 44 01 04 00	 mov	 BYTE PTR [ecx+eax+4], 0

; 2115 : 		}

  0001c	c2 04 00	 ret	 4
?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos
_TEXT	ENDS
PUBLIC	?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside
; Function compile flags: /Ogtpy
;	COMDAT ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside, COMDAT
; _this$ = ecx

; 2133 : 		{	// test if _Ptr points inside string

  00000	56		 push	 esi
  00001	57		 push	 edi

; 2134 : 		if (_Ptr == 0 || _Ptr < _Myptr() || _Myptr() + _Mysize <= _Ptr)

  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR __Ptr$[esp+4]
  00006	85 ff		 test	 edi, edi
  00008	74 2c		 je	 SHORT $LN2@Inside
  0000a	8b 71 18	 mov	 esi, DWORD PTR [ecx+24]
  0000d	8d 41 04	 lea	 eax, DWORD PTR [ecx+4]
  00010	83 fe 10	 cmp	 esi, 16			; 00000010H
  00013	72 04		 jb	 SHORT $LN8@Inside
  00015	8b 10		 mov	 edx, DWORD PTR [eax]
  00017	eb 02		 jmp	 SHORT $LN9@Inside
$LN8@Inside:
  00019	8b d0		 mov	 edx, eax
$LN9@Inside:
  0001b	3b fa		 cmp	 edi, edx
  0001d	72 17		 jb	 SHORT $LN2@Inside
  0001f	83 fe 10	 cmp	 esi, 16			; 00000010H
  00022	72 02		 jb	 SHORT $LN12@Inside
  00024	8b 00		 mov	 eax, DWORD PTR [eax]
$LN12@Inside:
  00026	8b 49 14	 mov	 ecx, DWORD PTR [ecx+20]
  00029	03 c8		 add	 ecx, eax
  0002b	3b cf		 cmp	 ecx, edi
  0002d	76 07		 jbe	 SHORT $LN2@Inside
  0002f	5f		 pop	 edi

; 2136 : 		else
; 2137 : 			return (true);

  00030	b0 01		 mov	 al, 1
  00032	5e		 pop	 esi

; 2138 : 		}

  00033	c2 04 00	 ret	 4
$LN2@Inside:
  00036	5f		 pop	 edi

; 2135 : 			return (false);	// don't ask

  00037	32 c0		 xor	 al, al
  00039	5e		 pop	 esi

; 2138 : 		}

  0003a	c2 04 00	 ret	 4
?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside
_TEXT	ENDS
PUBLIC	??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z
_TEXT	SEGMENT
__Al$ = 8						; size = 1
??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z PROC ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >, COMDAT
; _this$ = ecx

; 472  : 		{	// construct allocator from _Al

  00000	8b c1		 mov	 eax, ecx

; 473  : 		}

  00002	c2 04 00	 ret	 4
??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z ENDP ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z PROC ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >, COMDAT
; _this$ = ecx

; 478  : 		{	// copy constructor

  00000	8b c1		 mov	 eax, ecx

; 479  : #if defined(_DEBUG)
; 480  : 		if (_Right._Myfirstiter == _IGNORE_MYITERLIST)
; 481  : 			{
; 482  : 			this->_Myfirstiter = _IGNORE_MYITERLIST;
; 483  : 			}
; 484  : #endif
; 485  : 		}

  00002	c2 04 00	 ret	 4
??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z ENDP ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??1?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@XZ ; std::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??1?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@XZ
_TEXT	SEGMENT
??1?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@XZ PROC ; std::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

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

  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	50		 push	 eax
  00003	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00008	59		 pop	 ecx

; 440  : 		}

  00009	c3		 ret	 0
??1?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@XZ ENDP ; std::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?allocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocate
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?allocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
?allocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocate, COMDAT
; _this$ = ecx

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	6a 00		 push	 0
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 ??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
  0000c	83 c4 08	 add	 esp, 8

; 146  : 		}

  0000f	c2 04 00	 ret	 4
?allocate@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::allocate
_TEXT	ENDS
PUBLIC	?max_size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::max_size
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?max_size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::max_size, COMDAT
; _this$ = ecx

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

  00000	b8 49 92 24 09	 mov	 eax, 153391689		; 09249249H

; 732  : 		}

  00005	c3		 ret	 0
?max_size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::max_size
_TEXT	ENDS
PUBLIC	?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size, COMDAT
; _this$ = ecx

; 1671 : 		size_type _Num = _Mybase::_Alval.max_size();
; 1672 : 		return (_Num <= 1 ? 1 : _Num - 1);

  00000	b8 fe ff ff ff	 mov	 eax, -2			; fffffffeH

; 1673 : 		}

  00005	c3		 ret	 0
?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size
_TEXT	ENDS
PUBLIC	?max_size@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::max_size
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ?max_size@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::max_size, COMDAT
; _this$ = ecx

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

  00000	b8 49 92 24 09	 mov	 eax, 153391689		; 09249249H

; 730  : 		}

  00005	c3		 ret	 0
?max_size@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::max_size
_TEXT	ENDS
PUBLIC	?allocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::allocate
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?allocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
?allocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::allocate, COMDAT
; _this$ = ecx

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	6a 00		 push	 0
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 ??$_Allocate@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
  0000c	83 c4 08	 add	 esp, 8

; 146  : 		}

  0000f	c2 04 00	 ret	 4
?allocate@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@I@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::allocate
_TEXT	ENDS
PUBLIC	?destroy@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::destroy
; Function compile flags: /Ogtpy
;	COMDAT ?destroy@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?destroy@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::destroy, COMDAT
; _this$ = ecx

; 160  : 		_Destroy(_Ptr);
; 161  : 		}

  00000	c2 04 00	 ret	 4
?destroy@?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>::destroy
_TEXT	ENDS
PUBLIC	??9?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator!=
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??9?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??9?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z PROC ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator!=, COMDAT
; _this$ = ecx

; 215  : 		{	// test for iterator inequality

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

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

  00003	8b 06		 mov	 eax, DWORD PTR [esi]
  00005	57		 push	 edi
  00006	8b 7c 24 0c	 mov	 edi, DWORD PTR __Right$[esp+4]
  0000a	85 c0		 test	 eax, eax
  0000c	74 04		 je	 SHORT $LN6@operator@10
  0000e	3b 07		 cmp	 eax, DWORD PTR [edi]
  00010	74 05		 je	 SHORT $LN5@operator@10
$LN6@operator@10:
  00012	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN5@operator@10:
  00017	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0001a	33 c9		 xor	 ecx, ecx
  0001c	3b 47 04	 cmp	 eax, DWORD PTR [edi+4]
  0001f	5f		 pop	 edi
  00020	0f 95 c1	 setne	 cl
  00023	8a c1		 mov	 al, cl
  00025	5e		 pop	 esi

; 217  : 		}

  00026	c2 04 00	 ret	 4
??9?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE_NABV01@@Z ENDP ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator!=
_TEXT	ENDS
PUBLIC	??0?$_Ranit@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HPBV12@ABV12@@std@@QAE@XZ ; std::_Ranit<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &>::_Ranit<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_Ranit@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HPBV12@ABV12@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_Ranit@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HPBV12@ABV12@@std@@QAE@XZ PROC ; std::_Ranit<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &>::_Ranit<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &>, COMDAT
; _this$ = ecx
  00000	8b c1		 mov	 eax, ecx
  00002	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00008	c3		 ret	 0
??0?$_Ranit@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HPBV12@ABV12@@std@@QAE@XZ ENDP ; std::_Ranit<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &>::_Ranit<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &>
_TEXT	ENDS
PUBLIC	?allocate@?$allocator@D@std@@QAEPADI@Z		; std::allocator<char>::allocate
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?allocate@?$allocator@D@std@@QAEPADI@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
?allocate@?$allocator@D@std@@QAEPADI@Z PROC		; std::allocator<char>::allocate, COMDAT
; _this$ = ecx

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	6a 00		 push	 0
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 ??$_Allocate@D@std@@YAPADIPAD@Z ; std::_Allocate<char>
  0000c	83 c4 08	 add	 esp, 8

; 146  : 		}

  0000f	c2 04 00	 ret	 4
?allocate@?$allocator@D@std@@QAEPADI@Z ENDP		; std::allocator<char>::allocate
_TEXT	ENDS
PUBLIC	??Y?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??Y?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
??Y?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z PROC ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=, COMDAT
; _this$ = ecx

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Off$[esp-4]
  00004	56		 push	 esi
  00005	50		 push	 eax
  00006	8b f1		 mov	 esi, ecx
  00008	e8 00 00 00 00	 call	 ??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=

; 376  : 		return (*this);

  0000d	8b c6		 mov	 eax, esi
  0000f	5e		 pop	 esi

; 377  : 		}

  00010	c2 04 00	 ret	 4
??Y?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ENDP ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=
_TEXT	ENDS
PUBLIC	??0?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Pvector$ = 12						; size = 4
??0?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z PROC ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

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

  00000	53		 push	 ebx

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

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Ptr$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b 7c 24 14	 mov	 edi, DWORD PTR __Pvector$[esp+8]
  0000b	8b f1		 mov	 esi, ecx
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], 0
  00013	85 ff		 test	 edi, edi
  00015	74 0a		 je	 SHORT $LN4@Vector_con
  00017	39 5f 0c	 cmp	 DWORD PTR [edi+12], ebx
  0001a	77 05		 ja	 SHORT $LN4@Vector_con
  0001c	3b 5f 10	 cmp	 ebx, DWORD PTR [edi+16]
  0001f	76 05		 jbe	 SHORT $LN3@Vector_con
$LN4@Vector_con:
  00021	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN3@Vector_con:

; 79   : 		this->_Set_container(_Pvector);

  00026	8b 07		 mov	 eax, DWORD PTR [edi]
  00028	89 06		 mov	 DWORD PTR [esi], eax
  0002a	5f		 pop	 edi

; 80   : 		_Myptr = _Ptr;

  0002b	89 5e 04	 mov	 DWORD PTR [esi+4], ebx

; 81   : 		}

  0002e	8b c6		 mov	 eax, esi
  00030	5e		 pop	 esi
  00031	5b		 pop	 ebx
  00032	c2 08 00	 ret	 8
??0?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z ENDP ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?allocate@?$allocator@V_Aux_cont@std@@@std@@QAEPAV_Aux_cont@2@I@Z ; std::allocator<std::_Aux_cont>::allocate
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?allocate@?$allocator@V_Aux_cont@std@@@std@@QAEPAV_Aux_cont@2@I@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
?allocate@?$allocator@V_Aux_cont@std@@@std@@QAEPAV_Aux_cont@2@I@Z PROC ; std::allocator<std::_Aux_cont>::allocate, COMDAT
; _this$ = ecx

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	6a 00		 push	 0
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 ??$_Allocate@V_Aux_cont@std@@@std@@YAPAV_Aux_cont@0@IPAV10@@Z ; std::_Allocate<std::_Aux_cont>
  0000c	83 c4 08	 add	 esp, 8

; 146  : 		}

  0000f	c2 04 00	 ret	 4
?allocate@?$allocator@V_Aux_cont@std@@@std@@QAEPAV_Aux_cont@2@I@Z ENDP ; std::allocator<std::_Aux_cont>::allocate
_TEXT	ENDS
PUBLIC	??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ; std::_Traits_helper::copy_s<std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
;	COMDAT ??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size$ = 12						; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z PROC ; std::_Traits_helper::copy_s<std::char_traits<char> >, COMDAT

; 589  : 		return copy_s<_Traits>(_First1, _Size, _First2, _Count, _Char_traits_cat<_Traits>());

  00000	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 0c	 mov	 ecx, DWORD PTR __First2$[esp-4]
  00008	8b 54 24 08	 mov	 edx, DWORD PTR __Size$[esp-4]
  0000c	56		 push	 esi
  0000d	8b 74 24 08	 mov	 esi, DWORD PTR __First1$[esp]
  00011	50		 push	 eax
  00012	51		 push	 ecx
  00013	52		 push	 edx
  00014	56		 push	 esi
  00015	e8 00 00 00 00	 call	 _memcpy_s
  0001a	83 c4 10	 add	 esp, 16			; 00000010H
  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi

; 590  : 	}

  00020	c3		 ret	 0
??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ENDP ; std::_Traits_helper::copy_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Al$ = 16						; size = 4
??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z PROC ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >, COMDAT

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

  00000	c3		 ret	 0
??$_Destroy_range@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z ENDP ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
_TEXT	ENDS
PUBLIC	??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ; std::_Traits_helper::move_s<std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
;	COMDAT ??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size$ = 12						; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z PROC ; std::_Traits_helper::move_s<std::char_traits<char> >, COMDAT

; 616  : 		return move_s<_Traits>(_First1, _Size, _First2, _Count, _Char_traits_cat<_Traits>());

  00000	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 0c	 mov	 ecx, DWORD PTR __First2$[esp-4]
  00008	8b 54 24 08	 mov	 edx, DWORD PTR __Size$[esp-4]
  0000c	56		 push	 esi
  0000d	8b 74 24 08	 mov	 esi, DWORD PTR __First1$[esp]
  00011	50		 push	 eax
  00012	51		 push	 ecx
  00013	52		 push	 edx
  00014	56		 push	 esi
  00015	e8 00 00 00 00	 call	 _memmove_s
  0001a	83 c4 10	 add	 esp, 16			; 00000010H
  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi

; 617  : 	}

  00020	c3		 ret	 0
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ENDP ; std::_Traits_helper::move_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@@Z ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@@Z PROC ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>, COMDAT

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __It$[esp-4]
  00004	8b 00		 mov	 eax, DWORD PTR [eax]

; 1166 : 	}

  00006	c3		 ret	 0
??$_Checked_base@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAPAV10@@Z ENDP ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *>
_TEXT	ENDS
PUBLIC	??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@@Z ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@@Z PROC ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __It$[esp-4]
  00004	8b 00		 mov	 eax, DWORD PTR [eax]

; 1166 : 	}

  00006	c3		 ret	 0
??$_Checked_base@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAPAV10@@Z ENDP ; std::_Checked_base<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::_Different_checked_iterator_base_type_tag>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
___formal$ = 12						; size = 1
??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::_Different_checked_iterator_base_type_tag>, COMDAT

; 1139 : 		return _It._Checked_iterator_base();

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __It$[esp-4]
  00004	8b 40 04	 mov	 eax, DWORD PTR [eax+4]

; 1140 : 	}

  00007	c3		 ret	 0
??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@U_Different_checked_iterator_base_type_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@U_Different_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::_Different_checked_iterator_base_type_tag>
_TEXT	ENDS
PUBLIC	??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@Urandom_access_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@Urandom_access_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@Urandom_access_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 3251 : 		// if _OutIt is checked, this will ensure we have enough space
; 3252 : 		_OutIt _Last = _First + _Count; (_Last);
; 3253 : 		_Fill_n(_CHECKED_BASE(_First), _Count, _Val,
; 3254 : 			_Range_checked_iterator_tag());

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __First$[esp-4]
  00008	85 c0		 test	 eax, eax
  0000a	76 12		 jbe	 SHORT $LN7@Fill_n@2
  0000c	8b 54 24 0c	 mov	 edx, DWORD PTR __Val$[esp-4]
  00010	56		 push	 esi
$LL9@Fill_n@2:
  00011	8b 32		 mov	 esi, DWORD PTR [edx]
  00013	89 31		 mov	 DWORD PTR [ecx], esi
  00015	48		 dec	 eax
  00016	83 c1 04	 add	 ecx, 4
  00019	85 c0		 test	 eax, eax
  0001b	77 f4		 ja	 SHORT $LL9@Fill_n@2
  0001d	5e		 pop	 esi
$LN7@Fill_n@2:

; 3255 : 	}

  0001e	c3		 ret	 0
??$_Fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@Urandom_access_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	?StringPath@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; StringPath
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
;	COMDAT ?StringPath@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_rString$ = 8						; size = 4
?StringPath@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; StringPath, COMDAT

; 282  : {

  00000	53		 push	 ebx

; 283  : 	for (DWORD i = 0; i < rString.length(); ++i)

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR _rString$[esp]
  00005	8b 43 14	 mov	 eax, DWORD PTR [ebx+20]
  00008	56		 push	 esi
  00009	33 f6		 xor	 esi, esi
  0000b	85 c0		 test	 eax, eax
  0000d	0f 86 84 00 00
	00		 jbe	 $LN3@StringPath@3
  00013	55		 push	 ebp
  00014	57		 push	 edi

; 284  : 	{
; 285  : 		if (rString[i] == '\\')

  00015	3b f0		 cmp	 esi, eax
  00017	76 05		 jbe	 SHORT $LN12@StringPath@3
  00019	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN12@StringPath@3:
  0001e	bd 10 00 00 00	 mov	 ebp, 16			; 00000010H
  00023	8d 7b 04	 lea	 edi, DWORD PTR [ebx+4]
  00026	39 6b 18	 cmp	 DWORD PTR [ebx+24], ebp
  00029	72 04		 jb	 SHORT $LN18@StringPath@3
  0002b	8b 07		 mov	 eax, DWORD PTR [edi]
  0002d	eb 02		 jmp	 SHORT $LN19@StringPath@3
$LN18@StringPath@3:
  0002f	8b c7		 mov	 eax, edi
$LN19@StringPath@3:
  00031	80 3c 30 5c	 cmp	 BYTE PTR [eax+esi], 92	; 0000005cH
  00035	75 1f		 jne	 SHORT $LN2@StringPath@3

; 286  : 			rString[i] = '/';

  00037	3b 73 14	 cmp	 esi, DWORD PTR [ebx+20]
  0003a	76 05		 jbe	 SHORT $LN22@StringPath@3
  0003c	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN22@StringPath@3:
  00041	39 6b 18	 cmp	 DWORD PTR [ebx+24], ebp
  00044	72 08		 jb	 SHORT $LN28@StringPath@3
  00046	8b 07		 mov	 eax, DWORD PTR [edi]
  00048	c6 04 30 2f	 mov	 BYTE PTR [eax+esi], 47	; 0000002fH

; 287  : 		else

  0004c	eb 3f		 jmp	 SHORT $LN4@StringPath@3

; 286  : 			rString[i] = '/';

$LN28@StringPath@3:
  0004e	8b c7		 mov	 eax, edi
  00050	c6 04 30 2f	 mov	 BYTE PTR [eax+esi], 47	; 0000002fH

; 287  : 		else

  00054	eb 37		 jmp	 SHORT $LN4@StringPath@3
$LN2@StringPath@3:

; 288  : 			rString[i] = korean_tolower(rString[i]);

  00056	3b 73 14	 cmp	 esi, DWORD PTR [ebx+20]
  00059	76 05		 jbe	 SHORT $LN32@StringPath@3
  0005b	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN32@StringPath@3:
  00060	39 6b 18	 cmp	 DWORD PTR [ebx+24], ebp
  00063	72 04		 jb	 SHORT $LN38@StringPath@3
  00065	8b 2f		 mov	 ebp, DWORD PTR [edi]
  00067	eb 02		 jmp	 SHORT $LN39@StringPath@3
$LN38@StringPath@3:
  00069	8b ef		 mov	 ebp, edi
$LN39@StringPath@3:
  0006b	3b 73 14	 cmp	 esi, DWORD PTR [ebx+20]
  0006e	76 05		 jbe	 SHORT $LN42@StringPath@3
  00070	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN42@StringPath@3:
  00075	83 7b 18 10	 cmp	 DWORD PTR [ebx+24], 16	; 00000010H
  00079	72 02		 jb	 SHORT $LN48@StringPath@3
  0007b	8b 3f		 mov	 edi, DWORD PTR [edi]
$LN48@StringPath@3:
  0007d	0f b6 04 2e	 movzx	 eax, BYTE PTR [esi+ebp]
  00081	50		 push	 eax
  00082	e8 00 00 00 00	 call	 ?korean_tolower@@YADD@Z	; korean_tolower
  00087	83 c4 04	 add	 esp, 4
  0008a	88 04 37	 mov	 BYTE PTR [edi+esi], al
$LN4@StringPath@3:
  0008d	8b 43 14	 mov	 eax, DWORD PTR [ebx+20]
  00090	46		 inc	 esi
  00091	3b f0		 cmp	 esi, eax
  00093	72 89		 jb	 SHORT $LN12@StringPath@3
  00095	5f		 pop	 edi
  00096	5d		 pop	 ebp
$LN3@StringPath@3:
  00097	5e		 pop	 esi
  00098	5b		 pop	 ebx

; 289  : 	}
; 290  : }

  00099	c3		 ret	 0
?StringPath@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; StringPath
_TEXT	ENDS
PUBLIC	?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Off$ = 12						; size = 4
?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of, COMDAT
; _this$ = ecx

; 1874 : 		{	// look for one of [_Ptr, <null>) at or after _Off

  00000	56		 push	 esi

; 1875 : 		_DEBUG_POINTER(_Ptr);
; 1876 : 		return (find_first_of(_Ptr, _Off, _Traits::length(_Ptr)));

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	8b c6		 mov	 eax, esi
  00007	57		 push	 edi
  00008	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0000b	eb 03 8d 49 00	 npad	 5
$LL5@find_first@3:
  00010	8a 10		 mov	 dl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 d2		 test	 dl, dl
  00015	75 f9		 jne	 SHORT $LL5@find_first@3
  00017	2b c7		 sub	 eax, edi
  00019	50		 push	 eax
  0001a	8b 44 24 14	 mov	 eax, DWORD PTR __Off$[esp+8]
  0001e	50		 push	 eax
  0001f	56		 push	 esi
  00020	e8 00 00 00 00	 call	 ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
  00025	5f		 pop	 edi
  00026	5e		 pop	 esi

; 1877 : 		}

  00027	c2 08 00	 ret	 8
?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
_TEXT	ENDS
PUBLIC	?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of
; Function compile flags: /Ogtpy
;	COMDAT ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Off$ = 12						; size = 4
?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of, COMDAT
; _this$ = ecx

; 1950 : 		{	// look for one of [_Ptr, <null>) at or after _Off

  00000	56		 push	 esi

; 1951 : 		_DEBUG_POINTER(_Ptr);
; 1952 : 		return (find_first_not_of(_Ptr, _Off, _Traits::length(_Ptr)));

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	8b c6		 mov	 eax, esi
  00007	57		 push	 edi
  00008	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0000b	eb 03 8d 49 00	 npad	 5
$LL5@find_first@4:
  00010	8a 10		 mov	 dl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 d2		 test	 dl, dl
  00015	75 f9		 jne	 SHORT $LL5@find_first@4
  00017	2b c7		 sub	 eax, edi
  00019	50		 push	 eax
  0001a	8b 44 24 14	 mov	 eax, DWORD PTR __Off$[esp+8]
  0001e	50		 push	 eax
  0001f	56		 push	 esi
  00020	e8 00 00 00 00	 call	 ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of
  00025	5f		 pop	 edi
  00026	5e		 pop	 esi

; 1953 : 		}

  00027	c2 08 00	 ret	 8
?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of
_TEXT	ENDS
PUBLIC	??1?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ; std::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ PROC ; std::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx
  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	50		 push	 eax
  00003	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00008	59		 pop	 ecx
  00009	c3		 ret	 0
??1?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ENDP ; std::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy
; Function compile flags: /Ogtpy
;	COMDAT ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z
_TEXT	SEGMENT
__Built$ = 8						; size = 1
__Newsize$ = 12						; size = 4
?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy, COMDAT
; _this$ = ecx

; 2149 : 		if (!_Built)

  00000	80 7c 24 04 00	 cmp	 BYTE PTR __Built$[esp-4], 0
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b 7c 24 10	 mov	 edi, DWORD PTR __Newsize$[esp+4]
  0000b	8b f1		 mov	 esi, ecx
  0000d	74 27		 je	 SHORT $LN15@Tidy

; 2150 : 			;
; 2151 : 		else if (_BUF_SIZE <= _Myres)

  0000f	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00013	72 21		 jb	 SHORT $LN15@Tidy

; 2152 : 			{	// copy any leftovers to small buffer and deallocate
; 2153 : 			_Elem *_Ptr = _Bx._Ptr;

  00015	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00018	53		 push	 ebx
  00019	8b 18		 mov	 ebx, DWORD PTR [eax]

; 2154 : 			if (0 < _Newsize)

  0001b	85 ff		 test	 edi, edi
  0001d	76 0d		 jbe	 SHORT $LN13@Tidy

; 2155 : 				_Traits_helper::copy_s<_Traits>(_Bx._Buf, _BUF_SIZE, _Ptr, _Newsize);

  0001f	57		 push	 edi
  00020	53		 push	 ebx
  00021	6a 10		 push	 16			; 00000010H
  00023	50		 push	 eax
  00024	e8 00 00 00 00	 call	 _memcpy_s
  00029	83 c4 10	 add	 esp, 16			; 00000010H
$LN13@Tidy:

; 2156 : 			_Mybase::_Alval.deallocate(_Ptr, _Myres + 1);

  0002c	53		 push	 ebx
  0002d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00032	83 c4 04	 add	 esp, 4
  00035	5b		 pop	 ebx
$LN15@Tidy:

; 2157 : 			}
; 2158 : 		_Myres = _BUF_SIZE - 1;
; 2159 : 		_Eos(_Newsize);

  00036	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  00039	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00040	c6 44 3e 04 00	 mov	 BYTE PTR [esi+edi+4], 0
  00045	5f		 pop	 edi
  00046	5e		 pop	 esi

; 2160 : 		}

  00047	c2 08 00	 ret	 8
?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy
_TEXT	ENDS
PUBLIC	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
EXTRN	?_Xran@_String_base@std@@SAXXZ:PROC		; std::_String_base::_Xran
; Function compile flags: /Ogtpy
;	COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z
_TEXT	SEGMENT
tv130 = 8						; size = 4
__Off$ = 8						; size = 4
__Count$ = 12						; size = 4
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase, COMDAT
; _this$ = ecx

; 1262 : 		{	// erase elements [_Off, _Off + _Count)

  00000	53		 push	 ebx

; 1263 : 		if (_Mysize < _Off)

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Off$[esp]
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
  00008	57		 push	 edi
  00009	39 5e 14	 cmp	 DWORD PTR [esi+20], ebx
  0000c	73 05		 jae	 SHORT $LN3@erase

; 1264 : 			_String_base::_Xran();	// _Off off end

  0000e	e8 00 00 00 00	 call	 ?_Xran@_String_base@std@@SAXXZ ; std::_String_base::_Xran
$LN3@erase:

; 1265 : 		if (_Mysize - _Off < _Count)

  00013	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  00016	8b 7c 24 14	 mov	 edi, DWORD PTR __Count$[esp+8]
  0001a	2b c3		 sub	 eax, ebx
  0001c	3b c7		 cmp	 eax, edi
  0001e	73 02		 jae	 SHORT $LN2@erase

; 1266 : 			_Count = _Mysize - _Off;	// trim _Count

  00020	8b f8		 mov	 edi, eax
$LN2@erase:

; 1267 : 		if (0 < _Count)

  00022	85 ff		 test	 edi, edi
  00024	76 55		 jbe	 SHORT $LN30@erase

; 1268 : 			{	// move elements down
; 1269 : 			_Traits_helper::move_s<_Traits>(_Myptr() + _Off, _Myres - _Off, _Myptr() + _Off + _Count,
; 1270 : 				_Mysize - _Off - _Count);

  00026	8b 4e 18	 mov	 ecx, DWORD PTR [esi+24]
  00029	55		 push	 ebp
  0002a	8d 6e 04	 lea	 ebp, DWORD PTR [esi+4]
  0002d	83 f9 10	 cmp	 ecx, 16			; 00000010H
  00030	72 09		 jb	 SHORT $LN8@erase
  00032	8b 55 00	 mov	 edx, DWORD PTR [ebp]
  00035	89 54 24 14	 mov	 DWORD PTR tv130[esp+12], edx
  00039	eb 04		 jmp	 SHORT $LN9@erase
$LN8@erase:
  0003b	89 6c 24 14	 mov	 DWORD PTR tv130[esp+12], ebp
$LN9@erase:
  0003f	83 f9 10	 cmp	 ecx, 16			; 00000010H
  00042	72 05		 jb	 SHORT $LN12@erase
  00044	8b 55 00	 mov	 edx, DWORD PTR [ebp]
  00047	eb 02		 jmp	 SHORT $LN13@erase
$LN12@erase:
  00049	8b d5		 mov	 edx, ebp
$LN13@erase:
  0004b	2b c7		 sub	 eax, edi
  0004d	50		 push	 eax
  0004e	8b 44 24 18	 mov	 eax, DWORD PTR tv130[esp+16]
  00052	03 c3		 add	 eax, ebx
  00054	03 c7		 add	 eax, edi
  00056	50		 push	 eax
  00057	2b cb		 sub	 ecx, ebx
  00059	51		 push	 ecx
  0005a	03 d3		 add	 edx, ebx
  0005c	52		 push	 edx
  0005d	e8 00 00 00 00	 call	 _memmove_s

; 1271 : 			size_type _Newsize = _Mysize - _Count;

  00062	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  00065	2b c7		 sub	 eax, edi
  00067	83 c4 10	 add	 esp, 16			; 00000010H

; 1272 : 			_Eos(_Newsize);

  0006a	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  0006e	89 46 14	 mov	 DWORD PTR [esi+20], eax
  00071	72 03		 jb	 SHORT $LN26@erase
  00073	8b 6d 00	 mov	 ebp, DWORD PTR [ebp]
$LN26@erase:
  00076	c6 04 28 00	 mov	 BYTE PTR [eax+ebp], 0
  0007a	5d		 pop	 ebp
$LN30@erase:
  0007b	5f		 pop	 edi

; 1273 : 			}
; 1274 : 		return (*this);

  0007c	8b c6		 mov	 eax, esi
  0007e	5e		 pop	 esi
  0007f	5b		 pop	 ebx

; 1275 : 		}

  00080	c2 08 00	 ret	 8
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
_TEXT	ENDS
PUBLIC	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__catchsym$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$5 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$0
__catchsym$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$4 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$1
__unwindtable$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	01H
	DD	00H
	DD	01H
	DD	00H
__ehfuncinfo$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
	DD	02H
	DD	FLAT:__tryblocktable$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__tryblocktable$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z DD 02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:__catchsym$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$4
	DD	00H
	DD	00H
	DD	03H
	DD	01H
	DD	FLAT:__catchsym$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$5
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
xdata$x	ENDS
;	COMDAT ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
_TEXT	SEGMENT
__Newres$ = -24						; size = 4
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Ptr$ = 8						; size = 4
__Newsize$ = 8						; size = 4
__Oldlen$ = 12						; size = 4
?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy, COMDAT
; _this$ = ecx

; 2083 : 		{	// copy _Oldlen elements to newly allocated buffer

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@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	53		 push	 ebx
  00015	56		 push	 esi
  00016	57		 push	 edi
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp
  0002b	8b f9		 mov	 edi, ecx
  0002d	89 7d ec	 mov	 DWORD PTR _this$[ebp], edi

; 2084 : 		size_type _Newres = _Newsize | _ALLOC_MASK;

  00030	8b 45 08	 mov	 eax, DWORD PTR __Newsize$[ebp]
  00033	8b f0		 mov	 esi, eax
  00035	83 ce 0f	 or	 esi, 15			; 0000000fH

; 2085 : 		if (max_size() < _Newres)

  00038	83 fe fe	 cmp	 esi, -2			; fffffffeH
  0003b	76 04		 jbe	 SHORT $LN6@Copy

; 2086 : 			_Newres = _Newsize;	// undo roundup if too big

  0003d	8b f0		 mov	 esi, eax

; 2087 : 		else if (_Newres / 3 < _Myres / 2

  0003f	eb 22		 jmp	 SHORT $LN4@Copy
$LN6@Copy:

; 2088 : 			&& _Myres <= max_size() - _Myres / 2)

  00041	8b 5f 18	 mov	 ebx, DWORD PTR [edi+24]
  00044	b8 ab aa aa aa	 mov	 eax, -1431655765	; aaaaaaabH
  00049	f7 e6		 mul	 esi
  0004b	8b cb		 mov	 ecx, ebx
  0004d	d1 e9		 shr	 ecx, 1
  0004f	d1 ea		 shr	 edx, 1
  00051	3b d1		 cmp	 edx, ecx
  00053	73 0e		 jae	 SHORT $LN4@Copy
  00055	b8 fe ff ff ff	 mov	 eax, -2			; fffffffeH
  0005a	2b c1		 sub	 eax, ecx
  0005c	3b d8		 cmp	 ebx, eax
  0005e	77 03		 ja	 SHORT $LN4@Copy

; 2089 : 			_Newres = _Myres + _Myres / 2;	// grow exponentially if possible

  00060	8d 34 19	 lea	 esi, DWORD PTR [ecx+ebx]
$LN4@Copy:

; 2090 : 		_Elem *_Ptr = 0;
; 2091 : 
; 2092 : 		_TRY_BEGIN
; 2093 : 			_Ptr = _Mybase::_Alval.allocate(_Newres + 1);

  00063	8d 4e 01	 lea	 ecx, DWORD PTR [esi+1]
  00066	6a 00		 push	 0
  00068	51		 push	 ecx
  00069	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  00070	e8 00 00 00 00	 call	 ??$_Allocate@D@std@@YAPADIPAD@Z ; std::_Allocate<char>
  00075	83 c4 08	 add	 esp, 8
  00078	89 45 08	 mov	 DWORD PTR __Ptr$[ebp], eax
  0007b	eb 28		 jmp	 SHORT $LN16@Copy
__catch$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$0:

; 2094 : 		_CATCH_ALL
; 2095 : 			_Newres = _Newsize;	// allocation failed, undo roundup and retry

  0007d	8b 45 08	 mov	 eax, DWORD PTR __Newsize$[ebp]
  00080	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp
  00083	89 45 e8	 mov	 DWORD PTR __Newres$[ebp], eax

; 2096 : 			_TRY_BEGIN
; 2097 : 				_Ptr = _Mybase::_Alval.allocate(_Newres + 1);

  00086	40		 inc	 eax
  00087	6a 00		 push	 0
  00089	50		 push	 eax
  0008a	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+12], 2
  0008e	e8 00 00 00 00	 call	 ??$_Allocate@D@std@@YAPADIPAD@Z ; std::_Allocate<char>
  00093	89 45 08	 mov	 DWORD PTR __Ptr$[ebp], eax
  00096	83 c4 08	 add	 esp, 8

; 2101 : 			_CATCH_END
; 2102 : 		_CATCH_END

  00099	b8 00 00 00 00	 mov	 eax, $LN106@Copy
  0009e	c3		 ret	 0
$LN106@Copy:
  0009f	8b 7d ec	 mov	 edi, DWORD PTR _this$[ebp]
  000a2	8b 75 e8	 mov	 esi, DWORD PTR __Newres$[ebp]
$LN16@Copy:

; 2103 : 
; 2104 : 		if (0 < _Oldlen)

  000a5	8b 5d 0c	 mov	 ebx, DWORD PTR __Oldlen$[ebp]
  000a8	85 db		 test	 ebx, ebx
  000aa	76 20		 jbe	 SHORT $LN71@Copy

; 2105 : 			_Traits_helper::copy_s<_Traits>(_Ptr, _Newres + 1, _Myptr(), _Oldlen);	// copy existing elements

  000ac	83 7f 18 10	 cmp	 DWORD PTR [edi+24], 16	; 00000010H
  000b0	72 05		 jb	 SHORT $LN63@Copy
  000b2	8b 47 04	 mov	 eax, DWORD PTR [edi+4]
  000b5	eb 03		 jmp	 SHORT $LN64@Copy
$LN63@Copy:
  000b7	8d 47 04	 lea	 eax, DWORD PTR [edi+4]
$LN64@Copy:
  000ba	53		 push	 ebx
  000bb	50		 push	 eax
  000bc	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  000bf	8d 56 01	 lea	 edx, DWORD PTR [esi+1]
  000c2	52		 push	 edx
  000c3	50		 push	 eax
  000c4	e8 00 00 00 00	 call	 _memcpy_s
  000c9	83 c4 10	 add	 esp, 16			; 00000010H
$LN71@Copy:

; 2106 : 		_Tidy(true);

  000cc	83 7f 18 10	 cmp	 DWORD PTR [edi+24], 16	; 00000010H
  000d0	72 0c		 jb	 SHORT $LN87@Copy
  000d2	8b 4f 04	 mov	 ecx, DWORD PTR [edi+4]
  000d5	51		 push	 ecx
  000d6	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000db	83 c4 04	 add	 esp, 4
$LN87@Copy:

; 2107 : 		_Bx._Ptr = _Ptr;

  000de	8b 4d 08	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  000e1	8d 47 04	 lea	 eax, DWORD PTR [edi+4]
  000e4	c6 00 00	 mov	 BYTE PTR [eax], 0
  000e7	89 08		 mov	 DWORD PTR [eax], ecx

; 2108 : 		_Myres = _Newres;

  000e9	89 77 18	 mov	 DWORD PTR [edi+24], esi

; 2109 : 		_Eos(_Oldlen);

  000ec	89 5f 14	 mov	 DWORD PTR [edi+20], ebx
  000ef	83 fe 10	 cmp	 esi, 16			; 00000010H
  000f2	72 02		 jb	 SHORT $LN101@Copy
  000f4	8b c1		 mov	 eax, ecx
$LN101@Copy:
  000f6	c6 04 18 00	 mov	 BYTE PTR [eax+ebx], 0

; 2110 : 		}

  000fa	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000fd	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00104	59		 pop	 ecx
  00105	5f		 pop	 edi
  00106	5e		 pop	 esi
  00107	5b		 pop	 ebx
  00108	8b e5		 mov	 esp, ebp
  0010a	5d		 pop	 ebp
  0010b	c2 08 00	 ret	 8
__catch$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$1:

; 2098 : 			_CATCH_ALL
; 2099 : 			_Tidy(true);	// failed again, discard storage and reraise

  0010e	8b 75 ec	 mov	 esi, DWORD PTR _this$[ebp]
  00111	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00115	72 0c		 jb	 SHORT $LN51@Copy
  00117	8b 56 04	 mov	 edx, DWORD PTR [esi+4]
  0011a	52		 push	 edx
  0011b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00120	83 c4 04	 add	 esp, 4
$LN51@Copy:

; 2100 : 			_RERAISE;

  00123	6a 00		 push	 0
  00125	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  0012c	c7 46 14 00 00
	00 00		 mov	 DWORD PTR [esi+20], 0
  00133	6a 00		 push	 0
  00135	c6 46 04 00	 mov	 BYTE PTR [esi+4], 0
  00139	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN110@Copy:
$LN109@Copy:
  0013e	cc		 int	 3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@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 e4	 mov	 ecx, DWORD PTR [edx-28]
  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$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
PUBLIC	??0?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??0?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
__Pdeque$ = 12						; size = 4
??0?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z PROC ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>, COMDAT
; _this$ = ecx

; 125  : 		_Deque_const_iterator(size_type _Off, const _Mydequebase *_Pdeque)

  00000	53		 push	 ebx

; 126  : 			{	// construct with offset _Off in *_Pdeque
; 127  : 			_SCL_SECURE_TRAITS_VALIDATE(
; 128  : 				_Pdeque != NULL &&
; 129  : 				((_Mydeque *)_Pdeque)->_Myoff <= _Off && _Off <= (((_Mydeque *)_Pdeque)->_Myoff + ((_Mydeque *)_Pdeque)->_Mysize));

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Off$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b 7c 24 14	 mov	 edi, DWORD PTR __Pdeque$[esp+8]
  0000b	8b f1		 mov	 esi, ecx
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], 0
  00013	85 ff		 test	 edi, edi
  00015	74 10		 je	 SHORT $LN4@Deque_cons
  00017	8b 47 18	 mov	 eax, DWORD PTR [edi+24]
  0001a	3b c3		 cmp	 eax, ebx
  0001c	77 09		 ja	 SHORT $LN4@Deque_cons
  0001e	8b 4f 1c	 mov	 ecx, DWORD PTR [edi+28]
  00021	03 c8		 add	 ecx, eax
  00023	3b d9		 cmp	 ebx, ecx
  00025	76 05		 jbe	 SHORT $LN3@Deque_cons
$LN4@Deque_cons:
  00027	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN3@Deque_cons:

; 130  : 				
; 131  : 			this->_Set_container(_Pdeque);

  0002c	8b 17		 mov	 edx, DWORD PTR [edi]
  0002e	5f		 pop	 edi

; 132  : 			_Myoff = _Off;

  0002f	89 5e 04	 mov	 DWORD PTR [esi+4], ebx
  00032	89 16		 mov	 DWORD PTR [esi], edx

; 133  : 			}

  00034	8b c6		 mov	 eax, esi
  00036	5e		 pop	 esi
  00037	5b		 pop	 ebx
  00038	c2 08 00	 ret	 8
??0?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z ENDP ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>
_TEXT	ENDS
PUBLIC	??0?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??0?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Pvector$ = 12						; size = 4
??0?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z PROC ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

; 327  : 		{	// construct with pointer _Ptr

  00000	53		 push	 ebx
  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Ptr$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b 7c 24 14	 mov	 edi, DWORD PTR __Pvector$[esp+8]
  0000b	8b f1		 mov	 esi, ecx
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], 0
  00013	85 ff		 test	 edi, edi
  00015	74 0a		 je	 SHORT $LN6@Vector_ite
  00017	39 5f 0c	 cmp	 DWORD PTR [edi+12], ebx
  0001a	77 05		 ja	 SHORT $LN6@Vector_ite
  0001c	3b 5f 10	 cmp	 ebx, DWORD PTR [edi+16]
  0001f	76 05		 jbe	 SHORT $LN5@Vector_ite
$LN6@Vector_ite:
  00021	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN5@Vector_ite:
  00026	8b 07		 mov	 eax, DWORD PTR [edi]
  00028	89 06		 mov	 DWORD PTR [esi], eax
  0002a	5f		 pop	 edi
  0002b	89 5e 04	 mov	 DWORD PTR [esi+4], ebx

; 328  : 		}

  0002e	8b c6		 mov	 eax, esi
  00030	5e		 pop	 esi
  00031	5b		 pop	 ebx
  00032	c2 08 00	 ret	 8
??0?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_aux@1@@Z ENDP ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??H?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV01@H@Z ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+
; Function compile flags: /Ogtpy
;	COMDAT ??H?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV01@H@Z
_TEXT	SEGMENT
__Tmp$ = -8						; size = 8
___$ReturnUdt$ = 8					; size = 4
__Off$ = 12						; size = 4
??H?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV01@H@Z PROC ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+, COMDAT
; _this$ = ecx

; 380  : 		{	// return this + integer

  00000	83 ec 08	 sub	 esp, 8

; 381  : 		_Myt _Tmp = *this;

  00003	8b 01		 mov	 eax, DWORD PTR [ecx]
  00005	8b 49 04	 mov	 ecx, DWORD PTR [ecx+4]

; 382  : 		return (_Tmp += _Off);

  00008	8b 54 24 10	 mov	 edx, DWORD PTR __Off$[esp+4]
  0000c	89 4c 24 04	 mov	 DWORD PTR __Tmp$[esp+12], ecx
  00010	52		 push	 edx
  00011	8d 4c 24 04	 lea	 ecx, DWORD PTR __Tmp$[esp+12]
  00015	89 44 24 04	 mov	 DWORD PTR __Tmp$[esp+12], eax
  00019	e8 00 00 00 00	 call	 ??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=
  0001e	8b 44 24 0c	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp+4]
  00022	8b 0c 24	 mov	 ecx, DWORD PTR __Tmp$[esp+8]
  00025	8b 54 24 04	 mov	 edx, DWORD PTR __Tmp$[esp+12]
  00029	89 08		 mov	 DWORD PTR [eax], ecx
  0002b	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 383  : 		}

  0002e	83 c4 08	 add	 esp, 8
  00031	c2 08 00	 ret	 8
??H?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV01@H@Z ENDP ; std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+
_TEXT	ENDS
PUBLIC	??0?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ; std::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??0?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z
_TEXT	SEGMENT
__Al$ = 8						; size = 1
??0?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z PROC ; std::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

; 419  : 		{

  00000	56		 push	 esi

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

  00001	6a 04		 push	 4
  00003	8b f1		 mov	 esi, ecx
  00005	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0000a	83 c4 04	 add	 esp, 4
  0000d	85 c0		 test	 eax, eax
  0000f	74 0a		 je	 SHORT $LN3@Container_
  00011	89 30		 mov	 DWORD PTR [eax], esi
  00013	89 06		 mov	 DWORD PTR [esi], eax

; 421  : 		}

  00015	8b c6		 mov	 eax, esi
  00017	5e		 pop	 esi
  00018	c2 04 00	 ret	 4
$LN3@Container_:

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

  0001b	33 c0		 xor	 eax, eax
  0001d	89 06		 mov	 DWORD PTR [esi], eax

; 421  : 		}

  0001f	8b c6		 mov	 eax, esi
  00021	5e		 pop	 esi
  00022	c2 04 00	 ret	 4
??0?$_Container_base_aux_alloc_real@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ENDP ; std::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Container_base_aux_alloc_real<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??$unchecked_uninitialized_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ; stdext::unchecked_uninitialized_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
;	COMDAT ??$unchecked_uninitialized_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z PROC ; stdext::unchecked_uninitialized_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >, COMDAT

; 820  : 	return (_STD _Uninit_copy(_CHECKED_BASE(_First),
; 821  : 		_CHECKED_BASE(_Last), _Dest, _Al,
; 822  : 		_STD _Ptr_cat(_First, _Dest), _STD _Range_checked_iterator_tag()));

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Last$[esp-4]
  00004	8b 54 24 04	 mov	 edx, DWORD PTR __First$[esp-4]
  00008	2b c2		 sub	 eax, edx
  0000a	56		 push	 esi
  0000b	c1 f8 02	 sar	 eax, 2
  0000e	57		 push	 edi
  0000f	8b 7c 24 14	 mov	 edi, DWORD PTR __Dest$[esp+4]
  00013	8d 0c 85 00 00
	00 00		 lea	 ecx, DWORD PTR [eax*4]
  0001a	8d 34 39	 lea	 esi, DWORD PTR [ecx+edi]
  0001d	85 c0		 test	 eax, eax
  0001f	76 0c		 jbe	 SHORT $LN16@unchecked_
  00021	51		 push	 ecx
  00022	52		 push	 edx
  00023	51		 push	 ecx
  00024	57		 push	 edi
  00025	e8 00 00 00 00	 call	 _memmove_s
  0002a	83 c4 10	 add	 esp, 16			; 00000010H
$LN16@unchecked_:
  0002d	5f		 pop	 edi
  0002e	8b c6		 mov	 eax, esi
  00030	5e		 pop	 esi

; 823  : 	}

  00031	c3		 ret	 0
??$unchecked_uninitialized_copy@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAPAV12@00AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ENDP ; stdext::unchecked_uninitialized_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
_TEXT	ENDS
PUBLIC	??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@@Z ; std::_Checked_base<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@@Z
_TEXT	SEGMENT
__It$ = 8						; size = 4
??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@@Z PROC ; std::_Checked_base<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >, COMDAT

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

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __It$[esp-4]
  00004	8b 40 04	 mov	 eax, DWORD PTR [eax+4]

; 1166 : 	}

  00007	c3		 ret	 0
??$_Checked_base@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AAV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@@Z ENDP ; std::_Checked_base<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >
_TEXT	ENDS
PUBLIC	??$unchecked_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@@Z ; stdext::unchecked_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$unchecked_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
??$unchecked_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@@Z PROC ; stdext::unchecked_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 3721 : 		_STD _Fill_n(_First, _Count, _Val, _STD _Iter_cat(_First), _STD _Range_checked_iterator_tag());

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __First$[esp-4]
  00008	85 c0		 test	 eax, eax
  0000a	76 12		 jbe	 SHORT $LN11@unchecked_@2
  0000c	8b 54 24 0c	 mov	 edx, DWORD PTR __Val$[esp-4]
  00010	56		 push	 esi
$LL13@unchecked_@2:
  00011	8b 32		 mov	 esi, DWORD PTR [edx]
  00013	89 31		 mov	 DWORD PTR [ecx], esi
  00015	48		 dec	 eax
  00016	83 c1 04	 add	 ecx, 4
  00019	85 c0		 test	 eax, eax
  0001b	77 f4		 ja	 SHORT $LL13@unchecked_@2
  0001d	5e		 pop	 esi
$LN11@unchecked_@2:

; 3722 : 	}

  0001e	c3		 ret	 0
??$unchecked_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@@Z ENDP ; stdext::unchecked_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??0?$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> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 565  : 		{	// construct empty string

  00000	8b c1		 mov	 eax, ecx

; 566  : 		_Tidy();

  00002	33 c9		 xor	 ecx, ecx
  00004	c7 40 18 0f 00
	00 00		 mov	 DWORD PTR [eax+24], 15	; 0000000fH
  0000b	89 48 14	 mov	 DWORD PTR [eax+20], ecx
  0000e	88 48 04	 mov	 BYTE PTR [eax+4], cl

; 567  : 		}

  00011	c3		 ret	 0
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??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> >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 905  : 		{	// destroy the string

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 906  : 		_Tidy(true);

  00003	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00007	72 0c		 jb	 SHORT $LN17@basic_stri
  00009	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0000c	50		 push	 eax
  0000d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00012	83 c4 04	 add	 esp, 4
$LN17@basic_stri:
  00015	33 c0		 xor	 eax, eax
  00017	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  0001e	89 46 14	 mov	 DWORD PTR [esi+20], eax
  00021	88 46 04	 mov	 BYTE PTR [esi+4], al
  00024	5e		 pop	 esi

; 907  : 		}

  00025	c3		 ret	 0
??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??1?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ; std::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ PROC ; std::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx
  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	50		 push	 eax
  00003	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00008	59		 pop	 ecx
  00009	c3		 ret	 0
??1?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ENDP ; std::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
EXTRN	?_Xlen@_String_base@std@@SAXXZ:PROC		; std::_String_base::_Xlen
; Function compile flags: /Ogtpy
;	COMDAT ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
__Trim$ = 12						; size = 1
?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow, COMDAT
; _this$ = ecx

; 2119 : 		{	// ensure buffer is big enough, trim to size if _Trim is true

  00000	53		 push	 ebx

; 2120 : 			if (max_size() < _Newsize)

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Newsize$[esp]
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
  00008	83 fb fe	 cmp	 ebx, -2			; fffffffeH
  0000b	76 05		 jbe	 SHORT $LN6@Grow

; 2121 : 			_String_base::_Xlen();	// result too long

  0000d	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN6@Grow:

; 2122 : 		if (_Myres < _Newsize)

  00012	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  00015	3b c3		 cmp	 eax, ebx
  00017	73 19		 jae	 SHORT $LN5@Grow

; 2123 : 			_Copy(_Newsize, _Mysize);	// reallocate to grow

  00019	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  0001c	50		 push	 eax
  0001d	53		 push	 ebx
  0001e	8b ce		 mov	 ecx, esi
  00020	e8 00 00 00 00	 call	 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy

; 2129 : 		return (0 < _Newsize);	// return true only if more work to do

  00025	33 c9		 xor	 ecx, ecx
  00027	3b cb		 cmp	 ecx, ebx
  00029	1b c0		 sbb	 eax, eax
  0002b	5e		 pop	 esi
  0002c	f7 d8		 neg	 eax
  0002e	5b		 pop	 ebx

; 2130 : 		}

  0002f	c2 08 00	 ret	 8
$LN5@Grow:

; 2124 : 		else if (_Trim && _Newsize < _BUF_SIZE)

  00032	80 7c 24 10 00	 cmp	 BYTE PTR __Trim$[esp+4], 0
  00037	74 52		 je	 SHORT $LN3@Grow
  00039	83 fb 10	 cmp	 ebx, 16			; 00000010H
  0003c	73 4d		 jae	 SHORT $LN3@Grow
  0003e	57		 push	 edi

; 2125 : 			_Tidy(true,	// copy and deallocate if trimming to small string
; 2126 : 				_Newsize < _Mysize ? _Newsize : _Mysize);

  0003f	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  00042	3b df		 cmp	 ebx, edi
  00044	73 02		 jae	 SHORT $LN9@Grow
  00046	8b fb		 mov	 edi, ebx
$LN9@Grow:
  00048	83 f8 10	 cmp	 eax, 16			; 00000010H
  0004b	72 21		 jb	 SHORT $LN33@Grow
  0004d	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00050	55		 push	 ebp
  00051	8b 28		 mov	 ebp, DWORD PTR [eax]
  00053	85 ff		 test	 edi, edi
  00055	76 0d		 jbe	 SHORT $LN31@Grow
  00057	57		 push	 edi
  00058	55		 push	 ebp
  00059	6a 10		 push	 16			; 00000010H
  0005b	50		 push	 eax
  0005c	e8 00 00 00 00	 call	 _memcpy_s
  00061	83 c4 10	 add	 esp, 16			; 00000010H
$LN31@Grow:
  00064	55		 push	 ebp
  00065	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0006a	83 c4 04	 add	 esp, 4
  0006d	5d		 pop	 ebp
$LN33@Grow:
  0006e	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  00071	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH

; 2129 : 		return (0 < _Newsize);	// return true only if more work to do

  00078	33 c9		 xor	 ecx, ecx
  0007a	c6 44 3e 04 00	 mov	 BYTE PTR [esi+edi+4], 0
  0007f	3b cb		 cmp	 ecx, ebx
  00081	5f		 pop	 edi
  00082	1b c0		 sbb	 eax, eax
  00084	5e		 pop	 esi
  00085	f7 d8		 neg	 eax
  00087	5b		 pop	 ebx

; 2130 : 		}

  00088	c2 08 00	 ret	 8
$LN3@Grow:

; 2127 : 		else if (_Newsize == 0)

  0008b	85 db		 test	 ebx, ebx
  0008d	75 20		 jne	 SHORT $LN49@Grow

; 2128 : 			_Eos(0);	// new size is zero, just null terminate

  0008f	89 5e 14	 mov	 DWORD PTR [esi+20], ebx
  00092	83 f8 10	 cmp	 eax, 16			; 00000010H
  00095	72 12		 jb	 SHORT $LN47@Grow
  00097	8b 76 04	 mov	 esi, DWORD PTR [esi+4]

; 2129 : 		return (0 < _Newsize);	// return true only if more work to do

  0009a	33 c9		 xor	 ecx, ecx
  0009c	3b cb		 cmp	 ecx, ebx
  0009e	88 1e		 mov	 BYTE PTR [esi], bl
  000a0	1b c0		 sbb	 eax, eax
  000a2	5e		 pop	 esi
  000a3	f7 d8		 neg	 eax
  000a5	5b		 pop	 ebx

; 2130 : 		}

  000a6	c2 08 00	 ret	 8

; 2128 : 			_Eos(0);	// new size is zero, just null terminate

$LN47@Grow:
  000a9	83 c6 04	 add	 esi, 4
  000ac	c6 06 00	 mov	 BYTE PTR [esi], 0
$LN49@Grow:

; 2129 : 		return (0 < _Newsize);	// return true only if more work to do

  000af	33 c9		 xor	 ecx, ecx
  000b1	3b cb		 cmp	 ecx, ebx
  000b3	1b c0		 sbb	 eax, eax
  000b5	5e		 pop	 esi
  000b6	f7 d8		 neg	 eax
  000b8	5b		 pop	 ebx

; 2130 : 		}

  000b9	c2 08 00	 ret	 8
?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
_TEXT	ENDS
PUBLIC	??0?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??0?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
__Pdeque$ = 12						; size = 4
??0?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z PROC ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>, COMDAT
; _this$ = ecx

; 381  : 		{	// construct with offset _Off in *_Pdeque

  00000	53		 push	 ebx
  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Off$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b 7c 24 14	 mov	 edi, DWORD PTR __Pdeque$[esp+8]
  0000b	8b f1		 mov	 esi, ecx
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], 0
  00013	85 ff		 test	 edi, edi
  00015	74 10		 je	 SHORT $LN6@Deque_iter
  00017	8b 47 18	 mov	 eax, DWORD PTR [edi+24]
  0001a	3b c3		 cmp	 eax, ebx
  0001c	77 09		 ja	 SHORT $LN6@Deque_iter
  0001e	8b 4f 1c	 mov	 ecx, DWORD PTR [edi+28]
  00021	03 c8		 add	 ecx, eax
  00023	3b d9		 cmp	 ebx, ecx
  00025	76 05		 jbe	 SHORT $LN5@Deque_iter
$LN6@Deque_iter:
  00027	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN5@Deque_iter:
  0002c	8b 17		 mov	 edx, DWORD PTR [edi]
  0002e	5f		 pop	 edi
  0002f	89 5e 04	 mov	 DWORD PTR [esi+4], ebx
  00032	89 16		 mov	 DWORD PTR [esi], edx

; 382  : 		}

  00034	8b c6		 mov	 eax, esi
  00036	5e		 pop	 esi
  00037	5b		 pop	 ebx
  00038	c2 08 00	 ret	 8
??0?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QAE@IPBV_Container_base_aux@1@@Z ENDP ; std::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::_Deque_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>
_TEXT	ENDS
PUBLIC	?begin@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::begin
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?begin@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?begin@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::begin, COMDAT
; _this$ = ecx

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

  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx

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

  00004	8b 5e 0c	 mov	 ebx, DWORD PTR [esi+12]
  00007	57		 push	 edi
  00008	8b 7c 24 10	 mov	 edi, DWORD PTR ___$ReturnUdt$[esp+8]
  0000c	c7 07 00 00 00
	00		 mov	 DWORD PTR [edi], 0
  00012	3b 5e 10	 cmp	 ebx, DWORD PTR [esi+16]
  00015	76 05		 jbe	 SHORT $LN7@begin
  00017	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN7@begin:
  0001c	8b 06		 mov	 eax, DWORD PTR [esi]
  0001e	89 07		 mov	 DWORD PTR [edi], eax
  00020	89 5f 04	 mov	 DWORD PTR [edi+4], ebx
  00023	8b c7		 mov	 eax, edi
  00025	5f		 pop	 edi
  00026	5e		 pop	 esi
  00027	5b		 pop	 ebx

; 642  : 		}

  00028	c2 04 00	 ret	 4
?begin@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::begin
_TEXT	ENDS
PUBLIC	?end@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::end
; Function compile flags: /Ogtpy
;	COMDAT ?end@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?end@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::end, COMDAT
; _this$ = ecx

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

  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx

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

  00004	8b 5e 10	 mov	 ebx, DWORD PTR [esi+16]
  00007	57		 push	 edi
  00008	8b 7c 24 10	 mov	 edi, DWORD PTR ___$ReturnUdt$[esp+8]
  0000c	c7 07 00 00 00
	00		 mov	 DWORD PTR [edi], 0
  00012	39 5e 0c	 cmp	 DWORD PTR [esi+12], ebx
  00015	76 05		 jbe	 SHORT $LN7@end
  00017	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN7@end:
  0001c	8b 06		 mov	 eax, DWORD PTR [esi]
  0001e	89 07		 mov	 DWORD PTR [edi], eax
  00020	89 5f 04	 mov	 DWORD PTR [edi+4], ebx
  00023	8b c7		 mov	 eax, edi
  00025	5f		 pop	 edi
  00026	5e		 pop	 esi
  00027	5b		 pop	 ebx

; 652  : 		}

  00028	c2 04 00	 ret	 4
?end@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@XZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::end
_TEXT	ENDS
PUBLIC	??0?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ; std::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??0?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z
_TEXT	SEGMENT
__Al$ = 8						; size = 1
??0?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z PROC ; std::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

; 478  : 		{	// construct allocator from _Al

  00000	56		 push	 esi
  00001	6a 04		 push	 4
  00003	8b f1		 mov	 esi, ecx
  00005	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0000a	83 c4 04	 add	 esp, 4
  0000d	85 c0		 test	 eax, eax
  0000f	74 0a		 je	 SHORT $LN8@Deque_map
  00011	89 30		 mov	 DWORD PTR [eax], esi
  00013	89 06		 mov	 DWORD PTR [esi], eax

; 479  : 		}

  00015	8b c6		 mov	 eax, esi
  00017	5e		 pop	 esi
  00018	c2 04 00	 ret	 4

; 478  : 		{	// construct allocator from _Al

$LN8@Deque_map:
  0001b	33 c0		 xor	 eax, eax
  0001d	89 06		 mov	 DWORD PTR [esi], eax

; 479  : 		}

  0001f	8b c6		 mov	 eax, esi
  00021	5e		 pop	 esi
  00022	c2 04 00	 ret	 4
??0?$_Deque_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ENDP ; std::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Deque_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?_Make_iter@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Make_iter
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?_Make_iter@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
__Where$ = 12						; size = 8
?_Make_iter@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Make_iter, COMDAT
; _this$ = ecx

; 660  : 		{	// make iterator from const_iterator

  00000	56		 push	 esi
  00001	57		 push	 edi

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

  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR ___$ReturnUdt$[esp+4]
  00006	8b f1		 mov	 esi, ecx
  00008	c7 07 00 00 00
	00		 mov	 DWORD PTR [edi], 0
  0000e	85 f6		 test	 esi, esi
  00010	74 0e		 je	 SHORT $LN8@Make_iter
  00012	8b 44 24 14	 mov	 eax, DWORD PTR __Where$[esp+8]
  00016	39 46 0c	 cmp	 DWORD PTR [esi+12], eax
  00019	77 05		 ja	 SHORT $LN8@Make_iter
  0001b	3b 46 10	 cmp	 eax, DWORD PTR [esi+16]
  0001e	76 09		 jbe	 SHORT $LN7@Make_iter
$LN8@Make_iter:
  00020	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  00025	8b 44 24 14	 mov	 eax, DWORD PTR __Where$[esp+8]
$LN7@Make_iter:
  00029	8b 0e		 mov	 ecx, DWORD PTR [esi]
  0002b	89 47 04	 mov	 DWORD PTR [edi+4], eax
  0002e	89 0f		 mov	 DWORD PTR [edi], ecx
  00030	8b c7		 mov	 eax, edi
  00032	5f		 pop	 edi
  00033	5e		 pop	 esi

; 662  : 		}

  00034	c2 0c 00	 ret	 12			; 0000000cH
?_Make_iter@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Make_iter
_TEXT	ENDS
PUBLIC	??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
; Function compile flags: /Ogtpy
;	COMDAT ??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00007	72 0c		 jb	 SHORT $LN20@scalar@3
  00009	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0000c	50		 push	 eax
  0000d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00012	83 c4 04	 add	 esp, 4
$LN20@scalar@3:
  00015	33 c0		 xor	 eax, eax
  00017	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0001c	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00023	89 46 14	 mov	 DWORD PTR [esi+20], eax
  00026	88 46 04	 mov	 BYTE PTR [esi+4], al
  00029	74 09		 je	 SHORT $LN30@scalar@3
  0002b	56		 push	 esi
  0002c	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00031	83 c4 04	 add	 esp, 4
$LN30@scalar@3:
  00034	8b c6		 mov	 eax, esi
  00036	5e		 pop	 esi
  00037	c2 04 00	 ret	 4
??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??$_Uninit_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
;	COMDAT ??$_Uninit_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
___formal$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >, COMDAT

; 419  : 		_STDEXT unchecked_fill_n(_First, _Count, _Val);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __First$[esp-4]
  00008	85 c0		 test	 eax, eax
  0000a	76 12		 jbe	 SHORT $LN13@Uninit_fil
  0000c	8b 54 24 0c	 mov	 edx, DWORD PTR __Val$[esp-4]
  00010	56		 push	 esi
$LL15@Uninit_fil:
  00011	8b 32		 mov	 esi, DWORD PTR [edx]
  00013	89 31		 mov	 DWORD PTR [ecx], esi
  00015	48		 dec	 eax
  00016	83 c1 04	 add	 ecx, 4
  00019	85 c0		 test	 eax, eax
  0001b	77 f4		 ja	 SHORT $LL15@Uninit_fil
  0001d	5e		 pop	 esi
$LN13@Uninit_fil:

; 420  : 	}

  0001e	c3		 ret	 0
??$_Uninit_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABQAV10@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
_TEXT	ENDS
PUBLIC	??_7logic_error@std@@6B@			; std::logic_error::`vftable'
PUBLIC	??1logic_error@std@@UAE@XZ			; std::logic_error::~logic_error
PUBLIC	??_R4logic_error@std@@6B@			; std::logic_error::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVlogic_error@std@@@8			; std::logic_error `RTTI Type Descriptor'
PUBLIC	??_R3logic_error@std@@8				; std::logic_error::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2logic_error@std@@8				; std::logic_error::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@logic_error@std@@8		; std::logic_error::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?what@logic_error@std@@UBEPBDXZ			; std::logic_error::what
EXTRN	??_Elogic_error@std@@UAEPAXI@Z:PROC		; std::logic_error::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@logic_error@std@@8
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
rdata$r	SEGMENT
??_R1A@?0A@EA@logic_error@std@@8 DD FLAT:??_R0?AVlogic_error@std@@@8 ; std::logic_error::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3logic_error@std@@8
rdata$r	ENDS
;	COMDAT ??_R2logic_error@std@@8
rdata$r	SEGMENT
??_R2logic_error@std@@8 DD FLAT:??_R1A@?0A@EA@logic_error@std@@8 ; std::logic_error::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R3logic_error@std@@8
rdata$r	SEGMENT
??_R3logic_error@std@@8 DD 00H				; std::logic_error::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2logic_error@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVlogic_error@std@@@8
_DATA	SEGMENT
??_R0?AVlogic_error@std@@@8 DD FLAT:??_7type_info@@6B@	; std::logic_error `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVlogic_error@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4logic_error@std@@6B@
rdata$r	SEGMENT
??_R4logic_error@std@@6B@ DD 00H			; std::logic_error::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVlogic_error@std@@@8
	DD	FLAT:??_R3logic_error@std@@8
rdata$r	ENDS
;	COMDAT ??_7logic_error@std@@6B@
CONST	SEGMENT
??_7logic_error@std@@6B@ DD FLAT:??_R4logic_error@std@@6B@ ; std::logic_error::`vftable'
	DD	FLAT:??_Elogic_error@std@@UAEPAXI@Z
	DD	FLAT:?what@logic_error@std@@UBEPBDXZ
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdexcept
CONST	ENDS
;	COMDAT ??1logic_error@std@@UAE@XZ
_TEXT	SEGMENT
??1logic_error@std@@UAE@XZ PROC				; std::logic_error::~logic_error, COMDAT
; _this$ = ecx

; 30   : 		{	// destroy the object

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7logic_error@std@@6B@

; 31   : 		}

  00009	83 7e 24 10	 cmp	 DWORD PTR [esi+36], 16	; 00000010H
  0000d	72 0c		 jb	 SHORT $LN19@logic_erro
  0000f	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00012	50		 push	 eax
  00013	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00018	83 c4 04	 add	 esp, 4
$LN19@logic_erro:
  0001b	33 c0		 xor	 eax, eax
  0001d	c7 46 24 0f 00
	00 00		 mov	 DWORD PTR [esi+36], 15	; 0000000fH
  00024	89 46 20	 mov	 DWORD PTR [esi+32], eax
  00027	88 46 10	 mov	 BYTE PTR [esi+16], al
  0002a	8b ce		 mov	 ecx, esi
  0002c	5e		 pop	 esi
  0002d	e9 00 00 00 00	 jmp	 ??1exception@std@@UAE@XZ ; std::exception::~exception
??1logic_error@std@@UAE@XZ ENDP				; std::logic_error::~logic_error
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?what@logic_error@std@@UBEPBDXZ
_TEXT	SEGMENT
?what@logic_error@std@@UBEPBDXZ PROC			; std::logic_error::what, COMDAT
; _this$ = ecx

; 35   : 		return (_Str.c_str());

  00000	83 79 24 10	 cmp	 DWORD PTR [ecx+36], 16	; 00000010H
  00004	72 04		 jb	 SHORT $LN7@what
  00006	8b 41 10	 mov	 eax, DWORD PTR [ecx+16]

; 36   : 		}

  00009	c3		 ret	 0

; 35   : 		return (_Str.c_str());

$LN7@what:
  0000a	8d 41 10	 lea	 eax, DWORD PTR [ecx+16]

; 36   : 		}

  0000d	c3		 ret	 0
?what@logic_error@std@@UBEPBDXZ ENDP			; std::logic_error::what
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Glogic_error@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Glogic_error@std@@UAEPAXI@Z PROC			; std::logic_error::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7logic_error@std@@6B@
  00009	83 7e 24 10	 cmp	 DWORD PTR [esi+36], 16	; 00000010H
  0000d	72 0c		 jb	 SHORT $LN22@scalar@4
  0000f	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00012	50		 push	 eax
  00013	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00018	83 c4 04	 add	 esp, 4
$LN22@scalar@4:
  0001b	33 c0		 xor	 eax, eax
  0001d	c7 46 24 0f 00
	00 00		 mov	 DWORD PTR [esi+36], 15	; 0000000fH
  00024	89 46 20	 mov	 DWORD PTR [esi+32], eax
  00027	8b ce		 mov	 ecx, esi
  00029	88 46 10	 mov	 BYTE PTR [esi+16], al
  0002c	e8 00 00 00 00	 call	 ??1exception@std@@UAE@XZ ; std::exception::~exception
  00031	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  00036	74 09		 je	 SHORT $LN32@scalar@4
  00038	56		 push	 esi
  00039	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0003e	83 c4 04	 add	 esp, 4
$LN32@scalar@4:
  00041	8b c6		 mov	 eax, esi
  00043	5e		 pop	 esi
  00044	c2 04 00	 ret	 4
??_Glogic_error@std@@UAEPAXI@Z ENDP			; std::logic_error::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::reserve
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z
_TEXT	SEGMENT
__Newcap$ = 8						; size = 4
?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::reserve, COMDAT
; _this$ = ecx

; 1695 : 		if (_Mysize <= _Newcap && _Myres != _Newcap)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Newcap$[esp-4]
  00004	56		 push	 esi
  00005	8b f1		 mov	 esi, ecx
  00007	57		 push	 edi
  00008	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  0000b	3b f8		 cmp	 edi, eax
  0000d	77 2d		 ja	 SHORT $LN11@reserve
  0000f	39 46 18	 cmp	 DWORD PTR [esi+24], eax
  00012	74 28		 je	 SHORT $LN11@reserve

; 1696 : 			{	// change reservation
; 1697 : 			size_type _Size = _Mysize;
; 1698 : 			if (_Grow(_Newcap, true))

  00014	6a 01		 push	 1
  00016	50		 push	 eax
  00017	e8 00 00 00 00	 call	 ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
  0001c	84 c0		 test	 al, al
  0001e	74 1c		 je	 SHORT $LN11@reserve

; 1699 : 				_Eos(_Size);

  00020	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00024	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  00027	72 0c		 jb	 SHORT $LN9@reserve
  00029	8b 76 04	 mov	 esi, DWORD PTR [esi+4]
  0002c	c6 04 3e 00	 mov	 BYTE PTR [esi+edi], 0
  00030	5f		 pop	 edi
  00031	5e		 pop	 esi

; 1700 : 			}
; 1701 : 		}

  00032	c2 04 00	 ret	 4

; 1699 : 				_Eos(_Size);

$LN9@reserve:
  00035	83 c6 04	 add	 esi, 4
  00038	c6 04 3e 00	 mov	 BYTE PTR [esi+edi], 0
$LN11@reserve:
  0003c	5f		 pop	 edi
  0003d	5e		 pop	 esi

; 1700 : 			}
; 1701 : 		}

  0003e	c2 04 00	 ret	 4
?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::reserve
_TEXT	ENDS
PUBLIC	?begin@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::begin
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ?begin@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?begin@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::begin, COMDAT
; _this$ = ecx

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

  00000	53		 push	 ebx

; 666  : 		return (iterator(_Myoff, this));

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR ___$ReturnUdt$[esp]
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
  00008	8b 46 1c	 mov	 eax, DWORD PTR [esi+28]
  0000b	57		 push	 edi
  0000c	8b 7e 18	 mov	 edi, DWORD PTR [esi+24]
  0000f	03 c7		 add	 eax, edi
  00011	c7 03 00 00 00
	00		 mov	 DWORD PTR [ebx], 0
  00017	3b f8		 cmp	 edi, eax
  00019	76 05		 jbe	 SHORT $LN7@begin@2
  0001b	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN7@begin@2:
  00020	8b 0e		 mov	 ecx, DWORD PTR [esi]
  00022	89 7b 04	 mov	 DWORD PTR [ebx+4], edi
  00025	5f		 pop	 edi
  00026	5e		 pop	 esi
  00027	89 0b		 mov	 DWORD PTR [ebx], ecx
  00029	8b c3		 mov	 eax, ebx
  0002b	5b		 pop	 ebx

; 667  : 		}

  0002c	c2 04 00	 ret	 4
?begin@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::begin
_TEXT	ENDS
PUBLIC	?end@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::end
; Function compile flags: /Ogtpy
;	COMDAT ?end@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?end@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::end, COMDAT
; _this$ = ecx

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

  00000	53		 push	 ebx

; 676  : 		return (iterator(_Myoff + _Mysize, this));

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR ___$ReturnUdt$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b f9		 mov	 edi, ecx
  00009	8b 47 18	 mov	 eax, DWORD PTR [edi+24]
  0000c	8b 77 1c	 mov	 esi, DWORD PTR [edi+28]
  0000f	03 f0		 add	 esi, eax
  00011	c7 03 00 00 00
	00		 mov	 DWORD PTR [ebx], 0
  00017	3b c6		 cmp	 eax, esi
  00019	76 05		 jbe	 SHORT $LN7@end@2
  0001b	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN7@end@2:
  00020	8b 07		 mov	 eax, DWORD PTR [edi]
  00022	5f		 pop	 edi
  00023	89 73 04	 mov	 DWORD PTR [ebx+4], esi
  00026	89 03		 mov	 DWORD PTR [ebx], eax
  00028	5e		 pop	 esi
  00029	8b c3		 mov	 eax, ebx
  0002b	5b		 pop	 ebx

; 677  : 		}

  0002c	c2 04 00	 ret	 4
?end@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Deque_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@2@XZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::end
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 951  : 		{	// append _Right [_Roff, _Roff + _Count)

  00000	53		 push	 ebx
  00001	55		 push	 ebp

; 952  : 		if (_Right.size() < _Roff)

  00002	8b 6c 24 0c	 mov	 ebp, DWORD PTR __Right$[esp+4]
  00006	56		 push	 esi
  00007	57		 push	 edi
  00008	8b 7c 24 18	 mov	 edi, DWORD PTR __Roff$[esp+12]
  0000c	8b f1		 mov	 esi, ecx
  0000e	39 7d 14	 cmp	 DWORD PTR [ebp+20], edi
  00011	73 05		 jae	 SHORT $LN5@append

; 953  : 			_String_base::_Xran();	// _Roff off end

  00013	e8 00 00 00 00	 call	 ?_Xran@_String_base@std@@SAXXZ ; std::_String_base::_Xran
$LN5@append:

; 954  : 		size_type _Num = _Right.size() - _Roff;

  00018	8b 45 14	 mov	 eax, DWORD PTR [ebp+20]

; 955  : 		if (_Num < _Count)

  0001b	8b 5c 24 1c	 mov	 ebx, DWORD PTR __Count$[esp+12]
  0001f	2b c7		 sub	 eax, edi
  00021	3b c3		 cmp	 eax, ebx
  00023	73 02		 jae	 SHORT $LN4@append

; 956  : 			_Count = _Num;	// trim _Count to size

  00025	8b d8		 mov	 ebx, eax
$LN4@append:

; 957  : 		if (npos - _Mysize <= _Count || _Mysize + _Count < _Mysize)

  00027	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  0002a	83 c9 ff	 or	 ecx, -1
  0002d	2b c8		 sub	 ecx, eax
  0002f	3b cb		 cmp	 ecx, ebx
  00031	76 07		 jbe	 SHORT $LN2@append
  00033	8d 14 18	 lea	 edx, DWORD PTR [eax+ebx]
  00036	3b d0		 cmp	 edx, eax
  00038	73 05		 jae	 SHORT $LN3@append
$LN2@append:

; 958  : 			_String_base::_Xlen();	// result too long

  0003a	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN3@append:

; 959  : 
; 960  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

  0003f	85 db		 test	 ebx, ebx
  00041	0f 86 ab 00 00
	00		 jbe	 $LN87@append
  00047	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  0004a	03 fb		 add	 edi, ebx
  0004c	83 ff fe	 cmp	 edi, -2			; fffffffeH
  0004f	76 05		 jbe	 SHORT $LN17@append
  00051	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN17@append:
  00056	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  00059	3b c7		 cmp	 eax, edi
  0005b	73 1f		 jae	 SHORT $LN16@append
  0005d	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  00060	50		 push	 eax
  00061	57		 push	 edi
  00062	8b ce		 mov	 ecx, esi
  00064	e8 00 00 00 00	 call	 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
  00069	85 ff		 test	 edi, edi
$LN88@append:
  0006b	0f 86 81 00 00
	00		 jbe	 $LN87@append

; 961  : 			{	// make room and append new stuff
; 962  : 			_Traits_helper::copy_s<_Traits>(_Myptr() + _Mysize, _Myres - _Mysize,
; 963  : 				_Right._Myptr() + _Roff, _Count);

  00071	83 7d 18 10	 cmp	 DWORD PTR [ebp+24], 16	; 00000010H
  00075	72 2f		 jb	 SHORT $LN64@append
  00077	8b 6d 04	 mov	 ebp, DWORD PTR [ebp+4]
  0007a	eb 2d		 jmp	 SHORT $LN65@append

; 959  : 
; 960  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN16@append:
  0007c	85 ff		 test	 edi, edi
  0007e	75 eb		 jne	 SHORT $LN88@append
  00080	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  00083	83 f8 10	 cmp	 eax, 16			; 00000010H
  00086	72 0f		 jb	 SHORT $LN58@append
  00088	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0008b	5f		 pop	 edi
  0008c	c6 00 00	 mov	 BYTE PTR [eax], 0

; 965  : 			}
; 966  : 		return (*this);

  0008f	8b c6		 mov	 eax, esi
  00091	5e		 pop	 esi
  00092	5d		 pop	 ebp
  00093	5b		 pop	 ebx

; 967  : 		}

  00094	c2 0c 00	 ret	 12			; 0000000cH

; 959  : 
; 960  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN58@append:
  00097	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  0009a	5f		 pop	 edi
  0009b	c6 00 00	 mov	 BYTE PTR [eax], 0

; 965  : 			}
; 966  : 		return (*this);

  0009e	8b c6		 mov	 eax, esi
  000a0	5e		 pop	 esi
  000a1	5d		 pop	 ebp
  000a2	5b		 pop	 ebx

; 967  : 		}

  000a3	c2 0c 00	 ret	 12			; 0000000cH

; 961  : 			{	// make room and append new stuff
; 962  : 			_Traits_helper::copy_s<_Traits>(_Myptr() + _Mysize, _Myres - _Mysize,
; 963  : 				_Right._Myptr() + _Roff, _Count);

$LN64@append:
  000a6	83 c5 04	 add	 ebp, 4
$LN65@append:
  000a9	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  000ac	83 f8 10	 cmp	 eax, 16			; 00000010H
  000af	72 05		 jb	 SHORT $LN68@append
  000b1	8b 56 04	 mov	 edx, DWORD PTR [esi+4]
  000b4	eb 03		 jmp	 SHORT $LN69@append
$LN68@append:
  000b6	8d 56 04	 lea	 edx, DWORD PTR [esi+4]
$LN69@append:
  000b9	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  000bc	53		 push	 ebx
  000bd	8b 5c 24 1c	 mov	 ebx, DWORD PTR __Roff$[esp+16]
  000c1	03 eb		 add	 ebp, ebx
  000c3	2b c1		 sub	 eax, ecx
  000c5	55		 push	 ebp
  000c6	50		 push	 eax
  000c7	03 ca		 add	 ecx, edx
  000c9	51		 push	 ecx
  000ca	e8 00 00 00 00	 call	 _memcpy_s
  000cf	83 c4 10	 add	 esp, 16			; 00000010H

; 964  : 			_Eos(_Num);

  000d2	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  000d6	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  000d9	72 10		 jb	 SHORT $LN82@append
  000db	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  000de	c6 04 38 00	 mov	 BYTE PTR [eax+edi], 0
  000e2	5f		 pop	 edi

; 965  : 			}
; 966  : 		return (*this);

  000e3	8b c6		 mov	 eax, esi
  000e5	5e		 pop	 esi
  000e6	5d		 pop	 ebp
  000e7	5b		 pop	 ebx

; 967  : 		}

  000e8	c2 0c 00	 ret	 12			; 0000000cH

; 964  : 			_Eos(_Num);

$LN82@append:
  000eb	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  000ee	c6 04 38 00	 mov	 BYTE PTR [eax+edi], 0
$LN87@append:
  000f2	5f		 pop	 edi

; 965  : 			}
; 966  : 		return (*this);

  000f3	8b c6		 mov	 eax, esi
  000f5	5e		 pop	 esi
  000f6	5d		 pop	 ebp
  000f7	5b		 pop	 ebx

; 967  : 		}

  000f8	c2 0c 00	 ret	 12			; 0000000cH
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 998  : 		{	// append _Count * _Ch

  00000	53		 push	 ebx

; 999  : 			if (npos - _Mysize <= _Count)

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Count$[esp]
  00005	56		 push	 esi
  00006	83 c8 ff	 or	 eax, -1
  00009	8b f1		 mov	 esi, ecx
  0000b	2b 46 14	 sub	 eax, DWORD PTR [esi+20]
  0000e	3b c3		 cmp	 eax, ebx
  00010	77 05		 ja	 SHORT $LN2@append@2

; 1000 : 			_String_base::_Xlen();	// result too long

  00012	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN2@append@2:

; 1001 : 
; 1002 : 		size_type _Num;
; 1003 : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

  00017	85 db		 test	 ebx, ebx
  00019	0f 86 80 00 00
	00		 jbe	 $LN63@append@2
  0001f	57		 push	 edi
  00020	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  00023	03 fb		 add	 edi, ebx
  00025	83 ff fe	 cmp	 edi, -2			; fffffffeH
  00028	76 05		 jbe	 SHORT $LN10@append@2
  0002a	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN10@append@2:
  0002f	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  00032	3b c7		 cmp	 eax, edi
  00034	73 39		 jae	 SHORT $LN9@append@2
  00036	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  00039	51		 push	 ecx
  0003a	57		 push	 edi
  0003b	8b ce		 mov	 ecx, esi
  0003d	e8 00 00 00 00	 call	 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
  00042	85 ff		 test	 edi, edi
$LN66@append@2:
  00044	76 58		 jbe	 SHORT $LN64@append@2

; 1004 : 			{	// make room and append new stuff using assign
; 1005 : 			_Chassign(_Mysize, _Count, _Ch);

  00046	8b 54 24 14	 mov	 edx, DWORD PTR __Ch$[esp+8]
  0004a	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  0004d	52		 push	 edx
  0004e	53		 push	 ebx
  0004f	50		 push	 eax
  00050	8b ce		 mov	 ecx, esi
  00052	e8 00 00 00 00	 call	 ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign

; 1006 : 			_Eos(_Num);

  00057	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  0005b	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  0005e	72 37		 jb	 SHORT $LN59@append@2
  00060	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00063	c6 04 38 00	 mov	 BYTE PTR [eax+edi], 0
  00067	5f		 pop	 edi

; 1007 : 			}
; 1008 : 		return (*this);

  00068	8b c6		 mov	 eax, esi
  0006a	5e		 pop	 esi
  0006b	5b		 pop	 ebx

; 1009 : 		}

  0006c	c2 08 00	 ret	 8

; 1001 : 
; 1002 : 		size_type _Num;
; 1003 : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN9@append@2:
  0006f	85 ff		 test	 edi, edi
  00071	75 d1		 jne	 SHORT $LN66@append@2
  00073	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  00076	83 f8 10	 cmp	 eax, 16			; 00000010H
  00079	72 0e		 jb	 SHORT $LN51@append@2
  0007b	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0007e	5f		 pop	 edi
  0007f	c6 00 00	 mov	 BYTE PTR [eax], 0

; 1007 : 			}
; 1008 : 		return (*this);

  00082	8b c6		 mov	 eax, esi
  00084	5e		 pop	 esi
  00085	5b		 pop	 ebx

; 1009 : 		}

  00086	c2 08 00	 ret	 8

; 1001 : 
; 1002 : 		size_type _Num;
; 1003 : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN51@append@2:
  00089	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  0008c	5f		 pop	 edi
  0008d	c6 00 00	 mov	 BYTE PTR [eax], 0

; 1007 : 			}
; 1008 : 		return (*this);

  00090	8b c6		 mov	 eax, esi
  00092	5e		 pop	 esi
  00093	5b		 pop	 ebx

; 1009 : 		}

  00094	c2 08 00	 ret	 8

; 1006 : 			_Eos(_Num);

$LN59@append@2:
  00097	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  0009a	c6 04 38 00	 mov	 BYTE PTR [eax+edi], 0
$LN64@append@2:
  0009e	5f		 pop	 edi
$LN63@append@2:

; 1007 : 			}
; 1008 : 		return (*this);

  0009f	8b c6		 mov	 eax, esi
  000a1	5e		 pop	 esi
  000a2	5b		 pop	 ebx

; 1009 : 		}

  000a3	c2 08 00	 ret	 8
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1046 : 		{	// assign _Right [_Roff, _Roff + _Count)

  00000	53		 push	 ebx

; 1047 : 		if (_Right.size() < _Roff)

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __Right$[esp]
  00005	55		 push	 ebp
  00006	8b 6c 24 10	 mov	 ebp, DWORD PTR __Roff$[esp+4]
  0000a	56		 push	 esi
  0000b	57		 push	 edi
  0000c	8b f1		 mov	 esi, ecx
  0000e	39 6b 14	 cmp	 DWORD PTR [ebx+20], ebp
  00011	73 05		 jae	 SHORT $LN5@assign

; 1048 : 			_String_base::_Xran();	// _Roff off end

  00013	e8 00 00 00 00	 call	 ?_Xran@_String_base@std@@SAXXZ ; std::_String_base::_Xran
$LN5@assign:

; 1049 : 		size_type _Num = _Right.size() - _Roff;

  00018	8b 7b 14	 mov	 edi, DWORD PTR [ebx+20]

; 1050 : 		if (_Count < _Num)

  0001b	8b 44 24 1c	 mov	 eax, DWORD PTR __Count$[esp+12]
  0001f	2b fd		 sub	 edi, ebp
  00021	3b c7		 cmp	 eax, edi
  00023	73 02		 jae	 SHORT $LN4@assign

; 1051 : 			_Num = _Count;	// trim _Num to size

  00025	8b f8		 mov	 edi, eax
$LN4@assign:

; 1052 : 
; 1053 : 		if (this == &_Right)

  00027	3b f3		 cmp	 esi, ebx
  00029	75 1f		 jne	 SHORT $LN3@assign

; 1054 : 			erase((size_type)(_Roff + _Num)), erase(0, _Roff);	// substring

  0002b	6a ff		 push	 -1
  0002d	03 fd		 add	 edi, ebp
  0002f	57		 push	 edi
  00030	8b ce		 mov	 ecx, esi
  00032	e8 00 00 00 00	 call	 ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
  00037	55		 push	 ebp
  00038	6a 00		 push	 0
  0003a	8b ce		 mov	 ecx, esi
  0003c	e8 00 00 00 00	 call	 ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
  00041	5f		 pop	 edi

; 1059 : 			}
; 1060 : 		return (*this);

  00042	8b c6		 mov	 eax, esi
  00044	5e		 pop	 esi
  00045	5d		 pop	 ebp
  00046	5b		 pop	 ebx

; 1061 : 		}

  00047	c2 0c 00	 ret	 12			; 0000000cH
$LN3@assign:

; 1055 : 		else if (_Grow(_Num))

  0004a	83 ff fe	 cmp	 edi, -2			; fffffffeH
  0004d	76 05		 jbe	 SHORT $LN17@assign
  0004f	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN17@assign:
  00054	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  00057	3b c7		 cmp	 eax, edi
  00059	73 1b		 jae	 SHORT $LN16@assign
  0005b	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  0005e	50		 push	 eax
  0005f	57		 push	 edi
  00060	8b ce		 mov	 ecx, esi
  00062	e8 00 00 00 00	 call	 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
  00067	85 ff		 test	 edi, edi
$LN87@assign:
  00069	76 66		 jbe	 SHORT $LN86@assign

; 1056 : 			{	// make room and assign new stuff
; 1057 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Right._Myptr() + _Roff, _Num);

  0006b	83 7b 18 10	 cmp	 DWORD PTR [ebx+24], 16	; 00000010H
  0006f	72 2f		 jb	 SHORT $LN64@assign
  00071	8b 53 04	 mov	 edx, DWORD PTR [ebx+4]
  00074	eb 2d		 jmp	 SHORT $LN65@assign

; 1055 : 		else if (_Grow(_Num))

$LN16@assign:
  00076	85 ff		 test	 edi, edi
  00078	75 ef		 jne	 SHORT $LN87@assign
  0007a	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  0007d	83 f8 10	 cmp	 eax, 16			; 00000010H
  00080	72 0f		 jb	 SHORT $LN58@assign
  00082	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00085	5f		 pop	 edi
  00086	c6 00 00	 mov	 BYTE PTR [eax], 0

; 1059 : 			}
; 1060 : 		return (*this);

  00089	8b c6		 mov	 eax, esi
  0008b	5e		 pop	 esi
  0008c	5d		 pop	 ebp
  0008d	5b		 pop	 ebx

; 1061 : 		}

  0008e	c2 0c 00	 ret	 12			; 0000000cH

; 1055 : 		else if (_Grow(_Num))

$LN58@assign:
  00091	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00094	5f		 pop	 edi
  00095	c6 00 00	 mov	 BYTE PTR [eax], 0

; 1059 : 			}
; 1060 : 		return (*this);

  00098	8b c6		 mov	 eax, esi
  0009a	5e		 pop	 esi
  0009b	5d		 pop	 ebp
  0009c	5b		 pop	 ebx

; 1061 : 		}

  0009d	c2 0c 00	 ret	 12			; 0000000cH

; 1056 : 			{	// make room and assign new stuff
; 1057 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Right._Myptr() + _Roff, _Num);

$LN64@assign:
  000a0	8d 53 04	 lea	 edx, DWORD PTR [ebx+4]
$LN65@assign:
  000a3	8b 4e 18	 mov	 ecx, DWORD PTR [esi+24]
  000a6	8d 5e 04	 lea	 ebx, DWORD PTR [esi+4]
  000a9	83 f9 10	 cmp	 ecx, 16			; 00000010H
  000ac	72 04		 jb	 SHORT $LN68@assign
  000ae	8b 03		 mov	 eax, DWORD PTR [ebx]
  000b0	eb 02		 jmp	 SHORT $LN69@assign
$LN68@assign:
  000b2	8b c3		 mov	 eax, ebx
$LN69@assign:
  000b4	57		 push	 edi
  000b5	03 d5		 add	 edx, ebp
  000b7	52		 push	 edx
  000b8	51		 push	 ecx
  000b9	50		 push	 eax
  000ba	e8 00 00 00 00	 call	 _memcpy_s
  000bf	83 c4 10	 add	 esp, 16			; 00000010H

; 1058 : 			_Eos(_Num);

  000c2	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  000c6	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  000c9	72 02		 jb	 SHORT $LN82@assign
  000cb	8b 1b		 mov	 ebx, DWORD PTR [ebx]
$LN82@assign:
  000cd	c6 04 3b 00	 mov	 BYTE PTR [ebx+edi], 0
$LN86@assign:
  000d1	5f		 pop	 edi

; 1059 : 			}
; 1060 : 		return (*this);

  000d2	8b c6		 mov	 eax, esi
  000d4	5e		 pop	 esi
  000d5	5d		 pop	 ebp
  000d6	5b		 pop	 ebx

; 1061 : 		}

  000d7	c2 0c 00	 ret	 12			; 0000000cH
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::resize
; Function compile flags: /Ogtpy
;	COMDAT ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
__Ch$ = 12						; size = 1
?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::resize, COMDAT
; _this$ = ecx

; 1682 : 		if (_Newsize <= _Mysize)

  00000	8b 51 14	 mov	 edx, DWORD PTR [ecx+20]
  00003	8b 44 24 04	 mov	 eax, DWORD PTR __Newsize$[esp-4]
  00007	3b c2		 cmp	 eax, edx
  00009	77 11		 ja	 SHORT $LN2@resize

; 1683 : 			erase(_Newsize);

  0000b	c7 44 24 08 ff
	ff ff ff	 mov	 DWORD PTR __Ch$[esp-4], -1
  00013	89 44 24 04	 mov	 DWORD PTR __Newsize$[esp-4], eax
  00017	e9 00 00 00 00	 jmp	 ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
$LN2@resize:
  0001c	56		 push	 esi

; 1684 : 		else
; 1685 : 			append(_Newsize - _Mysize, _Ch);

  0001d	8b 74 24 0c	 mov	 esi, DWORD PTR __Ch$[esp]
  00021	56		 push	 esi
  00022	2b c2		 sub	 eax, edx
  00024	50		 push	 eax
  00025	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  0002a	5e		 pop	 esi

; 1686 : 		}

  0002b	c2 08 00	 ret	 8
?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::resize
_TEXT	ENDS
PUBLIC	??0?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ; std::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??0?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z
_TEXT	SEGMENT
__Al$ = 8						; size = 1
??0?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z PROC ; std::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

; 500  : 		{	// construct allocator and base from _Al

  00000	56		 push	 esi
  00001	6a 04		 push	 4
  00003	8b f1		 mov	 esi, ecx
  00005	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0000a	83 c4 04	 add	 esp, 4
  0000d	85 c0		 test	 eax, eax
  0000f	74 0a		 je	 SHORT $LN13@Deque_val
  00011	89 30		 mov	 DWORD PTR [eax], esi
  00013	89 06		 mov	 DWORD PTR [esi], eax

; 501  : 		}

  00015	8b c6		 mov	 eax, esi
  00017	5e		 pop	 esi
  00018	c2 04 00	 ret	 4

; 500  : 		{	// construct allocator and base from _Al

$LN13@Deque_val:
  0001b	33 c0		 xor	 eax, eax
  0001d	89 06		 mov	 DWORD PTR [esi], eax

; 501  : 		}

  0001f	8b c6		 mov	 eax, esi
  00021	5e		 pop	 esi
  00022	c2 04 00	 ret	 4
??0?$_Deque_val@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAE@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z ENDP ; std::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Deque_val<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1064 : 		{	// assign [_Ptr, _Ptr + _Count)

  00000	55		 push	 ebp

; 1065 : 
; 1066 :  #if _HAS_ITERATOR_DEBUGGING
; 1067 : 		if (_Count != 0)
; 1068 : 			_DEBUG_POINTER(_Ptr);
; 1069 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1070 : 
; 1071 : 		if (_Inside(_Ptr))

  00001	8b 6c 24 08	 mov	 ebp, DWORD PTR __Ptr$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b f1		 mov	 esi, ecx
  00009	85 ed		 test	 ebp, ebp
  0000b	74 46		 je	 SHORT $LN93@assign@2
  0000d	8b 56 18	 mov	 edx, DWORD PTR [esi+24]
  00010	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00013	83 fa 10	 cmp	 edx, 16			; 00000010H
  00016	72 04		 jb	 SHORT $LN12@assign@2
  00018	8b 08		 mov	 ecx, DWORD PTR [eax]
  0001a	eb 02		 jmp	 SHORT $LN13@assign@2
$LN12@assign@2:
  0001c	8b c8		 mov	 ecx, eax
$LN13@assign@2:
  0001e	3b e9		 cmp	 ebp, ecx
  00020	72 31		 jb	 SHORT $LN93@assign@2
  00022	83 fa 10	 cmp	 edx, 16			; 00000010H
  00025	72 04		 jb	 SHORT $LN16@assign@2
  00027	8b 08		 mov	 ecx, DWORD PTR [eax]
  00029	eb 02		 jmp	 SHORT $LN17@assign@2
$LN16@assign@2:
  0002b	8b c8		 mov	 ecx, eax
$LN17@assign@2:
  0002d	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  00030	03 f9		 add	 edi, ecx
  00032	3b fd		 cmp	 edi, ebp
  00034	76 1d		 jbe	 SHORT $LN93@assign@2

; 1072 : 			return (assign(*this, _Ptr - _Myptr(), _Count));	// substring

  00036	83 fa 10	 cmp	 edx, 16			; 00000010H
  00039	72 02		 jb	 SHORT $LN20@assign@2
  0003b	8b 00		 mov	 eax, DWORD PTR [eax]
$LN20@assign@2:
  0003d	8b 4c 24 14	 mov	 ecx, DWORD PTR __Count$[esp+8]
  00041	51		 push	 ecx
  00042	2b e8		 sub	 ebp, eax
  00044	55		 push	 ebp
  00045	56		 push	 esi
  00046	8b ce		 mov	 ecx, esi
  00048	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0004d	5f		 pop	 edi
  0004e	5e		 pop	 esi
  0004f	5d		 pop	 ebp

; 1080 : 		}

  00050	c2 08 00	 ret	 8
$LN93@assign@2:

; 1073 : 
; 1074 : 		if (_Grow(_Count))

  00053	8b 7c 24 14	 mov	 edi, DWORD PTR __Count$[esp+8]
  00057	83 ff fe	 cmp	 edi, -2			; fffffffeH
  0005a	76 05		 jbe	 SHORT $LN27@assign@2
  0005c	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN27@assign@2:
  00061	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  00064	3b c7		 cmp	 eax, edi
  00066	73 20		 jae	 SHORT $LN26@assign@2
  00068	8b 56 14	 mov	 edx, DWORD PTR [esi+20]
  0006b	52		 push	 edx
  0006c	57		 push	 edi
  0006d	8b ce		 mov	 ecx, esi
  0006f	e8 00 00 00 00	 call	 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
  00074	85 ff		 test	 edi, edi
$LN94@assign@2:
  00076	76 56		 jbe	 SHORT $LN90@assign@2

; 1075 : 			{	// make room and assign new stuff
; 1076 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Ptr, _Count);

  00078	8b 4e 18	 mov	 ecx, DWORD PTR [esi+24]
  0007b	53		 push	 ebx
  0007c	8d 5e 04	 lea	 ebx, DWORD PTR [esi+4]
  0007f	83 f9 10	 cmp	 ecx, 16			; 00000010H
  00082	72 2c		 jb	 SHORT $LN74@assign@2
  00084	8b 03		 mov	 eax, DWORD PTR [ebx]
  00086	eb 2a		 jmp	 SHORT $LN75@assign@2

; 1073 : 
; 1074 : 		if (_Grow(_Count))

$LN26@assign@2:
  00088	85 ff		 test	 edi, edi
  0008a	75 ea		 jne	 SHORT $LN94@assign@2
  0008c	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  0008f	83 f8 10	 cmp	 eax, 16			; 00000010H
  00092	72 0e		 jb	 SHORT $LN68@assign@2
  00094	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00097	5f		 pop	 edi
  00098	c6 00 00	 mov	 BYTE PTR [eax], 0

; 1078 : 			}
; 1079 : 		return (*this);

  0009b	8b c6		 mov	 eax, esi
  0009d	5e		 pop	 esi
  0009e	5d		 pop	 ebp

; 1080 : 		}

  0009f	c2 08 00	 ret	 8

; 1073 : 
; 1074 : 		if (_Grow(_Count))

$LN68@assign@2:
  000a2	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  000a5	5f		 pop	 edi
  000a6	c6 00 00	 mov	 BYTE PTR [eax], 0

; 1078 : 			}
; 1079 : 		return (*this);

  000a9	8b c6		 mov	 eax, esi
  000ab	5e		 pop	 esi
  000ac	5d		 pop	 ebp

; 1080 : 		}

  000ad	c2 08 00	 ret	 8

; 1075 : 			{	// make room and assign new stuff
; 1076 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Ptr, _Count);

$LN74@assign@2:
  000b0	8b c3		 mov	 eax, ebx
$LN75@assign@2:
  000b2	57		 push	 edi
  000b3	55		 push	 ebp
  000b4	51		 push	 ecx
  000b5	50		 push	 eax
  000b6	e8 00 00 00 00	 call	 _memcpy_s
  000bb	83 c4 10	 add	 esp, 16			; 00000010H

; 1077 : 			_Eos(_Count);

  000be	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  000c2	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  000c5	72 02		 jb	 SHORT $LN88@assign@2
  000c7	8b 1b		 mov	 ebx, DWORD PTR [ebx]
$LN88@assign@2:
  000c9	c6 04 3b 00	 mov	 BYTE PTR [ebx+edi], 0
  000cd	5b		 pop	 ebx
$LN90@assign@2:
  000ce	5f		 pop	 edi

; 1078 : 			}
; 1079 : 		return (*this);

  000cf	8b c6		 mov	 eax, esi
  000d1	5e		 pop	 esi
  000d2	5d		 pop	 ebp

; 1080 : 		}

  000d3	c2 08 00	 ret	 8
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	??$unchecked_uninitialized_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ; stdext::unchecked_uninitialized_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
;	COMDAT ??$unchecked_uninitialized_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z PROC ; stdext::unchecked_uninitialized_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >, COMDAT

; 941  : 	_STD _Uninit_fill_n(_First, _Count, _Val, _Al,
; 942  : 		_STD _Ptr_cat(_First, _First), _STD _Range_checked_iterator_tag());

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Count$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __First$[esp-4]
  00008	85 c0		 test	 eax, eax
  0000a	76 12		 jbe	 SHORT $LN17@unchecked_@3
  0000c	8b 54 24 0c	 mov	 edx, DWORD PTR __Val$[esp-4]
  00010	56		 push	 esi
$LL19@unchecked_@3:
  00011	8b 32		 mov	 esi, DWORD PTR [edx]
  00013	89 31		 mov	 DWORD PTR [ecx], esi
  00015	48		 dec	 eax
  00016	83 c1 04	 add	 ecx, 4
  00019	85 c0		 test	 eax, eax
  0001b	77 f4		 ja	 SHORT $LL19@unchecked_@3
  0001d	5e		 pop	 esi
$LN17@unchecked_@3:

; 943  : 	}

  0001e	c3		 ret	 0
??$unchecked_uninitialized_fill_n@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IPAV12@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABQAV12@AAV?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ENDP ; stdext::unchecked_uninitialized_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > * *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *> >
_TEXT	ENDS
PUBLIC	??$_Destroy@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::_Destroy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Destroy@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??$_Destroy@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z PROC ; std::_Destroy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT

; 58   : 	{	// destroy object at _Ptr

  00000	56		 push	 esi

; 59   : 	_DESTRUCTOR(_Ty, _Ptr);

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00009	72 0c		 jb	 SHORT $LN22@Destroy
  0000b	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0000e	50		 push	 eax
  0000f	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00014	83 c4 04	 add	 esp, 4
$LN22@Destroy:
  00017	33 c0		 xor	 eax, eax
  00019	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00020	89 46 14	 mov	 DWORD PTR [esi+20], eax
  00023	88 46 04	 mov	 BYTE PTR [esi+4], al
  00026	5e		 pop	 esi

; 60   : 	}

  00027	c3		 ret	 0
??$_Destroy@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ENDP ; std::_Destroy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 721  : 		{	// construct by copying _Right

  00000	56		 push	 esi

; 722  : 		_Tidy();

  00001	33 c0		 xor	 eax, eax
  00003	8b f1		 mov	 esi, ecx

; 723  : 		assign(_Right, 0, npos);

  00005	6a ff		 push	 -1
  00007	89 46 14	 mov	 DWORD PTR [esi+20], eax
  0000a	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00011	50		 push	 eax
  00012	88 46 04	 mov	 BYTE PTR [esi+4], al
  00015	8b 44 24 10	 mov	 eax, DWORD PTR __Right$[esp+8]
  00019	50		 push	 eax
  0001a	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 724  : 		}

  0001f	8b c6		 mov	 eax, esi
  00021	5e		 pop	 esi
  00022	c2 04 00	 ret	 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=, COMDAT
; _this$ = ecx

; 941  : 		return (append((size_type)1, _Ch));

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Ch$[esp-4]
  00004	50		 push	 eax
  00005	6a 01		 push	 1
  00007	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 942  : 		}

  0000c	c2 04 00	 ret	 4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 971  : 
; 972  :  #if _HAS_ITERATOR_DEBUGGING
; 973  : 		if (_Count != 0)
; 974  : 			_DEBUG_POINTER(_Ptr);
; 975  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 976  : 
; 977  : 		if (_Inside(_Ptr))

  00000	8b 54 24 04	 mov	 edx, DWORD PTR __Ptr$[esp-4]
  00004	53		 push	 ebx
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b f1		 mov	 esi, ecx
  00009	85 d2		 test	 edx, edx
  0000b	74 46		 je	 SHORT $LN4@append@3
  0000d	8b 7e 18	 mov	 edi, DWORD PTR [esi+24]
  00010	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00013	83 ff 10	 cmp	 edi, 16			; 00000010H
  00016	72 04		 jb	 SHORT $LN14@append@3
  00018	8b 08		 mov	 ecx, DWORD PTR [eax]
  0001a	eb 02		 jmp	 SHORT $LN15@append@3
$LN14@append@3:
  0001c	8b c8		 mov	 ecx, eax
$LN15@append@3:
  0001e	3b d1		 cmp	 edx, ecx
  00020	72 31		 jb	 SHORT $LN4@append@3
  00022	83 ff 10	 cmp	 edi, 16			; 00000010H
  00025	72 04		 jb	 SHORT $LN18@append@3
  00027	8b 08		 mov	 ecx, DWORD PTR [eax]
  00029	eb 02		 jmp	 SHORT $LN19@append@3
$LN18@append@3:
  0002b	8b c8		 mov	 ecx, eax
$LN19@append@3:
  0002d	8b 5e 14	 mov	 ebx, DWORD PTR [esi+20]
  00030	03 d9		 add	 ebx, ecx
  00032	3b da		 cmp	 ebx, edx
  00034	76 1d		 jbe	 SHORT $LN4@append@3

; 978  : 			return (append(*this, _Ptr - _Myptr(), _Count));	// substring

  00036	83 ff 10	 cmp	 edi, 16			; 00000010H
  00039	72 02		 jb	 SHORT $LN22@append@3
  0003b	8b 00		 mov	 eax, DWORD PTR [eax]
$LN22@append@3:
  0003d	8b 4c 24 14	 mov	 ecx, DWORD PTR __Count$[esp+8]
  00041	51		 push	 ecx
  00042	2b d0		 sub	 edx, eax
  00044	52		 push	 edx
  00045	56		 push	 esi
  00046	8b ce		 mov	 ecx, esi
  00048	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  0004d	5f		 pop	 edi
  0004e	5e		 pop	 esi
  0004f	5b		 pop	 ebx

; 989  : 		}

  00050	c2 08 00	 ret	 8
$LN4@append@3:

; 979  : 		if (npos - _Mysize <= _Count || _Mysize + _Count < _Mysize)

  00053	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  00056	83 ca ff	 or	 edx, -1
  00059	55		 push	 ebp
  0005a	8b 6c 24 18	 mov	 ebp, DWORD PTR __Count$[esp+12]
  0005e	2b d0		 sub	 edx, eax
  00060	3b d5		 cmp	 edx, ebp
  00062	76 07		 jbe	 SHORT $LN2@append@3
  00064	8d 0c 28	 lea	 ecx, DWORD PTR [eax+ebp]
  00067	3b c8		 cmp	 ecx, eax
  00069	73 05		 jae	 SHORT $LN3@append@3
$LN2@append@3:

; 980  : 			_String_base::_Xlen();	// result too long

  0006b	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN3@append@3:

; 981  : 
; 982  : 		size_type _Num;
; 983  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

  00070	85 ed		 test	 ebp, ebp
  00072	0f 86 87 00 00
	00		 jbe	 $LN92@append@3
  00078	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  0007b	03 fd		 add	 edi, ebp
  0007d	83 ff fe	 cmp	 edi, -2			; fffffffeH
  00080	76 05		 jbe	 SHORT $LN29@append@3
  00082	e8 00 00 00 00	 call	 ?_Xlen@_String_base@std@@SAXXZ ; std::_String_base::_Xlen
$LN29@append@3:
  00087	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  0008a	3b c7		 cmp	 eax, edi
  0008c	73 1f		 jae	 SHORT $LN28@append@3
  0008e	8b 56 14	 mov	 edx, DWORD PTR [esi+20]
  00091	52		 push	 edx
  00092	57		 push	 edi
  00093	8b ce		 mov	 ecx, esi
  00095	e8 00 00 00 00	 call	 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
  0009a	85 ff		 test	 edi, edi
$LN95@append@3:
  0009c	76 61		 jbe	 SHORT $LN92@append@3

; 984  : 			{	// make room and append new stuff
; 985  : 			_Traits_helper::copy_s<_Traits>(_Myptr() + _Mysize, _Myres - _Mysize, _Ptr, _Count);

  0009e	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  000a1	8d 5e 04	 lea	 ebx, DWORD PTR [esi+4]
  000a4	83 f8 10	 cmp	 eax, 16			; 00000010H
  000a7	72 2e		 jb	 SHORT $LN76@append@3
  000a9	8b 13		 mov	 edx, DWORD PTR [ebx]
  000ab	eb 2c		 jmp	 SHORT $LN77@append@3

; 981  : 
; 982  : 		size_type _Num;
; 983  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN28@append@3:
  000ad	85 ff		 test	 edi, edi
  000af	75 eb		 jne	 SHORT $LN95@append@3
  000b1	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  000b4	83 f8 10	 cmp	 eax, 16			; 00000010H
  000b7	72 0f		 jb	 SHORT $LN70@append@3
  000b9	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  000bc	5d		 pop	 ebp
  000bd	5f		 pop	 edi
  000be	c6 00 00	 mov	 BYTE PTR [eax], 0

; 987  : 			}
; 988  : 		return (*this);

  000c1	8b c6		 mov	 eax, esi
  000c3	5e		 pop	 esi
  000c4	5b		 pop	 ebx

; 989  : 		}

  000c5	c2 08 00	 ret	 8

; 981  : 
; 982  : 		size_type _Num;
; 983  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN70@append@3:
  000c8	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  000cb	5d		 pop	 ebp
  000cc	5f		 pop	 edi
  000cd	c6 00 00	 mov	 BYTE PTR [eax], 0

; 987  : 			}
; 988  : 		return (*this);

  000d0	8b c6		 mov	 eax, esi
  000d2	5e		 pop	 esi
  000d3	5b		 pop	 ebx

; 989  : 		}

  000d4	c2 08 00	 ret	 8

; 984  : 			{	// make room and append new stuff
; 985  : 			_Traits_helper::copy_s<_Traits>(_Myptr() + _Mysize, _Myres - _Mysize, _Ptr, _Count);

$LN76@append@3:
  000d7	8b d3		 mov	 edx, ebx
$LN77@append@3:
  000d9	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  000dc	55		 push	 ebp
  000dd	8b 6c 24 18	 mov	 ebp, DWORD PTR __Ptr$[esp+16]
  000e1	2b c1		 sub	 eax, ecx
  000e3	55		 push	 ebp
  000e4	50		 push	 eax
  000e5	03 ca		 add	 ecx, edx
  000e7	51		 push	 ecx
  000e8	e8 00 00 00 00	 call	 _memcpy_s
  000ed	83 c4 10	 add	 esp, 16			; 00000010H

; 986  : 			_Eos(_Num);

  000f0	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  000f4	89 7e 14	 mov	 DWORD PTR [esi+20], edi
  000f7	72 02		 jb	 SHORT $LN90@append@3
  000f9	8b 1b		 mov	 ebx, DWORD PTR [ebx]
$LN90@append@3:
  000fb	c6 04 3b 00	 mov	 BYTE PTR [ebx+edi], 0
$LN92@append@3:
  000ff	5d		 pop	 ebp
  00100	5f		 pop	 edi

; 987  : 			}
; 988  : 		return (*this);

  00101	8b c6		 mov	 eax, esi
  00103	5e		 pop	 esi
  00104	5b		 pop	 ebx

; 989  : 		}

  00105	c2 08 00	 ret	 8
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::resize
; Function compile flags: /Ogtpy
;	COMDAT ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::resize, COMDAT
; _this$ = ecx

; 1677 : 		resize(_Newsize, _Elem());

  00000	8b 51 14	 mov	 edx, DWORD PTR [ecx+20]
  00003	8b 44 24 04	 mov	 eax, DWORD PTR __Newsize$[esp-4]
  00007	3b c2		 cmp	 eax, edx
  00009	77 0b		 ja	 SHORT $LN4@resize@2
  0000b	6a ff		 push	 -1
  0000d	50		 push	 eax
  0000e	e8 00 00 00 00	 call	 ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase

; 1678 : 		}

  00013	c2 04 00	 ret	 4

; 1677 : 		resize(_Newsize, _Elem());

$LN4@resize@2:
  00016	6a 00		 push	 0
  00018	2b c2		 sub	 eax, edx
  0001a	50		 push	 eax
  0001b	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 1678 : 		}

  00020	c2 04 00	 ret	 4
?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::resize
_TEXT	ENDS
PUBLIC	??0?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??0?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

; 554  : 		{	// construct empty deque

  00000	56		 push	 esi
  00001	6a 04		 push	 4
  00003	8b f1		 mov	 esi, ecx
  00005	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 c4 04	 add	 esp, 4
  0000f	3b c1		 cmp	 eax, ecx
  00011	74 14		 je	 SHORT $LN18@deque
  00013	89 30		 mov	 DWORD PTR [eax], esi
  00015	89 06		 mov	 DWORD PTR [esi], eax
  00017	89 4e 10	 mov	 DWORD PTR [esi+16], ecx
  0001a	89 4e 14	 mov	 DWORD PTR [esi+20], ecx
  0001d	89 4e 18	 mov	 DWORD PTR [esi+24], ecx
  00020	89 4e 1c	 mov	 DWORD PTR [esi+28], ecx

; 555  : 		}

  00023	8b c6		 mov	 eax, esi
  00025	5e		 pop	 esi
  00026	c3		 ret	 0

; 554  : 		{	// construct empty deque

$LN18@deque:
  00027	33 c0		 xor	 eax, eax
  00029	89 06		 mov	 DWORD PTR [esi], eax
  0002b	89 4e 10	 mov	 DWORD PTR [esi+16], ecx
  0002e	89 4e 14	 mov	 DWORD PTR [esi+20], ecx
  00031	89 4e 18	 mov	 DWORD PTR [esi+24], ecx
  00034	89 4e 1c	 mov	 DWORD PTR [esi+28], ecx

; 555  : 		}

  00037	8b c6		 mov	 eax, esi
  00039	5e		 pop	 esi
  0003a	c3		 ret	 0
??0?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
__Al$ = 20						; size = 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 625  : #if _HAS_ITERATOR_DEBUGGING
; 626  : 		if (_Right._Myfirstiter == _IGNORE_MYITERLIST)
; 627  : 			{
; 628  : 			this->_Myfirstiter = _IGNORE_MYITERLIST;
; 629  : 			}
; 630  : #endif
; 631  : 		_Tidy();
; 632  : 		assign(_Right, _Roff, _Count);

  00000	8b 54 24 04	 mov	 edx, DWORD PTR __Right$[esp-4]
  00004	56		 push	 esi
  00005	8b f1		 mov	 esi, ecx
  00007	8b 4c 24 0c	 mov	 ecx, DWORD PTR __Roff$[esp]
  0000b	33 c0		 xor	 eax, eax
  0000d	89 46 14	 mov	 DWORD PTR [esi+20], eax
  00010	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00017	88 46 04	 mov	 BYTE PTR [esi+4], al
  0001a	8b 44 24 10	 mov	 eax, DWORD PTR __Count$[esp]
  0001e	50		 push	 eax
  0001f	51		 push	 ecx
  00020	52		 push	 edx
  00021	8b ce		 mov	 ecx, esi
  00023	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 633  : 		}

  00028	8b c6		 mov	 eax, esi
  0002a	5e		 pop	 esi
  0002b	c2 10 00	 ret	 16			; 00000010H
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 946  : 		return (append(_Right, 0, npos));

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	6a ff		 push	 -1
  00006	6a 00		 push	 0
  00008	50		 push	 eax
  00009	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 947  : 		}

  0000e	c2 04 00	 ret	 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 992  : 		{	// append [_Ptr, <null>)

  00000	56		 push	 esi

; 993  : 		_DEBUG_POINTER(_Ptr);
; 994  : 		return (append(_Ptr, _Traits::length(_Ptr)));

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	8b c6		 mov	 eax, esi
  00007	57		 push	 edi
  00008	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0000b	eb 03 8d 49 00	 npad	 5
$LL5@append@4:
  00010	8a 10		 mov	 dl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 d2		 test	 dl, dl
  00015	75 f9		 jne	 SHORT $LL5@append@4
  00017	2b c7		 sub	 eax, edi
  00019	50		 push	 eax
  0001a	56		 push	 esi
  0001b	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  00020	5f		 pop	 edi
  00021	5e		 pop	 esi

; 995  : 		}

  00022	c2 04 00	 ret	 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1041 : 		return (assign(_Right, 0, npos));

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	6a ff		 push	 -1
  00006	6a 00		 push	 0
  00008	50		 push	 eax
  00009	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 1042 : 		}

  0000e	c2 04 00	 ret	 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1083 : 		{	// assign [_Ptr, <null>)

  00000	56		 push	 esi

; 1084 : 		_DEBUG_POINTER(_Ptr);
; 1085 : 		return (assign(_Ptr, _Traits::length(_Ptr)));

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	8b c6		 mov	 eax, esi
  00007	57		 push	 edi
  00008	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0000b	eb 03 8d 49 00	 npad	 5
$LL5@assign@3:
  00010	8a 10		 mov	 dl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 d2		 test	 dl, dl
  00015	75 f9		 jne	 SHORT $LL5@assign@3
  00017	2b c7		 sub	 eax, edi
  00019	50		 push	 eax
  0001a	56		 push	 esi
  0001b	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  00020	5f		 pop	 edi
  00021	5e		 pop	 esi

; 1086 : 		}

  00022	c2 04 00	 ret	 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?destroy@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::destroy
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?destroy@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?destroy@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::destroy, COMDAT
; _this$ = ecx

; 159  : 		{	// destroy object at _Ptr

  00000	56		 push	 esi

; 160  : 		_Destroy(_Ptr);

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00009	72 0c		 jb	 SHORT $LN24@destroy
  0000b	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0000e	50		 push	 eax
  0000f	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00014	83 c4 04	 add	 esp, 4
$LN24@destroy:
  00017	33 c0		 xor	 eax, eax
  00019	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00020	89 46 14	 mov	 DWORD PTR [esi+20], eax
  00023	88 46 04	 mov	 BYTE PTR [esi+4], al
  00026	5e		 pop	 esi

; 161  : 		}

  00027	c2 04 00	 ret	 4
?destroy@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::destroy
_TEXT	ENDS
PUBLIC	??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z ; std::_Construct<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z$0
__ehfuncinfo$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
xdata$x	ENDS
;	COMDAT ??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z
_TEXT	SEGMENT
$T103944 = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Vptr$ = 8						; size = 4
__Ptr$ = 8						; size = 4
__Val$ = 12						; size = 4
??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z PROC ; std::_Construct<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT

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

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	51		 push	 ecx
  0000f	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00014	33 c4		 xor	 eax, esp
  00016	50		 push	 eax
  00017	8d 44 24 08	 lea	 eax, DWORD PTR __$EHRec$[esp+20]
  0001b	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 51   : 	void _FARQ *_Vptr = _Ptr;

  00021	8b 4c 24 18	 mov	 ecx, DWORD PTR __Ptr$[esp+16]
  00025	89 4c 24 18	 mov	 DWORD PTR __Vptr$[esp+16], ecx

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

  00029	89 4c 24 04	 mov	 DWORD PTR $T103944[esp+20], ecx
  0002d	33 c0		 xor	 eax, eax
  0002f	89 44 24 10	 mov	 DWORD PTR __$EHRec$[esp+28], eax
  00033	3b c8		 cmp	 ecx, eax
  00035	74 1a		 je	 SHORT $LN3@Construct
  00037	6a ff		 push	 -1
  00039	89 41 14	 mov	 DWORD PTR [ecx+20], eax
  0003c	c7 41 18 0f 00
	00 00		 mov	 DWORD PTR [ecx+24], 15	; 0000000fH
  00043	50		 push	 eax
  00044	88 41 04	 mov	 BYTE PTR [ecx+4], al
  00047	8b 44 24 24	 mov	 eax, DWORD PTR __Val$[esp+24]
  0004b	50		 push	 eax
  0004c	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
$LN3@Construct:

; 53   : 	}

  00051	8b 4c 24 08	 mov	 ecx, DWORD PTR __$EHRec$[esp+20]
  00055	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0005c	59		 pop	 ecx
  0005d	83 c4 10	 add	 esp, 16			; 00000010H
  00060	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z$0:
  00000	8b 45 04	 mov	 eax, DWORD PTR __Vptr$[ebp-4]
  00003	50		 push	 eax
  00004	8b 4d f0	 mov	 ecx, DWORD PTR $T103944[ebp]
  00007	51		 push	 ecx
  00008	e8 00 00 00 00	 call	 ??3@YAXPAX0@Z		; operator delete
  0000d	83 c4 08	 add	 esp, 8
  00010	c3		 ret	 0
__ehhandler$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z:
  00011	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00015	8d 42 fc	 lea	 eax, DWORD PTR [edx-4]
  00018	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001b	33 c8		 xor	 ecx, eax
  0001d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00022	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z
  00027	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z ENDP ; std::_Construct<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
PUBLIC	??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
;	COMDAT ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Al$ = 16						; size = 4
___formal$ = 20						; size = 1
??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z PROC ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

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

  00000	56		 push	 esi

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

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __First$[esp]
  00005	57		 push	 edi
  00006	8b 7c 24 10	 mov	 edi, DWORD PTR __Last$[esp+4]
  0000a	3b f7		 cmp	 esi, edi
  0000c	74 2a		 je	 SHORT $LN1@Destroy_ra
  0000e	53		 push	 ebx
  0000f	33 db		 xor	 ebx, ebx
$LL3@Destroy_ra:

; 234  : 		_Al.destroy(_First);

  00011	83 7e 18 10	 cmp	 DWORD PTR [esi+24], 16	; 00000010H
  00015	72 0c		 jb	 SHORT $LN29@Destroy_ra
  00017	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0001a	50		 push	 eax
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN29@Destroy_ra:
  00023	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  0002a	89 5e 14	 mov	 DWORD PTR [esi+20], ebx
  0002d	88 5e 04	 mov	 BYTE PTR [esi+4], bl
  00030	83 c6 1c	 add	 esi, 28			; 0000001cH
  00033	3b f7		 cmp	 esi, edi
  00035	75 da		 jne	 SHORT $LL3@Destroy_ra
  00037	5b		 pop	 ebx
$LN1@Destroy_ra:
  00038	5f		 pop	 edi
  00039	5e		 pop	 esi

; 235  : 	}

  0003a	c3		 ret	 0
??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ENDP ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::logic_error::logic_error
EXTRN	??0exception@std@@QAE@XZ:PROC			; std::exception::exception
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z$0
__ehfuncinfo$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdexcept
xdata$x	ENDS
;	COMDAT ??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Message$ = 8						; size = 4
??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z PROC ; std::logic_error::logic_error, COMDAT
; _this$ = ecx

; 26   : 		{	// construct from message string

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	51		 push	 ecx
  0000f	56		 push	 esi
  00010	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00015	33 c4		 xor	 eax, esp
  00017	50		 push	 eax
  00018	8d 44 24 0c	 lea	 eax, DWORD PTR __$EHRec$[esp+24]
  0001c	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00022	8b f1		 mov	 esi, ecx
  00024	89 74 24 08	 mov	 DWORD PTR _this$[esp+24], esi
  00028	e8 00 00 00 00	 call	 ??0exception@std@@QAE@XZ ; std::exception::exception
  0002d	33 c0		 xor	 eax, eax
  0002f	8d 4e 0c	 lea	 ecx, DWORD PTR [esi+12]
  00032	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7logic_error@std@@6B@
  00038	6a ff		 push	 -1
  0003a	89 41 14	 mov	 DWORD PTR [ecx+20], eax
  0003d	c7 41 18 0f 00
	00 00		 mov	 DWORD PTR [ecx+24], 15	; 0000000fH
  00044	50		 push	 eax
  00045	89 44 24 1c	 mov	 DWORD PTR __$EHRec$[esp+40], eax
  00049	88 41 04	 mov	 BYTE PTR [ecx+4], al
  0004c	8b 44 24 24	 mov	 eax, DWORD PTR __Message$[esp+28]
  00050	50		 push	 eax
  00051	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 27   : 		}

  00056	8b c6		 mov	 eax, esi
  00058	8b 4c 24 0c	 mov	 ecx, DWORD PTR __$EHRec$[esp+24]
  0005c	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00063	59		 pop	 ecx
  00064	5e		 pop	 esi
  00065	83 c4 10	 add	 esp, 16			; 00000010H
  00068	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1exception@std@@UAE@XZ ; std::exception::~exception
__ehhandler$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 f8	 lea	 eax, DWORD PTR [edx-8]
  0000f	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ENDP ; std::logic_error::logic_error
PUBLIC	??_7length_error@std@@6B@			; std::length_error::`vftable'
PUBLIC	??0length_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::length_error::length_error
PUBLIC	??_R4length_error@std@@6B@			; std::length_error::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVlength_error@std@@@8			; std::length_error `RTTI Type Descriptor'
PUBLIC	??_R3length_error@std@@8			; std::length_error::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2length_error@std@@8			; std::length_error::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@length_error@std@@8		; std::length_error::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_Elength_error@std@@UAEPAXI@Z:PROC		; std::length_error::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@length_error@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@length_error@std@@8 DD FLAT:??_R0?AVlength_error@std@@@8 ; std::length_error::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3length_error@std@@8
rdata$r	ENDS
;	COMDAT ??_R2length_error@std@@8
rdata$r	SEGMENT
??_R2length_error@std@@8 DD FLAT:??_R1A@?0A@EA@length_error@std@@8 ; std::length_error::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@logic_error@std@@8
	DD	FLAT:??_R1A@?0A@EA@exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R3length_error@std@@8
rdata$r	SEGMENT
??_R3length_error@std@@8 DD 00H				; std::length_error::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2length_error@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVlength_error@std@@@8
_DATA	SEGMENT
??_R0?AVlength_error@std@@@8 DD FLAT:??_7type_info@@6B@	; std::length_error `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVlength_error@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4length_error@std@@6B@
rdata$r	SEGMENT
??_R4length_error@std@@6B@ DD 00H			; std::length_error::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVlength_error@std@@@8
	DD	FLAT:??_R3length_error@std@@8
rdata$r	ENDS
;	COMDAT ??_7length_error@std@@6B@
CONST	SEGMENT
??_7length_error@std@@6B@ DD FLAT:??_R4length_error@std@@6B@ ; std::length_error::`vftable'
	DD	FLAT:??_Elength_error@std@@UAEPAXI@Z
	DD	FLAT:?what@logic_error@std@@UBEPBDXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0length_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
_TEXT	SEGMENT
__Message$ = 8						; size = 4
??0length_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z PROC ; std::length_error::length_error, COMDAT
; _this$ = ecx

; 105  : 		{	// construct from message string

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Message$[esp-4]
  00004	56		 push	 esi
  00005	50		 push	 eax
  00006	8b f1		 mov	 esi, ecx
  00008	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
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7length_error@std@@6B@

; 106  : 		}

  00013	8b c6		 mov	 eax, esi
  00015	5e		 pop	 esi
  00016	c2 04 00	 ret	 4
??0length_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ENDP ; std::length_error::length_error
_TEXT	ENDS
PUBLIC	??1length_error@std@@UAE@XZ			; std::length_error::~length_error
; Function compile flags: /Ogtpy
;	COMDAT ??1length_error@std@@UAE@XZ
_TEXT	SEGMENT
??1length_error@std@@UAE@XZ PROC			; std::length_error::~length_error, COMDAT
; _this$ = ecx

; 109  : 		{	// destroy the object

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 110  : 		}

  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7logic_error@std@@6B@
  00009	83 7e 24 10	 cmp	 DWORD PTR [esi+36], 16	; 00000010H
  0000d	72 0c		 jb	 SHORT $LN21@length_err
  0000f	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00012	50		 push	 eax
  00013	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00018	83 c4 04	 add	 esp, 4
$LN21@length_err:
  0001b	33 c0		 xor	 eax, eax
  0001d	c7 46 24 0f 00
	00 00		 mov	 DWORD PTR [esi+36], 15	; 0000000fH
  00024	89 46 20	 mov	 DWORD PTR [esi+32], eax
  00027	88 46 10	 mov	 BYTE PTR [esi+16], al
  0002a	8b ce		 mov	 ecx, esi
  0002c	5e		 pop	 esi
  0002d	e9 00 00 00 00	 jmp	 ??1exception@std@@UAE@XZ ; std::exception::~exception
??1length_error@std@@UAE@XZ ENDP			; std::length_error::~length_error
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Glength_error@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Glength_error@std@@UAEPAXI@Z PROC			; std::length_error::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7logic_error@std@@6B@
  00009	83 7e 24 10	 cmp	 DWORD PTR [esi+36], 16	; 00000010H
  0000d	72 0c		 jb	 SHORT $LN24@scalar@5
  0000f	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00012	50		 push	 eax
  00013	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00018	83 c4 04	 add	 esp, 4
$LN24@scalar@5:
  0001b	33 c0		 xor	 eax, eax
  0001d	c7 46 24 0f 00
	00 00		 mov	 DWORD PTR [esi+36], 15	; 0000000fH
  00024	89 46 20	 mov	 DWORD PTR [esi+32], eax
  00027	8b ce		 mov	 ecx, esi
  00029	88 46 10	 mov	 BYTE PTR [esi+16], al
  0002c	e8 00 00 00 00	 call	 ??1exception@std@@UAE@XZ ; std::exception::~exception
  00031	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  00036	74 09		 je	 SHORT $LN34@scalar@5
  00038	56		 push	 esi
  00039	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0003e	83 c4 04	 add	 esp, 4
$LN34@scalar@5:
  00041	8b c6		 mov	 eax, esi
  00043	5e		 pop	 esi
  00044	c2 04 00	 ret	 4
??_Glength_error@std@@UAEPAXI@Z ENDP			; std::length_error::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?GetFilePathNameExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@11@Z ; GetFilePathNameExtension
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
;	COMDAT ?GetFilePathNameExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@11@Z
_TEXT	SEGMENT
_c_szFile$ = 8						; size = 4
_len$ = 12						; size = 4
_pstPath$ = 16						; size = 4
_pstName$ = 20						; size = 4
_pstExt$ = 24						; size = 4
?GetFilePathNameExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@11@Z PROC ; GetFilePathNameExtension, COMDAT

; 29   : {

  00000	53		 push	 ebx

; 30   : 	assert(pstPath != NULL);
; 31   : 	assert(pstName != NULL);
; 32   : 	assert(pstExt != NULL);
; 33   : 
; 34   : 	int ext = len;

  00001	8b 5c 24 0c	 mov	 ebx, DWORD PTR _len$[esp]
  00005	55		 push	 ebp
  00006	56		 push	 esi
  00007	57		 push	 edi

; 35   : 	int pos = len;
; 36   : 
; 37   : 	while (pos > 0)

  00008	8b 7c 24 14	 mov	 edi, DWORD PTR _c_szFile$[esp+12]
  0000c	8b eb		 mov	 ebp, ebx
  0000e	8b f3		 mov	 esi, ebx
  00010	85 db		 test	 ebx, ebx
  00012	7e 2e		 jle	 SHORT $LN20@GetFilePat
$LL12@GetFilePat:

; 38   : 	{
; 39   : 		--pos;
; 40   : 		char c = c_szFile[pos];

  00014	8a 44 3e ff	 mov	 al, BYTE PTR [esi+edi-1]
  00018	4e		 dec	 esi

; 41   : 
; 42   : 		if (ext == len && c == '.') 

  00019	3c 2e		 cmp	 al, 46			; 0000002eH
  0001b	74 0e		 je	 SHORT $LN17@GetFilePat

; 45   : 			break;
; 46   : 		}
; 47   : 		
; 48   : 		if (c == '/' || c == '\\')

  0001d	3c 2f		 cmp	 al, 47			; 0000002fH
  0001f	74 0c		 je	 SHORT $LN18@GetFilePat
  00021	3c 5c		 cmp	 al, 92			; 0000005cH
  00023	74 08		 je	 SHORT $LN18@GetFilePat

; 35   : 	int pos = len;
; 36   : 
; 37   : 	while (pos > 0)

  00025	85 f6		 test	 esi, esi
  00027	7f eb		 jg	 SHORT $LL12@GetFilePat

; 56   : 
; 57   : 		if (c == '/' || c == '\\')

  00029	eb 17		 jmp	 SHORT $LN20@GetFilePat
$LN17@GetFilePat:

; 43   : 		{
; 44   : 			ext = pos;			

  0002b	8b ee		 mov	 ebp, esi
$LN18@GetFilePat:

; 49   : 			break;
; 50   : 	}
; 51   : 
; 52   : 	while (pos > 0)

  0002d	85 f6		 test	 esi, esi
  0002f	7e 13		 jle	 SHORT $LN21@GetFilePat
$LL7@GetFilePat:

; 53   : 	{
; 54   : 		--pos;
; 55   : 		char c = c_szFile[pos];

  00031	8a 44 3e ff	 mov	 al, BYTE PTR [esi+edi-1]
  00035	4e		 dec	 esi

; 56   : 
; 57   : 		if (c == '/' || c == '\\')

  00036	3c 2f		 cmp	 al, 47			; 0000002fH
  00038	74 08		 je	 SHORT $LN20@GetFilePat
  0003a	3c 5c		 cmp	 al, 92			; 0000005cH
  0003c	74 04		 je	 SHORT $LN20@GetFilePat

; 49   : 			break;
; 50   : 	}
; 51   : 
; 52   : 	while (pos > 0)

  0003e	85 f6		 test	 esi, esi
  00040	7f ef		 jg	 SHORT $LL7@GetFilePat
$LN20@GetFilePat:

; 58   : 			break;
; 59   : 	}
; 60   : 
; 61   : 	if (pos)

  00042	85 f6		 test	 esi, esi
$LN21@GetFilePat:
  00044	74 0c		 je	 SHORT $LN3@GetFilePat

; 62   : 	{
; 63   : 		++pos;
; 64   : 		pstPath->append(c_szFile, pos);

  00046	8b 4c 24 1c	 mov	 ecx, DWORD PTR _pstPath$[esp+12]
  0004a	46		 inc	 esi
  0004b	56		 push	 esi
  0004c	57		 push	 edi
  0004d	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
$LN3@GetFilePat:

; 65   : 	}
; 66   : 	
; 67   : 	if (ext > pos)

  00052	3b ee		 cmp	 ebp, esi
  00054	7e 11		 jle	 SHORT $LN2@GetFilePat

; 68   : 		pstName->append(c_szFile + pos, ext - pos);

  00056	8b 4c 24 20	 mov	 ecx, DWORD PTR _pstName$[esp+12]
  0005a	8b c5		 mov	 eax, ebp
  0005c	2b c6		 sub	 eax, esi
  0005e	50		 push	 eax
  0005f	03 f7		 add	 esi, edi
  00061	56		 push	 esi
  00062	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
$LN2@GetFilePat:

; 69   : 
; 70   : 	++ext;

  00067	45		 inc	 ebp

; 71   : 
; 72   : 	if (len > ext)

  00068	3b dd		 cmp	 ebx, ebp
  0006a	7e 0f		 jle	 SHORT $LN1@GetFilePat

; 73   : 		pstExt->append(c_szFile + ext, len - ext);

  0006c	8b 4c 24 24	 mov	 ecx, DWORD PTR _pstExt$[esp+12]
  00070	2b dd		 sub	 ebx, ebp
  00072	53		 push	 ebx
  00073	03 ef		 add	 ebp, edi
  00075	55		 push	 ebp
  00076	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
$LN1@GetFilePat:
  0007b	5f		 pop	 edi
  0007c	5e		 pop	 esi
  0007d	5d		 pop	 ebp
  0007e	5b		 pop	 ebx

; 74   : }

  0007f	c3		 ret	 0
?GetFilePathNameExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@11@Z ENDP ; GetFilePathNameExtension
_TEXT	ENDS
PUBLIC	?GetFileExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetFileExtension
; Function compile flags: /Ogtpy
;	COMDAT ?GetFileExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_c_szFile$ = 8						; size = 4
_len$ = 12						; size = 4
_pstExt$ = 16						; size = 4
?GetFileExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetFileExtension, COMDAT

; 78   : 	int ext = len;

  00000	8b 54 24 08	 mov	 edx, DWORD PTR _len$[esp-4]
  00004	56		 push	 esi
  00005	57		 push	 edi

; 79   : 	int pos = len;
; 80   : 	while (pos > 0)

  00006	8b 7c 24 0c	 mov	 edi, DWORD PTR _c_szFile$[esp+4]
  0000a	8b f2		 mov	 esi, edx
  0000c	8b ca		 mov	 ecx, edx
  0000e	85 d2		 test	 edx, edx
  00010	7e 19		 jle	 SHORT $LN12@GetFileExt
$LL7@GetFileExt:

; 81   : 	{
; 82   : 		--pos;
; 83   : 		char c=c_szFile[pos];

  00012	8a 44 39 ff	 mov	 al, BYTE PTR [ecx+edi-1]
  00016	49		 dec	 ecx

; 84   : 		if (ext==len && c=='.') 

  00017	3c 2e		 cmp	 al, 46			; 0000002eH
  00019	74 0e		 je	 SHORT $LN11@GetFileExt

; 87   : 			break;
; 88   : 		}
; 89   : 
; 90   : 		if (c=='/') break;

  0001b	3c 2f		 cmp	 al, 47			; 0000002fH
  0001d	74 0c		 je	 SHORT $LN12@GetFileExt

; 91   : 		else if (c=='\\') break;

  0001f	3c 5c		 cmp	 al, 92			; 0000005cH
  00021	74 08		 je	 SHORT $LN12@GetFileExt

; 79   : 	int pos = len;
; 80   : 	while (pos > 0)

  00023	85 c9		 test	 ecx, ecx
  00025	7f eb		 jg	 SHORT $LL7@GetFileExt

; 91   : 		else if (c=='\\') break;

  00027	eb 02		 jmp	 SHORT $LN12@GetFileExt
$LN11@GetFileExt:

; 85   : 		{
; 86   : 			ext=pos;			

  00029	8b f1		 mov	 esi, ecx
$LN12@GetFileExt:

; 92   : 	}
; 93   : 
; 94   : 	++ext;		

  0002b	46		 inc	 esi

; 95   : 	if (len>ext)

  0002c	3b d6		 cmp	 edx, esi
  0002e	7e 0f		 jle	 SHORT $LN1@GetFileExt

; 96   : 		pstExt->append(c_szFile+ext, len-ext);

  00030	8b 4c 24 14	 mov	 ecx, DWORD PTR _pstExt$[esp+4]
  00034	2b d6		 sub	 edx, esi
  00036	52		 push	 edx
  00037	03 f7		 add	 esi, edi
  00039	56		 push	 esi
  0003a	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
$LN1@GetFileExt:
  0003f	5f		 pop	 edi
  00040	5e		 pop	 esi

; 97   : }

  00041	c3		 ret	 0
?GetFileExtension@@YAXPBDHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetFileExtension
_TEXT	ENDS
PUBLIC	??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> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 652  : 		_Tidy();
; 653  : 		assign(_Ptr);

  00000	8b 54 24 04	 mov	 edx, DWORD PTR __Ptr$[esp-4]
  00004	56		 push	 esi
  00005	8b f1		 mov	 esi, ecx
  00007	8b c2		 mov	 eax, edx
  00009	57		 push	 edi
  0000a	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00011	c7 46 14 00 00
	00 00		 mov	 DWORD PTR [esi+20], 0
  00018	c6 46 04 00	 mov	 BYTE PTR [esi+4], 0
  0001c	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0001f	90		 npad	 1
$LL37@basic_stri@2:
  00020	8a 08		 mov	 cl, BYTE PTR [eax]
  00022	40		 inc	 eax
  00023	84 c9		 test	 cl, cl
  00025	75 f9		 jne	 SHORT $LL37@basic_stri@2
  00027	2b c7		 sub	 eax, edi
  00029	50		 push	 eax
  0002a	52		 push	 edx
  0002b	8b ce		 mov	 ecx, esi
  0002d	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  00032	5f		 pop	 edi

; 654  : 		}

  00033	8b c6		 mov	 eax, esi
  00035	5e		 pop	 esi
  00036	c2 04 00	 ret	 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=, COMDAT
; _this$ = ecx

; 916  : 		return (assign(_Right));

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	6a ff		 push	 -1
  00006	6a 00		 push	 0
  00008	50		 push	 eax
  00009	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 917  : 		}

  0000e	c2 04 00	 ret	 4
??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=
_TEXT	ENDS
PUBLIC	??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=, COMDAT
; _this$ = ecx

; 920  : 		{	// assign [_Ptr, <null>)

  00000	56		 push	 esi

; 921  : 		return (assign(_Ptr));

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	8b c6		 mov	 eax, esi
  00007	57		 push	 edi
  00008	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0000b	eb 03 8d 49 00	 npad	 5
$LL7@operator@11:
  00010	8a 10		 mov	 dl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 d2		 test	 dl, dl
  00015	75 f9		 jne	 SHORT $LL7@operator@11
  00017	2b c7		 sub	 eax, edi
  00019	50		 push	 eax
  0001a	56		 push	 esi
  0001b	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  00020	5f		 pop	 edi
  00021	5e		 pop	 esi

; 922  : 		}

  00022	c2 04 00	 ret	 4
??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=
_TEXT	ENDS
PUBLIC	??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=, COMDAT
; _this$ = ecx

; 931  : 		return (append(_Right));

  00000	8b 44 24 04	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	6a ff		 push	 -1
  00006	6a 00		 push	 0
  00008	50		 push	 eax
  00009	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 932  : 		}

  0000e	c2 04 00	 ret	 4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
_TEXT	ENDS
PUBLIC	??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=, COMDAT
; _this$ = ecx

; 935  : 		{	// append [_Ptr, <null>)

  00000	56		 push	 esi

; 936  : 		return (append(_Ptr));

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __Ptr$[esp]
  00005	8b c6		 mov	 eax, esi
  00007	57		 push	 edi
  00008	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0000b	eb 03 8d 49 00	 npad	 5
$LL7@operator@12:
  00010	8a 10		 mov	 dl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 d2		 test	 dl, dl
  00015	75 f9		 jne	 SHORT $LL7@operator@12
  00017	2b c7		 sub	 eax, edi
  00019	50		 push	 eax
  0001a	56		 push	 esi
  0001b	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  00020	5f		 pop	 edi
  00021	5e		 pop	 esi

; 937  : 		}

  00022	c2 04 00	 ret	 4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
_TEXT	ENDS
PUBLIC	?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::substr
; Function compile flags: /Ogtpy
;	COMDAT ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z
_TEXT	SEGMENT
$T104911 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
__Off$ = 12						; size = 4
__Count$ = 16						; size = 4
?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::substr, COMDAT
; _this$ = ecx

; 1998 : 		{	// return [_Off, _Off + _Count) as new string

  00000	51		 push	 ecx

; 1999 : 		return (_Myt(*this, _Off, _Count, get_allocator()));

  00001	8b 54 24 0c	 mov	 edx, DWORD PTR __Off$[esp]
  00005	56		 push	 esi
  00006	8b 74 24 0c	 mov	 esi, DWORD PTR ___$ReturnUdt$[esp+4]
  0000a	33 c0		 xor	 eax, eax
  0000c	89 46 14	 mov	 DWORD PTR [esi+20], eax
  0000f	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00016	89 44 24 04	 mov	 DWORD PTR $T104911[esp+8], eax
  0001a	88 46 04	 mov	 BYTE PTR [esi+4], al
  0001d	8b 44 24 14	 mov	 eax, DWORD PTR __Count$[esp+4]
  00021	50		 push	 eax
  00022	52		 push	 edx
  00023	51		 push	 ecx
  00024	8b ce		 mov	 ecx, esi
  00026	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0002b	8b c6		 mov	 eax, esi
  0002d	5e		 pop	 esi

; 2000 : 		}

  0002e	59		 pop	 ecx
  0002f	c2 0c 00	 ret	 12			; 0000000cH
?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::substr
_TEXT	ENDS
PUBLIC	?construct@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@ABV32@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::construct
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ?construct@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@ABV32@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Val$ = 12						; size = 4
?construct@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@ABV32@@Z PROC ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::construct, COMDAT
; _this$ = ecx

; 155  : 		_Construct(_Ptr, _Val);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Val$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __Ptr$[esp-4]
  00008	50		 push	 eax
  00009	51		 push	 ecx
  0000a	e8 00 00 00 00	 call	 ??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z ; std::_Construct<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
  0000f	83 c4 08	 add	 esp, 8

; 156  : 		}

  00012	c2 08 00	 ret	 8
?construct@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@ABV32@@Z ENDP ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::construct
_TEXT	ENDS
PUBLIC	__TI3?AVlength_error@std@@
PUBLIC	??_C@_0BD@OLBABOEK@vector?$DMT?$DO?5too?5long?$AA@ ; `string'
PUBLIC	?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
PUBLIC	__CTA3?AVlength_error@std@@
PUBLIC	__CT??_R0?AVlength_error@std@@@8??0length_error@std@@QAE@ABV01@@Z40
PUBLIC	??0length_error@std@@QAE@ABV01@@Z		; std::length_error::length_error
PUBLIC	__CT??_R0?AVlogic_error@std@@@8??0logic_error@std@@QAE@ABV01@@Z40
PUBLIC	??0logic_error@std@@QAE@ABV01@@Z		; std::logic_error::logic_error
;	COMDAT __CT??_R0?AVlogic_error@std@@@8??0logic_error@std@@QAE@ABV01@@Z40
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdexcept
xdata$x	SEGMENT
__CT??_R0?AVlogic_error@std@@@8??0logic_error@std@@QAE@ABV01@@Z40 DD 00H
	DD	FLAT:??_R0?AVlogic_error@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	028H
	DD	FLAT:??0logic_error@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CT??_R0?AVlength_error@std@@@8??0length_error@std@@QAE@ABV01@@Z40
xdata$x	SEGMENT
__CT??_R0?AVlength_error@std@@@8??0length_error@std@@QAE@ABV01@@Z40 DD 00H
	DD	FLAT:??_R0?AVlength_error@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	028H
	DD	FLAT:??0length_error@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA3?AVlength_error@std@@
xdata$x	SEGMENT
__CTA3?AVlength_error@std@@ DD 03H
	DD	FLAT:__CT??_R0?AVlength_error@std@@@8??0length_error@std@@QAE@ABV01@@Z40
	DD	FLAT:__CT??_R0?AVlogic_error@std@@@8??0logic_error@std@@QAE@ABV01@@Z40
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI3?AVlength_error@std@@
xdata$x	SEGMENT
__TI3?AVlength_error@std@@ DD 00H
	DD	FLAT:??1length_error@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA3?AVlength_error@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0BD@OLBABOEK@vector?$DMT?$DO?5too?5long?$AA@
CONST	SEGMENT
??_C@_0BD@OLBABOEK@vector?$DMT?$DO?5too?5long?$AA@ DB 'vector<T> too long'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ$0
__ehfuncinfo$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
xdata$x	ENDS
;	COMDAT ?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
_TEXT	SEGMENT
$T105059 = -80						; size = 28
$T105058 = -52						; size = 40
__$EHRec$ = -12						; size = 12
?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen, COMDAT

; 1259 : 		{	// report a length_error

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 44	 sub	 esp, 68			; 00000044H
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	50		 push	 eax
  00019	8d 44 24 48	 lea	 eax, DWORD PTR __$EHRec$[esp+84]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

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

  00023	6a 12		 push	 18			; 00000012H
  00025	68 00 00 00 00	 push	 OFFSET ??_C@_0BD@OLBABOEK@vector?$DMT?$DO?5too?5long?$AA@
  0002a	8d 4c 24 0c	 lea	 ecx, DWORD PTR $T105059[esp+92]
  0002e	c7 44 24 24 0f
	00 00 00	 mov	 DWORD PTR $T105059[esp+116], 15 ; 0000000fH
  00036	c7 44 24 20 00
	00 00 00	 mov	 DWORD PTR $T105059[esp+112], 0
  0003e	c6 44 24 10 00	 mov	 BYTE PTR $T105059[esp+96], 0
  00043	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  00048	8d 44 24 04	 lea	 eax, DWORD PTR $T105059[esp+84]
  0004c	50		 push	 eax
  0004d	8d 4c 24 24	 lea	 ecx, DWORD PTR $T105058[esp+88]
  00051	c7 44 24 54 00
	00 00 00	 mov	 DWORD PTR __$EHRec$[esp+96], 0
  00059	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
  0005e	68 00 00 00 00	 push	 OFFSET __TI3?AVlength_error@std@@
  00063	8d 4c 24 24	 lea	 ecx, DWORD PTR $T105058[esp+88]
  00067	51		 push	 ecx
  00068	c7 44 24 28 00
	00 00 00	 mov	 DWORD PTR $T105058[esp+92], OFFSET ??_7length_error@std@@6B@
  00070	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN45@Xlen:
$LN44@Xlen:
  00075	cc		 int	 3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ$0:
  00000	8d 4d b0	 lea	 ecx, DWORD PTR $T105059[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 bc	 lea	 eax, DWORD PTR [edx-68]
  0000f	8b 4a b8	 mov	 ecx, DWORD PTR [edx-72]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0logic_error@std@@QAE@ABV01@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0logic_error@std@@QAE@ABV01@@Z$0
__ehfuncinfo$??0logic_error@std@@QAE@ABV01@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0logic_error@std@@QAE@ABV01@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0logic_error@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___that$ = 8						; size = 4
??0logic_error@std@@QAE@ABV01@@Z PROC			; std::logic_error::logic_error, COMDAT
; _this$ = ecx
  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$??0logic_error@std@@QAE@ABV01@@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	51		 push	 ecx
  0000f	56		 push	 esi
  00010	57		 push	 edi
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	50		 push	 eax
  00019	8d 44 24 10	 lea	 eax, DWORD PTR __$EHRec$[esp+28]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	8b f1		 mov	 esi, ecx
  00025	89 74 24 0c	 mov	 DWORD PTR _this$[esp+28], esi
  00029	8b 7c 24 20	 mov	 edi, DWORD PTR ___that$[esp+24]
  0002d	57		 push	 edi
  0002e	e8 00 00 00 00	 call	 ??0exception@std@@QAE@ABV01@@Z ; std::exception::exception
  00033	33 d2		 xor	 edx, edx
  00035	6a ff		 push	 -1
  00037	8d 4e 0c	 lea	 ecx, DWORD PTR [esi+12]
  0003a	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7logic_error@std@@6B@
  00040	8d 47 0c	 lea	 eax, DWORD PTR [edi+12]
  00043	52		 push	 edx
  00044	c7 41 18 0f 00
	00 00		 mov	 DWORD PTR [ecx+24], 15	; 0000000fH
  0004b	89 51 14	 mov	 DWORD PTR [ecx+20], edx
  0004e	50		 push	 eax
  0004f	89 54 24 24	 mov	 DWORD PTR __$EHRec$[esp+48], edx
  00053	88 51 04	 mov	 BYTE PTR [ecx+4], dl
  00056	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0005b	8b c6		 mov	 eax, esi
  0005d	8b 4c 24 10	 mov	 ecx, DWORD PTR __$EHRec$[esp+28]
  00061	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00068	59		 pop	 ecx
  00069	5f		 pop	 edi
  0006a	5e		 pop	 esi
  0006b	83 c4 10	 add	 esp, 16			; 00000010H
  0006e	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0logic_error@std@@QAE@ABV01@@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1exception@std@@UAE@XZ ; std::exception::~exception
__ehhandler$??0logic_error@std@@QAE@ABV01@@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 f4	 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$??0logic_error@std@@QAE@ABV01@@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0logic_error@std@@QAE@ABV01@@Z ENDP			; std::logic_error::logic_error
; Function compile flags: /Ogtpy
;	COMDAT ??0length_error@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0length_error@std@@QAE@ABV01@@Z PROC			; std::length_error::length_error, COMDAT
; _this$ = ecx
  00000	8b 44 24 04	 mov	 eax, DWORD PTR ___that$[esp-4]
  00004	56		 push	 esi
  00005	50		 push	 eax
  00006	8b f1		 mov	 esi, ecx
  00008	e8 00 00 00 00	 call	 ??0logic_error@std@@QAE@ABV01@@Z
  0000d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7length_error@std@@6B@
  00013	8b c6		 mov	 eax, esi
  00015	5e		 pop	 esi
  00016	c2 04 00	 ret	 4
??0length_error@std@@QAE@ABV01@@Z ENDP			; std::length_error::length_error
_TEXT	ENDS
PUBLIC	?pop_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::pop_back
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ?pop_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ
_TEXT	SEGMENT
?pop_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::pop_back, COMDAT
; _this$ = ecx

; 863  : 		{	// erase element at end

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 864  : 
; 865  :  #if _HAS_ITERATOR_DEBUGGING
; 866  : 		if (empty())
; 867  : 			_DEBUG_ERROR("deque empty before pop");
; 868  : 		else
; 869  : 			{	// something to erase, do it
; 870  : 			_Orphan_off(_Myoff + _Mysize - 1);
; 871  : 
; 872  :  #else /* _HAS_ITERATOR_DEBUGGING */
; 873  : 		if (!empty())

  00003	8b 46 1c	 mov	 eax, DWORD PTR [esi+28]
  00006	85 c0		 test	 eax, eax
  00008	74 49		 je	 SHORT $LN1@pop_back

; 874  : 			{	// something to erase, do it
; 875  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 876  : 
; 877  : 			size_type _Newoff = _Mysize + _Myoff - 1;
; 878  : 			size_type _Block = _Newoff / _DEQUESIZ;

  0000a	8b 4e 18	 mov	 ecx, DWORD PTR [esi+24]
  0000d	8d 44 08 ff	 lea	 eax, DWORD PTR [eax+ecx-1]

; 879  : 			if (_Mapsize <= _Block)

  00011	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  00014	3b c8		 cmp	 ecx, eax
  00016	77 02		 ja	 SHORT $LN2@pop_back

; 880  : 				_Block -= _Mapsize;

  00018	2b c1		 sub	 eax, ecx
$LN2@pop_back:

; 881  : 			this->_Alval.destroy(_Map[_Block] + _Newoff % _DEQUESIZ);

  0001a	8b 56 10	 mov	 edx, DWORD PTR [esi+16]
  0001d	57		 push	 edi
  0001e	8b 3c 82	 mov	 edi, DWORD PTR [edx+eax*4]
  00021	83 7f 18 10	 cmp	 DWORD PTR [edi+24], 16	; 00000010H
  00025	72 0c		 jb	 SHORT $LN31@pop_back
  00027	8b 47 04	 mov	 eax, DWORD PTR [edi+4]
  0002a	50		 push	 eax
  0002b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00030	83 c4 04	 add	 esp, 4
$LN31@pop_back:
  00033	c7 47 18 0f 00
	00 00		 mov	 DWORD PTR [edi+24], 15	; 0000000fH
  0003a	c7 47 14 00 00
	00 00		 mov	 DWORD PTR [edi+20], 0
  00041	c6 47 04 00	 mov	 BYTE PTR [edi+4], 0

; 882  : 			if (--_Mysize == 0)

  00045	83 46 1c ff	 add	 DWORD PTR [esi+28], -1
  00049	5f		 pop	 edi
  0004a	75 07		 jne	 SHORT $LN1@pop_back

; 883  : 				_Myoff = 0;

  0004c	c7 46 18 00 00
	00 00		 mov	 DWORD PTR [esi+24], 0
$LN1@pop_back:
  00053	5e		 pop	 esi

; 884  : 			}
; 885  : 			}

  00054	c3		 ret	 0
?pop_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::pop_back
_TEXT	ENDS
PUBLIC	??_C@_0BC@KBDMBKEH@deque?$DMT?$DO?5too?5long?$AA@ ; `string'
PUBLIC	?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
;	COMDAT ??_C@_0BC@KBDMBKEH@deque?$DMT?$DO?5too?5long?$AA@
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdexcept
CONST	SEGMENT
??_C@_0BC@KBDMBKEH@deque?$DMT?$DO?5too?5long?$AA@ DB 'deque<T> too long', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ$0
__ehfuncinfo$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
xdata$x	ENDS
;	COMDAT ?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
_TEXT	SEGMENT
$T105572 = -80						; size = 28
$T105571 = -52						; size = 40
__$EHRec$ = -12						; size = 12
?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen, COMDAT

; 1210 : 		{	// report length error

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 44	 sub	 esp, 68			; 00000044H
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	50		 push	 eax
  00019	8d 44 24 48	 lea	 eax, DWORD PTR __$EHRec$[esp+84]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 1211 : 		_THROW(length_error, "deque<T> too long");

  00023	6a 11		 push	 17			; 00000011H
  00025	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@KBDMBKEH@deque?$DMT?$DO?5too?5long?$AA@
  0002a	8d 4c 24 0c	 lea	 ecx, DWORD PTR $T105572[esp+92]
  0002e	c7 44 24 24 0f
	00 00 00	 mov	 DWORD PTR $T105572[esp+116], 15 ; 0000000fH
  00036	c7 44 24 20 00
	00 00 00	 mov	 DWORD PTR $T105572[esp+112], 0
  0003e	c6 44 24 10 00	 mov	 BYTE PTR $T105572[esp+96], 0
  00043	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  00048	8d 44 24 04	 lea	 eax, DWORD PTR $T105572[esp+84]
  0004c	50		 push	 eax
  0004d	8d 4c 24 24	 lea	 ecx, DWORD PTR $T105571[esp+88]
  00051	c7 44 24 54 00
	00 00 00	 mov	 DWORD PTR __$EHRec$[esp+96], 0
  00059	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
  0005e	68 00 00 00 00	 push	 OFFSET __TI3?AVlength_error@std@@
  00063	8d 4c 24 24	 lea	 ecx, DWORD PTR $T105571[esp+88]
  00067	51		 push	 ecx
  00068	c7 44 24 28 00
	00 00 00	 mov	 DWORD PTR $T105571[esp+92], OFFSET ??_7length_error@std@@6B@
  00070	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN45@Xlen@2:
$LN44@Xlen@2:
  00075	cc		 int	 3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ$0:
  00000	8d 4d b0	 lea	 ecx, DWORD PTR $T105572[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 bc	 lea	 eax, DWORD PTR [edx-68]
  0000f	8b 4a b8	 mov	 ecx, DWORD PTR [edx-72]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
PUBLIC	??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z ; std::operator+<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z$0
__ehfuncinfo$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\string
xdata$x	ENDS
;	COMDAT ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z
_TEXT	SEGMENT
$T105735 = -44						; size = 4
$T105732 = -40						; size = 28
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__Left$ = 12						; size = 4
__Right$ = 16						; size = 4
??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z PROC ; std::operator+<char,std::char_traits<char>,std::allocator<char> >, COMDAT

; 23   : 	{	// return string + string

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 20	 sub	 esp, 32			; 00000020H
  00011	53		 push	 ebx
  00012	56		 push	 esi
  00013	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00018	33 c4		 xor	 eax, esp
  0001a	50		 push	 eax
  0001b	8d 44 24 2c	 lea	 eax, DWORD PTR __$EHRec$[esp+56]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 24   : 	return (basic_string<_Elem, _Traits, _Alloc>(_Left) += _Right);

  00025	8b 44 24 40	 mov	 eax, DWORD PTR __Left$[esp+52]
  00029	33 db		 xor	 ebx, ebx
  0002b	6a ff		 push	 -1
  0002d	53		 push	 ebx
  0002e	50		 push	 eax
  0002f	8d 4c 24 1c	 lea	 ecx, DWORD PTR $T105732[esp+68]
  00033	89 5c 24 18	 mov	 DWORD PTR $T105735[esp+68], ebx
  00037	c7 44 24 34 0f
	00 00 00	 mov	 DWORD PTR $T105732[esp+92], 15 ; 0000000fH
  0003f	89 5c 24 30	 mov	 DWORD PTR $T105732[esp+88], ebx
  00043	88 5c 24 20	 mov	 BYTE PTR $T105732[esp+72], bl
  00047	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0004c	8b 4c 24 44	 mov	 ecx, DWORD PTR __Right$[esp+52]
  00050	6a ff		 push	 -1
  00052	53		 push	 ebx
  00053	51		 push	 ecx
  00054	8d 4c 24 1c	 lea	 ecx, DWORD PTR $T105732[esp+68]
  00058	89 5c 24 40	 mov	 DWORD PTR __$EHRec$[esp+76], ebx
  0005c	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  00061	8b 74 24 3c	 mov	 esi, DWORD PTR ___$ReturnUdt$[esp+52]
  00065	6a ff		 push	 -1
  00067	53		 push	 ebx
  00068	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  0006f	89 5e 14	 mov	 DWORD PTR [esi+20], ebx
  00072	50		 push	 eax
  00073	8b ce		 mov	 ecx, esi
  00075	88 5e 04	 mov	 BYTE PTR [esi+4], bl
  00078	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0007d	83 7c 24 28 10	 cmp	 DWORD PTR $T105732[esp+80], 16 ; 00000010H
  00082	72 0d		 jb	 SHORT $LN88@operator@13
  00084	8b 54 24 14	 mov	 edx, DWORD PTR $T105732[esp+60]
  00088	52		 push	 edx
  00089	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0008e	83 c4 04	 add	 esp, 4
$LN88@operator@13:
  00091	8b c6		 mov	 eax, esi

; 25   : 	}

  00093	8b 4c 24 2c	 mov	 ecx, DWORD PTR __$EHRec$[esp+56]
  00097	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0009e	59		 pop	 ecx
  0009f	5e		 pop	 esi
  000a0	5b		 pop	 ebx
  000a1	83 c4 2c	 add	 esp, 44			; 0000002cH
  000a4	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR $T105732[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 d8	 lea	 eax, DWORD PTR [edx-40]
  0000f	8b 4a d4	 mov	 ecx, DWORD PTR [edx-44]
  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$??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z ENDP ; std::operator+<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z
_TEXT	SEGMENT
__Cat$106090 = -4					; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Al$ = 16						; size = 4
??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z PROC ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

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

  00000	51		 push	 ecx

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

  00001	8b 04 24	 mov	 eax, DWORD PTR __Cat$106090[esp+4]
  00004	8b 4c 24 10	 mov	 ecx, DWORD PTR __Al$[esp]
  00008	8b 54 24 0c	 mov	 edx, DWORD PTR __Last$[esp]
  0000c	50		 push	 eax
  0000d	8b 44 24 0c	 mov	 eax, DWORD PTR __First$[esp+4]
  00011	51		 push	 ecx
  00012	52		 push	 edx
  00013	50		 push	 eax
  00014	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 226  : 	}

  00019	83 c4 14	 add	 esp, 20			; 00000014H
  0001c	c3		 ret	 0
??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@@Z ENDP ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__catchsym$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$3 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0
__tryblocktable$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 00H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:__catchsym$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$3
__unwindtable$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 0ffffffffH
	DD	00H
	DD	00H
	DD	FLAT:__unwindfunclet$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2
	DD	0ffffffffH
	DD	00H
__ehfuncinfo$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
xdata$x	ENDS
;	COMDAT ??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T106263 = -24						; size = 4
__Next$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__First$ = 8						; size = 4
__Vptr$106260 = 12					; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
__Al$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

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

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00014	53		 push	 ebx
  00015	56		 push	 esi
  00016	57		 push	 edi
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 394  : 
; 395  :  #if _HAS_ITERATOR_DEBUGGING
; 396  : //	if (_Count < 0)
; 397  : //		_DEBUG_ERROR("negative count in uninitialized fill");
; 398  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 399  : 
; 400  : 	_FwdIt _Next = _First;

  0002b	8b 75 08	 mov	 esi, DWORD PTR __First$[ebp]

; 401  : 
; 402  : 	_TRY_BEGIN

  0002e	8b 7d 0c	 mov	 edi, DWORD PTR __Count$[ebp]
  00031	33 db		 xor	 ebx, ebx
  00033	89 75 ec	 mov	 DWORD PTR __Next$[ebp], esi
  00036	89 5d fc	 mov	 DWORD PTR __$EHRec$[ebp+12], ebx
  00039	8d a4 24 00 00
	00 00		 npad	 7
$LL6@Uninit_fil@2:

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

  00040	3b fb		 cmp	 edi, ebx
  00042	76 5a		 jbe	 SHORT $LN4@Uninit_fil@2

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

  00044	89 75 0c	 mov	 DWORD PTR __Vptr$106260[ebp], esi
  00047	89 75 e8	 mov	 DWORD PTR $T106263[ebp], esi
  0004a	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  0004e	3b f3		 cmp	 esi, ebx
  00050	74 1b		 je	 SHORT $LN18@Uninit_fil@2
  00052	8b 45 10	 mov	 eax, DWORD PTR __Val$[ebp]
  00055	6a ff		 push	 -1
  00057	53		 push	 ebx
  00058	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  0005f	89 5e 14	 mov	 DWORD PTR [esi+20], ebx
  00062	50		 push	 eax
  00063	8b ce		 mov	 ecx, esi
  00065	88 5e 04	 mov	 BYTE PTR [esi+4], bl
  00068	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
$LN18@Uninit_fil@2:
  0006d	4f		 dec	 edi
  0006e	83 c6 1c	 add	 esi, 28			; 0000001cH
  00071	88 5d fc	 mov	 BYTE PTR __$EHRec$[ebp+12], bl
  00074	89 75 08	 mov	 DWORD PTR __First$[ebp], esi
  00077	eb c7		 jmp	 SHORT $LL6@Uninit_fil@2
__catch$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0:

; 405  : 	_CATCH_ALL
; 406  : 	for (; _Next != _First; ++_Next)

  00079	8b 75 ec	 mov	 esi, DWORD PTR __Next$[ebp]
  0007c	8b 7d 08	 mov	 edi, DWORD PTR __First$[ebp]
  0007f	3b f7		 cmp	 esi, edi
  00081	74 12		 je	 SHORT $LN1@Uninit_fil@2
  00083	8b 5d 14	 mov	 ebx, DWORD PTR __Al$[ebp]
$LL3@Uninit_fil@2:

; 407  : 		_Al.destroy(_Next);

  00086	56		 push	 esi
  00087	8b cb		 mov	 ecx, ebx
  00089	e8 00 00 00 00	 call	 ?destroy@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::destroy
  0008e	83 c6 1c	 add	 esi, 28			; 0000001cH
  00091	3b f7		 cmp	 esi, edi
  00093	75 f1		 jne	 SHORT $LL3@Uninit_fil@2
$LN1@Uninit_fil@2:

; 408  : 	_RERAISE;

  00095	33 db		 xor	 ebx, ebx
  00097	53		 push	 ebx
  00098	53		 push	 ebx
  00099	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN55@Uninit_fil@2:
$LN4@Uninit_fil@2:

; 409  : 	_CATCH_END
; 410  : 	}

  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	c3		 ret	 0
$LN54@Uninit_fil@2:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2:
  00000	8b 45 0c	 mov	 eax, DWORD PTR __Vptr$106260[ebp]
  00003	50		 push	 eax
  00004	8b 4d e8	 mov	 ecx, DWORD PTR $T106263[ebp]
  00007	51		 push	 ecx
  00008	e8 00 00 00 00	 call	 ??3@YAXPAX0@Z		; operator delete
  0000d	83 c4 08	 add	 esp, 8
  00010	c3		 ret	 0
__ehhandler$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z:
  00011	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00015	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00018	8b 4a e4	 mov	 ecx, DWORD PTR [edx-28]
  0001b	33 c8		 xor	 ecx, eax
  0001d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00022	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  00027	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
PUBLIC	??$_Fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z ; std::_Fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Val$ = 16						; size = 4
??$_Fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z PROC ; std::_Fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT

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

  00000	53		 push	 ebx

; 3157 : 	_DEBUG_RANGE(_First, _Last);
; 3158 : 	for (; _First != _Last; ++_First)

  00001	8b 5c 24 0c	 mov	 ebx, DWORD PTR __Last$[esp]
  00005	56		 push	 esi
  00006	8b 74 24 0c	 mov	 esi, DWORD PTR __First$[esp+4]
  0000a	3b f3		 cmp	 esi, ebx
  0000c	74 19		 je	 SHORT $LN1@Fill
  0000e	57		 push	 edi
  0000f	8b 7c 24 18	 mov	 edi, DWORD PTR __Val$[esp+8]
$LL3@Fill:

; 3159 : 		*_First = _Val;

  00013	6a ff		 push	 -1
  00015	6a 00		 push	 0
  00017	57		 push	 edi
  00018	8b ce		 mov	 ecx, esi
  0001a	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0001f	83 c6 1c	 add	 esi, 28			; 0000001cH
  00022	3b f3		 cmp	 esi, ebx
  00024	75 ed		 jne	 SHORT $LL3@Fill
  00026	5f		 pop	 edi
$LN1@Fill:
  00027	5e		 pop	 esi
  00028	5b		 pop	 ebx

; 3160 : 	}

  00029	c3		 ret	 0
??$_Fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z ENDP ; std::_Fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>, COMDAT

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

  00000	53		 push	 ebx

; 2470 : 	_DEBUG_RANGE(_First, _Last);
; 2471 : 	for (; _First != _Last; ++_Dest, ++_First)

  00001	8b 5c 24 0c	 mov	 ebx, DWORD PTR __Last$[esp]
  00005	56		 push	 esi
  00006	8b 74 24 0c	 mov	 esi, DWORD PTR __First$[esp+4]
  0000a	3b f3		 cmp	 esi, ebx
  0000c	74 21		 je	 SHORT $LN12@Copy_opt
  0000e	57		 push	 edi
  0000f	8b 7c 24 18	 mov	 edi, DWORD PTR __Dest$[esp+8]
$LL3@Copy_opt:

; 2472 : 		*_Dest = *_First;

  00013	6a ff		 push	 -1
  00015	6a 00		 push	 0
  00017	56		 push	 esi
  00018	8b cf		 mov	 ecx, edi
  0001a	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0001f	83 c6 1c	 add	 esi, 28			; 0000001cH
  00022	83 c7 1c	 add	 edi, 28			; 0000001cH
  00025	3b f3		 cmp	 esi, ebx
  00027	75 ea		 jne	 SHORT $LL3@Copy_opt

; 2473 : 	return (_Dest);

  00029	8b c7		 mov	 eax, edi
  0002b	5f		 pop	 edi
  0002c	5e		 pop	 esi
  0002d	5b		 pop	 ebx

; 2474 : 	}

  0002e	c3		 ret	 0
$LN12@Copy_opt:

; 2473 : 	return (_Dest);

  0002f	8b 44 24 14	 mov	 eax, DWORD PTR __Dest$[esp+4]
  00033	5e		 pop	 esi
  00034	5b		 pop	 ebx

; 2474 : 	}

  00035	c3		 ret	 0
??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z
_TEXT	SEGMENT
__$ArrayPad$ = -4					; size = 4
__Right$ = 8						; size = 4
?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap, COMDAT
; _this$ = ecx

; 1735 : 		{	// exchange contents with _Right

  00000	51		 push	 ecx
  00001	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00006	33 c4		 xor	 eax, esp
  00008	89 04 24	 mov	 DWORD PTR __$ArrayPad$[esp+4], eax
  0000b	8b c1		 mov	 eax, ecx
  0000d	8b 4c 24 08	 mov	 ecx, DWORD PTR __Right$[esp]

; 1736 : 		if (this == &_Right)

  00011	3b c1		 cmp	 eax, ecx
  00013	74 50		 je	 SHORT $LN68@swap

; 1737 : 			;	// same object, do nothing
; 1738 : 		else if (_Mybase::_Alval == _Right._Alval)
; 1739 : 			{	// same allocator, swap control information
; 1740 : 
; 1741 :  #if _HAS_ITERATOR_DEBUGGING
; 1742 : 			this->_Swap_all(_Right);
; 1743 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1744 : 
; 1745 : 			_Bxty _Tbx = _Bx;

  00015	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00018	53		 push	 ebx
  00019	8b 58 10	 mov	 ebx, DWORD PTR [eax+16]
  0001c	55		 push	 ebp

; 1746 : 			_Bx = _Right._Bx, _Right._Bx = _Tbx;

  0001d	8b 69 04	 mov	 ebp, DWORD PTR [ecx+4]
  00020	56		 push	 esi
  00021	8b 70 08	 mov	 esi, DWORD PTR [eax+8]
  00024	57		 push	 edi
  00025	8b 78 0c	 mov	 edi, DWORD PTR [eax+12]
  00028	89 68 04	 mov	 DWORD PTR [eax+4], ebp
  0002b	8b 69 08	 mov	 ebp, DWORD PTR [ecx+8]
  0002e	89 68 08	 mov	 DWORD PTR [eax+8], ebp
  00031	8b 69 0c	 mov	 ebp, DWORD PTR [ecx+12]
  00034	89 68 0c	 mov	 DWORD PTR [eax+12], ebp
  00037	8b 69 10	 mov	 ebp, DWORD PTR [ecx+16]
  0003a	89 68 10	 mov	 DWORD PTR [eax+16], ebp
  0003d	89 51 04	 mov	 DWORD PTR [ecx+4], edx
  00040	89 71 08	 mov	 DWORD PTR [ecx+8], esi

; 1747 : 
; 1748 : 			size_type _Tlen = _Mysize;
; 1749 : 			_Mysize = _Right._Mysize, _Right._Mysize = _Tlen;

  00043	8b 71 14	 mov	 esi, DWORD PTR [ecx+20]
  00046	89 79 0c	 mov	 DWORD PTR [ecx+12], edi
  00049	89 59 10	 mov	 DWORD PTR [ecx+16], ebx
  0004c	8b 50 14	 mov	 edx, DWORD PTR [eax+20]
  0004f	89 70 14	 mov	 DWORD PTR [eax+20], esi

; 1750 : 
; 1751 : 			size_type _Tres = _Myres;
; 1752 : 			_Myres = _Right._Myres, _Right._Myres = _Tres;

  00052	8b 71 18	 mov	 esi, DWORD PTR [ecx+24]
  00055	89 51 14	 mov	 DWORD PTR [ecx+20], edx
  00058	8b 50 18	 mov	 edx, DWORD PTR [eax+24]
  0005b	5f		 pop	 edi
  0005c	89 70 18	 mov	 DWORD PTR [eax+24], esi
  0005f	5e		 pop	 esi
  00060	5d		 pop	 ebp
  00061	89 51 18	 mov	 DWORD PTR [ecx+24], edx
  00064	5b		 pop	 ebx

; 1753 : 			}
; 1754 : 		else
; 1755 : 			{	// different allocator, do multiple assigns
; 1756 : 			_Myt _Tmp = *this;
; 1757 : 
; 1758 : 			*this = _Right;
; 1759 : 			_Right = _Tmp;
; 1760 : 			}

$LN68@swap:

; 1761 : 		}

  00065	8b 0c 24	 mov	 ecx, DWORD PTR __$ArrayPad$[esp+4]
  00068	33 cc		 xor	 ecx, esp
  0006a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0006f	59		 pop	 ecx
  00070	c2 04 00	 ret	 4
?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap
_TEXT	ENDS
PUBLIC	??_C@_01LOCGONAA@?$AA?$AA@			; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	?GetOnlyFileName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetOnlyFileName
;	COMDAT ??_C@_01LOCGONAA@?$AA?$AA@
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
CONST	SEGMENT
??_C@_01LOCGONAA@?$AA?$AA@ DB 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
CONST	ENDS
;	COMDAT ?GetOnlyFileName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_sz_Name$ = 8						; size = 4
_strFileName$ = 12					; size = 4
?GetOnlyFileName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetOnlyFileName, COMDAT

; 179  : {

  00000	55		 push	 ebp

; 180  : 	strFileName = "";

  00001	8b 6c 24 0c	 mov	 ebp, DWORD PTR _strFileName$[esp]
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	6a 00		 push	 0
  00009	68 00 00 00 00	 push	 OFFSET ??_C@_00CNPNBAHC@?$AA@
  0000e	8b cd		 mov	 ecx, ebp
  00010	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 181  : 
; 182  : 	int i;
; 183  : 	for (i=strlen(sz_Name)-1; i>=0; --i)

  00015	8b 7c 24 10	 mov	 edi, DWORD PTR _sz_Name$[esp+8]
  00019	8b c7		 mov	 eax, edi
  0001b	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0001e	8b ff		 npad	 2
$LL31@GetOnlyFil:
  00020	8a 08		 mov	 cl, BYTE PTR [eax]
  00022	40		 inc	 eax
  00023	84 c9		 test	 cl, cl
  00025	75 f9		 jne	 SHORT $LL31@GetOnlyFil
  00027	2b c2		 sub	 eax, edx
  00029	8d 48 ff	 lea	 ecx, DWORD PTR [eax-1]
  0002c	85 c9		 test	 ecx, ecx
  0002e	7c 13		 jl	 SHORT $LN7@GetOnlyFil
$LL9@GetOnlyFil:

; 184  : 	{
; 185  : 		if ('\\' == sz_Name[i] || '/' == sz_Name[i])

  00030	8a 04 39	 mov	 al, BYTE PTR [ecx+edi]
  00033	3c 5c		 cmp	 al, 92			; 0000005cH
  00035	74 0b		 je	 SHORT $LN28@GetOnlyFil
  00037	3c 2f		 cmp	 al, 47			; 0000002fH
  00039	74 07		 je	 SHORT $LN28@GetOnlyFil

; 181  : 
; 182  : 	int i;
; 183  : 	for (i=strlen(sz_Name)-1; i>=0; --i)

  0003b	83 e9 01	 sub	 ecx, 1
  0003e	79 f0		 jns	 SHORT $LL9@GetOnlyFil

; 184  : 	{
; 185  : 		if ('\\' == sz_Name[i] || '/' == sz_Name[i])

  00040	eb 01		 jmp	 SHORT $LN7@GetOnlyFil
$LN28@GetOnlyFil:

; 186  : 		{
; 187  : 			++i;

  00042	41		 inc	 ecx
$LN7@GetOnlyFil:

; 188  : 			break;
; 189  : 		}
; 190  : 	}
; 191  : 	
; 192  : 	if (i == -1)

  00043	83 f9 ff	 cmp	 ecx, -1
  00046	75 02		 jne	 SHORT $LN4@GetOnlyFil

; 193  : 		i = 0;

  00048	33 c9		 xor	 ecx, ecx
$LN4@GetOnlyFil:

; 194  : 
; 195  : 	for (size_t j = i; j < strlen(sz_Name); ++j)

  0004a	8b c7		 mov	 eax, edi
  0004c	53		 push	 ebx
  0004d	8b f1		 mov	 esi, ecx
  0004f	8d 58 01	 lea	 ebx, DWORD PTR [eax+1]
$LL32@GetOnlyFil:
  00052	8a 10		 mov	 dl, BYTE PTR [eax]
  00054	40		 inc	 eax
  00055	84 d2		 test	 dl, dl
  00057	75 f9		 jne	 SHORT $LL32@GetOnlyFil
  00059	2b c3		 sub	 eax, ebx
  0005b	5b		 pop	 ebx
  0005c	3b c8		 cmp	 ecx, eax
  0005e	73 21		 jae	 SHORT $LN1@GetOnlyFil
$LL3@GetOnlyFil:

; 196  : 	{
; 197  : 		strFileName += sz_Name[j];

  00060	0f b6 04 3e	 movzx	 eax, BYTE PTR [esi+edi]
  00064	50		 push	 eax
  00065	6a 01		 push	 1
  00067	8b cd		 mov	 ecx, ebp
  00069	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  0006e	8b c7		 mov	 eax, edi
  00070	46		 inc	 esi
  00071	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL33@GetOnlyFil:
  00074	8a 08		 mov	 cl, BYTE PTR [eax]
  00076	40		 inc	 eax
  00077	84 c9		 test	 cl, cl
  00079	75 f9		 jne	 SHORT $LL33@GetOnlyFil
  0007b	2b c2		 sub	 eax, edx
  0007d	3b f0		 cmp	 esi, eax
  0007f	72 df		 jb	 SHORT $LL3@GetOnlyFil
$LN1@GetOnlyFil:

; 198  : 	}
; 199  : 
; 200  : 	strFileName += "\0";

  00081	6a 00		 push	 0
  00083	68 00 00 00 00	 push	 OFFSET ??_C@_01LOCGONAA@?$AA?$AA@
  00088	8b cd		 mov	 ecx, ebp
  0008a	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  0008f	5f		 pop	 edi
  00090	5e		 pop	 esi
  00091	5d		 pop	 ebp

; 201  : }

  00092	c3		 ret	 0
?GetOnlyFileName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetOnlyFileName
_TEXT	ENDS
PUBLIC	?GetExceptionPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetExceptionPathName
; Function compile flags: /Ogtpy
;	COMDAT ?GetExceptionPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_sz_Name$ = 8						; size = 4
_OnlyFileName$ = 12					; size = 4
?GetExceptionPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetExceptionPathName, COMDAT

; 205  : 	GetOnlyFileName(sz_Name, OnlyFileName);

  00000	e9 00 00 00 00	 jmp	 ?GetOnlyFileName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetOnlyFileName
?GetExceptionPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetExceptionPathName
_TEXT	ENDS
PUBLIC	?GetOnlyPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetOnlyPathName
; Function compile flags: /Ogtpy
;	COMDAT ?GetOnlyPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_sz_Name$ = 8						; size = 4
_OnlyPathName$ = 12					; size = 4
?GetOnlyPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetOnlyPathName, COMDAT

; 209  : {

  00000	53		 push	 ebx
  00001	55		 push	 ebp

; 210  : 	int i;
; 211  : 	for (i = strlen(sz_Name) - 1; i >= 0; --i)

  00002	8b 6c 24 0c	 mov	 ebp, DWORD PTR _sz_Name$[esp+4]
  00006	56		 push	 esi
  00007	8b c5		 mov	 eax, ebp
  00009	57		 push	 edi
  0000a	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0000d	8d 49 00	 npad	 3
$LL43@GetOnlyPat:
  00010	8a 08		 mov	 cl, BYTE PTR [eax]
  00012	40		 inc	 eax
  00013	84 c9		 test	 cl, cl
  00015	75 f9		 jne	 SHORT $LL43@GetOnlyPat
  00017	2b c2		 sub	 eax, edx
  00019	8d 58 ff	 lea	 ebx, DWORD PTR [eax-1]
  0001c	85 db		 test	 ebx, ebx
  0001e	7c 13		 jl	 SHORT $LN7@GetOnlyPat
$LL9@GetOnlyPat:

; 212  : 	{
; 213  : 		if ('\\' == sz_Name[i] || '/' == sz_Name[i])

  00020	8a 04 2b	 mov	 al, BYTE PTR [ebx+ebp]
  00023	3c 5c		 cmp	 al, 92			; 0000005cH
  00025	74 0b		 je	 SHORT $LN40@GetOnlyPat
  00027	3c 2f		 cmp	 al, 47			; 0000002fH
  00029	74 07		 je	 SHORT $LN40@GetOnlyPat

; 210  : 	int i;
; 211  : 	for (i = strlen(sz_Name) - 1; i >= 0; --i)

  0002b	83 eb 01	 sub	 ebx, 1
  0002e	79 f0		 jns	 SHORT $LL9@GetOnlyPat

; 212  : 	{
; 213  : 		if ('\\' == sz_Name[i] || '/' == sz_Name[i])

  00030	eb 01		 jmp	 SHORT $LN7@GetOnlyPat
$LN40@GetOnlyPat:

; 214  : 		{
; 215  : 			++i;

  00032	43		 inc	 ebx
$LN7@GetOnlyPat:

; 216  : 			break;
; 217  : 		}
; 218  : 	}
; 219  : 
; 220  : 	if (i == -1)

  00033	83 fb ff	 cmp	 ebx, -1
  00036	75 02		 jne	 SHORT $LN4@GetOnlyPat

; 221  : 		i = 0;

  00038	33 db		 xor	 ebx, ebx
$LN4@GetOnlyPat:

; 222  : 
; 223  : 	OnlyPathName.reserve(strlen(sz_Name));

  0003a	8b c5		 mov	 eax, ebp
  0003c	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0003f	90		 npad	 1
$LL44@GetOnlyPat:
  00040	8a 08		 mov	 cl, BYTE PTR [eax]
  00042	40		 inc	 eax
  00043	84 c9		 test	 cl, cl
  00045	75 f9		 jne	 SHORT $LL44@GetOnlyPat
  00047	8b 7c 24 18	 mov	 edi, DWORD PTR _OnlyPathName$[esp+12]
  0004b	8b 77 14	 mov	 esi, DWORD PTR [edi+20]
  0004e	2b c2		 sub	 eax, edx
  00050	3b f0		 cmp	 esi, eax
  00052	77 28		 ja	 SHORT $LN22@GetOnlyPat
  00054	39 47 18	 cmp	 DWORD PTR [edi+24], eax
  00057	74 23		 je	 SHORT $LN22@GetOnlyPat
  00059	6a 01		 push	 1
  0005b	50		 push	 eax
  0005c	8b cf		 mov	 ecx, edi
  0005e	e8 00 00 00 00	 call	 ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
  00063	84 c0		 test	 al, al
  00065	74 15		 je	 SHORT $LN22@GetOnlyPat
  00067	83 7f 18 10	 cmp	 DWORD PTR [edi+24], 16	; 00000010H
  0006b	89 77 14	 mov	 DWORD PTR [edi+20], esi
  0006e	72 05		 jb	 SHORT $LN20@GetOnlyPat
  00070	8b 47 04	 mov	 eax, DWORD PTR [edi+4]
  00073	eb 03		 jmp	 SHORT $LN21@GetOnlyPat
$LN20@GetOnlyPat:
  00075	8d 47 04	 lea	 eax, DWORD PTR [edi+4]
$LN21@GetOnlyPat:
  00078	c6 04 30 00	 mov	 BYTE PTR [eax+esi], 0
$LN22@GetOnlyPat:

; 224  : 	OnlyPathName = "";

  0007c	6a 00		 push	 0
  0007e	68 00 00 00 00	 push	 OFFSET ??_C@_00CNPNBAHC@?$AA@
  00083	8b cf		 mov	 ecx, edi
  00085	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 225  : 
; 226  : 	for (int j=0; j<i; ++j)

  0008a	33 f6		 xor	 esi, esi
  0008c	85 db		 test	 ebx, ebx
  0008e	7e 13		 jle	 SHORT $LN1@GetOnlyPat
$LL3@GetOnlyPat:

; 227  : 	{
; 228  : 		OnlyPathName += sz_Name[j];

  00090	0f b6 04 2e	 movzx	 eax, BYTE PTR [esi+ebp]
  00094	50		 push	 eax
  00095	6a 01		 push	 1
  00097	8b cf		 mov	 ecx, edi
  00099	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  0009e	46		 inc	 esi
  0009f	3b f3		 cmp	 esi, ebx
  000a1	7c ed		 jl	 SHORT $LL3@GetOnlyPat
$LN1@GetOnlyPat:

; 229  : 	}
; 230  : 	OnlyPathName += "\0";

  000a3	6a 00		 push	 0
  000a5	68 00 00 00 00	 push	 OFFSET ??_C@_01LOCGONAA@?$AA?$AA@
  000aa	8b cf		 mov	 ecx, edi
  000ac	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
  000b1	5f		 pop	 edi
  000b2	5e		 pop	 esi
  000b3	5d		 pop	 ebp
  000b4	5b		 pop	 ebx

; 231  : }

  000b5	c3		 ret	 0
?GetOnlyPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetOnlyPathName
_TEXT	ENDS
PUBLIC	?GetOnlyPathName@@YAPBDPBD@Z			; GetOnlyPathName
EXTRN	_atexit:PROC
;	COMDAT ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
_BSS	SEGMENT
?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A DB 01cH DUP (?) ; `GetOnlyPathName'::`2'::strPathName
_BSS	ENDS
;	COMDAT ?$S1@?1??GetOnlyPathName@@YAPBDPBD@Z@4IA
_BSS	SEGMENT
?$S1@?1??GetOnlyPathName@@YAPBDPBD@Z@4IA DD 01H DUP (?)	; `GetOnlyPathName'::`2'::$S1
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
_BSS	ENDS
;	COMDAT ?GetOnlyPathName@@YAPBDPBD@Z
_TEXT	SEGMENT
_c_szName$ = 8						; size = 4
?GetOnlyPathName@@YAPBDPBD@Z PROC			; GetOnlyPathName, COMDAT

; 235  : 	static std::string strPathName;

  00000	b8 01 00 00 00	 mov	 eax, 1
  00005	84 05 00 00 00
	00		 test	 BYTE PTR ?$S1@?1??GetOnlyPathName@@YAPBDPBD@Z@4IA, al
  0000b	75 29		 jne	 SHORT $LN1@GetOnlyPat@2
  0000d	09 05 00 00 00
	00		 or	 DWORD PTR ?$S1@?1??GetOnlyPathName@@YAPBDPBD@Z@4IA, eax
  00013	33 c0		 xor	 eax, eax
  00015	68 00 00 00 00	 push	 OFFSET ??__FstrPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@YAXXZ ; `GetOnlyPathName'::`2'::`dynamic atexit destructor for 'strPathName''
  0001a	c7 05 18 00 00
	00 0f 00 00 00	 mov	 DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+24, 15 ; 0000000fH
  00024	a3 14 00 00 00	 mov	 DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+20, eax
  00029	a2 04 00 00 00	 mov	 BYTE PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+4, al
  0002e	e8 00 00 00 00	 call	 _atexit
  00033	83 c4 04	 add	 esp, 4
$LN1@GetOnlyPat@2:

; 236  : 	GetOnlyPathName(c_szName, strPathName);

  00036	8b 44 24 04	 mov	 eax, DWORD PTR _c_szName$[esp-4]
  0003a	68 00 00 00 00	 push	 OFFSET ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A
  0003f	50		 push	 eax
  00040	e8 00 00 00 00	 call	 ?GetOnlyPathName@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetOnlyPathName

; 237  : 
; 238  : 	return strPathName.c_str();

  00045	a1 04 00 00 00	 mov	 eax, DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+4
  0004a	83 c4 08	 add	 esp, 8
  0004d	83 3d 18 00 00
	00 10		 cmp	 DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+24, 16 ; 00000010H
  00054	73 05		 jae	 SHORT $LN42@GetOnlyPat@2
  00056	b8 04 00 00 00	 mov	 eax, OFFSET ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+4
$LN42@GetOnlyPat@2:

; 239  : }

  0005b	c3		 ret	 0
?GetOnlyPathName@@YAPBDPBD@Z ENDP			; GetOnlyPathName
_TEXT	ENDS
PUBLIC	??_C@_01KMDKNFGN@?1?$AA@			; `string'
PUBLIC	__$ArrayPad$
PUBLIC	?GetWorkingFolder@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetWorkingFolder
EXTRN	__getcwd:PROC
;	COMDAT ??_C@_01KMDKNFGN@?1?$AA@
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
CONST	SEGMENT
??_C@_01KMDKNFGN@?1?$AA@ DB '/', 00H			; `string'
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
CONST	ENDS
;	COMDAT ?GetWorkingFolder@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_buf$ = -136						; size = 129
__$ArrayPad$ = -4					; size = 4
_strFileName$ = 8					; size = 4
?GetWorkingFolder@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetWorkingFolder, COMDAT

; 266  : {

  00000	81 ec 88 00 00
	00		 sub	 esp, 136		; 00000088H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 84 00
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+136], eax
  00014	56		 push	 esi
  00015	8b b4 24 90 00
	00 00		 mov	 esi, DWORD PTR _strFileName$[esp+136]
  0001c	57		 push	 edi

; 267  : 	char buf[128+1];
; 268  : 	_getcwd(buf, 128);

  0001d	8d 44 24 08	 lea	 eax, DWORD PTR _buf$[esp+144]
  00021	68 80 00 00 00	 push	 128			; 00000080H
  00026	50		 push	 eax
  00027	e8 00 00 00 00	 call	 __getcwd

; 269  : 	strcat(buf, "/");

  0002c	8d 7c 24 10	 lea	 edi, DWORD PTR _buf$[esp+152]
  00030	83 c4 08	 add	 esp, 8
  00033	4f		 dec	 edi
$LL9@GetWorking:
  00034	8a 47 01	 mov	 al, BYTE PTR [edi+1]
  00037	47		 inc	 edi
  00038	84 c0		 test	 al, al
  0003a	75 f8		 jne	 SHORT $LL9@GetWorking
  0003c	66 8b 0d 00 00
	00 00		 mov	 cx, WORD PTR ??_C@_01KMDKNFGN@?1?$AA@

; 270  : 	strFileName = buf;

  00043	8d 44 24 08	 lea	 eax, DWORD PTR _buf$[esp+144]
  00047	66 89 0f	 mov	 WORD PTR [edi], cx
  0004a	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0004d	8d 49 00	 npad	 3
$LL10@GetWorking:
  00050	8a 08		 mov	 cl, BYTE PTR [eax]
  00052	40		 inc	 eax
  00053	84 c9		 test	 cl, cl
  00055	75 f9		 jne	 SHORT $LL10@GetWorking
  00057	2b c2		 sub	 eax, edx
  00059	50		 push	 eax
  0005a	8d 54 24 0c	 lea	 edx, DWORD PTR _buf$[esp+148]
  0005e	52		 push	 edx
  0005f	8b ce		 mov	 ecx, esi
  00061	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 271  : }

  00066	8b 8c 24 8c 00
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+144]
  0006d	5f		 pop	 edi
  0006e	5e		 pop	 esi
  0006f	33 cc		 xor	 ecx, esp
  00071	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00076	81 c4 88 00 00
	00		 add	 esp, 136		; 00000088H
  0007c	c3		 ret	 0
?GetWorkingFolder@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetWorkingFolder
_TEXT	ENDS
PUBLIC	?StringPath@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; StringPath
; Function compile flags: /Ogtpy
;	COMDAT ?StringPath@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_c_szSrc$ = 8						; size = 4
tv74 = 12						; size = 4
_rString$ = 12						; size = 4
?StringPath@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; StringPath, COMDAT

; 315  : {

  00000	53		 push	 ebx

; 316  : 	rString = "";

  00001	8b 5c 24 0c	 mov	 ebx, DWORD PTR _rString$[esp]
  00005	55		 push	 ebp
  00006	56		 push	 esi
  00007	6a 00		 push	 0
  00009	68 00 00 00 00	 push	 OFFSET ??_C@_00CNPNBAHC@?$AA@
  0000e	8b cb		 mov	 ecx, ebx
  00010	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 317  : 	rString.resize(strlen(c_szSrc));

  00015	8b 6c 24 10	 mov	 ebp, DWORD PTR _c_szSrc$[esp+8]
  00019	8b c5		 mov	 eax, ebp
  0001b	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0001e	8b ff		 npad	 2
$LL42@StringPath@4:
  00020	8a 08		 mov	 cl, BYTE PTR [eax]
  00022	40		 inc	 eax
  00023	84 c9		 test	 cl, cl
  00025	75 f9		 jne	 SHORT $LL42@StringPath@4
  00027	8b 4b 14	 mov	 ecx, DWORD PTR [ebx+20]
  0002a	2b c2		 sub	 eax, edx
  0002c	3b c1		 cmp	 eax, ecx
  0002e	77 0c		 ja	 SHORT $LN17@StringPath@4
  00030	6a ff		 push	 -1
  00032	50		 push	 eax
  00033	8b cb		 mov	 ecx, ebx
  00035	e8 00 00 00 00	 call	 ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
  0003a	eb 0c		 jmp	 SHORT $LN16@StringPath@4
$LN17@StringPath@4:
  0003c	2b c1		 sub	 eax, ecx
  0003e	6a 00		 push	 0
  00040	50		 push	 eax
  00041	8b cb		 mov	 ecx, ebx
  00043	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
$LN16@StringPath@4:

; 318  : 
; 319  : 	for (DWORD i = 0; i < strlen(c_szSrc); ++i)

  00048	8b c5		 mov	 eax, ebp
  0004a	33 f6		 xor	 esi, esi
  0004c	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0004f	90		 npad	 1
$LL43@StringPath@4:
  00050	8a 08		 mov	 cl, BYTE PTR [eax]
  00052	40		 inc	 eax
  00053	84 c9		 test	 cl, cl
  00055	75 f9		 jne	 SHORT $LL43@StringPath@4
  00057	2b c2		 sub	 eax, edx
  00059	74 69		 je	 SHORT $LN3@StringPath@4
  0005b	57		 push	 edi
  0005c	8d 64 24 00	 npad	 4
$LL5@StringPath@4:

; 320  : 	{
; 321  : 		if (c_szSrc[i] == '\\')

  00060	80 3c 2e 5c	 cmp	 BYTE PTR [esi+ebp], 92	; 0000005cH
  00064	75 22		 jne	 SHORT $LN2@StringPath@4

; 322  : 			rString[i] = '/';

  00066	3b 73 14	 cmp	 esi, DWORD PTR [ebx+20]
  00069	76 05		 jbe	 SHORT $LN22@StringPath@4
  0006b	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN22@StringPath@4:
  00070	83 7b 18 10	 cmp	 DWORD PTR [ebx+24], 16	; 00000010H
  00074	72 09		 jb	 SHORT $LN28@StringPath@4
  00076	8b 43 04	 mov	 eax, DWORD PTR [ebx+4]
  00079	c6 04 30 2f	 mov	 BYTE PTR [eax+esi], 47	; 0000002fH

; 323  : 		else

  0007d	eb 31		 jmp	 SHORT $LN4@StringPath@4

; 322  : 			rString[i] = '/';

$LN28@StringPath@4:
  0007f	8d 43 04	 lea	 eax, DWORD PTR [ebx+4]
  00082	c6 04 30 2f	 mov	 BYTE PTR [eax+esi], 47	; 0000002fH

; 323  : 		else

  00086	eb 28		 jmp	 SHORT $LN4@StringPath@4
$LN2@StringPath@4:

; 324  : 			rString[i] = korean_tolower(c_szSrc[i]);

  00088	3b 73 14	 cmp	 esi, DWORD PTR [ebx+20]
  0008b	76 05		 jbe	 SHORT $LN32@StringPath@4
  0008d	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN32@StringPath@4:
  00092	83 7b 18 10	 cmp	 DWORD PTR [ebx+24], 16	; 00000010H
  00096	72 05		 jb	 SHORT $LN38@StringPath@4
  00098	8b 7b 04	 mov	 edi, DWORD PTR [ebx+4]
  0009b	eb 03		 jmp	 SHORT $LN39@StringPath@4
$LN38@StringPath@4:
  0009d	8d 7b 04	 lea	 edi, DWORD PTR [ebx+4]
$LN39@StringPath@4:
  000a0	0f b6 04 2e	 movzx	 eax, BYTE PTR [esi+ebp]
  000a4	50		 push	 eax
  000a5	e8 00 00 00 00	 call	 ?korean_tolower@@YADD@Z	; korean_tolower
  000aa	83 c4 04	 add	 esp, 4
  000ad	88 04 37	 mov	 BYTE PTR [edi+esi], al
$LN4@StringPath@4:
  000b0	8b c5		 mov	 eax, ebp
  000b2	46		 inc	 esi
  000b3	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL44@StringPath@4:
  000b6	8a 08		 mov	 cl, BYTE PTR [eax]
  000b8	40		 inc	 eax
  000b9	84 c9		 test	 cl, cl
  000bb	75 f9		 jne	 SHORT $LL44@StringPath@4
  000bd	2b c2		 sub	 eax, edx
  000bf	3b f0		 cmp	 esi, eax
  000c1	72 9d		 jb	 SHORT $LL5@StringPath@4
  000c3	5f		 pop	 edi
$LN3@StringPath@4:
  000c4	5e		 pop	 esi
  000c5	5d		 pop	 ebp
  000c6	5b		 pop	 ebx

; 325  : 	}
; 326  : }

  000c7	c3		 ret	 0
?StringPath@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; StringPath
_TEXT	ENDS
PUBLIC	__$ArrayPad$
EXTRN	__imp__DeleteFileA@4:PROC
EXTRN	__chmod:PROC
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$?OnFile@CDirRemover@@UAE_NPBD0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?OnFile@CDirRemover@@UAE_NPBD0@Z$0
__ehfuncinfo$?OnFile@CDirRemover@@UAE_NPBD0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?OnFile@CDirRemover@@UAE_NPBD0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
xdata$x	ENDS
;	COMDAT ?OnFile@CDirRemover@@UAE_NPBD0@Z
_TEXT	SEGMENT
_strFullPathName$ = -44					; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_c_szPathName$ = 8					; size = 4
_c_szFileName$ = 12					; size = 4
?OnFile@CDirRemover@@UAE_NPBD0@Z PROC			; CDirRemover::OnFile, COMDAT
; _this$ = ecx

; 488  : 		{

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?OnFile@CDirRemover@@UAE_NPBD0@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 20	 sub	 esp, 32			; 00000020H
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	89 44 24 1c	 mov	 DWORD PTR __$ArrayPad$[esp+44], eax
  0001c	56		 push	 esi
  0001d	57		 push	 edi
  0001e	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00023	33 c4		 xor	 eax, esp
  00025	50		 push	 eax
  00026	8d 44 24 2c	 lea	 eax, DWORD PTR __$EHRec$[esp+56]
  0002a	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00030	8b 4c 24 3c	 mov	 ecx, DWORD PTR _c_szPathName$[esp+52]
  00034	8b 74 24 40	 mov	 esi, DWORD PTR _c_szFileName$[esp+52]

; 489  : 			std::string strFullPathName;

  00038	c7 44 24 24 0f
	00 00 00	 mov	 DWORD PTR _strFullPathName$[esp+80], 15 ; 0000000fH
  00040	c7 44 24 20 00
	00 00 00	 mov	 DWORD PTR _strFullPathName$[esp+76], 0
  00048	c6 44 24 10 00	 mov	 BYTE PTR _strFullPathName$[esp+60], 0

; 490  : 			strFullPathName = c_szPathName;

  0004d	8b c1		 mov	 eax, ecx
  0004f	c7 44 24 34 00
	00 00 00	 mov	 DWORD PTR __$EHRec$[esp+64], 0
  00057	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0005a	8d 9b 00 00 00
	00		 npad	 6
$LL86@OnFile:
  00060	8a 10		 mov	 dl, BYTE PTR [eax]
  00062	40		 inc	 eax
  00063	84 d2		 test	 dl, dl
  00065	75 f9		 jne	 SHORT $LL86@OnFile
  00067	2b c7		 sub	 eax, edi
  00069	50		 push	 eax
  0006a	51		 push	 ecx
  0006b	8d 4c 24 14	 lea	 ecx, DWORD PTR _strFullPathName$[esp+64]
  0006f	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 491  : 			strFullPathName += c_szFileName; 

  00074	8b c6		 mov	 eax, esi
  00076	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  00079	8d a4 24 00 00
	00 00		 npad	 7
$LL87@OnFile:
  00080	8a 08		 mov	 cl, BYTE PTR [eax]
  00082	40		 inc	 eax
  00083	84 c9		 test	 cl, cl
  00085	75 f9		 jne	 SHORT $LL87@OnFile
  00087	2b c2		 sub	 eax, edx
  00089	50		 push	 eax
  0008a	56		 push	 esi
  0008b	8d 4c 24 14	 lea	 ecx, DWORD PTR _strFullPathName$[esp+64]
  0008f	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 492  : 			_chmod(strFullPathName.c_str(), _S_IWRITE);

  00094	8b 44 24 10	 mov	 eax, DWORD PTR _strFullPathName$[esp+60]
  00098	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  0009d	39 74 24 24	 cmp	 DWORD PTR _strFullPathName$[esp+80], esi
  000a1	73 04		 jae	 SHORT $LN53@OnFile
  000a3	8d 44 24 10	 lea	 eax, DWORD PTR _strFullPathName$[esp+60]
$LN53@OnFile:
  000a7	68 80 00 00 00	 push	 128			; 00000080H
  000ac	50		 push	 eax
  000ad	e8 00 00 00 00	 call	 __chmod

; 493  : 			DeleteFile(strFullPathName.c_str());

  000b2	8b 44 24 18	 mov	 eax, DWORD PTR _strFullPathName$[esp+68]
  000b6	83 c4 08	 add	 esp, 8
  000b9	39 74 24 24	 cmp	 DWORD PTR _strFullPathName$[esp+80], esi
  000bd	73 04		 jae	 SHORT $LN59@OnFile
  000bf	8d 44 24 10	 lea	 eax, DWORD PTR _strFullPathName$[esp+60]
$LN59@OnFile:
  000c3	50		 push	 eax
  000c4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteFileA@4

; 494  : 			return true;

  000ca	39 74 24 24	 cmp	 DWORD PTR _strFullPathName$[esp+80], esi
  000ce	72 0d		 jb	 SHORT $LN88@OnFile
  000d0	8b 44 24 10	 mov	 eax, DWORD PTR _strFullPathName$[esp+60]
  000d4	50		 push	 eax
  000d5	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000da	83 c4 04	 add	 esp, 4
$LN88@OnFile:
  000dd	b0 01		 mov	 al, 1

; 495  : 		}

  000df	8b 4c 24 2c	 mov	 ecx, DWORD PTR __$EHRec$[esp+56]
  000e3	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000ea	59		 pop	 ecx
  000eb	5f		 pop	 edi
  000ec	5e		 pop	 esi
  000ed	8b 4c 24 1c	 mov	 ecx, DWORD PTR __$ArrayPad$[esp+44]
  000f1	33 cc		 xor	 ecx, esp
  000f3	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000f8	83 c4 2c	 add	 esp, 44			; 0000002cH
  000fb	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?OnFile@CDirRemover@@UAE_NPBD0@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR _strFullPathName$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?OnFile@CDirRemover@@UAE_NPBD0@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 d8	 lea	 eax, DWORD PTR [edx-40]
  0000f	8b 4a d4	 mov	 ecx, DWORD PTR [edx-44]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	83 c0 08	 add	 eax, 8
  0001c	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  0001f	33 c8		 xor	 ecx, eax
  00021	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00026	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?OnFile@CDirRemover@@UAE_NPBD0@Z
  0002b	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?OnFile@CDirRemover@@UAE_NPBD0@Z ENDP			; CDirRemover::OnFile
PUBLIC	__$ArrayPad$
PUBLIC	?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z ; StringExceptCharacter
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z$2
__ehfuncinfo$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
xdata$x	ENDS
;	COMDAT ?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z
_TEXT	SEGMENT
$T107280 = -100						; size = 28
_strBack$94724 = -72					; size = 28
_strFront$94722 = -44					; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_pstrString$ = 8					; size = 4
_c_szCharacter$ = 12					; size = 4
?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z PROC ; StringExceptCharacter, COMDAT

; 525  : {

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 58	 sub	 esp, 88			; 00000058H
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	89 44 24 54	 mov	 DWORD PTR __$ArrayPad$[esp+100], eax
  0001c	53		 push	 ebx
  0001d	55		 push	 ebp
  0001e	56		 push	 esi
  0001f	57		 push	 edi
  00020	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00025	33 c4		 xor	 eax, esp
  00027	50		 push	 eax
  00028	8d 44 24 6c	 lea	 eax, DWORD PTR __$EHRec$[esp+120]
  0002c	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00032	8b ac 24 80 00
	00 00		 mov	 ebp, DWORD PTR _c_szCharacter$[esp+116]
  00039	8b 7c 24 7c	 mov	 edi, DWORD PTR _pstrString$[esp+116]

; 526  : 	int icurPos = 0;
; 527  : 	int iNextPos = 0;
; 528  : 
; 529  : 	while((iNextPos = pstrString->find_first_of(c_szCharacter, icurPos)) >= 0)

  0003d	8b c5		 mov	 eax, ebp
  0003f	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  00042	33 db		 xor	 ebx, ebx
$LL98@StringExce:
  00044	8a 08		 mov	 cl, BYTE PTR [eax]
  00046	40		 inc	 eax
  00047	3a cb		 cmp	 cl, bl
  00049	75 f9		 jne	 SHORT $LL98@StringExce
  0004b	2b c2		 sub	 eax, edx
  0004d	50		 push	 eax
  0004e	53		 push	 ebx
  0004f	55		 push	 ebp
  00050	8b cf		 mov	 ecx, edi
  00052	e8 00 00 00 00	 call	 ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
  00057	8b f0		 mov	 esi, eax
  00059	3b f3		 cmp	 esi, ebx
  0005b	0f 8c e4 00 00
	00		 jl	 $LN1@StringExce
$LL2@StringExce:

; 530  : 	{
; 531  : 		std::string strFront = pstrString->substr(icurPos, iNextPos - icurPos);

  00061	56		 push	 esi
  00062	53		 push	 ebx
  00063	8d 44 24 54	 lea	 eax, DWORD PTR _strFront$94722[esp+128]
  00067	50		 push	 eax
  00068	8b cf		 mov	 ecx, edi
  0006a	e8 00 00 00 00	 call	 ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::substr

; 532  : 		std::string strBack = pstrString->substr(iNextPos+1, pstrString->length() - iNextPos - 1);

  0006f	8b 47 14	 mov	 eax, DWORD PTR [edi+20]
  00072	2b c6		 sub	 eax, esi
  00074	48		 dec	 eax
  00075	50		 push	 eax
  00076	46		 inc	 esi
  00077	56		 push	 esi
  00078	8d 4c 24 38	 lea	 ecx, DWORD PTR _strBack$94724[esp+128]
  0007c	51		 push	 ecx
  0007d	8b cf		 mov	 ecx, edi
  0007f	89 9c 24 80 00
	00 00		 mov	 DWORD PTR __$EHRec$[esp+140], ebx
  00086	e8 00 00 00 00	 call	 ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::substr

; 533  : 		*pstrString = strFront + strBack;

  0008b	8d 54 24 30	 lea	 edx, DWORD PTR _strBack$94724[esp+120]
  0008f	52		 push	 edx
  00090	8d 44 24 50	 lea	 eax, DWORD PTR _strFront$94722[esp+124]
  00094	50		 push	 eax
  00095	8d 4c 24 1c	 lea	 ecx, DWORD PTR $T107280[esp+128]
  00099	51		 push	 ecx
  0009a	c6 84 24 80 00
	00 00 01	 mov	 BYTE PTR __$EHRec$[esp+140], 1
  000a2	e8 00 00 00 00	 call	 ??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z ; std::operator+<char,std::char_traits<char>,std::allocator<char> >
  000a7	83 c4 0c	 add	 esp, 12			; 0000000cH
  000aa	6a ff		 push	 -1
  000ac	53		 push	 ebx
  000ad	50		 push	 eax
  000ae	8b cf		 mov	 ecx, edi
  000b0	c6 84 24 80 00
	00 00 02	 mov	 BYTE PTR __$EHRec$[esp+140], 2
  000b8	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  000bd	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  000c2	39 74 24 2c	 cmp	 DWORD PTR $T107280[esp+144], esi
  000c6	72 0d		 jb	 SHORT $LN34@StringExce
  000c8	8b 54 24 18	 mov	 edx, DWORD PTR $T107280[esp+124]
  000cc	52		 push	 edx
  000cd	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000d2	83 c4 04	 add	 esp, 4
$LN34@StringExce:
  000d5	c7 44 24 2c 0f
	00 00 00	 mov	 DWORD PTR $T107280[esp+144], 15 ; 0000000fH
  000dd	89 5c 24 28	 mov	 DWORD PTR $T107280[esp+140], ebx
  000e1	88 5c 24 18	 mov	 BYTE PTR $T107280[esp+124], bl

; 534  : 	}

  000e5	39 74 24 48	 cmp	 DWORD PTR _strBack$94724[esp+144], esi
  000e9	72 0d		 jb	 SHORT $LN60@StringExce
  000eb	8b 44 24 34	 mov	 eax, DWORD PTR _strBack$94724[esp+124]
  000ef	50		 push	 eax
  000f0	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000f5	83 c4 04	 add	 esp, 4
$LN60@StringExce:
  000f8	c7 44 24 48 0f
	00 00 00	 mov	 DWORD PTR _strBack$94724[esp+144], 15 ; 0000000fH
  00100	89 5c 24 44	 mov	 DWORD PTR _strBack$94724[esp+140], ebx
  00104	88 5c 24 34	 mov	 BYTE PTR _strBack$94724[esp+124], bl
  00108	c7 44 24 74 ff
	ff ff ff	 mov	 DWORD PTR __$EHRec$[esp+128], -1
  00110	39 74 24 64	 cmp	 DWORD PTR _strFront$94722[esp+144], esi
  00114	72 0d		 jb	 SHORT $LN86@StringExce
  00116	8b 4c 24 50	 mov	 ecx, DWORD PTR _strFront$94722[esp+124]
  0011a	51		 push	 ecx
  0011b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00120	83 c4 04	 add	 esp, 4
$LN86@StringExce:
  00123	8b c5		 mov	 eax, ebp
  00125	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL99@StringExce:
  00128	8a 08		 mov	 cl, BYTE PTR [eax]
  0012a	40		 inc	 eax
  0012b	3a cb		 cmp	 cl, bl
  0012d	75 f9		 jne	 SHORT $LL99@StringExce
  0012f	2b c2		 sub	 eax, edx
  00131	50		 push	 eax
  00132	53		 push	 ebx
  00133	55		 push	 ebp
  00134	8b cf		 mov	 ecx, edi
  00136	e8 00 00 00 00	 call	 ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of
  0013b	8b f0		 mov	 esi, eax
  0013d	3b f3		 cmp	 esi, ebx
  0013f	0f 8d 1c ff ff
	ff		 jge	 $LL2@StringExce
$LN1@StringExce:

; 535  : }

  00145	8b 4c 24 6c	 mov	 ecx, DWORD PTR __$EHRec$[esp+120]
  00149	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00150	59		 pop	 ecx
  00151	5f		 pop	 edi
  00152	5e		 pop	 esi
  00153	5d		 pop	 ebp
  00154	5b		 pop	 ebx
  00155	8b 4c 24 54	 mov	 ecx, DWORD PTR __$ArrayPad$[esp+100]
  00159	33 cc		 xor	 ecx, esp
  0015b	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00160	83 c4 64	 add	 esp, 100		; 00000064H
  00163	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR _strFront$94722[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z$1:
  00008	8d 4d b8	 lea	 ecx, DWORD PTR _strBack$94724[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$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z$2:
  00010	8d 4d 9c	 lea	 ecx, DWORD PTR $T107280[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z:
  00018	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001c	8d 42 98	 lea	 eax, DWORD PTR [edx-104]
  0001f	8b 4a 94	 mov	 ecx, DWORD PTR [edx-108]
  00022	33 c8		 xor	 ecx, eax
  00024	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00029	83 c0 10	 add	 eax, 16			; 00000010H
  0002c	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  0002f	33 c8		 xor	 ecx, eax
  00031	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00036	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z
  0003b	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?StringExceptCharacter@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z ENDP ; StringExceptCharacter
PUBLIC	__$ArrayPad$
PUBLIC	?GetExcutedFileName@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetExcutedFileName
EXTRN	__imp__GetModuleFileNameA@12:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?GetExcutedFileName@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_szPath$ = -268						; size = 261
__$ArrayPad$ = -4					; size = 4
_r_str$ = 8						; size = 4
?GetExcutedFileName@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetExcutedFileName, COMDAT

; 577  : {

  00000	81 ec 0c 01 00
	00		 sub	 esp, 268		; 0000010cH
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 08 01
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+268], eax
  00014	56		 push	 esi
  00015	8b b4 24 14 01
	00 00		 mov	 esi, DWORD PTR _r_str$[esp+268]

; 578  : 	char szPath[MAX_PATH+1];
; 579  : 
; 580  : 	GetModuleFileName(NULL, szPath, MAX_PATH);

  0001c	68 04 01 00 00	 push	 260			; 00000104H
  00021	8d 44 24 08	 lea	 eax, DWORD PTR _szPath$[esp+276]
  00025	50		 push	 eax
  00026	6a 00		 push	 0
  00028	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetModuleFileNameA@12

; 581  : 	szPath[MAX_PATH] = '\0';
; 582  : 
; 583  : 	r_str = szPath;

  0002e	8d 44 24 04	 lea	 eax, DWORD PTR _szPath$[esp+272]
  00032	c6 84 24 08 01
	00 00 00	 mov	 BYTE PTR _szPath$[esp+532], 0
  0003a	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0003d	8d 49 00	 npad	 3
$LL9@GetExcuted:
  00040	8a 08		 mov	 cl, BYTE PTR [eax]
  00042	40		 inc	 eax
  00043	84 c9		 test	 cl, cl
  00045	75 f9		 jne	 SHORT $LL9@GetExcuted
  00047	2b c2		 sub	 eax, edx
  00049	50		 push	 eax
  0004a	8d 4c 24 08	 lea	 ecx, DWORD PTR _szPath$[esp+276]
  0004e	51		 push	 ecx
  0004f	8b ce		 mov	 ecx, esi
  00051	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 584  : }

  00056	8b 8c 24 0c 01
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+272]
  0005d	5e		 pop	 esi
  0005e	33 cc		 xor	 ecx, esp
  00060	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00065	81 c4 0c 01 00
	00		 add	 esp, 268		; 0000010cH
  0006b	c3		 ret	 0
?GetExcutedFileName@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetExcutedFileName
_TEXT	ENDS
PUBLIC	?_Growmap@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXI@Z ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Growmap
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ?_Growmap@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXI@Z
_TEXT	SEGMENT
__Myboff$ = -8						; size = 4
__Newmap$ = -4						; size = 4
__Count$ = 8						; size = 4
?_Growmap@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXI@Z PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Growmap, COMDAT
; _this$ = ecx

; 1226 : 		if (max_size() / _DEQUESIZ - _Mapsize < _Count)

  00000	8b 54 24 04	 mov	 edx, DWORD PTR __Count$[esp-4]
  00004	83 ec 08	 sub	 esp, 8
  00007	53		 push	 ebx
  00008	8b d9		 mov	 ebx, ecx
  0000a	8b 43 14	 mov	 eax, DWORD PTR [ebx+20]
  0000d	b9 49 92 24 09	 mov	 ecx, 153391689		; 09249249H
  00012	2b c8		 sub	 ecx, eax
  00014	3b ca		 cmp	 ecx, edx
  00016	73 05		 jae	 SHORT $LN6@Growmap

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

  00018	e8 00 00 00 00	 call	 ?_Xlen@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
$LN158@Growmap:
$LN6@Growmap:

; 1228 : 
; 1229 : 		size_type _Inc = _Mapsize / 2;	// try to grow by 50%

  0001d	8b c8		 mov	 ecx, eax
  0001f	d1 e9		 shr	 ecx, 1

; 1230 : 		if (_Inc < _DEQUEMAPSIZ)

  00021	83 f9 08	 cmp	 ecx, 8
  00024	73 05		 jae	 SHORT $LN5@Growmap

; 1231 : 			_Inc = _DEQUEMAPSIZ;

  00026	b9 08 00 00 00	 mov	 ecx, 8
$LN5@Growmap:
  0002b	55		 push	 ebp
  0002c	56		 push	 esi
  0002d	57		 push	 edi

; 1232 : 		if (_Count < _Inc && _Mapsize <= max_size() / _DEQUESIZ - _Inc)

  0002e	3b d1		 cmp	 edx, ecx
  00030	73 11		 jae	 SHORT $LN4@Growmap
  00032	be 49 92 24 09	 mov	 esi, 153391689		; 09249249H
  00037	2b f1		 sub	 esi, ecx
  00039	3b c6		 cmp	 eax, esi
  0003b	77 06		 ja	 SHORT $LN4@Growmap

; 1233 : 			_Count = _Inc;

  0003d	8b d1		 mov	 edx, ecx
  0003f	89 54 24 1c	 mov	 DWORD PTR __Count$[esp+20], edx
$LN4@Growmap:

; 1234 : 		size_type _Myboff = _Myoff / _DEQUESIZ;

  00043	8b 73 18	 mov	 esi, DWORD PTR [ebx+24]

; 1235 : 		_Mapptr _Newmap = this->_Almap.allocate(_Mapsize + _Count);

  00046	03 c2		 add	 eax, edx
  00048	6a 00		 push	 0
  0004a	50		 push	 eax
  0004b	89 74 24 18	 mov	 DWORD PTR __Myboff$[esp+32], esi
  0004f	e8 00 00 00 00	 call	 ??$_Allocate@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

; 1236 : 		_Mapptr _Myptr = _Newmap + _Myboff;
; 1237 : 
; 1238 : 		_Myptr = _STDEXT unchecked_uninitialized_copy(_Map + _Myboff,
; 1239 : 			_Map + _Mapsize, _Myptr, this->_Almap);	// copy initial to end

  00054	8b 4b 10	 mov	 ecx, DWORD PTR [ebx+16]
  00057	89 44 24 1c	 mov	 DWORD PTR __Newmap$[esp+32], eax
  0005b	03 f6		 add	 esi, esi
  0005d	03 f6		 add	 esi, esi
  0005f	8d 3c 06	 lea	 edi, DWORD PTR [esi+eax]
  00062	8b 43 14	 mov	 eax, DWORD PTR [ebx+20]
  00065	03 c0		 add	 eax, eax
  00067	03 c0		 add	 eax, eax
  00069	8d 14 0e	 lea	 edx, DWORD PTR [esi+ecx]
  0006c	2b c2		 sub	 eax, edx
  0006e	03 c1		 add	 eax, ecx
  00070	c1 f8 02	 sar	 eax, 2
  00073	83 c4 08	 add	 esp, 8
  00076	8d 0c 85 00 00
	00 00		 lea	 ecx, DWORD PTR [eax*4]
  0007d	8d 2c 39	 lea	 ebp, DWORD PTR [ecx+edi]
  00080	85 c0		 test	 eax, eax
  00082	76 0c		 jbe	 SHORT $LN35@Growmap
  00084	51		 push	 ecx
  00085	52		 push	 edx
  00086	51		 push	 ecx
  00087	57		 push	 edi
  00088	e8 00 00 00 00	 call	 _memmove_s
  0008d	83 c4 10	 add	 esp, 16			; 00000010H
$LN35@Growmap:

; 1240 : 		if (_Myboff <= _Count)

  00090	8b 54 24 10	 mov	 edx, DWORD PTR __Myboff$[esp+24]
  00094	8b 44 24 1c	 mov	 eax, DWORD PTR __Count$[esp+20]
  00098	3b d0		 cmp	 edx, eax
  0009a	77 42		 ja	 SHORT $LN3@Growmap

; 1241 : 			{	// increment greater than offset of initial block
; 1242 : 			_Myptr = _STDEXT unchecked_uninitialized_copy(_Map,
; 1243 : 				_Map + _Myboff, _Myptr, this->_Almap);	// copy rest of old

  0009c	8b 43 10	 mov	 eax, DWORD PTR [ebx+16]
  0009f	c1 fe 02	 sar	 esi, 2
  000a2	8d 0c b5 00 00
	00 00		 lea	 ecx, DWORD PTR [esi*4]
  000a9	8d 3c 29	 lea	 edi, DWORD PTR [ecx+ebp]
  000ac	85 f6		 test	 esi, esi
  000ae	76 10		 jbe	 SHORT $LN50@Growmap
  000b0	51		 push	 ecx
  000b1	50		 push	 eax
  000b2	51		 push	 ecx
  000b3	55		 push	 ebp
  000b4	e8 00 00 00 00	 call	 _memmove_s
  000b9	8b 54 24 20	 mov	 edx, DWORD PTR __Myboff$[esp+40]
  000bd	83 c4 10	 add	 esp, 16			; 00000010H
$LN50@Growmap:

; 1244 : 			_STDEXT unchecked_uninitialized_fill_n(_Myptr, _Count - _Myboff,
; 1245 : 				(_Tptr)0, this->_Almap);	// clear suffix of new

  000c0	8b 4c 24 1c	 mov	 ecx, DWORD PTR __Count$[esp+20]
  000c4	2b ca		 sub	 ecx, edx
  000c6	74 08		 je	 SHORT $LN71@Growmap
  000c8	8b 54 24 10	 mov	 edx, DWORD PTR __Myboff$[esp+24]
  000cc	33 c0		 xor	 eax, eax
  000ce	f3 ab		 rep stosd
$LN71@Growmap:

; 1246 : 			_STDEXT unchecked_uninitialized_fill_n(_Newmap, _Myboff,
; 1247 : 				(_Tptr)0, this->_Almap);	// clear prefix of new

  000d0	8b 6c 24 14	 mov	 ebp, DWORD PTR __Newmap$[esp+24]
  000d4	85 d2		 test	 edx, edx
  000d6	76 60		 jbe	 SHORT $LN155@Growmap
  000d8	8b ca		 mov	 ecx, edx
  000da	8b fd		 mov	 edi, ebp

; 1248 : 			}
; 1249 : 		else

  000dc	eb 56		 jmp	 SHORT $LN157@Growmap
$LN3@Growmap:

; 1250 : 			{	// increment not greater than offset of initial block
; 1251 : 			_STDEXT unchecked_uninitialized_copy(_Map,
; 1252 : 				_Map + _Count, _Myptr, this->_Almap);	// copy more old

  000de	8b 4b 10	 mov	 ecx, DWORD PTR [ebx+16]
  000e1	8d 3c 85 00 00
	00 00		 lea	 edi, DWORD PTR [eax*4]
  000e8	8b c7		 mov	 eax, edi
  000ea	c1 f8 02	 sar	 eax, 2
  000ed	85 c0		 test	 eax, eax
  000ef	76 10		 jbe	 SHORT $LN107@Growmap
  000f1	03 c0		 add	 eax, eax
  000f3	03 c0		 add	 eax, eax
  000f5	50		 push	 eax
  000f6	51		 push	 ecx
  000f7	50		 push	 eax
  000f8	55		 push	 ebp
  000f9	e8 00 00 00 00	 call	 _memmove_s
  000fe	83 c4 10	 add	 esp, 16			; 00000010H
$LN107@Growmap:

; 1253 : 			_Myptr = _STDEXT unchecked_uninitialized_copy(_Map + _Count,
; 1254 : 				_Map + _Myboff, _Newmap, this->_Almap);	// copy rest of old

  00101	8b 43 10	 mov	 eax, DWORD PTR [ebx+16]
  00104	8b 6c 24 14	 mov	 ebp, DWORD PTR __Newmap$[esp+24]
  00108	8d 0c 07	 lea	 ecx, DWORD PTR [edi+eax]
  0010b	2b f1		 sub	 esi, ecx
  0010d	03 f0		 add	 esi, eax
  0010f	c1 fe 02	 sar	 esi, 2
  00112	8d 04 b5 00 00
	00 00		 lea	 eax, DWORD PTR [esi*4]
  00119	8d 3c 28	 lea	 edi, DWORD PTR [eax+ebp]
  0011c	85 f6		 test	 esi, esi
  0011e	76 0c		 jbe	 SHORT $LN122@Growmap
  00120	50		 push	 eax
  00121	51		 push	 ecx
  00122	50		 push	 eax
  00123	55		 push	 ebp
  00124	e8 00 00 00 00	 call	 _memmove_s
  00129	83 c4 10	 add	 esp, 16			; 00000010H
$LN122@Growmap:

; 1255 : 			_STDEXT unchecked_uninitialized_fill_n(_Myptr, _Count,
; 1256 : 				(_Tptr)0, this->_Almap);	// clear rest to initial block

  0012c	8b 4c 24 1c	 mov	 ecx, DWORD PTR __Count$[esp+20]
  00130	85 c9		 test	 ecx, ecx
  00132	76 04		 jbe	 SHORT $LN155@Growmap
$LN157@Growmap:
  00134	33 c0		 xor	 eax, eax
  00136	f3 ab		 rep stosd
$LN155@Growmap:

; 1257 : 			}
; 1258 : 
; 1259 : 		_Destroy_range(_Map + _Myboff, _Map + _Mapsize, this->_Almap);
; 1260 : 		if (_Map)

  00138	8b 43 10	 mov	 eax, DWORD PTR [ebx+16]
  0013b	85 c0		 test	 eax, eax
  0013d	74 09		 je	 SHORT $LN146@Growmap

; 1261 : 			this->_Almap.deallocate(_Map, _Mapsize);	// free storage for old

  0013f	50		 push	 eax
  00140	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00145	83 c4 04	 add	 esp, 4
$LN146@Growmap:

; 1262 : 
; 1263 : 		_Map = _Newmap;	// point at new
; 1264 : 		_Mapsize += _Count;

  00148	8b 54 24 1c	 mov	 edx, DWORD PTR __Count$[esp+20]
  0014c	01 53 14	 add	 DWORD PTR [ebx+20], edx
  0014f	5f		 pop	 edi
  00150	5e		 pop	 esi
  00151	89 6b 10	 mov	 DWORD PTR [ebx+16], ebp
  00154	5d		 pop	 ebp
  00155	5b		 pop	 ebx

; 1265 : 		}

  00156	83 c4 08	 add	 esp, 8
  00159	c2 04 00	 ret	 4
$LN156@Growmap:
?_Growmap@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXI@Z ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Growmap
_TEXT	ENDS
PUBLIC	?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy
; Function compile flags: /Ogtpy
;	COMDAT ?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ
_TEXT	SEGMENT
?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy, COMDAT
; _this$ = ecx

; 1268 : 		{	// free all storage

  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx

; 1269 : 		while (!empty())

  00004	33 db		 xor	 ebx, ebx
  00006	57		 push	 edi
  00007	39 5e 1c	 cmp	 DWORD PTR [esi+28], ebx
  0000a	74 4e		 je	 SHORT $LN5@Tidy@2
  0000c	8d 64 24 00	 npad	 4
$LL6@Tidy@2:

; 1270 : 			pop_back();

  00010	8b 46 1c	 mov	 eax, DWORD PTR [esi+28]
  00013	3b c3		 cmp	 eax, ebx
  00015	74 3e		 je	 SHORT $LN11@Tidy@2
  00017	8b 4e 18	 mov	 ecx, DWORD PTR [esi+24]
  0001a	8d 44 08 ff	 lea	 eax, DWORD PTR [eax+ecx-1]
  0001e	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  00021	3b c8		 cmp	 ecx, eax
  00023	77 02		 ja	 SHORT $LN12@Tidy@2
  00025	2b c1		 sub	 eax, ecx
$LN12@Tidy@2:
  00027	8b 56 10	 mov	 edx, DWORD PTR [esi+16]
  0002a	8b 3c 82	 mov	 edi, DWORD PTR [edx+eax*4]
  0002d	83 7f 18 10	 cmp	 DWORD PTR [edi+24], 16	; 00000010H
  00031	72 0c		 jb	 SHORT $LN41@Tidy@2
  00033	8b 47 04	 mov	 eax, DWORD PTR [edi+4]
  00036	50		 push	 eax
  00037	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0003c	83 c4 04	 add	 esp, 4
$LN41@Tidy@2:
  0003f	c7 47 18 0f 00
	00 00		 mov	 DWORD PTR [edi+24], 15	; 0000000fH
  00046	89 5f 14	 mov	 DWORD PTR [edi+20], ebx
  00049	88 5f 04	 mov	 BYTE PTR [edi+4], bl
  0004c	83 46 1c ff	 add	 DWORD PTR [esi+28], -1
  00050	75 03		 jne	 SHORT $LN11@Tidy@2
  00052	89 5e 18	 mov	 DWORD PTR [esi+24], ebx
$LN11@Tidy@2:

; 1269 : 		while (!empty())

  00055	39 5e 1c	 cmp	 DWORD PTR [esi+28], ebx
  00058	75 b6		 jne	 SHORT $LL6@Tidy@2
$LN5@Tidy@2:

; 1271 : 		for (size_type _Count = _Mapsize; 0 < _Count; )

  0005a	8b 7e 14	 mov	 edi, DWORD PTR [esi+20]
  0005d	3b fb		 cmp	 edi, ebx
  0005f	76 1b		 jbe	 SHORT $LN3@Tidy@2
$LL4@Tidy@2:
  00061	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]

; 1272 : 			{	// free storage for a block and destroy pointer
; 1273 : 			if (*(_Map + --_Count) != 0)

  00064	4f		 dec	 edi
  00065	39 1c b9	 cmp	 DWORD PTR [ecx+edi*4], ebx
  00068	8d 04 b9	 lea	 eax, DWORD PTR [ecx+edi*4]
  0006b	74 0b		 je	 SHORT $LN51@Tidy@2

; 1274 : 				this->_Alval.deallocate(*(_Map + _Count), _DEQUESIZ);

  0006d	8b 10		 mov	 edx, DWORD PTR [eax]
  0006f	52		 push	 edx
  00070	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00075	83 c4 04	 add	 esp, 4
$LN51@Tidy@2:

; 1271 : 		for (size_type _Count = _Mapsize; 0 < _Count; )

  00078	3b fb		 cmp	 edi, ebx
  0007a	77 e5		 ja	 SHORT $LL4@Tidy@2
$LN3@Tidy@2:

; 1275 : 			this->_Almap.destroy(_Map + _Count);
; 1276 : 			}
; 1277 : 
; 1278 : 		if (_Map)

  0007c	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  0007f	3b c3		 cmp	 eax, ebx
  00081	74 09		 je	 SHORT $LN58@Tidy@2

; 1279 : 			this->_Almap.deallocate(_Map, _Mapsize);	// free storage for map

  00083	50		 push	 eax
  00084	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00089	83 c4 04	 add	 esp, 4
$LN58@Tidy@2:
  0008c	5f		 pop	 edi

; 1280 : 		_Mapsize = 0;
; 1281 : 		_Map = 0;

  0008d	89 5e 10	 mov	 DWORD PTR [esi+16], ebx
  00090	89 5e 14	 mov	 DWORD PTR [esi+20], ebx
  00093	5e		 pop	 esi
  00094	5b		 pop	 ebx

; 1282 : 		}

  00095	c3		 ret	 0
?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy
_TEXT	ENDS
PUBLIC	?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Destroy
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Cat$108657 = 12					; size = 1
__Last$ = 12						; size = 4
?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Destroy, COMDAT
; _this$ = ecx

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

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Cat$108657[esp-4]
  00004	8b 54 24 04	 mov	 edx, DWORD PTR __First$[esp-4]
  00008	50		 push	 eax
  00009	83 c1 08	 add	 ecx, 8
  0000c	51		 push	 ecx
  0000d	8b 4c 24 10	 mov	 ecx, DWORD PTR __Last$[esp+4]
  00011	51		 push	 ecx
  00012	52		 push	 edx
  00013	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
  00018	83 c4 10	 add	 esp, 16			; 00000010H

; 1120 : 		}

  0001b	c2 08 00	 ret	 8
?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Destroy
_TEXT	ENDS
PUBLIC	??$unchecked_uninitialized_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ; stdext::unchecked_uninitialized_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
;	COMDAT ??$unchecked_uninitialized_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z
_TEXT	SEGMENT
$T108665 = -4						; size = 1
__Cat$108669 = -4					; size = 1
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Val$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z PROC ; stdext::unchecked_uninitialized_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

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

  00000	51		 push	 ecx

; 941  : 	_STD _Uninit_fill_n(_First, _Count, _Val, _Al,
; 942  : 		_STD _Ptr_cat(_First, _First), _STD _Range_checked_iterator_tag());

  00001	8b 54 24 14	 mov	 edx, DWORD PTR __Al$[esp]
  00005	c6 04 24 00	 mov	 BYTE PTR $T108665[esp+4], 0
  00009	8b 04 24	 mov	 eax, DWORD PTR $T108665[esp+4]
  0000c	8b 0c 24	 mov	 ecx, DWORD PTR __Cat$108669[esp+4]
  0000f	50		 push	 eax
  00010	8b 44 24 14	 mov	 eax, DWORD PTR __Val$[esp+4]
  00014	51		 push	 ecx
  00015	8b 4c 24 14	 mov	 ecx, DWORD PTR __Count$[esp+8]
  00019	52		 push	 edx
  0001a	8b 54 24 14	 mov	 edx, DWORD PTR __First$[esp+12]
  0001e	50		 push	 eax
  0001f	51		 push	 ecx
  00020	52		 push	 edx
  00021	e8 00 00 00 00	 call	 ??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 943  : 	}

  00026	83 c4 1c	 add	 esp, 28			; 0000001cH
  00029	c3		 ret	 0
??$unchecked_uninitialized_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ENDP ; stdext::unchecked_uninitialized_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??$fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z ; std::fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Val$ = 16						; size = 4
??$fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z PROC ; std::fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT

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

  00000	56		 push	 esi

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

  00001	8b 74 24 08	 mov	 esi, DWORD PTR __First$[esp]
  00005	57		 push	 edi
  00006	8b 7c 24 10	 mov	 edi, DWORD PTR __Last$[esp+4]
  0000a	3b f7		 cmp	 esi, edi
  0000c	74 19		 je	 SHORT $LN11@fill
  0000e	53		 push	 ebx
  0000f	8b 5c 24 18	 mov	 ebx, DWORD PTR __Val$[esp+8]
$LL13@fill:
  00013	6a ff		 push	 -1
  00015	6a 00		 push	 0
  00017	53		 push	 ebx
  00018	8b ce		 mov	 ecx, esi
  0001a	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  0001f	83 c6 1c	 add	 esi, 28			; 0000001cH
  00022	3b f7		 cmp	 esi, edi
  00024	75 ed		 jne	 SHORT $LL13@fill
  00026	5b		 pop	 ebx
$LN11@fill:
  00027	5f		 pop	 edi
  00028	5e		 pop	 esi

; 3188 : 	}

  00029	c3		 ret	 0
??$fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z ENDP ; std::fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T108717 = -8						; size = 1
$T108718 = -4						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
$T108719 = 16						; size = 1
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

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

  00000	83 ec 08	 sub	 esp, 8

; 2482 : 	// if _OutIt is range checked, this will make sure there is enough space for the copy
; 2483 : 	_OutIt _Result = _Dest + (_Last - _First);
; 2484 : 	_Copy_opt(_First, _Last, _CHECKED_BASE(_Dest), 
; 2485 : 		forward_iterator_tag(), _Nonscalar_ptr_iterator_tag(), _Range_checked_iterator_tag());

  00003	8b 54 24 14	 mov	 edx, DWORD PTR $T108719[esp+4]
  00007	53		 push	 ebx
  00008	8b 5c 24 10	 mov	 ebx, DWORD PTR __First$[esp+8]
  0000c	56		 push	 esi
  0000d	8b 74 24 18	 mov	 esi, DWORD PTR __Last$[esp+12]
  00011	57		 push	 edi
  00012	8b 7c 24 20	 mov	 edi, DWORD PTR __Dest$[esp+16]
  00016	32 c0		 xor	 al, al
  00018	88 44 24 10	 mov	 BYTE PTR $T108718[esp+20], al
  0001c	8b 4c 24 10	 mov	 ecx, DWORD PTR $T108718[esp+20]
  00020	88 44 24 0c	 mov	 BYTE PTR $T108717[esp+20], al
  00024	8b 44 24 0c	 mov	 eax, DWORD PTR $T108717[esp+20]
  00028	50		 push	 eax
  00029	51		 push	 ecx
  0002a	52		 push	 edx
  0002b	57		 push	 edi
  0002c	56		 push	 esi
  0002d	53		 push	 ebx
  0002e	e8 00 00 00 00	 call	 ??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>
  00033	2b f3		 sub	 esi, ebx
  00035	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  0003a	f7 ee		 imul	 esi
  0003c	03 d6		 add	 edx, esi
  0003e	c1 fa 04	 sar	 edx, 4
  00041	8b c2		 mov	 eax, edx
  00043	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  00046	03 c2		 add	 eax, edx
  00048	83 c4 18	 add	 esp, 24			; 00000018H
  0004b	8d 0c c5 00 00
	00 00		 lea	 ecx, DWORD PTR [eax*8]
  00052	2b c8		 sub	 ecx, eax
  00054	8d 04 8f	 lea	 eax, DWORD PTR [edi+ecx*4]
  00057	5f		 pop	 edi
  00058	5e		 pop	 esi
  00059	5b		 pop	 ebx

; 2486 : 	return _Result;
; 2487 : 	}

  0005a	83 c4 08	 add	 esp, 8
  0005d	c3		 ret	 0
??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$swap@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ; std::swap<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??$swap@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
??$swap@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z PROC ; std::swap<char,std::char_traits<char>,std::allocator<char> >, COMDAT

; 2206 : 	_Left.swap(_Right);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __Left$[esp-4]
  00008	50		 push	 eax
  00009	e8 00 00 00 00	 call	 ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap

; 2207 : 	}

  0000e	c3		 ret	 0
??$swap@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ENDP ; std::swap<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	_pstrLocalFileName$GSCopy$
PUBLIC	_c_szFullPathFileName$GSCopy$
PUBLIC	__$ArrayPad$
PUBLIC	?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetLocalFileName
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$2
__ehfuncinfo$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
xdata$x	ENDS
;	COMDAT ?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_c_szFullPathFileName$GSCopy$ = -108			; size = 4
_pstrLocalFileName$GSCopy$ = -104			; size = 4
_strGlobalPath$ = -100					; size = 28
_strFullPathFileName$ = -72				; size = 28
_strLocalFileName$ = -44				; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_c_szGlobalPath$ = 8					; size = 4
_c_szFullPathFileName$ = 12				; size = 4
_pstrLocalFileName$ = 16				; size = 4
?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC ; GetLocalFileName, COMDAT

; 242  : {

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 60	 sub	 esp, 96			; 00000060H
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	89 44 24 5c	 mov	 DWORD PTR __$ArrayPad$[esp+108], eax
  0001c	53		 push	 ebx
  0001d	55		 push	 ebp
  0001e	56		 push	 esi
  0001f	57		 push	 edi
  00020	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00025	33 c4		 xor	 eax, esp
  00027	50		 push	 eax
  00028	8d 44 24 74	 lea	 eax, DWORD PTR __$EHRec$[esp+128]
  0002c	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00032	8b bc 24 88 00
	00 00		 mov	 edi, DWORD PTR _c_szFullPathFileName$[esp+124]

; 261  : 
; 262  : 	return true;

  00039	8b 8c 24 8c 00
	00 00		 mov	 ecx, DWORD PTR _pstrLocalFileName$[esp+124]
  00040	8b 84 24 84 00
	00 00		 mov	 eax, DWORD PTR _c_szGlobalPath$[esp+124]
  00047	33 db		 xor	 ebx, ebx
  00049	be 0f 00 00 00	 mov	 esi, 15			; 0000000fH
  0004e	89 7c 24 14	 mov	 DWORD PTR _c_szFullPathFileName$GSCopy$[esp+128], edi
  00052	89 4c 24 18	 mov	 DWORD PTR _pstrLocalFileName$GSCopy$[esp+128], ecx
  00056	89 74 24 6c	 mov	 DWORD PTR _strLocalFileName$[esp+152], esi
  0005a	89 5c 24 68	 mov	 DWORD PTR _strLocalFileName$[esp+148], ebx
  0005e	88 5c 24 58	 mov	 BYTE PTR _strLocalFileName$[esp+132], bl
  00062	89 5c 24 7c	 mov	 DWORD PTR __$EHRec$[esp+136], ebx
  00066	89 74 24 34	 mov	 DWORD PTR _strGlobalPath$[esp+152], esi
  0006a	89 5c 24 30	 mov	 DWORD PTR _strGlobalPath$[esp+148], ebx
  0006e	88 5c 24 20	 mov	 BYTE PTR _strGlobalPath$[esp+132], bl
  00072	89 74 24 50	 mov	 DWORD PTR _strFullPathFileName$[esp+152], esi
  00076	89 5c 24 4c	 mov	 DWORD PTR _strFullPathFileName$[esp+148], ebx
  0007a	88 5c 24 3c	 mov	 BYTE PTR _strFullPathFileName$[esp+132], bl
  0007e	8d 54 24 1c	 lea	 edx, DWORD PTR _strGlobalPath$[esp+128]
  00082	52		 push	 edx
  00083	50		 push	 eax
  00084	c6 84 24 84 00
	00 00 02	 mov	 BYTE PTR __$EHRec$[esp+144], 2
  0008c	e8 00 00 00 00	 call	 ?StringPath@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; StringPath
  00091	8d 44 24 40	 lea	 eax, DWORD PTR _strFullPathFileName$[esp+136]
  00095	50		 push	 eax
  00096	57		 push	 edi
  00097	e8 00 00 00 00	 call	 ?StringPath@@YAXPBDAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; StringPath
  0009c	8b 44 24 40	 mov	 eax, DWORD PTR _strGlobalPath$[esp+164]
  000a0	83 c4 10	 add	 esp, 16			; 00000010H
  000a3	3b 44 24 4c	 cmp	 eax, DWORD PTR _strFullPathFileName$[esp+148]
  000a7	72 5d		 jb	 SHORT $LN384@GetLocalFi
  000a9	bf 10 00 00 00	 mov	 edi, 16			; 00000010H
  000ae	39 7c 24 50	 cmp	 DWORD PTR _strFullPathFileName$[esp+152], edi
  000b2	72 0d		 jb	 SHORT $LN129@GetLocalFi
  000b4	8b 4c 24 3c	 mov	 ecx, DWORD PTR _strFullPathFileName$[esp+132]
  000b8	51		 push	 ecx
  000b9	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000be	83 c4 04	 add	 esp, 4
$LN129@GetLocalFi:
  000c1	89 74 24 50	 mov	 DWORD PTR _strFullPathFileName$[esp+152], esi
  000c5	89 5c 24 4c	 mov	 DWORD PTR _strFullPathFileName$[esp+148], ebx
  000c9	88 5c 24 3c	 mov	 BYTE PTR _strFullPathFileName$[esp+132], bl
  000cd	39 7c 24 34	 cmp	 DWORD PTR _strGlobalPath$[esp+152], edi
  000d1	72 0d		 jb	 SHORT $LN155@GetLocalFi
  000d3	8b 54 24 20	 mov	 edx, DWORD PTR _strGlobalPath$[esp+132]
  000d7	52		 push	 edx
  000d8	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000dd	83 c4 04	 add	 esp, 4
$LN155@GetLocalFi:
  000e0	89 74 24 34	 mov	 DWORD PTR _strGlobalPath$[esp+152], esi
  000e4	89 5c 24 30	 mov	 DWORD PTR _strGlobalPath$[esp+148], ebx
  000e8	88 5c 24 20	 mov	 BYTE PTR _strGlobalPath$[esp+132], bl
  000ec	39 7c 24 6c	 cmp	 DWORD PTR _strLocalFileName$[esp+152], edi
  000f0	72 0d		 jb	 SHORT $LN181@GetLocalFi
  000f2	8b 44 24 58	 mov	 eax, DWORD PTR _strLocalFileName$[esp+132]
  000f6	50		 push	 eax
  000f7	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000fc	83 c4 04	 add	 esp, 4
$LN181@GetLocalFi:

; 243  : 	std::string strLocalFileName;
; 244  : 
; 245  : 	std::string strGlobalPath;
; 246  : 	std::string strFullPathFileName;
; 247  : 	StringPath(c_szGlobalPath, strGlobalPath);
; 248  : 	StringPath(c_szFullPathFileName, strFullPathFileName);
; 249  : 
; 250  : 	if (strGlobalPath.length() >= strFullPathFileName.length())
; 251  : 		return false;

  000ff	32 c0		 xor	 al, al
  00101	e9 8b 00 00 00	 jmp	 $LN6@GetLocalFi
$LN384@GetLocalFi:

; 252  : 
; 253  : 	DWORD length = min(strGlobalPath.length(), strFullPathFileName.length());
; 254  : 	for (DWORD dwPos = 0; dwPos < length; ++dwPos)

  00106	33 f6		 xor	 esi, esi
  00108	8b e8		 mov	 ebp, eax
  0010a	3b c3		 cmp	 eax, ebx
  0010c	0f 87 a2 00 00
	00		 ja	 $LN4@GetLocalFi
$LN2@GetLocalFi:

; 258  : 	}
; 259  : 
; 260  : 	*pstrLocalFileName = &c_szFullPathFileName[length];

  00112	8d 0c 2f	 lea	 ecx, DWORD PTR [edi+ebp]
  00115	8b c1		 mov	 eax, ecx
  00117	8d 70 01	 lea	 esi, DWORD PTR [eax+1]
  0011a	8d 9b 00 00 00
	00		 npad	 6
$LL385@GetLocalFi:
  00120	8a 10		 mov	 dl, BYTE PTR [eax]
  00122	40		 inc	 eax
  00123	3a d3		 cmp	 dl, bl
  00125	75 f9		 jne	 SHORT $LL385@GetLocalFi
  00127	2b c6		 sub	 eax, esi
  00129	50		 push	 eax
  0012a	51		 push	 ecx
  0012b	8b 4c 24 20	 mov	 ecx, DWORD PTR _pstrLocalFileName$GSCopy$[esp+136]
  0012f	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 261  : 
; 262  : 	return true;

  00134	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  00139	39 74 24 50	 cmp	 DWORD PTR _strFullPathFileName$[esp+152], esi
  0013d	72 0d		 jb	 SHORT $LN319@GetLocalFi
  0013f	8b 44 24 3c	 mov	 eax, DWORD PTR _strFullPathFileName$[esp+132]
  00143	50		 push	 eax
  00144	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00149	83 c4 04	 add	 esp, 4
$LN319@GetLocalFi:
  0014c	bf 0f 00 00 00	 mov	 edi, 15			; 0000000fH
  00151	89 7c 24 50	 mov	 DWORD PTR _strFullPathFileName$[esp+152], edi
  00155	89 5c 24 4c	 mov	 DWORD PTR _strFullPathFileName$[esp+148], ebx
  00159	88 5c 24 3c	 mov	 BYTE PTR _strFullPathFileName$[esp+132], bl
  0015d	39 74 24 34	 cmp	 DWORD PTR _strGlobalPath$[esp+152], esi
  00161	72 0d		 jb	 SHORT $LN345@GetLocalFi
  00163	8b 4c 24 20	 mov	 ecx, DWORD PTR _strGlobalPath$[esp+132]
  00167	51		 push	 ecx
  00168	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0016d	83 c4 04	 add	 esp, 4
$LN345@GetLocalFi:
  00170	89 7c 24 34	 mov	 DWORD PTR _strGlobalPath$[esp+152], edi
  00174	89 5c 24 30	 mov	 DWORD PTR _strGlobalPath$[esp+148], ebx
  00178	88 5c 24 20	 mov	 BYTE PTR _strGlobalPath$[esp+132], bl
  0017c	39 74 24 6c	 cmp	 DWORD PTR _strLocalFileName$[esp+152], esi
  00180	72 0d		 jb	 SHORT $LN371@GetLocalFi
  00182	8b 54 24 58	 mov	 edx, DWORD PTR _strLocalFileName$[esp+132]
  00186	52		 push	 edx
  00187	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0018c	83 c4 04	 add	 esp, 4
$LN371@GetLocalFi:
  0018f	b0 01		 mov	 al, 1
$LN6@GetLocalFi:

; 263  : }

  00191	8b 4c 24 74	 mov	 ecx, DWORD PTR __$EHRec$[esp+128]
  00195	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0019c	59		 pop	 ecx
  0019d	5f		 pop	 edi
  0019e	5e		 pop	 esi
  0019f	5d		 pop	 ebp
  001a0	5b		 pop	 ebx
  001a1	8b 4c 24 5c	 mov	 ecx, DWORD PTR __$ArrayPad$[esp+108]
  001a5	33 cc		 xor	 ecx, esp
  001a7	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001ac	83 c4 6c	 add	 esp, 108		; 0000006cH
  001af	c3		 ret	 0
$LL386@GetLocalFi:

; 252  : 
; 253  : 	DWORD length = min(strGlobalPath.length(), strFullPathFileName.length());
; 254  : 	for (DWORD dwPos = 0; dwPos < length; ++dwPos)

  001b0	8b 44 24 30	 mov	 eax, DWORD PTR _strGlobalPath$[esp+148]
$LN4@GetLocalFi:

; 255  : 	{
; 256  : 		if (strGlobalPath[dwPos] != strFullPathFileName[dwPos])

  001b4	3b f0		 cmp	 esi, eax
  001b6	76 05		 jbe	 SHORT $LN201@GetLocalFi
  001b8	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN201@GetLocalFi:
  001bd	83 7c 24 34 10	 cmp	 DWORD PTR _strGlobalPath$[esp+152], 16 ; 00000010H
  001c2	8b 7c 24 20	 mov	 edi, DWORD PTR _strGlobalPath$[esp+132]
  001c6	73 04		 jae	 SHORT $LN208@GetLocalFi
  001c8	8d 7c 24 20	 lea	 edi, DWORD PTR _strGlobalPath$[esp+132]
$LN208@GetLocalFi:
  001cc	3b 74 24 4c	 cmp	 esi, DWORD PTR _strFullPathFileName$[esp+148]
  001d0	76 05		 jbe	 SHORT $LN211@GetLocalFi
  001d2	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN211@GetLocalFi:
  001d7	8b 4c 24 50	 mov	 ecx, DWORD PTR _strFullPathFileName$[esp+152]
  001db	8b 44 24 3c	 mov	 eax, DWORD PTR _strFullPathFileName$[esp+132]
  001df	83 f9 10	 cmp	 ecx, 16			; 00000010H
  001e2	73 04		 jae	 SHORT $LN218@GetLocalFi
  001e4	8d 44 24 3c	 lea	 eax, DWORD PTR _strFullPathFileName$[esp+132]
$LN218@GetLocalFi:
  001e8	8a 14 37	 mov	 dl, BYTE PTR [edi+esi]
  001eb	3a 14 30	 cmp	 dl, BYTE PTR [eax+esi]
  001ee	75 0e		 jne	 SHORT $LN382@GetLocalFi
  001f0	46		 inc	 esi
  001f1	3b f5		 cmp	 esi, ebp
  001f3	72 bb		 jb	 SHORT $LL386@GetLocalFi
  001f5	8b 7c 24 14	 mov	 edi, DWORD PTR _c_szFullPathFileName$GSCopy$[esp+128]
  001f9	e9 14 ff ff ff	 jmp	 $LN2@GetLocalFi
$LN382@GetLocalFi:

; 257  : 			return false;

  001fe	83 f9 10	 cmp	 ecx, 16			; 00000010H
  00201	72 0d		 jb	 SHORT $LN235@GetLocalFi
  00203	8b 44 24 3c	 mov	 eax, DWORD PTR _strFullPathFileName$[esp+132]
  00207	50		 push	 eax
  00208	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0020d	83 c4 04	 add	 esp, 4
$LN235@GetLocalFi:
  00210	83 7c 24 34 10	 cmp	 DWORD PTR _strGlobalPath$[esp+152], 16 ; 00000010H
  00215	be 0f 00 00 00	 mov	 esi, 15			; 0000000fH
  0021a	89 74 24 50	 mov	 DWORD PTR _strFullPathFileName$[esp+152], esi
  0021e	89 5c 24 4c	 mov	 DWORD PTR _strFullPathFileName$[esp+148], ebx
  00222	88 5c 24 3c	 mov	 BYTE PTR _strFullPathFileName$[esp+132], bl
  00226	72 0d		 jb	 SHORT $LN261@GetLocalFi
  00228	8b 4c 24 20	 mov	 ecx, DWORD PTR _strGlobalPath$[esp+132]
  0022c	51		 push	 ecx
  0022d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00232	83 c4 04	 add	 esp, 4
$LN261@GetLocalFi:
  00235	83 7c 24 6c 10	 cmp	 DWORD PTR _strLocalFileName$[esp+152], 16 ; 00000010H
  0023a	89 74 24 34	 mov	 DWORD PTR _strGlobalPath$[esp+152], esi
  0023e	89 5c 24 30	 mov	 DWORD PTR _strGlobalPath$[esp+148], ebx
  00242	88 5c 24 20	 mov	 BYTE PTR _strGlobalPath$[esp+132], bl
  00246	0f 82 b3 fe ff
	ff		 jb	 $LN181@GetLocalFi
  0024c	8b 54 24 58	 mov	 edx, DWORD PTR _strLocalFileName$[esp+132]
  00250	52		 push	 edx
  00251	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00256	83 c4 04	 add	 esp, 4
  00259	32 c0		 xor	 al, al
  0025b	e9 31 ff ff ff	 jmp	 $LN6@GetLocalFi
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR _strLocalFileName$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$1:
  00008	8d 4d 9c	 lea	 ecx, DWORD PTR _strGlobalPath$[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$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z$2:
  00010	8d 4d b8	 lea	 ecx, DWORD PTR _strFullPathFileName$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z:
  00018	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001c	8d 42 90	 lea	 eax, DWORD PTR [edx-112]
  0001f	8b 4a 8c	 mov	 ecx, DWORD PTR [edx-116]
  00022	33 c8		 xor	 ecx, eax
  00024	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00029	83 c0 10	 add	 eax, 16			; 00000010H
  0002c	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  0002f	33 c8		 xor	 ecx, eax
  00031	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00036	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
  0003b	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetLocalFileName@@YA_NPBD0PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; GetLocalFileName
PUBLIC	??1?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\deque
;	COMDAT ??1?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT
; _this$ = ecx

; 640  : 		{	// destroy the deque

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 641  : 		_Tidy();

  00003	e8 00 00 00 00	 call	 ?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy

; 642  : 		}

  00008	8b 06		 mov	 eax, DWORD PTR [esi]
  0000a	50		 push	 eax
  0000b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00010	83 c4 04	 add	 esp, 4
  00013	5e		 pop	 esi
  00014	c3		 ret	 0
??1?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	?push_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back
; Function compile flags: /Ogtpy
;	COMDAT ?push_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
__Val$ = 8						; size = 4
?push_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back, COMDAT
; _this$ = ecx

; 843  : 		{	// insert element at end

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 844  : 
; 845  :  #if _HAS_ITERATOR_DEBUGGING
; 846  : 		this->_Orphan_all();
; 847  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 848  : 
; 849  : 		if ((_Myoff + _Mysize) % _DEQUESIZ == 0
; 850  : 			&& _Mapsize <= (_Mysize + _DEQUESIZ) / _DEQUESIZ)

  00003	8b 46 1c	 mov	 eax, DWORD PTR [esi+28]
  00006	40		 inc	 eax
  00007	57		 push	 edi
  00008	39 46 14	 cmp	 DWORD PTR [esi+20], eax
  0000b	77 07		 ja	 SHORT $LN3@push_back

; 851  : 			_Growmap(1);

  0000d	6a 01		 push	 1
  0000f	e8 00 00 00 00	 call	 ?_Growmap@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXI@Z ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Growmap
$LN3@push_back:

; 852  : 		size_type _Newoff = _Myoff + _Mysize;

  00014	8b 7e 18	 mov	 edi, DWORD PTR [esi+24]
  00017	03 7e 1c	 add	 edi, DWORD PTR [esi+28]

; 853  : 		size_type _Block = _Newoff / _DEQUESIZ;
; 854  : 		if (_Mapsize <= _Block)

  0001a	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
  0001d	3b c7		 cmp	 eax, edi
  0001f	77 02		 ja	 SHORT $LN2@push_back

; 855  : 			_Block -= _Mapsize;

  00021	2b f8		 sub	 edi, eax
$LN2@push_back:

; 856  : 		if (_Map[_Block] == 0)

  00023	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  00026	83 3c b9 00	 cmp	 DWORD PTR [ecx+edi*4], 0
  0002a	75 10		 jne	 SHORT $LN1@push_back

; 857  : 			_Map[_Block] = this->_Alval.allocate(_DEQUESIZ);

  0002c	6a 1c		 push	 28			; 0000001cH
  0002e	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00033	8b 56 10	 mov	 edx, DWORD PTR [esi+16]
  00036	83 c4 04	 add	 esp, 4
  00039	89 04 ba	 mov	 DWORD PTR [edx+edi*4], eax
$LN1@push_back:

; 858  : 		this->_Alval.construct(_Map[_Block] + _Newoff % _DEQUESIZ, _Val);

  0003c	8b 44 24 0c	 mov	 eax, DWORD PTR __Val$[esp+4]
  00040	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  00043	8b 14 b9	 mov	 edx, DWORD PTR [ecx+edi*4]
  00046	50		 push	 eax
  00047	52		 push	 edx
  00048	e8 00 00 00 00	 call	 ??$_Construct@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@@Z ; std::_Construct<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >

; 859  : 		++_Mysize;

  0004d	ff 46 1c	 inc	 DWORD PTR [esi+28]
  00050	83 c4 08	 add	 esp, 8
  00053	5f		 pop	 edi
  00054	5e		 pop	 esi

; 860  : 		}

  00055	c2 04 00	 ret	 4
?push_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back
_TEXT	ENDS
PUBLIC	?clear@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::clear
; Function compile flags: /Ogtpy
;	COMDAT ?clear@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ
_TEXT	SEGMENT
?clear@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ PROC ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::clear, COMDAT
; _this$ = ecx

; 1086 : 		_Tidy();

  00000	e9 00 00 00 00	 jmp	 ?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy
?clear@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ ENDP ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::clear
_TEXT	ENDS
PUBLIC	?_Ufill@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PAV32@IABV32@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Ufill
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?_Ufill@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PAV32@IABV32@@Z
_TEXT	SEGMENT
$T110308 = -4						; size = 1
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
__Cat$110311 = 16					; size = 1
__Val$ = 16						; size = 4
?_Ufill@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PAV32@IABV32@@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Ufill, COMDAT
; _this$ = ecx

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

  00000	51		 push	 ecx

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

  00001	8b 54 24 10	 mov	 edx, DWORD PTR __Cat$110311[esp]
  00005	56		 push	 esi
  00006	8b 74 24 10	 mov	 esi, DWORD PTR __Count$[esp+4]
  0000a	57		 push	 edi
  0000b	8b 7c 24 10	 mov	 edi, DWORD PTR __Ptr$[esp+8]
  0000f	c6 44 24 08 00	 mov	 BYTE PTR $T110308[esp+12], 0
  00014	8b 44 24 08	 mov	 eax, DWORD PTR $T110308[esp+12]
  00018	50		 push	 eax
  00019	8b 44 24 1c	 mov	 eax, DWORD PTR __Val$[esp+12]
  0001d	52		 push	 edx
  0001e	83 c1 08	 add	 ecx, 8
  00021	51		 push	 ecx
  00022	50		 push	 eax
  00023	56		 push	 esi
  00024	57		 push	 edi
  00025	e8 00 00 00 00	 call	 ??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
  0002a	83 c4 18	 add	 esp, 24			; 00000018H

; 1255 : 		return (_Ptr + _Count);

  0002d	8d 0c f5 00 00
	00 00		 lea	 ecx, DWORD PTR [esi*8]
  00034	2b ce		 sub	 ecx, esi
  00036	8d 04 8f	 lea	 eax, DWORD PTR [edi+ecx*4]
  00039	5f		 pop	 edi
  0003a	5e		 pop	 esi

; 1256 : 		}

  0003b	59		 pop	 ecx
  0003c	c2 0c 00	 ret	 12			; 0000000cH
?_Ufill@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PAV32@IABV32@@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Ufill
_TEXT	ENDS
PUBLIC	??$unchecked_copy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z ; stdext::unchecked_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$unchecked_copy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z
_TEXT	SEGMENT
$T110318 = -4						; size = 1
__First$ = 8						; size = 4
__Cat$110323 = 12					; size = 1
$T110320 = 12						; size = 1
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
??$unchecked_copy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z PROC ; stdext::unchecked_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

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

  00000	51		 push	 ecx

; 3605 : 		return (_STD _Copy_opt(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest,
; 3606 : 			_STD _Iter_random(_First, _Dest), _STD _Ptr_cat(_First, _Dest), _STD _Range_checked_iterator_tag()));

  00001	8b 4c 24 0c	 mov	 ecx, DWORD PTR __Cat$110323[esp]
  00005	8b 54 24 0c	 mov	 edx, DWORD PTR $T110320[esp]
  00009	c6 04 24 00	 mov	 BYTE PTR $T110318[esp+4], 0
  0000d	8b 04 24	 mov	 eax, DWORD PTR $T110318[esp+4]
  00010	50		 push	 eax
  00011	8b 44 24 14	 mov	 eax, DWORD PTR __Dest$[esp+4]
  00015	51		 push	 ecx
  00016	8b 4c 24 14	 mov	 ecx, DWORD PTR __Last$[esp+8]
  0001a	52		 push	 edx
  0001b	8b 54 24 14	 mov	 edx, DWORD PTR __First$[esp+12]
  0001f	50		 push	 eax
  00020	51		 push	 ecx
  00021	52		 push	 edx
  00022	e8 00 00 00 00	 call	 ??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

; 3607 : 	}

  00027	83 c4 1c	 add	 esp, 28			; 0000001cH
  0002a	c3		 ret	 0
??$unchecked_copy@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z ENDP ; stdext::unchecked_copy<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Swap_adl@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ; std::_Swap_adl<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility
;	COMDAT ??$_Swap_adl@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
??$_Swap_adl@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z PROC ; std::_Swap_adl<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >, COMDAT

; 31   : 	swap(_Left, _Right);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR __Right$[esp-4]
  00004	8b 4c 24 04	 mov	 ecx, DWORD PTR __Left$[esp-4]
  00008	50		 push	 eax
  00009	e8 00 00 00 00	 call	 ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap

; 32   : 	}

  0000e	c3		 ret	 0
??$_Swap_adl@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z ENDP ; std::_Swap_adl<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
_TEXT	ENDS
PUBLIC	__$ArrayPad$
EXTRN	?Create@CDir@@QAE_NPBD0H@Z:PROC			; CDir::Create
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$?OnFolder@CDirRemover@@UAE_NPBD00@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?OnFolder@CDirRemover@@UAE_NPBD00@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?OnFolder@CDirRemover@@UAE_NPBD00@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?OnFolder@CDirRemover@@UAE_NPBD00@Z$2
__ehfuncinfo$?OnFolder@CDirRemover@@UAE_NPBD00@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?OnFolder@CDirRemover@@UAE_NPBD00@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
xdata$x	ENDS
;	COMDAT ?OnFolder@CDirRemover@@UAE_NPBD00@Z
_TEXT	SEGMENT
_strWorkingFolder$ = -400				; size = 28
_strFullPathName$ = -372				; size = 28
_remover$ = -344					; size = 328
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_c_szFilter$ = 8					; size = 4
_c_szPathName$ = 12					; size = 4
_c_szFileName$ = 16					; size = 4
?OnFolder@CDirRemover@@UAE_NPBD00@Z PROC		; CDirRemover::OnFolder, COMDAT
; _this$ = ecx

; 471  : 		{

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?OnFolder@CDirRemover@@UAE_NPBD00@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	81 ec 84 01 00
	00		 sub	 esp, 388		; 00000184H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c4		 xor	 eax, esp
  0001b	89 84 24 80 01
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+400], eax
  00022	53		 push	 ebx
  00023	55		 push	 ebp
  00024	56		 push	 esi
  00025	57		 push	 edi
  00026	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0002b	33 c4		 xor	 eax, esp
  0002d	50		 push	 eax
  0002e	8d 84 24 98 01
	00 00		 lea	 eax, DWORD PTR __$EHRec$[esp+420]
  00035	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0003b	8b ac 24 a8 01
	00 00		 mov	 ebp, DWORD PTR _c_szFilter$[esp+416]
  00042	8b 8c 24 ac 01
	00 00		 mov	 ecx, DWORD PTR _c_szPathName$[esp+416]
  00049	8b b4 24 b0 01
	00 00		 mov	 esi, DWORD PTR _c_szFileName$[esp+416]

; 472  : 			std::string strFullPathName;

  00050	33 db		 xor	 ebx, ebx
  00052	c7 44 24 48 0f
	00 00 00	 mov	 DWORD PTR _strFullPathName$[esp+444], 15 ; 0000000fH
  0005a	89 5c 24 44	 mov	 DWORD PTR _strFullPathName$[esp+440], ebx
  0005e	88 5c 24 34	 mov	 BYTE PTR _strFullPathName$[esp+424], bl

; 473  : 			strFullPathName = c_szPathName;

  00062	8b c1		 mov	 eax, ecx
  00064	89 9c 24 a0 01
	00 00		 mov	 DWORD PTR __$EHRec$[esp+428], ebx
  0006b	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  0006e	8b ff		 npad	 2
$LL156@OnFolder:
  00070	8a 10		 mov	 dl, BYTE PTR [eax]
  00072	40		 inc	 eax
  00073	3a d3		 cmp	 dl, bl
  00075	75 f9		 jne	 SHORT $LL156@OnFolder
  00077	2b c7		 sub	 eax, edi
  00079	50		 push	 eax
  0007a	51		 push	 ecx
  0007b	8d 4c 24 38	 lea	 ecx, DWORD PTR _strFullPathName$[esp+428]
  0007f	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 474  : 			strFullPathName += c_szFileName; 

  00084	8b c6		 mov	 eax, esi
  00086	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  00089	8d a4 24 00 00
	00 00		 npad	 7
$LL157@OnFolder:
  00090	8a 08		 mov	 cl, BYTE PTR [eax]
  00092	40		 inc	 eax
  00093	3a cb		 cmp	 cl, bl
  00095	75 f9		 jne	 SHORT $LL157@OnFolder
  00097	2b c2		 sub	 eax, edx
  00099	50		 push	 eax
  0009a	56		 push	 esi
  0009b	8d 4c 24 38	 lea	 ecx, DWORD PTR _strFullPathName$[esp+428]
  0009f	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 475  : 
; 476  : 			CDirRemover remover;

  000a4	8d 4c 24 4c	 lea	 ecx, DWORD PTR _remover$[esp+420]
  000a8	e8 00 00 00 00	 call	 ??0CDir@@QAE@XZ		; CDir::CDir
  000ad	bf 00 00 00 00	 mov	 edi, OFFSET ??_7CDirRemover@@6B@
  000b2	89 7c 24 4c	 mov	 DWORD PTR _remover$[esp+420], edi

; 477  : 			remover.Create(c_szFilter, strFullPathName.c_str());

  000b6	8b 44 24 34	 mov	 eax, DWORD PTR _strFullPathName$[esp+424]
  000ba	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  000bf	c6 84 24 a0 01
	00 00 01	 mov	 BYTE PTR __$EHRec$[esp+428], 1
  000c7	39 74 24 48	 cmp	 DWORD PTR _strFullPathName$[esp+444], esi
  000cb	73 04		 jae	 SHORT $LN58@OnFolder
  000cd	8d 44 24 34	 lea	 eax, DWORD PTR _strFullPathName$[esp+424]
$LN58@OnFolder:
  000d1	53		 push	 ebx
  000d2	50		 push	 eax
  000d3	55		 push	 ebp
  000d4	8d 4c 24 58	 lea	 ecx, DWORD PTR _remover$[esp+432]
  000d8	e8 00 00 00 00	 call	 ?Create@CDir@@QAE_NPBD0H@Z ; CDir::Create

; 478  : 
; 479  : 			std::string strWorkingFolder;

  000dd	bd 0f 00 00 00	 mov	 ebp, 15			; 0000000fH
  000e2	89 6c 24 2c	 mov	 DWORD PTR _strWorkingFolder$[esp+444], ebp
  000e6	89 5c 24 28	 mov	 DWORD PTR _strWorkingFolder$[esp+440], ebx
  000ea	88 5c 24 18	 mov	 BYTE PTR _strWorkingFolder$[esp+424], bl

; 480  : 			GetWorkingFolder(strWorkingFolder);

  000ee	8d 44 24 14	 lea	 eax, DWORD PTR _strWorkingFolder$[esp+420]
  000f2	50		 push	 eax
  000f3	c6 84 24 a4 01
	00 00 02	 mov	 BYTE PTR __$EHRec$[esp+432], 2
  000fb	e8 00 00 00 00	 call	 ?GetWorkingFolder@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; GetWorkingFolder
  00100	83 c4 04	 add	 esp, 4

; 481  : 			strWorkingFolder += strFullPathName;

  00103	6a ff		 push	 -1
  00105	53		 push	 ebx
  00106	8d 4c 24 38	 lea	 ecx, DWORD PTR _strFullPathName$[esp+428]
  0010a	51		 push	 ecx
  0010b	8d 4c 24 20	 lea	 ecx, DWORD PTR _strWorkingFolder$[esp+432]
  0010f	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 482  : 			strWorkingFolder += "/";

  00114	6a 01		 push	 1
  00116	68 00 00 00 00	 push	 OFFSET ??_C@_01KMDKNFGN@?1?$AA@
  0011b	8d 4c 24 1c	 lea	 ecx, DWORD PTR _strWorkingFolder$[esp+428]
  0011f	e8 00 00 00 00	 call	 ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 483  : 			StringPath(strWorkingFolder);

  00124	8d 54 24 14	 lea	 edx, DWORD PTR _strWorkingFolder$[esp+420]
  00128	52		 push	 edx
  00129	e8 00 00 00 00	 call	 ?StringPath@@YAXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; StringPath
  0012e	83 c4 04	 add	 esp, 4

; 484  : 			ms_strDirectoryDeque.push_back(strWorkingFolder);

  00131	8d 44 24 14	 lea	 eax, DWORD PTR _strWorkingFolder$[esp+420]
  00135	50		 push	 eax
  00136	b9 00 00 00 00	 mov	 ecx, OFFSET ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A ; CDirRemover::ms_strDirectoryDeque
  0013b	e8 00 00 00 00	 call	 ?push_back@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back

; 485  : 			return true;

  00140	39 74 24 2c	 cmp	 DWORD PTR _strWorkingFolder$[esp+444], esi
  00144	72 0d		 jb	 SHORT $LN117@OnFolder
  00146	8b 4c 24 18	 mov	 ecx, DWORD PTR _strWorkingFolder$[esp+424]
  0014a	51		 push	 ecx
  0014b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00150	83 c4 04	 add	 esp, 4
$LN117@OnFolder:
  00153	8d 4c 24 4c	 lea	 ecx, DWORD PTR _remover$[esp+420]
  00157	89 6c 24 2c	 mov	 DWORD PTR _strWorkingFolder$[esp+444], ebp
  0015b	89 5c 24 28	 mov	 DWORD PTR _strWorkingFolder$[esp+440], ebx
  0015f	88 5c 24 18	 mov	 BYTE PTR _strWorkingFolder$[esp+424], bl
  00163	88 9c 24 a0 01
	00 00		 mov	 BYTE PTR __$EHRec$[esp+428], bl
  0016a	89 7c 24 4c	 mov	 DWORD PTR _remover$[esp+420], edi
  0016e	e8 00 00 00 00	 call	 ??1CDir@@UAE@XZ		; CDir::~CDir
  00173	39 74 24 48	 cmp	 DWORD PTR _strFullPathName$[esp+444], esi
  00177	72 0d		 jb	 SHORT $LN158@OnFolder
  00179	8b 54 24 34	 mov	 edx, DWORD PTR _strFullPathName$[esp+424]
  0017d	52		 push	 edx
  0017e	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00183	83 c4 04	 add	 esp, 4
$LN158@OnFolder:
  00186	b0 01		 mov	 al, 1

; 486  : 		}

  00188	8b 8c 24 98 01
	00 00		 mov	 ecx, DWORD PTR __$EHRec$[esp+420]
  0018f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00196	59		 pop	 ecx
  00197	5f		 pop	 edi
  00198	5e		 pop	 esi
  00199	5d		 pop	 ebp
  0019a	5b		 pop	 ebx
  0019b	8b 8c 24 80 01
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+400]
  001a2	33 cc		 xor	 ecx, esp
  001a4	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001a9	81 c4 90 01 00
	00		 add	 esp, 400		; 00000190H
  001af	c2 0c 00	 ret	 12			; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?OnFolder@CDirRemover@@UAE_NPBD00@Z$0:
  00000	8d 8d 8c fe ff
	ff		 lea	 ecx, DWORD PTR _strFullPathName$[ebp]
  00006	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$?OnFolder@CDirRemover@@UAE_NPBD00@Z$1:
  0000b	8d 8d a8 fe ff
	ff		 lea	 ecx, DWORD PTR _remover$[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1CDirRemover@@UAE@XZ	; CDirRemover::~CDirRemover
__unwindfunclet$?OnFolder@CDirRemover@@UAE_NPBD00@Z$2:
  00016	8d 8d 70 fe ff
	ff		 lea	 ecx, DWORD PTR _strWorkingFolder$[ebp]
  0001c	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?OnFolder@CDirRemover@@UAE_NPBD00@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 82 6c fe ff
	ff		 lea	 eax, DWORD PTR [edx-404]
  0002b	8b 8a 68 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-408]
  00031	33 c8		 xor	 ecx, eax
  00033	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00038	83 c0 10	 add	 eax, 16			; 00000010H
  0003b	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  0003e	33 c8		 xor	 ecx, eax
  00040	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00045	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?OnFolder@CDirRemover@@UAE_NPBD00@Z
  0004a	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?OnFolder@CDirRemover@@UAE_NPBD00@Z ENDP		; CDirRemover::OnFolder
PUBLIC	?RemoveAllDirectory@CDirRemover@@SAXXZ		; CDirRemover::RemoveAllDirectory
EXTRN	__imp__RemoveDirectoryA@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?RemoveAllDirectory@CDirRemover@@SAXXZ
_TEXT	SEGMENT
_itor$94664 = -8					; size = 8
?RemoveAllDirectory@CDirRemover@@SAXXZ PROC		; CDirRemover::RemoveAllDirectory, COMDAT

; 499  : 			for (std::deque<std::string>::iterator itor = ms_strDirectoryDeque.begin(); itor != ms_strDirectoryDeque.end(); ++itor)

  00000	a1 18 00 00 00	 mov	 eax, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+24
  00005	8b 0d 1c 00 00
	00		 mov	 ecx, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+28
  0000b	83 ec 08	 sub	 esp, 8
  0000e	53		 push	 ebx
  0000f	55		 push	 ebp
  00010	56		 push	 esi
  00011	03 c8		 add	 ecx, eax
  00013	57		 push	 edi
  00014	8b f0		 mov	 esi, eax
  00016	3b c1		 cmp	 eax, ecx
  00018	76 0a		 jbe	 SHORT $LN12@RemoveAllD
  0001a	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  0001f	a1 18 00 00 00	 mov	 eax, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+24
$LN12@RemoveAllD:
  00024	8b 1d 00 00 00
	00		 mov	 ebx, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A
  0002a	8b 2d 00 00 00
	00		 mov	 ebp, DWORD PTR __imp__RemoveDirectoryA@4
  00030	89 5c 24 10	 mov	 DWORD PTR _itor$94664[esp+24], ebx
  00034	8b fe		 mov	 edi, esi
$LN102@RemoveAllD:
  00036	8b 15 1c 00 00
	00		 mov	 edx, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+28
  0003c	8d 34 02	 lea	 esi, DWORD PTR [edx+eax]
  0003f	89 7c 24 14	 mov	 DWORD PTR _itor$94664[esp+28], edi
  00043	3b c6		 cmp	 eax, esi
  00045	76 05		 jbe	 SHORT $LN60@RemoveAllD
  00047	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN60@RemoveAllD:
  0004c	85 db		 test	 ebx, ebx
  0004e	74 08		 je	 SHORT $LN79@RemoveAllD
  00050	3b 1d 00 00 00
	00		 cmp	 ebx, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A
  00056	74 05		 je	 SHORT $LN78@RemoveAllD
$LN79@RemoveAllD:
  00058	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN78@RemoveAllD:
  0005d	3b fe		 cmp	 edi, esi
  0005f	74 44		 je	 SHORT $LN1@RemoveAllD

; 500  : 			{
; 501  : 				const std::string & c_rstrDirectory = *itor;

  00061	8d 4c 24 10	 lea	 ecx, DWORD PTR _itor$94664[esp+24]
  00065	e8 00 00 00 00	 call	 ??D?$_Deque_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@$00@std@@QBEABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@XZ ; std::_Deque_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,1>::operator*

; 502  : 				RemoveDirectory(c_rstrDirectory.c_str());

  0006a	83 78 18 10	 cmp	 DWORD PTR [eax+24], 16	; 00000010H
  0006e	72 05		 jb	 SHORT $LN94@RemoveAllD
  00070	8b 40 04	 mov	 eax, DWORD PTR [eax+4]
  00073	eb 03		 jmp	 SHORT $LN95@RemoveAllD
$LN94@RemoveAllD:
  00075	83 c0 04	 add	 eax, 4
$LN95@RemoveAllD:
  00078	50		 push	 eax
  00079	ff d5		 call	 ebp
  0007b	85 db		 test	 ebx, ebx
  0007d	75 20		 jne	 SHORT $LN99@RemoveAllD
  0007f	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  00084	33 c0		 xor	 eax, eax
  00086	33 c9		 xor	 ecx, ecx
$LN51@RemoveAllD:
  00088	8b 49 1c	 mov	 ecx, DWORD PTR [ecx+28]
  0008b	03 48 18	 add	 ecx, DWORD PTR [eax+24]
  0008e	3b f9		 cmp	 edi, ecx
  00090	72 05		 jb	 SHORT $LN30@RemoveAllD

; 499  : 			for (std::deque<std::string>::iterator itor = ms_strDirectoryDeque.begin(); itor != ms_strDirectoryDeque.end(); ++itor)

  00092	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN30@RemoveAllD:
  00097	a1 18 00 00 00	 mov	 eax, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+24
  0009c	47		 inc	 edi
  0009d	eb 97		 jmp	 SHORT $LN102@RemoveAllD
$LN99@RemoveAllD:
  0009f	8b 03		 mov	 eax, DWORD PTR [ebx]
  000a1	8b c8		 mov	 ecx, eax
  000a3	eb e3		 jmp	 SHORT $LN51@RemoveAllD
$LN1@RemoveAllD:
  000a5	5f		 pop	 edi
  000a6	5e		 pop	 esi
  000a7	5d		 pop	 ebp

; 503  : 			}
; 504  : 
; 505  : 			ms_strDirectoryDeque.clear();

  000a8	b9 00 00 00 00	 mov	 ecx, OFFSET ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A ; CDirRemover::ms_strDirectoryDeque
  000ad	5b		 pop	 ebx

; 506  : 		}

  000ae	83 c4 08	 add	 esp, 8

; 503  : 			}
; 504  : 
; 505  : 			ms_strDirectoryDeque.clear();

  000b1	e9 00 00 00 00	 jmp	 ?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy
?RemoveAllDirectory@CDirRemover@@SAXXZ ENDP		; CDirRemover::RemoveAllDirectory
_TEXT	ENDS
PUBLIC	??_C@_03EMIMMIHL@?$CK?4?$CK?$AA@		; `string'
PUBLIC	__$ArrayPad$
PUBLIC	?RemoveAllDirectory@@YAXPBD@Z			; RemoveAllDirectory
;	COMDAT ??_C@_03EMIMMIHL@?$CK?4?$CK?$AA@
CONST	SEGMENT
??_C@_03EMIMMIHL@?$CK?4?$CK?$AA@ DB '*.*', 00H		; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?RemoveAllDirectory@@YAXPBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?RemoveAllDirectory@@YAXPBD@Z$0
__ehfuncinfo$?RemoveAllDirectory@@YAXPBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?RemoveAllDirectory@@YAXPBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?RemoveAllDirectory@@YAXPBD@Z
_TEXT	SEGMENT
_remover$94711 = -344					; size = 328
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_c_szDirectoryName$ = 8					; size = 4
?RemoveAllDirectory@@YAXPBD@Z PROC			; RemoveAllDirectory, COMDAT

; 515  : {

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?RemoveAllDirectory@@YAXPBD@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	81 ec 4c 01 00
	00		 sub	 esp, 332		; 0000014cH
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c4		 xor	 eax, esp
  0001b	89 84 24 48 01
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+344], eax
  00022	56		 push	 esi
  00023	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00028	33 c4		 xor	 eax, esp
  0002a	50		 push	 eax
  0002b	8d 84 24 54 01
	00 00		 lea	 eax, DWORD PTR __$EHRec$[esp+352]
  00032	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00038	8b b4 24 64 01
	00 00		 mov	 esi, DWORD PTR _c_szDirectoryName$[esp+348]

; 516  : 	{
; 517  : 		CDirRemover remover;

  0003f	8d 4c 24 08	 lea	 ecx, DWORD PTR _remover$94711[esp+352]
  00043	e8 00 00 00 00	 call	 ??0CDir@@QAE@XZ		; CDir::CDir
  00048	c7 44 24 08 00
	00 00 00	 mov	 DWORD PTR _remover$94711[esp+352], OFFSET ??_7CDirRemover@@6B@

; 518  : 		remover.Create("*.*", c_szDirectoryName);

  00050	6a 00		 push	 0
  00052	56		 push	 esi
  00053	68 00 00 00 00	 push	 OFFSET ??_C@_03EMIMMIHL@?$CK?4?$CK?$AA@
  00058	8d 4c 24 14	 lea	 ecx, DWORD PTR _remover$94711[esp+364]
  0005c	c7 84 24 68 01
	00 00 00 00 00
	00		 mov	 DWORD PTR __$EHRec$[esp+372], 0
  00067	e8 00 00 00 00	 call	 ?Create@CDir@@QAE_NPBD0H@Z ; CDir::Create

; 519  : 		CDirRemover::RemoveAllDirectory();

  0006c	e8 00 00 00 00	 call	 ?RemoveAllDirectory@CDirRemover@@SAXXZ ; CDirRemover::RemoveAllDirectory

; 520  : 	}

  00071	8d 4c 24 08	 lea	 ecx, DWORD PTR _remover$94711[esp+352]
  00075	c7 84 24 5c 01
	00 00 ff ff ff
	ff		 mov	 DWORD PTR __$EHRec$[esp+360], -1
  00080	c7 44 24 08 00
	00 00 00	 mov	 DWORD PTR _remover$94711[esp+352], OFFSET ??_7CDirRemover@@6B@
  00088	e8 00 00 00 00	 call	 ??1CDir@@UAE@XZ		; CDir::~CDir

; 521  : 	RemoveDirectory(c_szDirectoryName);

  0008d	56		 push	 esi
  0008e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__RemoveDirectoryA@4

; 522  : }

  00094	8b 8c 24 54 01
	00 00		 mov	 ecx, DWORD PTR __$EHRec$[esp+352]
  0009b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000a2	59		 pop	 ecx
  000a3	5e		 pop	 esi
  000a4	8b 8c 24 48 01
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+344]
  000ab	33 cc		 xor	 ecx, esp
  000ad	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000b2	81 c4 58 01 00
	00		 add	 esp, 344		; 00000158H
  000b8	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?RemoveAllDirectory@@YAXPBD@Z$0:
  00000	8d 8d a8 fe ff
	ff		 lea	 ecx, DWORD PTR _remover$94711[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1CDirRemover@@UAE@XZ	; CDirRemover::~CDirRemover
__ehhandler$?RemoveAllDirectory@@YAXPBD@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 82 b0 fe ff
	ff		 lea	 eax, DWORD PTR [edx-336]
  00015	8b 8a ac fe ff
	ff		 mov	 ecx, DWORD PTR [edx-340]
  0001b	33 c8		 xor	 ecx, eax
  0001d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00022	83 c0 04	 add	 eax, 4
  00025	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00028	33 c8		 xor	 ecx, eax
  0002a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?RemoveAllDirectory@@YAXPBD@Z
  00034	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?RemoveAllDirectory@@YAXPBD@Z ENDP			; RemoveAllDirectory
PUBLIC	?erase@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::erase
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?erase@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0@Z
_TEXT	SEGMENT
__Cat$111508 = 8					; size = 1
$T111465 = 8						; size = 1
__Cat$111469 = 8					; size = 1
$T111467 = 8						; size = 1
___$ReturnUdt$ = 8					; size = 4
__First_arg$ = 12					; size = 8
__Last_arg$ = 20					; size = 8
?erase@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::erase, COMDAT
; _this$ = ecx

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

  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	57		 push	 edi

; 1029 : 		iterator _First = _Make_iter(_First_arg);

  00003	8b 7c 24 10	 mov	 edi, DWORD PTR ___$ReturnUdt$[esp+8]
  00007	8b f1		 mov	 esi, ecx
  00009	c7 07 00 00 00
	00		 mov	 DWORD PTR [edi], 0
  0000f	85 f6		 test	 esi, esi
  00011	74 0e		 je	 SHORT $LN11@erase@2
  00013	8b 44 24 18	 mov	 eax, DWORD PTR __First_arg$[esp+12]
  00017	39 46 0c	 cmp	 DWORD PTR [esi+12], eax
  0001a	77 05		 ja	 SHORT $LN11@erase@2
  0001c	3b 46 10	 cmp	 eax, DWORD PTR [esi+16]
  0001f	76 09		 jbe	 SHORT $LN10@erase@2
$LN11@erase@2:
  00021	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  00026	8b 44 24 18	 mov	 eax, DWORD PTR __First_arg$[esp+12]
$LN10@erase@2:

; 1030 : 		iterator _Last = _Make_iter(_Last_arg);

  0002a	8b 5c 24 20	 mov	 ebx, DWORD PTR __Last_arg$[esp+12]
  0002e	8b 0e		 mov	 ecx, DWORD PTR [esi]
  00030	89 0f		 mov	 DWORD PTR [edi], ecx
  00032	89 47 04	 mov	 DWORD PTR [edi+4], eax
  00035	39 5e 0c	 cmp	 DWORD PTR [esi+12], ebx
  00038	77 05		 ja	 SHORT $LN30@erase@2
  0003a	3b 5e 10	 cmp	 ebx, DWORD PTR [esi+16]
  0003d	76 09		 jbe	 SHORT $LN29@erase@2
$LN30@erase@2:
  0003f	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  00044	8b 5c 24 20	 mov	 ebx, DWORD PTR __Last_arg$[esp+12]
$LN29@erase@2:

; 1031 : 
; 1032 : 		if (_First != _Last)

  00048	8b 07		 mov	 eax, DWORD PTR [edi]
  0004a	8b 0e		 mov	 ecx, DWORD PTR [esi]
  0004c	85 c0		 test	 eax, eax
  0004e	74 04		 je	 SHORT $LN47@erase@2
  00050	3b c1		 cmp	 eax, ecx
  00052	74 05		 je	 SHORT $LN46@erase@2
$LN47@erase@2:
  00054	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN46@erase@2:
  00059	8b 4f 04	 mov	 ecx, DWORD PTR [edi+4]
  0005c	3b cb		 cmp	 ecx, ebx
  0005e	74 3a		 je	 SHORT $LN75@erase@2

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

  00060	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00063	c6 44 24 10 00	 mov	 BYTE PTR $T111465[esp+8], 0
  00068	8b 54 24 10	 mov	 edx, DWORD PTR $T111465[esp+8]
  0006c	52		 push	 edx
  0006d	8b 54 24 14	 mov	 edx, DWORD PTR __Cat$111469[esp+12]
  00071	52		 push	 edx
  00072	8b 54 24 18	 mov	 edx, DWORD PTR $T111467[esp+16]
  00076	52		 push	 edx
  00077	51		 push	 ecx
  00078	50		 push	 eax
  00079	53		 push	 ebx
  0007a	e8 00 00 00 00	 call	 ??$_Copy_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Copy_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

; 1046 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1047 : 
; 1048 : 			_Destroy(_Ptr, _Mylast);

  0007f	8b 56 10	 mov	 edx, DWORD PTR [esi+16]
  00082	8b d8		 mov	 ebx, eax
  00084	8b 44 24 28	 mov	 eax, DWORD PTR __Cat$111508[esp+32]
  00088	50		 push	 eax
  00089	8d 4e 08	 lea	 ecx, DWORD PTR [esi+8]
  0008c	51		 push	 ecx
  0008d	52		 push	 edx
  0008e	53		 push	 ebx
  0008f	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
  00094	83 c4 28	 add	 esp, 40			; 00000028H

; 1049 : 			_Mylast = _Ptr;

  00097	89 5e 10	 mov	 DWORD PTR [esi+16], ebx
$LN75@erase@2:

; 1050 : 			}
; 1051 : #if _HAS_ITERATOR_DEBUGGING
; 1052 :         return (iterator(_First._Myptr, this));
; 1053 : #else
; 1054 : 		return (_First);

  0009a	8b c7		 mov	 eax, edi
  0009c	5f		 pop	 edi
  0009d	5e		 pop	 esi
  0009e	5b		 pop	 ebx

; 1055 : #endif
; 1056 : 		}

  0009f	c2 14 00	 ret	 20			; 00000014H
?erase@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::erase
_TEXT	ENDS
PUBLIC	__Dest$GSCopy$
PUBLIC	__$ArrayPad$
PUBLIC	??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
xdata$x	SEGMENT
__catchsym$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$4 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$0
__tryblocktable$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z DD 01H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:__catchsym$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$4
__unwindtable$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$2
	DD	00H
	DD	00H
	DD	01H
	DD	FLAT:__unwindfunclet$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$3
	DD	00H
	DD	00H
__ehfuncinfo$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
xdata$x	ENDS
;	COMDAT ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T111815 = -64						; size = 4
__Vptr$111851 = -60					; size = 4
__Next$ = -56						; size = 4
__Dest$GSCopy$ = -52					; size = 4
__Val$ = -48						; size = 28
__$ArrayPad$ = -20					; size = 4
__$EHRec$ = -16						; size = 16
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

; 214  : 	{	// use swap to instead of the copy constructor

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 34	 sub	 esp, 52			; 00000034H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 ec	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001e	53		 push	 ebx
  0001f	56		 push	 esi
  00020	57		 push	 edi
  00021	50		 push	 eax
  00022	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00025	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0002b	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp
  0002e	8b 75 10	 mov	 esi, DWORD PTR __Dest$[ebp]
  00031	8b 7d 08	 mov	 edi, DWORD PTR __First$[ebp]

; 215  : 	_DEBUG_RANGE(_First, _Last);
; 216  : 	_DEBUG_POINTER(_Dest);
; 217  : 	_FwdIt _Next = _Dest;
; 218  : 	// empty value used in the construction
; 219  : 	typename _Alloc::value_type _Val;

  00034	33 db		 xor	 ebx, ebx
  00036	89 75 cc	 mov	 DWORD PTR __Dest$GSCopy$[ebp], esi
  00039	89 75 c8	 mov	 DWORD PTR __Next$[ebp], esi
  0003c	c7 45 e8 0f 00
	00 00		 mov	 DWORD PTR __Val$[ebp+24], 15 ; 0000000fH
  00043	89 5d e4	 mov	 DWORD PTR __Val$[ebp+20], ebx
  00046	88 5d d4	 mov	 BYTE PTR __Val$[ebp+4], bl
  00049	89 5d fc	 mov	 DWORD PTR __$EHRec$[ebp+12], ebx

; 220  : 
; 221  : 	_TRY_BEGIN

  0004c	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
$LL6@Uninit_mov:

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

  00050	3b 7d 0c	 cmp	 edi, DWORD PTR __Last$[ebp]
  00053	74 65		 je	 SHORT $LN4@Uninit_mov

; 223  : 		{
; 224  : 		_Al.construct(_Dest, _Val);

  00055	89 75 c4	 mov	 DWORD PTR __Vptr$111851[ebp], esi
  00058	89 75 c0	 mov	 DWORD PTR $T111815[ebp], esi
  0005b	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+12], 2
  0005f	3b f3		 cmp	 esi, ebx
  00061	74 1b		 je	 SHORT $LN51@Uninit_mov
  00063	6a ff		 push	 -1
  00065	53		 push	 ebx
  00066	8d 45 d0	 lea	 eax, DWORD PTR __Val$[ebp]
  00069	c7 46 18 0f 00
	00 00		 mov	 DWORD PTR [esi+24], 15	; 0000000fH
  00070	89 5e 14	 mov	 DWORD PTR [esi+20], ebx
  00073	50		 push	 eax
  00074	8b ce		 mov	 ecx, esi
  00076	88 5e 04	 mov	 BYTE PTR [esi+4], bl
  00079	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
$LN51@Uninit_mov:

; 225  : 		_STD _Swap_adl(*_Dest, *_First);

  0007e	57		 push	 edi
  0007f	8b ce		 mov	 ecx, esi
  00081	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  00085	e8 00 00 00 00	 call	 ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap
  0008a	83 c6 1c	 add	 esi, 28			; 0000001cH
  0008d	89 75 cc	 mov	 DWORD PTR __Dest$GSCopy$[ebp], esi
  00090	83 c7 1c	 add	 edi, 28			; 0000001cH
  00093	eb bb		 jmp	 SHORT $LL6@Uninit_mov
__catch$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$0:

; 226  : 		}
; 227  : 	_CATCH_ALL
; 228  : 	for (; _Next != _Dest; ++_Next)

  00095	8b 75 c8	 mov	 esi, DWORD PTR __Next$[ebp]
  00098	8b 7d cc	 mov	 edi, DWORD PTR __Dest$GSCopy$[ebp]
  0009b	3b f7		 cmp	 esi, edi
  0009d	74 12		 je	 SHORT $LN1@Uninit_mov
  0009f	8b 5d 14	 mov	 ebx, DWORD PTR __Al$[ebp]
$LL3@Uninit_mov:

; 229  : 		_Al.destroy(_Next);

  000a2	56		 push	 esi
  000a3	8b cb		 mov	 ecx, ebx
  000a5	e8 00 00 00 00	 call	 ?destroy@?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::destroy
  000aa	83 c6 1c	 add	 esi, 28			; 0000001cH
  000ad	3b f7		 cmp	 esi, edi
  000af	75 f1		 jne	 SHORT $LL3@Uninit_mov
$LN1@Uninit_mov:

; 230  : 	_RERAISE;

  000b1	33 db		 xor	 ebx, ebx
  000b3	53		 push	 ebx
  000b4	53		 push	 ebx
  000b5	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN118@Uninit_mov:
$LN4@Uninit_mov:

; 231  : 	_CATCH_END
; 232  : 	return (_Dest);

  000ba	83 7d e8 10	 cmp	 DWORD PTR __Val$[ebp+24], 16 ; 00000010H
  000be	72 0c		 jb	 SHORT $LN102@Uninit_mov
  000c0	8b 4d d4	 mov	 ecx, DWORD PTR __Val$[ebp+4]
  000c3	51		 push	 ecx
  000c4	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000c9	83 c4 04	 add	 esp, 4
$LN102@Uninit_mov:
  000cc	8b c6		 mov	 eax, esi

; 233  : 	}

  000ce	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000d1	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000d8	59		 pop	 ecx
  000d9	5f		 pop	 edi
  000da	5e		 pop	 esi
  000db	5b		 pop	 ebx
  000dc	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000df	33 cd		 xor	 ecx, ebp
  000e1	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000e6	8b e5		 mov	 esp, ebp
  000e8	5d		 pop	 ebp
  000e9	c3		 ret	 0
$LN117@Uninit_mov:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$2:
  00000	8d 4d d0	 lea	 ecx, DWORD PTR __Val$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z$3:
  00008	8b 45 c4	 mov	 eax, DWORD PTR __Vptr$111851[ebp]
  0000b	50		 push	 eax
  0000c	8b 4d c0	 mov	 ecx, DWORD PTR $T111815[ebp]
  0000f	51		 push	 ecx
  00010	e8 00 00 00 00	 call	 ??3@YAXPAX0@Z		; operator delete
  00015	83 c4 08	 add	 esp, 8
  00018	c3		 ret	 0
__ehhandler$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@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 bc	 mov	 ecx, DWORD PTR [edx-68]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0002d	33 c8		 xor	 ecx, eax
  0002f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00034	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
  00039	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
PUBLIC	??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>, COMDAT

; 2761 : 	{	// use swap instead of the copy constructor

  00000	53		 push	 ebx

; 2762 : 	_DEBUG_RANGE(_First, _Last);
; 2763 : 	while (_First != _Last)

  00001	8b 5c 24 08	 mov	 ebx, DWORD PTR __First$[esp]
  00005	56		 push	 esi
  00006	8b 74 24 10	 mov	 esi, DWORD PTR __Last$[esp+4]
  0000a	3b de		 cmp	 ebx, esi
  0000c	74 1d		 je	 SHORT $LN11@Move_backw
  0000e	57		 push	 edi
  0000f	8b 7c 24 18	 mov	 edi, DWORD PTR __Dest$[esp+8]
$LL2@Move_backw:

; 2764 : 		_STD _Swap_adl(*--_Dest, *--_Last);

  00013	83 ee 1c	 sub	 esi, 28			; 0000001cH
  00016	83 ef 1c	 sub	 edi, 28			; 0000001cH
  00019	56		 push	 esi
  0001a	8b cf		 mov	 ecx, edi
  0001c	e8 00 00 00 00	 call	 ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap
  00021	3b f3		 cmp	 esi, ebx
  00023	75 ee		 jne	 SHORT $LL2@Move_backw

; 2765 : 	return (_Dest);

  00025	8b c7		 mov	 eax, edi
  00027	5f		 pop	 edi
  00028	5e		 pop	 esi
  00029	5b		 pop	 ebx

; 2766 : 	}

  0002a	c3		 ret	 0
$LN11@Move_backw:

; 2765 : 	return (_Dest);

  0002b	8b 44 24 14	 mov	 eax, DWORD PTR __Dest$[esp+4]
  0002f	5e		 pop	 esi
  00030	5b		 pop	 ebx

; 2766 : 	}

  00031	c3		 ret	 0
??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@Uforward_iterator_tag@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Uforward_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::forward_iterator_tag>
_TEXT	ENDS
PUBLIC	?clear@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::clear
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ?clear@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ
_TEXT	SEGMENT
$T112007 = -8						; size = 8
?clear@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::clear, COMDAT
; _this$ = ecx

; 1059 : 		{	// erase all

  00000	83 ec 08	 sub	 esp, 8
  00003	53		 push	 ebx
  00004	55		 push	 ebp
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx

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

  00008	8b 6e 10	 mov	 ebp, DWORD PTR [esi+16]
  0000b	57		 push	 edi
  0000c	39 6e 0c	 cmp	 DWORD PTR [esi+12], ebp
  0000f	76 05		 jbe	 SHORT $LN9@clear
  00011	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN9@clear:
  00016	8b 7e 0c	 mov	 edi, DWORD PTR [esi+12]
  00019	8b 1e		 mov	 ebx, DWORD PTR [esi]
  0001b	3b 7e 10	 cmp	 edi, DWORD PTR [esi+16]
  0001e	76 05		 jbe	 SHORT $LN28@clear
  00020	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN28@clear:
  00025	8b 06		 mov	 eax, DWORD PTR [esi]
  00027	55		 push	 ebp
  00028	53		 push	 ebx
  00029	57		 push	 edi
  0002a	50		 push	 eax
  0002b	8d 44 24 20	 lea	 eax, DWORD PTR $T112007[esp+40]
  0002f	50		 push	 eax
  00030	8b ce		 mov	 ecx, esi
  00032	e8 00 00 00 00	 call	 ?erase@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::erase
  00037	5f		 pop	 edi
  00038	5e		 pop	 esi
  00039	5d		 pop	 ebp
  0003a	5b		 pop	 ebx

; 1061 : 		}

  0003b	83 c4 08	 add	 esp, 8
  0003e	c3		 ret	 0
?clear@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXXZ ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::clear
_TEXT	ENDS
PUBLIC	??$_Unchecked_uninitialized_move@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0PAV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ; stdext::_Unchecked_uninitialized_move<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
;	COMDAT ??$_Unchecked_uninitialized_move@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0PAV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z
_TEXT	SEGMENT
$T112157 = -4						; size = 1
__First$ = 8						; size = 8
__Cat$112161 = 16					; size = 1
__Last$ = 16						; size = 8
__Dest$ = 24						; size = 4
__Al$ = 28						; size = 4
??$_Unchecked_uninitialized_move@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0PAV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z PROC ; stdext::_Unchecked_uninitialized_move<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

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

  00000	51		 push	 ecx

; 862  : 	return (_STD _Uninit_move(_CHECKED_BASE(_First),
; 863  : 		_CHECKED_BASE(_Last), _Dest, _Al,
; 864  : 		_STD _Move_cat(_Dest), _STD _Range_checked_iterator_tag()));

  00001	8b 4c 24 10	 mov	 ecx, DWORD PTR __Cat$112161[esp]
  00005	8b 54 24 1c	 mov	 edx, DWORD PTR __Al$[esp]
  00009	c6 04 24 00	 mov	 BYTE PTR $T112157[esp+4], 0
  0000d	8b 04 24	 mov	 eax, DWORD PTR $T112157[esp+4]
  00010	50		 push	 eax
  00011	8b 44 24 1c	 mov	 eax, DWORD PTR __Dest$[esp+4]
  00015	51		 push	 ecx
  00016	8b 4c 24 1c	 mov	 ecx, DWORD PTR __Last$[esp+12]
  0001a	52		 push	 edx
  0001b	8b 54 24 18	 mov	 edx, DWORD PTR __First$[esp+16]
  0001f	50		 push	 eax
  00020	51		 push	 ecx
  00021	52		 push	 edx
  00022	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 865  : 	}

  00027	83 c4 1c	 add	 esp, 28			; 0000001cH
  0002a	c3		 ret	 0
??$_Unchecked_uninitialized_move@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0PAV12@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ENDP ; stdext::_Unchecked_uninitialized_move<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??$_Unchecked_uninitialized_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ; stdext::_Unchecked_uninitialized_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
; Function compile flags: /Ogtpy
;	COMDAT ??$_Unchecked_uninitialized_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z
_TEXT	SEGMENT
$T112200 = -4						; size = 1
__First$ = 8						; size = 4
__Cat$112204 = 12					; size = 1
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$_Unchecked_uninitialized_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z PROC ; stdext::_Unchecked_uninitialized_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >, COMDAT

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

  00000	51		 push	 ecx

; 862  : 	return (_STD _Uninit_move(_CHECKED_BASE(_First),
; 863  : 		_CHECKED_BASE(_Last), _Dest, _Al,
; 864  : 		_STD _Move_cat(_Dest), _STD _Range_checked_iterator_tag()));

  00001	8b 4c 24 0c	 mov	 ecx, DWORD PTR __Cat$112204[esp]
  00005	8b 54 24 14	 mov	 edx, DWORD PTR __Al$[esp]
  00009	c6 04 24 00	 mov	 BYTE PTR $T112200[esp+4], 0
  0000d	8b 04 24	 mov	 eax, DWORD PTR $T112200[esp+4]
  00010	50		 push	 eax
  00011	8b 44 24 14	 mov	 eax, DWORD PTR __Dest$[esp+4]
  00015	51		 push	 ecx
  00016	8b 4c 24 14	 mov	 ecx, DWORD PTR __Last$[esp+8]
  0001a	52		 push	 edx
  0001b	8b 54 24 14	 mov	 edx, DWORD PTR __First$[esp+12]
  0001f	50		 push	 eax
  00020	51		 push	 ecx
  00021	52		 push	 edx
  00022	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 865  : 	}

  00027	83 c4 1c	 add	 esp, 28			; 0000001cH
  0002a	c3		 ret	 0
??$_Unchecked_uninitialized_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@Z ENDP ; stdext::_Unchecked_uninitialized_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
_TEXT	ENDS
PUBLIC	??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
___formal$ = 20						; size = 1
__Move_cat$ = 24					; size = 1
___formal$ = 28						; size = 1
??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

; 2773 : 	{	// use swap to instead of the copy constructor

  00000	53		 push	 ebx
  00001	55		 push	 ebp
  00002	56		 push	 esi

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

  00003	8b 74 24 14	 mov	 esi, DWORD PTR __Last$[esp+8]
  00007	8b 6c 24 18	 mov	 ebp, DWORD PTR __Dest$[esp+8]
  0000b	57		 push	 edi
  0000c	8b 7c 24 14	 mov	 edi, DWORD PTR __First$[esp+12]
  00010	8b ce		 mov	 ecx, esi
  00012	2b cf		 sub	 ecx, edi
  00014	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00019	f7 e9		 imul	 ecx
  0001b	03 d1		 add	 edx, ecx
  0001d	c1 fa 04	 sar	 edx, 4
  00020	8b c2		 mov	 eax, edx
  00022	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  00025	03 c2		 add	 eax, edx
  00027	8d 0c c5 00 00
	00 00		 lea	 ecx, DWORD PTR [eax*8]
  0002e	2b c8		 sub	 ecx, eax
  00030	03 c9		 add	 ecx, ecx
  00032	03 c9		 add	 ecx, ecx
  00034	8b dd		 mov	 ebx, ebp
  00036	2b d9		 sub	 ebx, ecx

; 2776 : 	_Move_backward_opt(_First, _Last, _CHECKED_BASE(_Dest),
; 2777 : 		forward_iterator_tag(), _Move_cat, _Range_checked_iterator_tag());

  00038	3b fe		 cmp	 edi, esi
  0003a	74 14		 je	 SHORT $LN17@Move_backw@2
  0003c	2b ee		 sub	 ebp, esi
  0003e	8b ff		 npad	 2
$LL8@Move_backw@2:
  00040	83 ee 1c	 sub	 esi, 28			; 0000001cH
  00043	56		 push	 esi
  00044	8d 0c 2e	 lea	 ecx, DWORD PTR [esi+ebp]
  00047	e8 00 00 00 00	 call	 ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::swap
  0004c	3b f7		 cmp	 esi, edi
  0004e	75 f0		 jne	 SHORT $LL8@Move_backw@2
$LN17@Move_backw@2:
  00050	5f		 pop	 edi
  00051	5e		 pop	 esi
  00052	5d		 pop	 ebp

; 2778 : 	return _Result;

  00053	8b c3		 mov	 eax, ebx
  00055	5b		 pop	 ebx

; 2779 : 	}

  00056	c3		 ret	 0
??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Umove@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@1@0PAV21@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
;	COMDAT ??$_Umove@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@1@0PAV21@@Z
_TEXT	SEGMENT
$T112308 = -4						; size = 1
__First$ = 8						; size = 8
__Last$ = 16						; size = 8
__Cat$112311 = 24					; size = 1
__Ptr$ = 24						; size = 4
??$_Umove@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@1@0PAV21@@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >, COMDAT
; _this$ = ecx

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

  00000	51		 push	 ecx

; 1146 : 		{	// move initializing [_First, _Last), using allocator
; 1147 : 		return (_STDEXT _Unchecked_uninitialized_move(_First, _Last,
; 1148 : 			_Ptr, this->_Alval));

  00001	8b 54 24 18	 mov	 edx, DWORD PTR __Cat$112311[esp]
  00005	c6 04 24 00	 mov	 BYTE PTR $T112308[esp+4], 0
  00009	8b 04 24	 mov	 eax, DWORD PTR $T112308[esp+4]
  0000c	50		 push	 eax
  0000d	8b 44 24 1c	 mov	 eax, DWORD PTR __Ptr$[esp+4]
  00011	52		 push	 edx
  00012	8b 54 24 14	 mov	 edx, DWORD PTR __First$[esp+12]
  00016	83 c1 08	 add	 ecx, 8
  00019	51		 push	 ecx
  0001a	8b 4c 24 20	 mov	 ecx, DWORD PTR __Last$[esp+16]
  0001e	50		 push	 eax
  0001f	51		 push	 ecx
  00020	52		 push	 edx
  00021	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 1149 : 		}

  00026	83 c4 1c	 add	 esp, 28			; 0000001cH
  00029	c2 14 00	 ret	 20			; 00000014H
??$_Umove@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@1@0PAV21@@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::_Vector_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > >
_TEXT	ENDS
PUBLIC	??$_Umove@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PAV21@00@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Umove@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PAV21@00@Z
_TEXT	SEGMENT
$T112363 = -4						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Cat$112366 = 16					; size = 1
__Ptr$ = 16						; size = 4
??$_Umove@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PAV21@00@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT
; _this$ = ecx

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

  00000	51		 push	 ecx

; 1146 : 		{	// move initializing [_First, _Last), using allocator
; 1147 : 		return (_STDEXT _Unchecked_uninitialized_move(_First, _Last,
; 1148 : 			_Ptr, this->_Alval));

  00001	8b 54 24 10	 mov	 edx, DWORD PTR __Cat$112366[esp]
  00005	c6 04 24 00	 mov	 BYTE PTR $T112363[esp+4], 0
  00009	8b 04 24	 mov	 eax, DWORD PTR $T112363[esp+4]
  0000c	50		 push	 eax
  0000d	8b 44 24 14	 mov	 eax, DWORD PTR __Ptr$[esp+4]
  00011	52		 push	 edx
  00012	8b 54 24 10	 mov	 edx, DWORD PTR __First$[esp+8]
  00016	83 c1 08	 add	 ecx, 8
  00019	51		 push	 ecx
  0001a	8b 4c 24 18	 mov	 ecx, DWORD PTR __Last$[esp+12]
  0001e	50		 push	 eax
  0001f	51		 push	 ecx
  00020	52		 push	 edx
  00021	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 1149 : 		}

  00026	83 c4 1c	 add	 esp, 28			; 0000001cH
  00029	c2 0c 00	 ret	 12			; 0000000cH
??$_Umove@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PAV21@00@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	??$_Unchecked_move_backward@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z ; stdext::_Unchecked_move_backward<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
;	COMDAT ??$_Unchecked_move_backward@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z
_TEXT	SEGMENT
$T112384 = -4						; size = 1
__First$ = 8						; size = 4
__Cat$112389 = 12					; size = 1
$T112386 = 12						; size = 1
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
??$_Unchecked_move_backward@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z PROC ; stdext::_Unchecked_move_backward<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>, COMDAT

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

  00000	51		 push	 ecx

; 3695 : 		return (_STD _Move_backward_opt(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest,
; 3696 : 			_STD _Iter_random(_First, _Dest), _STD _Move_cat(_Dest), _STD _Range_checked_iterator_tag()));

  00001	8b 4c 24 0c	 mov	 ecx, DWORD PTR __Cat$112389[esp]
  00005	8b 54 24 0c	 mov	 edx, DWORD PTR $T112386[esp]
  00009	c6 04 24 00	 mov	 BYTE PTR $T112384[esp+4], 0
  0000d	8b 04 24	 mov	 eax, DWORD PTR $T112384[esp+4]
  00010	50		 push	 eax
  00011	8b 44 24 14	 mov	 eax, DWORD PTR __Dest$[esp+4]
  00015	51		 push	 ecx
  00016	8b 4c 24 14	 mov	 ecx, DWORD PTR __Last$[esp+8]
  0001a	52		 push	 edx
  0001b	8b 54 24 14	 mov	 edx, DWORD PTR __First$[esp+12]
  0001f	50		 push	 eax
  00020	51		 push	 ecx
  00021	52		 push	 edx
  00022	e8 00 00 00 00	 call	 ??$_Move_backward_opt@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00Urandom_access_iterator_tag@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Move_backward_opt<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

; 3697 : 	}

  00027	83 c4 1c	 add	 esp, 28			; 0000001cH
  0002a	c3		 ret	 0
??$_Unchecked_move_backward@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z ENDP ; stdext::_Unchecked_move_backward<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>
_TEXT	ENDS
PUBLIC	?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::reserve
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
xdata$x	SEGMENT
__catchsym$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z$2 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z$0
__unwindtable$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__tryblocktable$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z$2
__ehfuncinfo$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z
	DD	01H
	DD	FLAT:__tryblocktable$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
xdata$x	ENDS
;	COMDAT ?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z
_TEXT	SEGMENT
$T112662 = -24						; size = 1
__Ptr$95513 = -20					; size = 4
__$EHRec$ = -16						; size = 16
__Cat$112713 = 8					; size = 1
__Cat$112665 = 8					; size = 1
__Count$ = 8						; size = 4
?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::reserve, COMDAT
; _this$ = ecx

; 602  : 		{	// determine new minimum length of allocated storage

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@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	53		 push	 ebx
  00015	56		 push	 esi
  00016	57		 push	 edi
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp
  0002b	8b f1		 mov	 esi, ecx

; 603  : 		if (max_size() < _Count)

  0002d	8b 7d 08	 mov	 edi, DWORD PTR __Count$[ebp]
  00030	81 ff 49 92 24
	09		 cmp	 edi, 153391689		; 09249249H
  00036	76 05		 jbe	 SHORT $LN5@reserve@2

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

  00038	e8 00 00 00 00	 call	 ?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
$LN95@reserve@2:
$LN5@reserve@2:

; 605  : 		else if (capacity() < _Count)

  0003d	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  00040	85 c0		 test	 eax, eax
  00042	74 18		 je	 SHORT $LN21@reserve@2
$LN20@reserve@2:
  00044	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  00047	2b c8		 sub	 ecx, eax
  00049	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  0004e	f7 e9		 imul	 ecx
  00050	03 d1		 add	 edx, ecx
  00052	c1 fa 04	 sar	 edx, 4
  00055	8b c2		 mov	 eax, edx
  00057	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  0005a	03 c2		 add	 eax, edx
$LN21@reserve@2:
  0005c	3b c7		 cmp	 eax, edi
  0005e	0f 83 b1 00 00
	00		 jae	 $LN3@reserve@2

; 606  : 			{	// not enough room, reallocate
; 607  : 			pointer _Ptr = this->_Alval.allocate(_Count);

  00064	6a 00		 push	 0
  00066	57		 push	 edi
  00067	e8 00 00 00 00	 call	 ??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >

; 608  : 
; 609  : 			_TRY_BEGIN
; 610  : 			_Umove(begin(), end(), _Ptr);

  0006c	8b 7e 10	 mov	 edi, DWORD PTR [esi+16]
  0006f	83 c4 08	 add	 esp, 8
  00072	89 45 ec	 mov	 DWORD PTR __Ptr$95513[ebp], eax
  00075	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  0007c	39 7e 0c	 cmp	 DWORD PTR [esi+12], edi
  0007f	76 05		 jbe	 SHORT $LN30@reserve@2
  00081	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN30@reserve@2:
  00086	8b 5e 0c	 mov	 ebx, DWORD PTR [esi+12]
  00089	3b 5e 10	 cmp	 ebx, DWORD PTR [esi+16]
  0008c	76 05		 jbe	 SHORT $LN49@reserve@2
  0008e	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN49@reserve@2:
  00093	8b 55 08	 mov	 edx, DWORD PTR __Cat$112665[ebp]
  00096	c6 45 e8 00	 mov	 BYTE PTR $T112662[ebp], 0
  0009a	8b 4d e8	 mov	 ecx, DWORD PTR $T112662[ebp]
  0009d	51		 push	 ecx
  0009e	52		 push	 edx
  0009f	8d 46 08	 lea	 eax, DWORD PTR [esi+8]
  000a2	50		 push	 eax
  000a3	8b 45 ec	 mov	 eax, DWORD PTR __Ptr$95513[ebp]
  000a6	50		 push	 eax
  000a7	57		 push	 edi
  000a8	53		 push	 ebx
  000a9	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 614  : 			_CATCH_END
; 615  : 
; 616  : 			size_type _Size = size();

  000ae	8b 5e 0c	 mov	 ebx, DWORD PTR [esi+12]
  000b1	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  000b4	2b cb		 sub	 ecx, ebx
  000b6	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  000bb	f7 e9		 imul	 ecx
  000bd	03 d1		 add	 edx, ecx
  000bf	c1 fa 04	 sar	 edx, 4
  000c2	8b fa		 mov	 edi, edx
  000c4	c1 ef 1f	 shr	 edi, 31			; 0000001fH
  000c7	83 c4 18	 add	 esp, 24			; 00000018H
  000ca	03 fa		 add	 edi, edx

; 617  : 			if (_Myfirst != 0)

  000cc	85 db		 test	 ebx, ebx
  000ce	74 1e		 je	 SHORT $LN90@reserve@2

; 618  : 				{	// destroy and deallocate old array
; 619  : 				_Destroy(_Myfirst, _Mylast);

  000d0	8b 4d 08	 mov	 ecx, DWORD PTR __Cat$112713[ebp]
  000d3	51		 push	 ecx
  000d4	8d 46 08	 lea	 eax, DWORD PTR [esi+8]
  000d7	50		 push	 eax
  000d8	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  000db	50		 push	 eax
  000dc	53		 push	 ebx
  000dd	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

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

  000e2	8b 56 0c	 mov	 edx, DWORD PTR [esi+12]
  000e5	52		 push	 edx
  000e6	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000eb	83 c4 14	 add	 esp, 20			; 00000014H
$LN90@reserve@2:

; 621  : 				}
; 622  : 
; 623  :  #if _HAS_ITERATOR_DEBUGGING
; 624  : 			this->_Orphan_all();
; 625  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 626  : 
; 627  : 			_Myend = _Ptr + _Count;

  000ee	8b 45 08	 mov	 eax, DWORD PTR __Count$[ebp]
  000f1	8d 0c c5 00 00
	00 00		 lea	 ecx, DWORD PTR [eax*8]
  000f8	2b c8		 sub	 ecx, eax
  000fa	8b 45 ec	 mov	 eax, DWORD PTR __Ptr$95513[ebp]
  000fd	8d 14 88	 lea	 edx, DWORD PTR [eax+ecx*4]

; 628  : 			_Mylast = _Ptr + _Size;

  00100	8d 0c fd 00 00
	00 00		 lea	 ecx, DWORD PTR [edi*8]
  00107	2b cf		 sub	 ecx, edi
  00109	89 56 14	 mov	 DWORD PTR [esi+20], edx
  0010c	8d 14 88	 lea	 edx, DWORD PTR [eax+ecx*4]
  0010f	89 56 10	 mov	 DWORD PTR [esi+16], edx

; 629  : 			_Myfirst = _Ptr;

  00112	89 46 0c	 mov	 DWORD PTR [esi+12], eax
$LN3@reserve@2:

; 630  : 			}
; 631  : 		}

  00115	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  00118	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0011f	59		 pop	 ecx
  00120	5f		 pop	 edi
  00121	5e		 pop	 esi
  00122	5b		 pop	 ebx
  00123	8b e5		 mov	 esp, ebp
  00125	5d		 pop	 ebp
  00126	c2 04 00	 ret	 4
__catch$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z$0:

; 611  : 			_CATCH_ALL
; 612  : 			this->_Alval.deallocate(_Ptr, _Count);

  00129	8b 45 ec	 mov	 eax, DWORD PTR __Ptr$95513[ebp]
  0012c	50		 push	 eax
  0012d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00132	83 c4 04	 add	 esp, 4

; 613  : 			_RERAISE;

  00135	6a 00		 push	 0
  00137	6a 00		 push	 0
  00139	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN96@reserve@2:
$LN94@reserve@2:
  0013e	cc		 int	 3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@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 e4	 mov	 ecx, DWORD PTR [edx-28]
  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$?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::reserve
PUBLIC	_this$GSCopy$
PUBLIC	__Val$GSCopy$
PUBLIC	__$ArrayPad$
PUBLIC	?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Insert_n
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
xdata$x	SEGMENT
__catchsym$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$7 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$2
__catchsym$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$6 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$0
__ehfuncinfo$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
	DD	02H
	DD	FLAT:__tryblocktable$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__tryblocktable$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$6
	DD	03H
	DD	03H
	DD	04H
	DD	01H
	DD	FLAT:__catchsym$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$7
__unwindtable$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$4
	DD	02H
	DD	00H
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$5
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
xdata$x	ENDS
;	COMDAT ?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
__Ncopied$96315 = -100					; size = 4
_this$GSCopy$ = -96					; size = 4
__Newvec$96313 = -92					; size = 4
$T112923 = -88						; size = 1
$T112855 = -88						; size = 1
__Val$GSCopy$ = -88					; size = 4
tv493 = -84						; size = 4
__Cat$112965 = -84					; size = 1
__Cat$112926 = -84					; size = 1
__Cat$112858 = -84					; size = 1
__Whereoff$96314 = -84					; size = 4
__Capacity$ = -80					; size = 4
__Tmp$96338 = -76					; size = 28
__Tmp$96328 = -48					; size = 28
__$ArrayPad$ = -20					; size = 4
__$EHRec$ = -16						; size = 16
__Where$ = 8						; size = 8
__Count$ = 16						; size = 4
__Val$ = 20						; size = 4
?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Insert_n, COMDAT
; _this$ = ecx

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

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 58	 sub	 esp, 88			; 00000058H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 ec	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001e	53		 push	 ebx
  0001f	56		 push	 esi
  00020	57		 push	 edi
  00021	50		 push	 eax
  00022	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00025	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0002b	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 1249 : 			}

  0002e	8b 45 14	 mov	 eax, DWORD PTR __Val$[ebp]
  00031	8b f1		 mov	 esi, ecx
  00033	89 45 a8	 mov	 DWORD PTR __Val$GSCopy$[ebp], eax
  00036	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  00039	89 75 a0	 mov	 DWORD PTR _this$GSCopy$[ebp], esi
  0003c	85 c0		 test	 eax, eax
  0003e	75 05		 jne	 SHORT $LN31@Insert_n

; 1154 : 
; 1155 :  #if _HAS_ITERATOR_DEBUGGING
; 1156 : 		if (_Where._Mycont != this
; 1157 : 			|| _Where._Myptr < _Myfirst || _Mylast < _Where._Myptr)
; 1158 : 			_DEBUG_ERROR("vector insert iterator outside range");
; 1159 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1160 : 
; 1161 : 		size_type _Capacity = capacity();

  00040	89 45 b0	 mov	 DWORD PTR __Capacity$[ebp], eax
  00043	eb 1b		 jmp	 SHORT $LN32@Insert_n
$LN31@Insert_n:
  00045	8b 4e 14	 mov	 ecx, DWORD PTR [esi+20]
  00048	2b c8		 sub	 ecx, eax
  0004a	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  0004f	f7 e9		 imul	 ecx
  00051	03 d1		 add	 edx, ecx
  00053	c1 fa 04	 sar	 edx, 4
  00056	8b c2		 mov	 eax, edx
  00058	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  0005b	03 c2		 add	 eax, edx
  0005d	89 45 b0	 mov	 DWORD PTR __Capacity$[ebp], eax
$LN32@Insert_n:

; 1162 : 
; 1163 : 		if (_Count == 0)

  00060	8b 7d 10	 mov	 edi, DWORD PTR __Count$[ebp]
  00063	85 ff		 test	 edi, edi
  00065	0f 84 14 03 00
	00		 je	 $LN1@Insert_n

; 1164 : 			;
; 1165 : 		else if (max_size() - size() < _Count)

  0006b	8b 5e 10	 mov	 ebx, DWORD PTR [esi+16]
  0006e	8b cb		 mov	 ecx, ebx
  00070	2b 4e 0c	 sub	 ecx, DWORD PTR [esi+12]
  00073	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00078	f7 e9		 imul	 ecx
  0007a	03 d1		 add	 edx, ecx
  0007c	c1 fa 04	 sar	 edx, 4
  0007f	8b c2		 mov	 eax, edx
  00081	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  00084	03 c2		 add	 eax, edx
  00086	b9 49 92 24 09	 mov	 ecx, 153391689		; 09249249H
  0008b	2b c8		 sub	 ecx, eax
  0008d	3b cf		 cmp	 ecx, edi
  0008f	73 05		 jae	 SHORT $LN12@Insert_n

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

  00091	e8 00 00 00 00	 call	 ?_Xlen@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@KAXXZ ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Xlen
$LN101@Insert_n:
$LN12@Insert_n:

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

  00096	8b 4d b0	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  00099	03 c7		 add	 eax, edi
  0009b	3b c8		 cmp	 ecx, eax
  0009d	0f 83 a7 01 00
	00		 jae	 $LN10@Insert_n

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

  000a3	8b d1		 mov	 edx, ecx
  000a5	d1 ea		 shr	 edx, 1
  000a7	bb 49 92 24 09	 mov	 ebx, 153391689		; 09249249H
  000ac	2b da		 sub	 ebx, edx
  000ae	3b d9		 cmp	 ebx, ecx
  000b0	73 0c		 jae	 SHORT $LN17@Insert_n
  000b2	c7 45 b0 00 00
	00 00		 mov	 DWORD PTR __Capacity$[ebp], 0
  000b9	8b 4d b0	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  000bc	eb 05		 jmp	 SHORT $LN18@Insert_n
$LN17@Insert_n:
  000be	03 ca		 add	 ecx, edx
  000c0	89 4d b0	 mov	 DWORD PTR __Capacity$[ebp], ecx
$LN18@Insert_n:

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

  000c3	3b c8		 cmp	 ecx, eax
  000c5	73 05		 jae	 SHORT $LN9@Insert_n

; 1172 : 				_Capacity = size() + _Count;

  000c7	89 45 b0	 mov	 DWORD PTR __Capacity$[ebp], eax
  000ca	8b c8		 mov	 ecx, eax
$LN9@Insert_n:

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

  000cc	6a 00		 push	 0
  000ce	51		 push	 ecx
  000cf	e8 00 00 00 00	 call	 ??$_Allocate@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IPAV10@@Z ; std::_Allocate<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >

; 1174 : 			size_type _Whereoff = _VEC_ITER_BASE(_Where) - _Myfirst;

  000d4	8b 5d 0c	 mov	 ebx, DWORD PTR __Where$[ebp+4]
  000d7	2b 5e 0c	 sub	 ebx, DWORD PTR [esi+12]
  000da	8b c8		 mov	 ecx, eax
  000dc	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  000e1	f7 eb		 imul	 ebx
  000e3	03 d3		 add	 edx, ebx
  000e5	c1 fa 04	 sar	 edx, 4
  000e8	8b da		 mov	 ebx, edx

; 1175 : 			int _Ncopied = 0;

  000ea	33 c0		 xor	 eax, eax
  000ec	c1 eb 1f	 shr	 ebx, 31			; 0000001fH
  000ef	03 da		 add	 ebx, edx

; 1176 : 
; 1177 : 			_TRY_BEGIN
; 1178 : 			_Ufill(_Newvec + _Whereoff, _Count, _Val);	// add new stuff

  000f1	8b 55 a8	 mov	 edx, DWORD PTR __Val$GSCopy$[ebp]
  000f4	83 c4 08	 add	 esp, 8
  000f7	89 45 9c	 mov	 DWORD PTR __Ncopied$96315[ebp], eax
  000fa	89 45 fc	 mov	 DWORD PTR __$EHRec$[ebp+12], eax
  000fd	52		 push	 edx
  000fe	8d 04 dd 00 00
	00 00		 lea	 eax, DWORD PTR [ebx*8]
  00105	89 4d a4	 mov	 DWORD PTR __Newvec$96313[ebp], ecx
  00108	2b c3		 sub	 eax, ebx
  0010a	8d 0c 81	 lea	 ecx, DWORD PTR [ecx+eax*4]
  0010d	57		 push	 edi
  0010e	51		 push	 ecx
  0010f	8b ce		 mov	 ecx, esi
  00111	89 5d ac	 mov	 DWORD PTR __Whereoff$96314[ebp], ebx
  00114	e8 00 00 00 00	 call	 ?_Ufill@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PAV32@IABV32@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Ufill

; 1179 : 			++_Ncopied;
; 1180 : 			_Umove(this->_Myfirst, _VEC_ITER_BASE(_Where),
; 1181 : 				_Newvec);	// move prefix

  00119	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  0011c	c6 45 a8 00	 mov	 BYTE PTR $T112855[ebp], 0
  00120	8b 55 a8	 mov	 edx, DWORD PTR $T112855[ebp]
  00123	52		 push	 edx
  00124	8b 55 ac	 mov	 edx, DWORD PTR __Cat$112858[ebp]
  00127	52		 push	 edx
  00128	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  0012b	8d 4e 08	 lea	 ecx, DWORD PTR [esi+8]
  0012e	51		 push	 ecx
  0012f	8b 4d a4	 mov	 ecx, DWORD PTR __Newvec$96313[ebp]
  00132	51		 push	 ecx
  00133	52		 push	 edx
  00134	50		 push	 eax
  00135	c7 45 9c 01 00
	00 00		 mov	 DWORD PTR __Ncopied$96315[ebp], 1
  0013c	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 1182 : 			++_Ncopied;
; 1183 : 			_Umove(_VEC_ITER_BASE(_Where), this->_Mylast,
; 1184 : 				_Newvec + (_Whereoff + _Count));	// move suffix

  00141	8b 55 a4	 mov	 edx, DWORD PTR __Newvec$96313[ebp]
  00144	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00147	03 df		 add	 ebx, edi
  00149	83 c4 18	 add	 esp, 24			; 00000018H
  0014c	8d 0c dd 00 00
	00 00		 lea	 ecx, DWORD PTR [ebx*8]
  00153	2b cb		 sub	 ecx, ebx
  00155	8d 0c 8a	 lea	 ecx, DWORD PTR [edx+ecx*4]
  00158	c6 45 a8 00	 mov	 BYTE PTR $T112923[ebp], 0
  0015c	8b 55 a8	 mov	 edx, DWORD PTR $T112923[ebp]
  0015f	52		 push	 edx
  00160	8b 55 ac	 mov	 edx, DWORD PTR __Cat$112926[ebp]
  00163	52		 push	 edx
  00164	8d 56 08	 lea	 edx, DWORD PTR [esi+8]
  00167	52		 push	 edx
  00168	51		 push	 ecx
  00169	50		 push	 eax
  0016a	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  0016d	50		 push	 eax
  0016e	c7 45 9c 02 00
	00 00		 mov	 DWORD PTR __Ncopied$96315[ebp], 2
  00175	e8 00 00 00 00	 call	 ??$_Uninit_move@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PAV10@00AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Swap_move_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_move<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

; 1192 : 			_CATCH_END
; 1193 : 
; 1194 : 			_Count += size();

  0017a	8b 5e 0c	 mov	 ebx, DWORD PTR [esi+12]
  0017d	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  00180	2b cb		 sub	 ecx, ebx
  00182	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00187	f7 e9		 imul	 ecx
  00189	03 d1		 add	 edx, ecx
  0018b	c1 fa 04	 sar	 edx, 4
  0018e	8b ca		 mov	 ecx, edx
  00190	c1 e9 1f	 shr	 ecx, 31			; 0000001fH
  00193	03 ca		 add	 ecx, edx
  00195	83 c4 18	 add	 esp, 24			; 00000018H
  00198	03 f9		 add	 edi, ecx

; 1195 : 			if (_Myfirst != 0)

  0019a	85 db		 test	 ebx, ebx
  0019c	74 1e		 je	 SHORT $LN93@Insert_n

; 1196 : 				{	// destroy and deallocate old array
; 1197 : 				_Destroy(_Myfirst, _Mylast);

  0019e	8b 55 ac	 mov	 edx, DWORD PTR __Cat$112965[ebp]
  001a1	52		 push	 edx
  001a2	8d 46 08	 lea	 eax, DWORD PTR [esi+8]
  001a5	50		 push	 eax
  001a6	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  001a9	50		 push	 eax
  001aa	53		 push	 ebx
  001ab	e8 00 00 00 00	 call	 ??$_Destroy_range@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@@Z ; std::_Destroy_range<std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >

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

  001b0	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  001b3	51		 push	 ecx
  001b4	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  001b9	83 c4 14	 add	 esp, 20			; 00000014H
$LN93@Insert_n:

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

  001bc	8b 45 b0	 mov	 eax, DWORD PTR __Capacity$[ebp]
  001bf	8d 14 c5 00 00
	00 00		 lea	 edx, DWORD PTR [eax*8]
  001c6	2b d0		 sub	 edx, eax
  001c8	8b 45 a4	 mov	 eax, DWORD PTR __Newvec$96313[ebp]
  001cb	8d 0c 90	 lea	 ecx, DWORD PTR [eax+edx*4]

; 1206 : 			_Mylast = _Newvec + _Count;

  001ce	8d 14 fd 00 00
	00 00		 lea	 edx, DWORD PTR [edi*8]
  001d5	2b d7		 sub	 edx, edi
  001d7	89 4e 14	 mov	 DWORD PTR [esi+20], ecx
  001da	8d 0c 90	 lea	 ecx, DWORD PTR [eax+edx*4]
  001dd	89 4e 10	 mov	 DWORD PTR [esi+16], ecx

; 1207 : 			_Myfirst = _Newvec;

  001e0	89 46 0c	 mov	 DWORD PTR [esi+12], eax
  001e3	e9 97 01 00 00	 jmp	 $LN1@Insert_n
__catch$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$0:

; 1185 : 			_CATCH_ALL
; 1186 : 			if (1 < _Ncopied)

  001e8	8b 5d 9c	 mov	 ebx, DWORD PTR __Ncopied$96315[ebp]
  001eb	83 fb 01	 cmp	 ebx, 1

; 1187 : 				_Destroy(_Newvec, _Newvec + _Whereoff);

  001ee	8b 75 ac	 mov	 esi, DWORD PTR __Whereoff$96314[ebp]
  001f1	8b 7d a4	 mov	 edi, DWORD PTR __Newvec$96313[ebp]
  001f4	7e 16		 jle	 SHORT $LN7@Insert_n
  001f6	8b 4d a0	 mov	 ecx, DWORD PTR _this$GSCopy$[ebp]
  001f9	8d 14 f5 00 00
	00 00		 lea	 edx, DWORD PTR [esi*8]
  00200	2b d6		 sub	 edx, esi
  00202	8d 04 97	 lea	 eax, DWORD PTR [edi+edx*4]
  00205	50		 push	 eax
  00206	57		 push	 edi
  00207	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Destroy
$LN7@Insert_n:

; 1188 : 			if (0 < _Ncopied)

  0020c	85 db		 test	 ebx, ebx
  0020e	7e 28		 jle	 SHORT $LN6@Insert_n

; 1189 : 				_Destroy(_Newvec + _Whereoff, _Newvec + _Whereoff + _Count);

  00210	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  00213	8d 04 0e	 lea	 eax, DWORD PTR [esi+ecx]
  00216	8d 14 c5 00 00
	00 00		 lea	 edx, DWORD PTR [eax*8]
  0021d	2b d0		 sub	 edx, eax
  0021f	8d 04 97	 lea	 eax, DWORD PTR [edi+edx*4]
  00222	8d 0c f5 00 00
	00 00		 lea	 ecx, DWORD PTR [esi*8]
  00229	2b ce		 sub	 ecx, esi
  0022b	8d 14 8f	 lea	 edx, DWORD PTR [edi+ecx*4]
  0022e	8b 4d a0	 mov	 ecx, DWORD PTR _this$GSCopy$[ebp]
  00231	50		 push	 eax
  00232	52		 push	 edx
  00233	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Destroy
$LN6@Insert_n:

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

  00238	57		 push	 edi
  00239	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0023e	83 c4 04	 add	 esp, 4

; 1191 : 			_RERAISE;

  00241	6a 00		 push	 0
  00243	6a 00		 push	 0
  00245	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN102@Insert_n:
$LN10@Insert_n:

; 1208 : 			}
; 1209 : 		else if ((size_type)(_Mylast - _VEC_ITER_BASE(_Where)) < _Count)

  0024a	2b 5d 0c	 sub	 ebx, DWORD PTR __Where$[ebp+4]
  0024d	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00252	f7 eb		 imul	 ebx
  00254	03 d3		 add	 edx, ebx
  00256	c1 fa 04	 sar	 edx, 4
  00259	8b c2		 mov	 eax, edx
  0025b	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  0025e	03 c2		 add	 eax, edx
  00260	3b c7		 cmp	 eax, edi
  00262	0f 83 b7 00 00
	00		 jae	 $LN3@Insert_n

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

  00268	8b 4d a8	 mov	 ecx, DWORD PTR __Val$GSCopy$[ebp]
  0026b	51		 push	 ecx
  0026c	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$96328[ebp]
  0026f	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 1212 : 
; 1213 : 			_Umove(_VEC_ITER_BASE(_Where), _Mylast,
; 1214 : 				_VEC_ITER_BASE(_Where) + _Count);	// copy suffix

  00274	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  00277	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  0027a	8d 1c fd 00 00
	00 00		 lea	 ebx, DWORD PTR [edi*8]
  00281	2b df		 sub	 ebx, edi
  00283	03 db		 add	 ebx, ebx
  00285	03 db		 add	 ebx, ebx
  00287	8d 14 03	 lea	 edx, DWORD PTR [ebx+eax]
  0028a	52		 push	 edx
  0028b	51		 push	 ecx
  0028c	50		 push	 eax
  0028d	8b ce		 mov	 ecx, esi
  0028f	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  00296	e8 00 00 00 00	 call	 ??$_Umove@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PAV21@00@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

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

  0029b	8b 4e 10	 mov	 ecx, DWORD PTR [esi+16]
  0029e	2b 4d 0c	 sub	 ecx, DWORD PTR __Where$[ebp+4]
  002a1	8d 55 d0	 lea	 edx, DWORD PTR __Tmp$96328[ebp]
  002a4	52		 push	 edx
  002a5	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  002aa	f7 e9		 imul	 ecx
  002ac	03 d1		 add	 edx, ecx
  002ae	c1 fa 04	 sar	 edx, 4
  002b1	8b c2		 mov	 eax, edx
  002b3	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  002b6	03 c2		 add	 eax, edx
  002b8	2b f8		 sub	 edi, eax
  002ba	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  002bd	57		 push	 edi
  002be	50		 push	 eax
  002bf	8b ce		 mov	 ecx, esi
  002c1	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+12], 3
  002c5	e8 00 00 00 00	 call	 ?_Ufill@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PAV32@IABV32@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Ufill

; 1222 : 			_CATCH_END
; 1223 : 
; 1224 : 			_Mylast += _Count;

  002ca	01 5e 10	 add	 DWORD PTR [esi+16], ebx
  002cd	8b 76 10	 mov	 esi, DWORD PTR [esi+16]

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

  002d0	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  002d3	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$96328[ebp]
  002d6	51		 push	 ecx
  002d7	2b f3		 sub	 esi, ebx
  002d9	56		 push	 esi
  002da	52		 push	 edx
  002db	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  002e2	e8 00 00 00 00	 call	 ??$fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z ; std::fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
  002e7	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1232 : 			}

  002ea	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$96328[ebp]

; 1233 : 		else

  002ed	e9 88 00 00 00	 jmp	 $LN100@Insert_n
__catch$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$2:

; 1219 : 			_CATCH_ALL
; 1220 : 			_Destroy(_VEC_ITER_BASE(_Where) + _Count, _Mylast + _Count);

  002f2	8b 4d 10	 mov	 ecx, DWORD PTR __Count$[ebp]
  002f5	8d 04 cd 00 00
	00 00		 lea	 eax, DWORD PTR [ecx*8]
  002fc	2b c1		 sub	 eax, ecx
  002fe	8b 4d a0	 mov	 ecx, DWORD PTR _this$GSCopy$[ebp]
  00301	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00304	03 c0		 add	 eax, eax
  00306	03 c0		 add	 eax, eax
  00308	03 d0		 add	 edx, eax
  0030a	52		 push	 edx
  0030b	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  0030e	03 c2		 add	 eax, edx
  00310	50		 push	 eax
  00311	e8 00 00 00 00	 call	 ?_Destroy@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Destroy

; 1221 : 			_RERAISE;

  00316	6a 00		 push	 0
  00318	6a 00		 push	 0
  0031a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN103@Insert_n:
$LN3@Insert_n:

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

  0031f	8b 45 a8	 mov	 eax, DWORD PTR __Val$GSCopy$[ebp]
  00322	50		 push	 eax
  00323	8d 4d b4	 lea	 ecx, DWORD PTR __Tmp$96338[ebp]
  00326	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 1236 : 
; 1237 : 			pointer _Oldend = _Mylast;

  0032b	8b 46 10	 mov	 eax, DWORD PTR [esi+16]

; 1238 : 			_Mylast = _Umove(_Oldend - _Count, _Oldend,
; 1239 : 				_Mylast);	// copy suffix

  0032e	8d 1c fd 00 00
	00 00		 lea	 ebx, DWORD PTR [edi*8]
  00335	2b df		 sub	 ebx, edi
  00337	03 db		 add	 ebx, ebx
  00339	50		 push	 eax
  0033a	8b f8		 mov	 edi, eax
  0033c	03 db		 add	 ebx, ebx
  0033e	50		 push	 eax
  0033f	2b fb		 sub	 edi, ebx
  00341	57		 push	 edi
  00342	8b ce		 mov	 ecx, esi
  00344	c7 45 fc 05 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 5
  0034b	89 45 ac	 mov	 DWORD PTR tv493[ebp], eax
  0034e	e8 00 00 00 00	 call	 ??$_Umove@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PAV21@00@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Umove<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

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

  00353	8b 4d ac	 mov	 ecx, DWORD PTR tv493[ebp]
  00356	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00359	51		 push	 ecx
  0035a	57		 push	 edi
  0035b	52		 push	 edx
  0035c	89 46 10	 mov	 DWORD PTR [esi+16], eax
  0035f	e8 00 00 00 00	 call	 ??$_Unchecked_move_backward@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@@stdext@@YAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV12@00@Z ; stdext::_Unchecked_move_backward<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *>

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

  00364	8d 45 b4	 lea	 eax, DWORD PTR __Tmp$96338[ebp]
  00367	50		 push	 eax
  00368	8b 45 0c	 mov	 eax, DWORD PTR __Where$[ebp+4]
  0036b	03 d8		 add	 ebx, eax
  0036d	53		 push	 ebx
  0036e	50		 push	 eax
  0036f	e8 00 00 00 00	 call	 ??$fill@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0ABV10@@Z ; std::fill<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >
  00374	83 c4 18	 add	 esp, 24			; 00000018H

; 1249 : 			}

  00377	8d 4d b4	 lea	 ecx, DWORD PTR __Tmp$96338[ebp]
$LN100@Insert_n:
  0037a	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@Insert_n:

; 1250 : 		}

  0037f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  00382	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00389	59		 pop	 ecx
  0038a	5f		 pop	 edi
  0038b	5e		 pop	 esi
  0038c	5b		 pop	 ebx
  0038d	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00390	33 cd		 xor	 ecx, ebp
  00392	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00397	8b e5		 mov	 esp, ebp
  00399	5d		 pop	 ebp
  0039a	c2 10 00	 ret	 16			; 00000010H
$LN99@Insert_n:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$4:
  00000	8d 4d d0	 lea	 ecx, DWORD PTR __Tmp$96328[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$5:
  00008	8d 4d b4	 lea	 ecx, DWORD PTR __Tmp$96338[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> >
__ehhandler$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a 98	 mov	 ecx, DWORD PTR [edx-104]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00024	33 c8		 xor	 ecx, eax
  00026	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002b	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
  00030	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Insert_n
PUBLIC	?insert@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::insert
; Function compile flags: /Ogtpy
;	COMDAT ?insert@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
__Tmp$113173 = -8					; size = 8
___$ReturnUdt$ = 8					; size = 4
__Where$ = 12						; size = 8
__Val$ = 20						; size = 4
?insert@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::insert, COMDAT
; _this$ = ecx

; 875  : 		{	// insert _Val at _Where

  00000	83 ec 08	 sub	 esp, 8
  00003	53		 push	 ebx
  00004	56		 push	 esi
  00005	8b f1		 mov	 esi, ecx

; 876  : 		size_type _Off = size() == 0 ? 0 : _Where - begin();

  00007	8b 5e 10	 mov	 ebx, DWORD PTR [esi+16]
  0000a	57		 push	 edi
  0000b	8b 7e 0c	 mov	 edi, DWORD PTR [esi+12]
  0000e	8b cb		 mov	 ecx, ebx
  00010	2b cf		 sub	 ecx, edi
  00012	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00017	f7 e9		 imul	 ecx
  00019	03 d1		 add	 edx, ecx
  0001b	c1 fa 04	 sar	 edx, 4
  0001e	8b c2		 mov	 eax, edx
  00020	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  00023	03 c2		 add	 eax, edx
  00025	75 04		 jne	 SHORT $LN3@insert
  00027	33 ff		 xor	 edi, edi
  00029	eb 35		 jmp	 SHORT $LN4@insert
$LN3@insert:
  0002b	3b fb		 cmp	 edi, ebx
  0002d	76 05		 jbe	 SHORT $LN13@insert
  0002f	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN13@insert:
  00034	8b 4c 24 1c	 mov	 ecx, DWORD PTR __Where$[esp+16]
  00038	8b 06		 mov	 eax, DWORD PTR [esi]
  0003a	85 c9		 test	 ecx, ecx
  0003c	74 04		 je	 SHORT $LN29@insert
  0003e	3b c8		 cmp	 ecx, eax
  00040	74 05		 je	 SHORT $LN28@insert
$LN29@insert:
  00042	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN28@insert:
  00047	8b 4c 24 20	 mov	 ecx, DWORD PTR __Where$[esp+20]
  0004b	2b cf		 sub	 ecx, edi
  0004d	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00052	f7 e9		 imul	 ecx
  00054	03 d1		 add	 edx, ecx
  00056	c1 fa 04	 sar	 edx, 4
  00059	8b fa		 mov	 edi, edx
  0005b	c1 ef 1f	 shr	 edi, 31			; 0000001fH
  0005e	03 fa		 add	 edi, edx
$LN4@insert:

; 877  : 		_Insert_n(_Where, (size_type)1, _Val);

  00060	8b 4c 24 24	 mov	 ecx, DWORD PTR __Val$[esp+16]
  00064	8b 54 24 20	 mov	 edx, DWORD PTR __Where$[esp+20]
  00068	8b 44 24 1c	 mov	 eax, DWORD PTR __Where$[esp+16]
  0006c	51		 push	 ecx
  0006d	6a 01		 push	 1
  0006f	52		 push	 edx
  00070	50		 push	 eax
  00071	8b ce		 mov	 ecx, esi
  00073	e8 00 00 00 00	 call	 ?_Insert_n@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXV?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@IABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Insert_n

; 878  : 		return (begin() + _Off);

  00078	8b 5e 0c	 mov	 ebx, DWORD PTR [esi+12]
  0007b	3b 5e 10	 cmp	 ebx, DWORD PTR [esi+16]
  0007e	76 05		 jbe	 SHORT $LN43@insert
  00080	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN43@insert:
  00085	8b 36		 mov	 esi, DWORD PTR [esi]
  00087	57		 push	 edi
  00088	8d 4c 24 10	 lea	 ecx, DWORD PTR __Tmp$113173[esp+24]
  0008c	89 74 24 10	 mov	 DWORD PTR __Tmp$113173[esp+24], esi
  00090	89 5c 24 14	 mov	 DWORD PTR __Tmp$113173[esp+28], ebx
  00094	e8 00 00 00 00	 call	 ??Y?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEAAV01@H@Z ; std::_Vector_const_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator+=
  00099	8b 44 24 18	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp+16]
  0009d	8b 4c 24 0c	 mov	 ecx, DWORD PTR __Tmp$113173[esp+20]
  000a1	8b 54 24 10	 mov	 edx, DWORD PTR __Tmp$113173[esp+24]
  000a5	5f		 pop	 edi
  000a6	5e		 pop	 esi
  000a7	89 08		 mov	 DWORD PTR [eax], ecx
  000a9	89 50 04	 mov	 DWORD PTR [eax+4], edx
  000ac	5b		 pop	 ebx

; 879  : 		}

  000ad	83 c4 08	 add	 esp, 8
  000b0	c2 10 00	 ret	 16			; 00000010H
?insert@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::insert
_TEXT	ENDS
PUBLIC	?push_back@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back
; Function compile flags: /Ogtpy
;	COMDAT ?push_back@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
$T113211 = -8						; size = 1
$T113182 = -8						; size = 8
__Cat$113214 = 8					; size = 1
__Val$ = 8						; size = 4
?push_back@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back, COMDAT
; _this$ = ecx

; 809  : 		{	// insert element at end

  00000	83 ec 08	 sub	 esp, 8
  00003	53		 push	 ebx
  00004	55		 push	 ebp
  00005	56		 push	 esi
  00006	57		 push	 edi
  00007	8b f9		 mov	 edi, ecx

; 810  : 		if (size() < capacity())

  00009	8b 6f 0c	 mov	 ebp, DWORD PTR [edi+12]
  0000c	85 ed		 test	 ebp, ebp
  0000e	75 04		 jne	 SHORT $LN9@push_back@2
  00010	33 f6		 xor	 esi, esi
  00012	eb 18		 jmp	 SHORT $LN10@push_back@2
$LN9@push_back@2:
  00014	8b 4f 14	 mov	 ecx, DWORD PTR [edi+20]
  00017	2b cd		 sub	 ecx, ebp
  00019	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  0001e	f7 e9		 imul	 ecx
  00020	03 d1		 add	 edx, ecx
  00022	c1 fa 04	 sar	 edx, 4
  00025	8b f2		 mov	 esi, edx
  00027	c1 ee 1f	 shr	 esi, 31			; 0000001fH
  0002a	03 f2		 add	 esi, edx
$LN10@push_back@2:
  0002c	8b 5f 10	 mov	 ebx, DWORD PTR [edi+16]
  0002f	8b cb		 mov	 ecx, ebx
  00031	2b cd		 sub	 ecx, ebp
  00033	b8 93 24 49 92	 mov	 eax, -1840700269	; 92492493H
  00038	f7 e9		 imul	 ecx
  0003a	03 d1		 add	 edx, ecx
  0003c	c1 fa 04	 sar	 edx, 4
  0003f	8b c2		 mov	 eax, edx
  00041	c1 e8 1f	 shr	 eax, 31			; 0000001fH
  00044	03 c2		 add	 eax, edx
  00046	3b c6		 cmp	 eax, esi
  00048	73 33		 jae	 SHORT $LN2@push_back@2

; 811  : 
; 812  :  #if _HAS_ITERATOR_DEBUGGING
; 813  : 			{ // room at end, construct it there
; 814  : 			_Orphan_range(_Mylast, _Mylast);
; 815  : 			_Mylast = _Ufill(_Mylast, 1, _Val);
; 816  : 			}
; 817  : 
; 818  :  #else /* _HAS_ITERATOR_DEBUGGING */
; 819  : 			_Mylast = _Ufill(_Mylast, 1, _Val);

  0004a	8b 54 24 1c	 mov	 edx, DWORD PTR __Cat$113214[esp+20]
  0004e	c6 44 24 10 00	 mov	 BYTE PTR $T113211[esp+24], 0
  00053	8b 4c 24 10	 mov	 ecx, DWORD PTR $T113211[esp+24]
  00057	51		 push	 ecx
  00058	8b 4c 24 20	 mov	 ecx, DWORD PTR __Val$[esp+24]
  0005c	52		 push	 edx
  0005d	8d 47 08	 lea	 eax, DWORD PTR [edi+8]
  00060	50		 push	 eax
  00061	51		 push	 ecx
  00062	6a 01		 push	 1
  00064	53		 push	 ebx
  00065	e8 00 00 00 00	 call	 ??$_Uninit_fill_n@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IV12@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@YAXPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@IABV10@AAV?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_fill_n<std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,unsigned int,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >
  0006a	83 c4 18	 add	 esp, 24			; 00000018H
  0006d	83 c3 1c	 add	 ebx, 28			; 0000001cH
  00070	89 5f 10	 mov	 DWORD PTR [edi+16], ebx
  00073	5f		 pop	 edi
  00074	5e		 pop	 esi
  00075	5d		 pop	 ebp
  00076	5b		 pop	 ebx

; 824  : 		}

  00077	83 c4 08	 add	 esp, 8
  0007a	c2 04 00	 ret	 4
$LN2@push_back@2:

; 820  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 821  : 
; 822  : 		else
; 823  : 			insert(end(), _Val);

  0007d	3b eb		 cmp	 ebp, ebx
  0007f	76 05		 jbe	 SHORT $LN23@push_back@2
  00081	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN23@push_back@2:
  00086	8b 54 24 1c	 mov	 edx, DWORD PTR __Val$[esp+20]
  0008a	8b 07		 mov	 eax, DWORD PTR [edi]
  0008c	52		 push	 edx
  0008d	53		 push	 ebx
  0008e	50		 push	 eax
  0008f	8d 44 24 1c	 lea	 eax, DWORD PTR $T113182[esp+36]
  00093	50		 push	 eax
  00094	8b cf		 mov	 ecx, edi
  00096	e8 00 00 00 00	 call	 ?insert@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::insert
  0009b	5f		 pop	 edi
  0009c	5e		 pop	 esi
  0009d	5d		 pop	 ebp
  0009e	5b		 pop	 ebx

; 824  : 		}

  0009f	83 c4 08	 add	 esp, 8
  000a2	c2 04 00	 ret	 4
?push_back@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back
_TEXT	ENDS
PUBLIC	??_C@_01BJJEKLCA@?$CC?$AA@			; `string'
PUBLIC	_pkVec_strToken$GSCopy$
PUBLIC	_c_szDelimeter$GSCopy$
PUBLIC	__$ArrayPad$
PUBLIC	?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z ; SplitLine
;	COMDAT ??_C@_01BJJEKLCA@?$CC?$AA@
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\iosfwd
CONST	SEGMENT
??_C@_01BJJEKLCA@?$CC?$AA@ DB '"', 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z$1
__ehfuncinfo$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\utils.cpp
xdata$x	ENDS
;	COMDAT ?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z
_TEXT	SEGMENT
_pkVec_strToken$GSCopy$ = -88				; size = 4
_c_szDelimeter$GSCopy$ = -84				; size = 4
$T113460 = -80						; size = 8
$T113298 = -72						; size = 28
_strLine$ = -44						; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_c_szLine$ = 8						; size = 4
_c_szDelimeter$ = 12					; size = 4
_pkVec_strToken$ = 16					; size = 4
?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z PROC ; SplitLine, COMDAT

; 538  : {

  00000	6a ff		 push	 -1
  00002	68 00 00 00 00	 push	 __ehhandler$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z
  00007	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  0000d	50		 push	 eax
  0000e	83 ec 4c	 sub	 esp, 76			; 0000004cH
  00011	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00016	33 c4		 xor	 eax, esp
  00018	89 44 24 48	 mov	 DWORD PTR __$ArrayPad$[esp+88], eax
  0001c	53		 push	 ebx
  0001d	55		 push	 ebp
  0001e	56		 push	 esi
  0001f	57		 push	 edi
  00020	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00025	33 c4		 xor	 eax, esp
  00027	50		 push	 eax
  00028	8d 44 24 60	 lea	 eax, DWORD PTR __$EHRec$[esp+108]
  0002c	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00032	8b 7c 24 78	 mov	 edi, DWORD PTR _pkVec_strToken$[esp+104]
  00036	8b 44 24 74	 mov	 eax, DWORD PTR _c_szDelimeter$[esp+104]
  0003a	8b 6c 24 70	 mov	 ebp, DWORD PTR _c_szLine$[esp+104]

; 539  : 	pkVec_strToken->reserve(10);

  0003e	6a 0a		 push	 10			; 0000000aH
  00040	8b cf		 mov	 ecx, edi

; 540  : 	pkVec_strToken->clear();

  00042	89 44 24 1c	 mov	 DWORD PTR _c_szDelimeter$GSCopy$[esp+112], eax
  00046	89 7c 24 18	 mov	 DWORD PTR _pkVec_strToken$GSCopy$[esp+112], edi
  0004a	e8 00 00 00 00	 call	 ?reserve@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXI@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::reserve
  0004f	8b 77 10	 mov	 esi, DWORD PTR [edi+16]
  00052	39 77 0c	 cmp	 DWORD PTR [edi+12], esi
  00055	76 05		 jbe	 SHORT $LN20@SplitLine
  00057	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN20@SplitLine:
  0005c	8b 1f		 mov	 ebx, DWORD PTR [edi]
  0005e	8b 7f 0c	 mov	 edi, DWORD PTR [edi+12]
  00061	8b 4c 24 14	 mov	 ecx, DWORD PTR _pkVec_strToken$GSCopy$[esp+108]
  00065	3b 79 10	 cmp	 edi, DWORD PTR [ecx+16]
  00068	76 09		 jbe	 SHORT $LN39@SplitLine
  0006a	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
  0006f	8b 4c 24 14	 mov	 ecx, DWORD PTR _pkVec_strToken$GSCopy$[esp+108]
$LN39@SplitLine:
  00073	8b 01		 mov	 eax, DWORD PTR [ecx]
  00075	56		 push	 esi
  00076	53		 push	 ebx
  00077	57		 push	 edi
  00078	50		 push	 eax
  00079	8d 54 24 2c	 lea	 edx, DWORD PTR $T113460[esp+124]
  0007d	52		 push	 edx
  0007e	e8 00 00 00 00	 call	 ?erase@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@V?$_Vector_const_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@0@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::erase

; 541  : 
; 542  : 	std::string strLine = c_szLine;

  00083	33 db		 xor	 ebx, ebx
  00085	8b c5		 mov	 eax, ebp
  00087	c7 44 24 58 0f
	00 00 00	 mov	 DWORD PTR _strLine$[esp+132], 15 ; 0000000fH
  0008f	89 5c 24 54	 mov	 DWORD PTR _strLine$[esp+128], ebx
  00093	88 5c 24 44	 mov	 BYTE PTR _strLine$[esp+112], bl
  00097	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  0009a	8d 9b 00 00 00
	00		 npad	 6
$LL220@SplitLine:
  000a0	8a 08		 mov	 cl, BYTE PTR [eax]
  000a2	40		 inc	 eax
  000a3	3a cb		 cmp	 cl, bl
  000a5	75 f9		 jne	 SHORT $LL220@SplitLine
  000a7	2b c2		 sub	 eax, edx
  000a9	50		 push	 eax
  000aa	55		 push	 ebp
  000ab	8d 4c 24 48	 lea	 ecx, DWORD PTR _strLine$[esp+116]
  000af	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
  000b4	89 5c 24 68	 mov	 DWORD PTR __$EHRec$[esp+116], ebx

; 543  : 
; 544  : 	DWORD basePos = 0;

  000b8	33 ff		 xor	 edi, edi
  000ba	8d 9b 00 00 00
	00		 npad	 6
$LL7@SplitLine:

; 545  : 
; 546  : 	do
; 547  : 	{
; 548  : 		int beginPos = strLine.find_first_not_of(c_szDelimeter, basePos);

  000c0	8b 6c 24 18	 mov	 ebp, DWORD PTR _c_szDelimeter$GSCopy$[esp+108]
  000c4	8b c5		 mov	 eax, ebp
  000c6	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
  000c9	8d a4 24 00 00
	00 00		 npad	 7
$LL221@SplitLine:
  000d0	8a 08		 mov	 cl, BYTE PTR [eax]
  000d2	40		 inc	 eax
  000d3	3a cb		 cmp	 cl, bl
  000d5	75 f9		 jne	 SHORT $LL221@SplitLine
  000d7	2b c2		 sub	 eax, edx
  000d9	50		 push	 eax
  000da	57		 push	 edi
  000db	55		 push	 ebp
  000dc	8d 4c 24 4c	 lea	 ecx, DWORD PTR _strLine$[esp+120]
  000e0	e8 00 00 00 00	 call	 ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_not_of
  000e5	8b f0		 mov	 esi, eax

; 549  : 		if (beginPos < 0)

  000e7	3b f3		 cmp	 esi, ebx
  000e9	0f 8c da 00 00
	00		 jl	 $LN217@SplitLine

; 551  : 
; 552  : 		int endPos;
; 553  : 
; 554  : 		if (strLine[beginPos] == '"')

  000ef	3b 74 24 54	 cmp	 esi, DWORD PTR _strLine$[esp+128]
  000f3	76 05		 jbe	 SHORT $LN120@SplitLine
  000f5	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN120@SplitLine:
  000fa	8b 44 24 44	 mov	 eax, DWORD PTR _strLine$[esp+112]
  000fe	bf 10 00 00 00	 mov	 edi, 16			; 00000010H
  00103	39 7c 24 58	 cmp	 DWORD PTR _strLine$[esp+132], edi
  00107	73 04		 jae	 SHORT $LN127@SplitLine
  00109	8d 44 24 44	 lea	 eax, DWORD PTR _strLine$[esp+112]
$LN127@SplitLine:
  0010d	80 3c 30 22	 cmp	 BYTE PTR [eax+esi], 34	; 00000022H
  00111	75 1f		 jne	 SHORT $LN3@SplitLine

; 555  : 		{
; 556  : 			++beginPos;
; 557  : 			endPos = strLine.find_first_of("\"", beginPos);

  00113	6a 01		 push	 1
  00115	46		 inc	 esi
  00116	56		 push	 esi
  00117	68 00 00 00 00	 push	 OFFSET ??_C@_01BJJEKLCA@?$CC?$AA@
  0011c	8d 4c 24 4c	 lea	 ecx, DWORD PTR _strLine$[esp+120]
  00120	e8 00 00 00 00	 call	 ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of

; 558  : 
; 559  : 			if (endPos < 0)

  00125	3b c3		 cmp	 eax, ebx
  00127	0f 8c b4 00 00
	00		 jl	 $LN219@SplitLine

; 561  : 			
; 562  : 			basePos = endPos + 1;

  0012d	8d 78 01	 lea	 edi, DWORD PTR [eax+1]

; 563  : 		}
; 564  : 		else

  00130	eb 1c		 jmp	 SHORT $LN1@SplitLine
$LN3@SplitLine:

; 565  : 		{
; 566  : 			endPos = strLine.find_first_of(c_szDelimeter, beginPos);

  00132	8b c5		 mov	 eax, ebp
  00134	8d 50 01	 lea	 edx, DWORD PTR [eax+1]
$LL222@SplitLine:
  00137	8a 08		 mov	 cl, BYTE PTR [eax]
  00139	40		 inc	 eax
  0013a	3a cb		 cmp	 cl, bl
  0013c	75 f9		 jne	 SHORT $LL222@SplitLine
  0013e	2b c2		 sub	 eax, edx
  00140	50		 push	 eax
  00141	56		 push	 esi
  00142	55		 push	 ebp
  00143	8d 4c 24 4c	 lea	 ecx, DWORD PTR _strLine$[esp+120]
  00147	e8 00 00 00 00	 call	 ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::find_first_of

; 567  : 			basePos = endPos;

  0014c	8b f8		 mov	 edi, eax
$LN1@SplitLine:

; 568  : 		}
; 569  : 
; 570  : 		pkVec_strToken->push_back(strLine.substr(beginPos, endPos - beginPos));

  0014e	2b c6		 sub	 eax, esi
  00150	50		 push	 eax
  00151	56		 push	 esi
  00152	8d 44 24 2c	 lea	 eax, DWORD PTR $T113298[esp+116]
  00156	50		 push	 eax
  00157	8d 4c 24 4c	 lea	 ecx, DWORD PTR _strLine$[esp+120]
  0015b	e8 00 00 00 00	 call	 ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::substr
  00160	8b 4c 24 14	 mov	 ecx, DWORD PTR _pkVec_strToken$GSCopy$[esp+108]
  00164	50		 push	 eax
  00165	c6 44 24 6c 01	 mov	 BYTE PTR __$EHRec$[esp+120], 1
  0016a	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::push_back
  0016f	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  00174	88 5c 24 68	 mov	 BYTE PTR __$EHRec$[esp+116], bl
  00178	39 74 24 3c	 cmp	 DWORD PTR $T113298[esp+132], esi
  0017c	72 0d		 jb	 SHORT $LN178@SplitLine
  0017e	8b 4c 24 28	 mov	 ecx, DWORD PTR $T113298[esp+112]
  00182	51		 push	 ecx
  00183	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00188	83 c4 04	 add	 esp, 4
$LN178@SplitLine:

; 571  : 	} while (basePos < strLine.length());

  0018b	3b 7c 24 54	 cmp	 edi, DWORD PTR _strLine$[esp+128]
  0018f	0f 82 2b ff ff
	ff		 jb	 $LL7@SplitLine

; 572  : 
; 573  : 	return true;

  00195	39 74 24 58	 cmp	 DWORD PTR _strLine$[esp+132], esi
  00199	72 0d		 jb	 SHORT $LN206@SplitLine
  0019b	8b 4c 24 44	 mov	 ecx, DWORD PTR _strLine$[esp+112]
  0019f	51		 push	 ecx
  001a0	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  001a5	83 c4 04	 add	 esp, 4
$LN206@SplitLine:
  001a8	b0 01		 mov	 al, 1
$LN8@SplitLine:

; 574  : }

  001aa	8b 4c 24 60	 mov	 ecx, DWORD PTR __$EHRec$[esp+108]
  001ae	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001b5	59		 pop	 ecx
  001b6	5f		 pop	 edi
  001b7	5e		 pop	 esi
  001b8	5d		 pop	 ebp
  001b9	5b		 pop	 ebx
  001ba	8b 4c 24 48	 mov	 ecx, DWORD PTR __$ArrayPad$[esp+88]
  001be	33 cc		 xor	 ecx, esp
  001c0	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001c5	83 c4 58	 add	 esp, 88			; 00000058H
  001c8	c3		 ret	 0
$LN217@SplitLine:

; 550  : 			return false;

  001c9	83 7c 24 58 10	 cmp	 DWORD PTR _strLine$[esp+132], 16 ; 00000010H
  001ce	72 0d		 jb	 SHORT $LN108@SplitLine
  001d0	8b 54 24 44	 mov	 edx, DWORD PTR _strLine$[esp+112]
  001d4	52		 push	 edx
  001d5	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  001da	83 c4 04	 add	 esp, 4
$LN108@SplitLine:
  001dd	32 c0		 xor	 al, al
  001df	eb c9		 jmp	 SHORT $LN8@SplitLine
$LN219@SplitLine:

; 560  : 				return false;

  001e1	39 7c 24 58	 cmp	 DWORD PTR _strLine$[esp+132], edi
  001e5	72 f6		 jb	 SHORT $LN108@SplitLine
  001e7	8b 44 24 44	 mov	 eax, DWORD PTR _strLine$[esp+112]
  001eb	50		 push	 eax
  001ec	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  001f1	83 c4 04	 add	 esp, 4
  001f4	32 c0		 xor	 al, al
  001f6	eb b2		 jmp	 SHORT $LN8@SplitLine
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR _strLine$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z$1:
  00008	8d 4d b8	 lea	 ecx, DWORD PTR $T113298[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> >
__ehhandler$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 a4	 lea	 eax, DWORD PTR [edx-92]
  00017	8b 4a a0	 mov	 ecx, DWORD PTR [edx-96]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	83 c0 10	 add	 eax, 16			; 00000010H
  00024	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00027	33 c8		 xor	 ecx, eax
  00029	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002e	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z
  00033	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?SplitLine@@YA_NPBD0PAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z ENDP ; SplitLine
; Function compile flags: /Ogtpy
;	COMDAT ??__E?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ
text$yc	SEGMENT
??__E?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ PROC ; `dynamic initializer for 'CDirRemover::ms_strDirectoryDeque'', COMDAT

; 512  : std::deque<std::string> CDirRemover::ms_strDirectoryDeque;

  00000	6a 04		 push	 4
  00002	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00007	33 c9		 xor	 ecx, ecx
  00009	83 c4 04	 add	 esp, 4
  0000c	3b c1		 cmp	 eax, ecx
  0000e	74 08		 je	 SHORT $LN20@ms_strDire
  00010	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A ; CDirRemover::ms_strDirectoryDeque
  00016	eb 02		 jmp	 SHORT $LN21@ms_strDire
$LN20@ms_strDire:
  00018	33 c0		 xor	 eax, eax
$LN21@ms_strDire:
  0001a	68 00 00 00 00	 push	 OFFSET ??__F?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ ; `dynamic atexit destructor for 'CDirRemover::ms_strDirectoryDeque''
  0001f	a3 00 00 00 00	 mov	 DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A, eax
  00024	89 0d 10 00 00
	00		 mov	 DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+16, ecx
  0002a	89 0d 14 00 00
	00		 mov	 DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+20, ecx
  00030	89 0d 18 00 00
	00		 mov	 DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+24, ecx
  00036	89 0d 1c 00 00
	00		 mov	 DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A+28, ecx
  0003c	e8 00 00 00 00	 call	 _atexit
  00041	59		 pop	 ecx
  00042	c3		 ret	 0
??__E?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ ENDP ; `dynamic initializer for 'CDirRemover::ms_strDirectoryDeque''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FstrPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@YAXXZ
text$yd	SEGMENT
??__FstrPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@YAXXZ PROC ; `GetOnlyPathName'::`2'::`dynamic atexit destructor for 'strPathName'', COMDAT
  00000	83 3d 18 00 00
	00 10		 cmp	 DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+24, 16 ; 00000010H
  00007	72 0e		 jb	 SHORT $LN19@dynamic
  00009	a1 04 00 00 00	 mov	 eax, DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+4
  0000e	50		 push	 eax
  0000f	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00014	83 c4 04	 add	 esp, 4
$LN19@dynamic:
  00017	33 c0		 xor	 eax, eax
  00019	c7 05 18 00 00
	00 0f 00 00 00	 mov	 DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+24, 15 ; 0000000fH
  00023	a3 14 00 00 00	 mov	 DWORD PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+20, eax
  00028	a2 04 00 00 00	 mov	 BYTE PTR ?strPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@4V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A+4, al
  0002d	c3		 ret	 0
??__FstrPathName@?1??GetOnlyPathName@@YAPBDPBD@Z@YAXXZ ENDP ; `GetOnlyPathName'::`2'::`dynamic atexit destructor for 'strPathName''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__F?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ
text$yd	SEGMENT
??__F?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ PROC ; `dynamic atexit destructor for 'CDirRemover::ms_strDirectoryDeque'', COMDAT
  00000	b9 00 00 00 00	 mov	 ecx, OFFSET ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A ; CDirRemover::ms_strDirectoryDeque
  00005	e8 00 00 00 00	 call	 ?_Tidy@?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@IAEXXZ ; std::deque<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Tidy
  0000a	a1 00 00 00 00	 mov	 eax, DWORD PTR ?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A
  0000f	50		 push	 eax
  00010	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00015	59		 pop	 ecx
  00016	c3		 ret	 0
??__F?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ ENDP ; `dynamic atexit destructor for 'CDirRemover::ms_strDirectoryDeque''
text$yd	ENDS
PUBLIC	?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A ; CDirRemover::ms_strDirectoryDeque
_BSS	SEGMENT
?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A DB 020H DUP (?) ; CDirRemover::ms_strDirectoryDeque
_BSS	ENDS
CRT$XCU	SEGMENT
?ms_strDirectoryDeque$initializer$@CDirRemover@@1P6AXXZA DD FLAT:??__E?ms_strDirectoryDeque@CDirRemover@@1V?$deque@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A@@YAXXZ ; CDirRemover::ms_strDirectoryDeque$initializer$
CRT$XCU	ENDS
END
