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

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

INCLUDELIB OLDNAMES

PUBLIC	??D?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WXZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator*
PUBLIC	??E?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@XZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator++
PUBLIC	??8?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator==
PUBLIC	??9?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator!=
PUBLIC	??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
PUBLIC	??_C@_15IOLAJFNF@?$AA?$CF?$AA?$CF?$AA?$AA@	; `string'
PUBLIC	??_C@_0CK@CNMIMHGM@Invalid?5escaping?5in?5DecodeASCIIS@ ; `string'
EXTRN	__imp__WideCharToMultiByte@32:PROC
;	COMDAT ??_C@_0CK@CNMIMHGM@Invalid?5escaping?5in?5DecodeASCIIS@
CONST	SEGMENT
??_C@_0CK@CNMIMHGM@Invalid?5escaping?5in?5DecodeASCIIS@ DB 'Invalid escap'
	DB	'ing in DecodeASCIISafeString', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_15IOLAJFNF@?$AA?$CF?$AA?$CF?$AA?$AA@
CONST	SEGMENT
??_C@_15IOLAJFNF@?$AA?$CF?$AA?$CF?$AA?$AA@ DB '%', 00H, '%', 00H, 00H, 00H ; `string'
PUBLIC	?Trim@@YAXAAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; Trim
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\stringhelpers.cpp
;	COMDAT ?Trim@@YAXAAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z
_TEXT	SEGMENT
_StringToTrim$ = 8					; size = 4
?Trim@@YAXAAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z PROC ; Trim, COMDAT

; 35   : {

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

; 36   : }

  00003	5d		 pop	 ebp
  00004	c3		 ret	 0
?Trim@@YAXAAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ENDP ; Trim
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??8?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??8?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z PROC ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator==, COMDAT
; _this$ = ecx

; 219  : 		{	// test for iterator equality

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

; 220  : 
; 221  :  #if _HAS_ITERATOR_DEBUGGING
; 222  : 		_Compat(_Right);
; 223  :  #else
; 224  : 		if (this->_Mycont != _IGNORE_MYCONT)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 38 fc	 cmp	 DWORD PTR [eax], -4	; fffffffcH
  0000d	74 2b		 je	 SHORT $LN6@operator@55

; 225  : 		{
; 226  : 			_SCL_SECURE_VALIDATE(this->_Has_container() && this->_Same_container(_Right));

  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ?_Has_container@_Iterator_base_secure@std@@QBE_NXZ ; std::_Iterator_base_secure::_Has_container
  00017	0f b6 c8	 movzx	 ecx, al
  0001a	85 c9		 test	 ecx, ecx
  0001c	74 13		 je	 SHORT $LN4@operator@55
  0001e	8b 55 08	 mov	 edx, DWORD PTR __Right$[ebp]
  00021	52		 push	 edx
  00022	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00025	e8 00 00 00 00	 call	 ?_Same_container@_Iterator_base_secure@std@@QBE_NABV12@@Z ; std::_Iterator_base_secure::_Same_container
  0002a	0f b6 c0	 movzx	 eax, al
  0002d	85 c0		 test	 eax, eax
  0002f	75 05		 jne	 SHORT $LN2@operator@55
$LN4@operator@55:
  00031	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@55:
  00036	33 c9		 xor	 ecx, ecx
  00038	75 fc		 jne	 SHORT $LN2@operator@55
$LN6@operator@55:

; 227  : 		}
; 228  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 229  : 
; 230  : 		return (_Myptr == _Right._Myptr);

  0003a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0003d	8b 45 08	 mov	 eax, DWORD PTR __Right$[ebp]
  00040	8b 4a 04	 mov	 ecx, DWORD PTR [edx+4]
  00043	33 d2		 xor	 edx, edx
  00045	3b 48 04	 cmp	 ecx, DWORD PTR [eax+4]
  00048	0f 94 c2	 sete	 dl
  0004b	8a c2		 mov	 al, dl

; 231  : 		}

  0004d	8b e5		 mov	 esp, ebp
  0004f	5d		 pop	 ebp
  00050	c2 04 00	 ret	 4
??8?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z ENDP ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator==
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??9?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Right$ = 8						; size = 4
??9?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z PROC ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator!=, COMDAT
; _this$ = ecx

; 234  : 		{	// test for iterator inequality

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

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

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

; 236  : 		}

  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c2 04 00	 ret	 4
??9?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z ENDP ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator!=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??E?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??E?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@XZ PROC ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator++, COMDAT
; _this$ = ecx

; 133  : 		{	// preincrement

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

; 134  : 		if (this->_Mycont != _IGNORE_MYCONT)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 38 fc	 cmp	 DWORD PTR [eax], -4	; fffffffcH
  0000d	74 3e		 je	 SHORT $LN9@operator@56

; 135  : 		{
; 136  : 			_SCL_SECURE_VALIDATE(this->_Has_container());

  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ?_Has_container@_Iterator_base_secure@std@@QBE_NXZ ; std::_Iterator_base_secure::_Has_container
  00017	0f b6 c8	 movzx	 ecx, al
  0001a	85 c9		 test	 ecx, ecx
  0001c	75 05		 jne	 SHORT $LN6@operator@56
  0001e	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN6@operator@56:
  00023	33 d2		 xor	 edx, edx
  00025	75 fc		 jne	 SHORT $LN6@operator@56

; 137  : 			_SCL_SECURE_VALIDATE_RANGE(_Myptr < (((_Mystring *)this->_Mycont)->_Myptr() + ((_Mystring *)this->_Mycont)->_Mysize));

  00027	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0002c	e8 00 00 00 00	 call	 ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	8b 11		 mov	 edx, DWORD PTR [ecx]
  00036	8b 4a 14	 mov	 ecx, DWORD PTR [edx+20]
  00039	8d 14 48	 lea	 edx, DWORD PTR [eax+ecx*2]
  0003c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	39 50 04	 cmp	 DWORD PTR [eax+4], edx
  00042	72 05		 jb	 SHORT $LN2@operator@56
  00044	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@56:
  00049	33 c9		 xor	 ecx, ecx
  0004b	75 fc		 jne	 SHORT $LN2@operator@56
$LN9@operator@56:

; 138  : 		}
; 139  : 		++_Myptr;

  0004d	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00050	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00053	83 c0 02	 add	 eax, 2
  00056	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00059	89 41 04	 mov	 DWORD PTR [ecx+4], eax

; 140  : 		return (*this);

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

; 141  : 		}

  0005f	8b e5		 mov	 esp, ebp
  00061	5d		 pop	 ebp
  00062	c3		 ret	 0
??E?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@XZ ENDP ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator++
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??D?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??D?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WXZ PROC ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator*, COMDAT
; _this$ = ecx

; 104  : 		{	// return designated object

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

; 105  : 
; 106  :  #if _HAS_ITERATOR_DEBUGGING
; 107  : 		if (this->_Mycont == 0 || _Myptr == 0
; 108  : 			|| _Myptr < ((_Mystring *)this->_Mycont)->_Myptr()
; 109  : 			|| ((_Mystring *)this->_Mycont)->_Myptr()
; 110  : 				+ ((_Mystring *)this->_Mycont)->_Mysize <= _Myptr)
; 111  : 			{
; 112  : 			_DEBUG_ERROR("string iterator not dereferencable");
; 113  : 			_SCL_SECURE_OUT_OF_RANGE;
; 114  : 			}
; 115  : 		__analysis_assume(_Myptr != 0);
; 116  :  #else
; 117  : 		if (this->_Mycont != _IGNORE_MYCONT)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 38 fc	 cmp	 DWORD PTR [eax], -4	; fffffffcH
  0000d	74 3e		 je	 SHORT $LN9@operator@57

; 118  : 		{
; 119  : 			_SCL_SECURE_VALIDATE(this->_Has_container());

  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ?_Has_container@_Iterator_base_secure@std@@QBE_NXZ ; std::_Iterator_base_secure::_Has_container
  00017	0f b6 c8	 movzx	 ecx, al
  0001a	85 c9		 test	 ecx, ecx
  0001c	75 05		 jne	 SHORT $LN6@operator@57
  0001e	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN6@operator@57:
  00023	33 d2		 xor	 edx, edx
  00025	75 fc		 jne	 SHORT $LN6@operator@57

; 120  : 			_SCL_SECURE_VALIDATE_RANGE(_Myptr < (((_Mystring *)this->_Mycont)->_Myptr() + ((_Mystring *)(this->_Mycont))->_Mysize));

  00027	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0002c	e8 00 00 00 00	 call	 ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Myptr
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	8b 11		 mov	 edx, DWORD PTR [ecx]
  00036	8b 4a 14	 mov	 ecx, DWORD PTR [edx+20]
  00039	8d 14 48	 lea	 edx, DWORD PTR [eax+ecx*2]
  0003c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	39 50 04	 cmp	 DWORD PTR [eax+4], edx
  00042	72 05		 jb	 SHORT $LN2@operator@57
  00044	e8 00 00 00 00	 call	 __invalid_parameter_noinfo
$LN2@operator@57:
  00049	33 c9		 xor	 ecx, ecx
  0004b	75 fc		 jne	 SHORT $LN2@operator@57
$LN9@operator@57:

; 121  : 		}
; 122  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 123  : 
; 124  : 		return (*_Myptr);

  0004d	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00050	8b 42 04	 mov	 eax, DWORD PTR [edx+4]

; 125  : 		}

  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
??D?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WXZ ENDP ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator*
PUBLIC	?AreEqualInsensitive@@YAHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0@Z ; AreEqualInsensitive
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\stringhelpers.cpp
;	COMDAT ?AreEqualInsensitive@@YAHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0@Z
_TEXT	SEGMENT
_String1$ = 8						; size = 4
_String2$ = 12						; size = 4
?AreEqualInsensitive@@YAHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0@Z PROC ; AreEqualInsensitive, COMDAT

; 30   : {

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

; 31   :     return _tcsicmp(String1.c_str(), String2.c_str()) == 0;

  00003	8b 4d 0c	 mov	 ecx, DWORD PTR _String2$[ebp]
  00006	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0000b	50		 push	 eax
  0000c	8b 4d 08	 mov	 ecx, DWORD PTR _String1$[ebp]
  0000f	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00014	50		 push	 eax
  00015	e8 00 00 00 00	 call	 __wcsicmp
  0001a	83 c4 08	 add	 esp, 8
  0001d	f7 d8		 neg	 eax
  0001f	1b c0		 sbb	 eax, eax
  00021	83 c0 01	 add	 eax, 1

; 32   : }

  00024	5d		 pop	 ebp
  00025	c3		 ret	 0
?AreEqualInsensitive@@YAHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0@Z ENDP ; AreEqualInsensitive
PUBLIC	__$ArrayPad$
PUBLIC	?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z ; ReplaceCharWithString
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z$0
__ehfuncinfo$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z
_TEXT	SEGMENT
$T331985 = -52						; size = 4
_CurChar$ = -48						; size = 4
_Result$ = -44						; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_InString$ = 12						; size = 4
_CharToReplace$ = 16					; size = 1
_StringToReplace$ = 20					; size = 4
?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z PROC ; ReplaceCharWithString, COMDAT

; 59   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 28	 sub	 esp, 40			; 00000028H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 f0	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	c7 45 cc 00 00
	00 00		 mov	 DWORD PTR $T331985[ebp], 0

; 60   :     tstring Result;

  0002f	8d 4d d4	 lea	 ecx, DWORD PTR _Result$[ebp]
  00032	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00037	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 61   :     const TCHAR*  CurChar = InString.c_str();

  0003e	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  00041	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00046	89 45 d0	 mov	 DWORD PTR _CurChar$[ebp], eax
$LN4@ReplaceCha:

; 62   :     while (*CurChar != '\0' )

  00049	8b 45 d0	 mov	 eax, DWORD PTR _CurChar$[ebp]
  0004c	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  0004f	85 c9		 test	 ecx, ecx
  00051	74 36		 je	 SHORT $LN3@ReplaceCha

; 63   :     {
; 64   :         if (*CurChar == CharToReplace )

  00053	8b 55 d0	 mov	 edx, DWORD PTR _CurChar$[ebp]
  00056	0f b7 02	 movzx	 eax, WORD PTR [edx]
  00059	0f be 4d 10	 movsx	 ecx, BYTE PTR _CharToReplace$[ebp]
  0005d	3b c1		 cmp	 eax, ecx
  0005f	75 0e		 jne	 SHORT $LN2@ReplaceCha

; 65   :         {
; 66   :             Result += StringToReplace;

  00061	8b 55 14	 mov	 edx, DWORD PTR _StringToReplace$[ebp]
  00064	52		 push	 edx
  00065	8d 4d d4	 lea	 ecx, DWORD PTR _Result$[ebp]
  00068	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=

; 67   :         }
; 68   :         else

  0006d	eb 0f		 jmp	 SHORT $LN1@ReplaceCha
$LN2@ReplaceCha:

; 69   :         {
; 70   :             Result += *CurChar;

  0006f	8b 45 d0	 mov	 eax, DWORD PTR _CurChar$[ebp]
  00072	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  00075	51		 push	 ecx
  00076	8d 4d d4	 lea	 ecx, DWORD PTR _Result$[ebp]
  00079	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=
$LN1@ReplaceCha:

; 71   :         }
; 72   :         ++CurChar;

  0007e	8b 55 d0	 mov	 edx, DWORD PTR _CurChar$[ebp]
  00081	83 c2 02	 add	 edx, 2
  00084	89 55 d0	 mov	 DWORD PTR _CurChar$[ebp], edx

; 73   :     }

  00087	eb c0		 jmp	 SHORT $LN4@ReplaceCha
$LN3@ReplaceCha:

; 74   :     return Result;

  00089	8d 45 d4	 lea	 eax, DWORD PTR _Result$[ebp]
  0008c	50		 push	 eax
  0008d	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00090	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00095	8b 4d cc	 mov	 ecx, DWORD PTR $T331985[ebp]
  00098	83 c9 01	 or	 ecx, 1
  0009b	89 4d cc	 mov	 DWORD PTR $T331985[ebp], ecx
  0009e	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000a2	8d 4d d4	 lea	 ecx, DWORD PTR _Result$[ebp]
  000a5	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000aa	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 75   : }

  000ad	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000b0	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000b7	59		 pop	 ecx
  000b8	8b 4d f0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000bb	33 cd		 xor	 ecx, ebp
  000bd	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000c2	8b e5		 mov	 esp, ebp
  000c4	5d		 pop	 ebp
  000c5	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR _Result$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z$1:
  00008	8b 45 cc	 mov	 eax, DWORD PTR $T331985[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN9@ReplaceCha
  00014	83 65 cc fe	 and	 DWORD PTR $T331985[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN9@ReplaceCha:
  00020	c3		 ret	 0
__ehhandler$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a d4	 mov	 ecx, DWORD PTR [edx-44]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00035	33 c8		 xor	 ecx, eax
  00037	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z
  00041	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?ReplaceCharWithString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@D0@Z ENDP ; ReplaceCharWithString
PUBLIC	?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; MBCSToUnicode
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$0
__ehfuncinfo$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
$T340894 = -44						; size = 4
_name$ = -40						; size = 24
_n$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_InString$ = 12						; size = 4
?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; MBCSToUnicode, COMDAT

; 49   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$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 20	 sub	 esp, 32			; 00000020H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR $T340894[ebp], 0

; 50   :     //covert to wide char
; 51   :     int n=MultiByteToWideChar(CP_ACP, 0, InString.c_str(), -1, NULL, 0);

  0002c	6a 00		 push	 0
  0002e	6a 00		 push	 0
  00030	6a ff		 push	 -1
  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  00035	e8 00 00 00 00	 call	 ?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
  0003a	50		 push	 eax
  0003b	6a 00		 push	 0
  0003d	6a 00		 push	 0
  0003f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MultiByteToWideChar@24
  00045	89 45 f0	 mov	 DWORD PTR _n$[ebp], eax

; 52   :     vector<wchar_t> name(n);

  00048	8b 45 f0	 mov	 eax, DWORD PTR _n$[ebp]
  0004b	50		 push	 eax
  0004c	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  0004f	e8 00 00 00 00	 call	 ??0?$vector@_WV?$allocator@_W@std@@@std@@QAE@I@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> >
  00054	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 53   :     MultiByteToWideChar(CP_ACP, 0, InString.c_str(), -1, &name[0], n);

  0005b	8b 4d f0	 mov	 ecx, DWORD PTR _n$[ebp]
  0005e	51		 push	 ecx
  0005f	6a 00		 push	 0
  00061	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  00064	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00069	50		 push	 eax
  0006a	6a ff		 push	 -1
  0006c	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  0006f	e8 00 00 00 00	 call	 ?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
  00074	50		 push	 eax
  00075	6a 00		 push	 0
  00077	6a 00		 push	 0
  00079	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MultiByteToWideChar@24

; 54   :     return &name[0];

  0007f	6a 00		 push	 0
  00081	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  00084	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00089	50		 push	 eax
  0008a	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0008d	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00092	8b 55 d4	 mov	 edx, DWORD PTR $T340894[ebp]
  00095	83 ca 01	 or	 edx, 1
  00098	89 55 d4	 mov	 DWORD PTR $T340894[ebp], edx
  0009b	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0009f	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  000a2	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000a7	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 55   : }

  000aa	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000ad	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000b4	59		 pop	 ecx
  000b5	8b e5		 mov	 esp, ebp
  000b7	5d		 pop	 ebp
  000b8	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__unwindfunclet$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z$1:
  00008	8b 45 d4	 mov	 eax, DWORD PTR $T340894[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN5@MBCSToUnic@2
  00014	83 65 d4 fe	 and	 DWORD PTR $T340894[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN5@MBCSToUnic@2:
  00020	c3		 ret	 0
__ehhandler$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a dc	 mov	 ecx, DWORD PTR [edx-36]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; MBCSToUnicode
PUBLIC	?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z ; UnicodeToMBCS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z$0
__ehfuncinfo$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z
_TEXT	SEGMENT
$T340906 = -44						; size = 4
_name$ = -40						; size = 24
_n$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_InString$ = 12						; size = 4
?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z PROC ; UnicodeToMBCS, COMDAT

; 40   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 20	 sub	 esp, 32			; 00000020H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR $T340906[ebp], 0

; 41   :     //covert to char
; 42   :     int n=WideCharToMultiByte(CP_ACP, 0, InString.c_str(), -1, NULL, 0, NULL, NULL);

  0002c	6a 00		 push	 0
  0002e	6a 00		 push	 0
  00030	6a 00		 push	 0
  00032	6a 00		 push	 0
  00034	6a ff		 push	 -1
  00036	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  00039	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0003e	50		 push	 eax
  0003f	6a 00		 push	 0
  00041	6a 00		 push	 0
  00043	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WideCharToMultiByte@32
  00049	89 45 f0	 mov	 DWORD PTR _n$[ebp], eax

; 43   :     vector<char> name(n);

  0004c	8b 45 f0	 mov	 eax, DWORD PTR _n$[ebp]
  0004f	50		 push	 eax
  00050	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  00053	e8 00 00 00 00	 call	 ??0?$vector@DV?$allocator@D@std@@@std@@QAE@I@Z ; std::vector<char,std::allocator<char> >::vector<char,std::allocator<char> >
  00058	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 44   :     WideCharToMultiByte(CP_ACP, 0, InString.c_str(), -1, &name[0], n, NULL, NULL);

  0005f	6a 00		 push	 0
  00061	6a 00		 push	 0
  00063	8b 4d f0	 mov	 ecx, DWORD PTR _n$[ebp]
  00066	51		 push	 ecx
  00067	6a 00		 push	 0
  00069	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  0006c	e8 00 00 00 00	 call	 ??A?$vector@DV?$allocator@D@std@@@std@@QAEAADI@Z ; std::vector<char,std::allocator<char> >::operator[]
  00071	50		 push	 eax
  00072	6a ff		 push	 -1
  00074	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  00077	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0007c	50		 push	 eax
  0007d	6a 00		 push	 0
  0007f	6a 00		 push	 0
  00081	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WideCharToMultiByte@32

; 45   :     return &name[0];

  00087	6a 00		 push	 0
  00089	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  0008c	e8 00 00 00 00	 call	 ??A?$vector@DV?$allocator@D@std@@@std@@QAEAADI@Z ; std::vector<char,std::allocator<char> >::operator[]
  00091	50		 push	 eax
  00092	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00095	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  0009a	8b 55 d4	 mov	 edx, DWORD PTR $T340906[ebp]
  0009d	83 ca 01	 or	 edx, 1
  000a0	89 55 d4	 mov	 DWORD PTR $T340906[ebp], edx
  000a3	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000a7	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  000aa	e8 00 00 00 00	 call	 ??1?$vector@DV?$allocator@D@std@@@std@@QAE@XZ ; std::vector<char,std::allocator<char> >::~vector<char,std::allocator<char> >
  000af	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 46   : }

  000b2	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000b5	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000bc	59		 pop	 ecx
  000bd	8b e5		 mov	 esp, ebp
  000bf	5d		 pop	 ebp
  000c0	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR _name$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@DV?$allocator@D@std@@@std@@QAE@XZ ; std::vector<char,std::allocator<char> >::~vector<char,std::allocator<char> >
__unwindfunclet$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z$1:
  00008	8b 45 d4	 mov	 eax, DWORD PTR $T340906[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN5@UnicodeToM
  00014	83 65 d4 fe	 and	 DWORD PTR $T340906[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	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> >
$LN5@UnicodeToM:
  00020	c3		 ret	 0
__ehhandler$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a dc	 mov	 ecx, DWORD PTR [edx-36]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?UnicodeToMBCS@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z ENDP ; UnicodeToMBCS
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\ostream
xdata$x	SEGMENT
__unwindtable$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$3
	DD	00H
	DD	00H
	DD	00H
	DD	00H
__catchsym$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$4 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$0
__tryblocktable$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z DD 02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:__catchsym$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$4
__ehfuncinfo$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z
_TEXT	SEGMENT
tv144 = -68						; size = 4
tv290 = -64						; size = 4
tv65 = -60						; size = 4
$T347489 = -56						; size = 4
$T347488 = -52						; size = 2
$T347487 = -50						; size = 2
$T347486 = -48						; size = 2
$T347485 = -46						; size = 2
$T347484 = -44						; size = 2
$T347483 = -42						; size = 2
$T347480 = -40						; size = 4
__Ctype_fac$141049 = -36				; size = 4
__Pad$141053 = -32					; size = 4
__Ok$ = -28						; size = 8
__State$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Ostr$ = 8						; size = 4
__Ch$ = 12						; size = 1
??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z PROC ; std::operator<<<wchar_t,std::char_traits<wchar_t> >, COMDAT

; 702  : 	{	// insert a character

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	83 ec 34	 sub	 esp, 52			; 00000034H
  00015	53		 push	 ebx
  00016	56		 push	 esi
  00017	57		 push	 edi
  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001d	33 c5		 xor	 eax, ebp
  0001f	50		 push	 eax
  00020	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00023	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00029	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 703  : 	ios_base::iostate _State = ios_base::goodbit;

  0002c	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR __State$[ebp], 0

; 704  : 	const typename basic_ostream<_Elem, _Traits>::sentry _Ok(_Ostr);

  00033	8b 45 08	 mov	 eax, DWORD PTR __Ostr$[ebp]
  00036	50		 push	 eax
  00037	8d 4d e4	 lea	 ecx, DWORD PTR __Ok$[ebp]
  0003a	e8 00 00 00 00	 call	 ??0sentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::sentry::sentry
  0003f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 705  : 
; 706  : 	if (_Ok)

  00046	8d 4d e4	 lea	 ecx, DWORD PTR __Ok$[ebp]
  00049	e8 00 00 00 00	 call	 ??Bsentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::sentry::operator bool
  0004e	0f b6 c8	 movzx	 ecx, al
  00051	85 c9		 test	 ecx, ecx
  00053	0f 84 ff 01 00
	00		 je	 $LN12@operator@519

; 707  : 		{	// state okay, insert
; 708  : 		const ctype<_Elem>& _Ctype_fac = _USE(_Ostr.getloc(), ctype<_Elem>);

  00059	8d 55 d8	 lea	 edx, DWORD PTR $T347480[ebp]
  0005c	52		 push	 edx
  0005d	8b 45 08	 mov	 eax, DWORD PTR __Ostr$[ebp]
  00060	8b 08		 mov	 ecx, DWORD PTR [eax]
  00062	8b 55 08	 mov	 edx, DWORD PTR __Ostr$[ebp]
  00065	03 51 04	 add	 edx, DWORD PTR [ecx+4]
  00068	8b ca		 mov	 ecx, edx
  0006a	e8 00 00 00 00	 call	 ?getloc@ios_base@std@@QBE?AVlocale@2@XZ ; std::ios_base::getloc
  0006f	89 45 c4	 mov	 DWORD PTR tv65[ebp], eax
  00072	8b 45 c4	 mov	 eax, DWORD PTR tv65[ebp]
  00075	89 45 c0	 mov	 DWORD PTR tv290[ebp], eax
  00078	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  0007c	8b 4d c0	 mov	 ecx, DWORD PTR tv290[ebp]
  0007f	51		 push	 ecx
  00080	e8 00 00 00 00	 call	 ??$use_facet@V?$ctype@_W@std@@@std@@YAABV?$ctype@_W@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<wchar_t> >
  00085	83 c4 04	 add	 esp, 4
  00088	89 45 dc	 mov	 DWORD PTR __Ctype_fac$141049[ebp], eax
  0008b	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  0008f	8d 4d d8	 lea	 ecx, DWORD PTR $T347480[ebp]
  00092	e8 00 00 00 00	 call	 ??1locale@std@@QAE@XZ	; std::locale::~locale

; 709  : 		streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1;

  00097	8b 55 08	 mov	 edx, DWORD PTR __Ostr$[ebp]
  0009a	8b 02		 mov	 eax, DWORD PTR [edx]
  0009c	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  0009f	03 48 04	 add	 ecx, DWORD PTR [eax+4]
  000a2	e8 00 00 00 00	 call	 ?width@ios_base@std@@QBEHXZ ; std::ios_base::width
  000a7	83 f8 01	 cmp	 eax, 1
  000aa	7f 09		 jg	 SHORT $LN15@operator@519
  000ac	c7 45 bc 00 00
	00 00		 mov	 DWORD PTR tv144[ebp], 0
  000b3	eb 16		 jmp	 SHORT $LN16@operator@519
$LN15@operator@519:
  000b5	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  000b8	8b 11		 mov	 edx, DWORD PTR [ecx]
  000ba	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  000bd	03 4a 04	 add	 ecx, DWORD PTR [edx+4]
  000c0	e8 00 00 00 00	 call	 ?width@ios_base@std@@QBEHXZ ; std::ios_base::width
  000c5	83 e8 01	 sub	 eax, 1
  000c8	89 45 bc	 mov	 DWORD PTR tv144[ebp], eax
$LN16@operator@519:
  000cb	8b 45 bc	 mov	 eax, DWORD PTR tv144[ebp]
  000ce	89 45 e0	 mov	 DWORD PTR __Pad$141053[ebp], eax

; 710  : 
; 711  : 		_TRY_IO_BEGIN

  000d1	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+12], 2

; 712  : 		if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left)

  000d5	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  000d8	8b 11		 mov	 edx, DWORD PTR [ecx]
  000da	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  000dd	03 4a 04	 add	 ecx, DWORD PTR [edx+4]
  000e0	e8 00 00 00 00	 call	 ?flags@ios_base@std@@QBEHXZ ; std::ios_base::flags
  000e5	25 c0 01 00 00	 and	 eax, 448		; 000001c0H
  000ea	83 f8 40	 cmp	 eax, 64			; 00000040H
  000ed	74 71		 je	 SHORT $LN10@operator@519

; 713  : 			for (; _State == ios_base::goodbit && 0 < _Pad;
; 714  : 				--_Pad)	// pad on left

  000ef	eb 09		 jmp	 SHORT $LN9@operator@519
$LN8@operator@519:
  000f1	8b 45 e0	 mov	 eax, DWORD PTR __Pad$141053[ebp]
  000f4	83 e8 01	 sub	 eax, 1
  000f7	89 45 e0	 mov	 DWORD PTR __Pad$141053[ebp], eax
$LN9@operator@519:
  000fa	83 7d ec 00	 cmp	 DWORD PTR __State$[ebp], 0
  000fe	75 60		 jne	 SHORT $LN10@operator@519
  00100	83 7d e0 00	 cmp	 DWORD PTR __Pad$141053[ebp], 0
  00104	7e 5a		 jle	 SHORT $LN10@operator@519

; 715  : 				if (_Traits::eq_int_type(_Traits::eof(),
; 716  : 					_Ostr.rdbuf()->sputc(_Ostr.fill())))

  00106	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  00109	8b 11		 mov	 edx, DWORD PTR [ecx]
  0010b	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  0010e	03 4a 04	 add	 ecx, DWORD PTR [edx+4]
  00111	e8 00 00 00 00	 call	 ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::fill
  00116	0f b7 c0	 movzx	 eax, ax
  00119	50		 push	 eax
  0011a	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  0011d	8b 11		 mov	 edx, DWORD PTR [ecx]
  0011f	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  00122	03 4a 04	 add	 ecx, DWORD PTR [edx+4]
  00125	e8 00 00 00 00	 call	 ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::rdbuf
  0012a	8b c8		 mov	 ecx, eax
  0012c	e8 00 00 00 00	 call	 ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z ; std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >::sputc
  00131	66 89 45 d6	 mov	 WORD PTR $T347483[ebp], ax
  00135	e8 00 00 00 00	 call	 ?eof@?$char_traits@_W@std@@SAGXZ ; std::char_traits<wchar_t>::eof
  0013a	66 89 45 d4	 mov	 WORD PTR $T347484[ebp], ax
  0013e	8d 45 d6	 lea	 eax, DWORD PTR $T347483[ebp]
  00141	50		 push	 eax
  00142	8d 4d d4	 lea	 ecx, DWORD PTR $T347484[ebp]
  00145	51		 push	 ecx
  00146	e8 00 00 00 00	 call	 ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z ; std::char_traits<wchar_t>::eq_int_type
  0014b	83 c4 08	 add	 esp, 8
  0014e	0f b6 d0	 movzx	 edx, al
  00151	85 d2		 test	 edx, edx
  00153	74 09		 je	 SHORT $LN6@operator@519

; 717  : 					_State |= ios_base::badbit;

  00155	8b 45 ec	 mov	 eax, DWORD PTR __State$[ebp]
  00158	83 c8 04	 or	 eax, 4
  0015b	89 45 ec	 mov	 DWORD PTR __State$[ebp], eax
$LN6@operator@519:

; 718  : 
; 719  : 		if (_State == ios_base::goodbit

  0015e	eb 91		 jmp	 SHORT $LN8@operator@519
$LN10@operator@519:

; 720  : 			&& _Traits::eq_int_type(_Traits::eof(),
; 721  : 				_Ostr.rdbuf()->sputc(_Ctype_fac.widen(_Ch))))

  00160	83 7d ec 00	 cmp	 DWORD PTR __State$[ebp], 0
  00164	75 57		 jne	 SHORT $LN5@operator@519
  00166	0f b6 4d 0c	 movzx	 ecx, BYTE PTR __Ch$[ebp]
  0016a	51		 push	 ecx
  0016b	8b 4d dc	 mov	 ecx, DWORD PTR __Ctype_fac$141049[ebp]
  0016e	e8 00 00 00 00	 call	 ?widen@?$ctype@_W@std@@QBE_WD@Z ; std::ctype<wchar_t>::widen
  00173	0f b7 d0	 movzx	 edx, ax
  00176	52		 push	 edx
  00177	8b 45 08	 mov	 eax, DWORD PTR __Ostr$[ebp]
  0017a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0017c	8b 55 08	 mov	 edx, DWORD PTR __Ostr$[ebp]
  0017f	03 51 04	 add	 edx, DWORD PTR [ecx+4]
  00182	8b ca		 mov	 ecx, edx
  00184	e8 00 00 00 00	 call	 ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::rdbuf
  00189	8b c8		 mov	 ecx, eax
  0018b	e8 00 00 00 00	 call	 ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z ; std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >::sputc
  00190	66 89 45 d2	 mov	 WORD PTR $T347485[ebp], ax
  00194	e8 00 00 00 00	 call	 ?eof@?$char_traits@_W@std@@SAGXZ ; std::char_traits<wchar_t>::eof
  00199	66 89 45 d0	 mov	 WORD PTR $T347486[ebp], ax
  0019d	8d 45 d2	 lea	 eax, DWORD PTR $T347485[ebp]
  001a0	50		 push	 eax
  001a1	8d 4d d0	 lea	 ecx, DWORD PTR $T347486[ebp]
  001a4	51		 push	 ecx
  001a5	e8 00 00 00 00	 call	 ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z ; std::char_traits<wchar_t>::eq_int_type
  001aa	83 c4 08	 add	 esp, 8
  001ad	0f b6 d0	 movzx	 edx, al
  001b0	85 d2		 test	 edx, edx
  001b2	74 09		 je	 SHORT $LN5@operator@519

; 722  : 			_State |= ios_base::badbit;

  001b4	8b 45 ec	 mov	 eax, DWORD PTR __State$[ebp]
  001b7	83 c8 04	 or	 eax, 4
  001ba	89 45 ec	 mov	 DWORD PTR __State$[ebp], eax
$LN5@operator@519:

; 723  : 
; 724  : 		for (; _State == ios_base::goodbit && 0 < _Pad;
; 725  : 			--_Pad)	// pad on right

  001bd	eb 09		 jmp	 SHORT $LN4@operator@519
$LN3@operator@519:
  001bf	8b 4d e0	 mov	 ecx, DWORD PTR __Pad$141053[ebp]
  001c2	83 e9 01	 sub	 ecx, 1
  001c5	89 4d e0	 mov	 DWORD PTR __Pad$141053[ebp], ecx
$LN4@operator@519:
  001c8	83 7d ec 00	 cmp	 DWORD PTR __State$[ebp], 0
  001cc	75 60		 jne	 SHORT $LN2@operator@519
  001ce	83 7d e0 00	 cmp	 DWORD PTR __Pad$141053[ebp], 0
  001d2	7e 5a		 jle	 SHORT $LN2@operator@519

; 726  : 			if (_Traits::eq_int_type(_Traits::eof(),
; 727  : 				_Ostr.rdbuf()->sputc(_Ostr.fill())))

  001d4	8b 55 08	 mov	 edx, DWORD PTR __Ostr$[ebp]
  001d7	8b 02		 mov	 eax, DWORD PTR [edx]
  001d9	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  001dc	03 48 04	 add	 ecx, DWORD PTR [eax+4]
  001df	e8 00 00 00 00	 call	 ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::fill
  001e4	0f b7 c8	 movzx	 ecx, ax
  001e7	51		 push	 ecx
  001e8	8b 55 08	 mov	 edx, DWORD PTR __Ostr$[ebp]
  001eb	8b 02		 mov	 eax, DWORD PTR [edx]
  001ed	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  001f0	03 48 04	 add	 ecx, DWORD PTR [eax+4]
  001f3	e8 00 00 00 00	 call	 ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::rdbuf
  001f8	8b c8		 mov	 ecx, eax
  001fa	e8 00 00 00 00	 call	 ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z ; std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >::sputc
  001ff	66 89 45 ce	 mov	 WORD PTR $T347487[ebp], ax
  00203	e8 00 00 00 00	 call	 ?eof@?$char_traits@_W@std@@SAGXZ ; std::char_traits<wchar_t>::eof
  00208	66 89 45 cc	 mov	 WORD PTR $T347488[ebp], ax
  0020c	8d 4d ce	 lea	 ecx, DWORD PTR $T347487[ebp]
  0020f	51		 push	 ecx
  00210	8d 55 cc	 lea	 edx, DWORD PTR $T347488[ebp]
  00213	52		 push	 edx
  00214	e8 00 00 00 00	 call	 ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z ; std::char_traits<wchar_t>::eq_int_type
  00219	83 c4 08	 add	 esp, 8
  0021c	0f b6 c0	 movzx	 eax, al
  0021f	85 c0		 test	 eax, eax
  00221	74 09		 je	 SHORT $LN1@operator@519

; 728  : 				_State |= ios_base::badbit;

  00223	8b 4d ec	 mov	 ecx, DWORD PTR __State$[ebp]
  00226	83 c9 04	 or	 ecx, 4
  00229	89 4d ec	 mov	 DWORD PTR __State$[ebp], ecx
$LN1@operator@519:

; 729  : 		_CATCH_IO_(_Ostr)

  0022c	eb 91		 jmp	 SHORT $LN3@operator@519
$LN2@operator@519:
  0022e	eb 21		 jmp	 SHORT $LN17@operator@519
__catch$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$0:
  00230	6a 01		 push	 1
  00232	6a 04		 push	 4
  00234	8b 55 08	 mov	 edx, DWORD PTR __Ostr$[ebp]
  00237	8b 02		 mov	 eax, DWORD PTR [edx]
  00239	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  0023c	03 48 04	 add	 ecx, DWORD PTR [eax+4]
  0023f	e8 00 00 00 00	 call	 ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::setstate
  00244	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  0024b	b8 00 00 00 00	 mov	 eax, $LN12@operator@519
  00250	c3		 ret	 0
$LN17@operator@519:
  00251	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
$LN12@operator@519:

; 730  : 		}
; 731  : 
; 732  : 	_Ostr.width(0);

  00258	6a 00		 push	 0
  0025a	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  0025d	8b 11		 mov	 edx, DWORD PTR [ecx]
  0025f	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  00262	03 4a 04	 add	 ecx, DWORD PTR [edx+4]
  00265	e8 00 00 00 00	 call	 ?width@ios_base@std@@QAEHH@Z ; std::ios_base::width

; 733  : 	_Ostr.setstate(_State);

  0026a	6a 00		 push	 0
  0026c	8b 45 ec	 mov	 eax, DWORD PTR __State$[ebp]
  0026f	50		 push	 eax
  00270	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  00273	8b 11		 mov	 edx, DWORD PTR [ecx]
  00275	8b 4d 08	 mov	 ecx, DWORD PTR __Ostr$[ebp]
  00278	03 4a 04	 add	 ecx, DWORD PTR [edx+4]
  0027b	e8 00 00 00 00	 call	 ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z ; std::basic_ios<wchar_t,std::char_traits<wchar_t> >::setstate

; 734  : 	return (_Ostr);

  00280	8b 45 08	 mov	 eax, DWORD PTR __Ostr$[ebp]
  00283	89 45 c8	 mov	 DWORD PTR $T347489[ebp], eax
  00286	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  0028d	8d 4d e4	 lea	 ecx, DWORD PTR __Ok$[ebp]
  00290	e8 00 00 00 00	 call	 ??1sentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@XZ ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::sentry::~sentry
  00295	8b 45 c8	 mov	 eax, DWORD PTR $T347489[ebp]

; 735  : 	}

  00298	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  0029b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  002a2	59		 pop	 ecx
  002a3	5f		 pop	 edi
  002a4	5e		 pop	 esi
  002a5	5b		 pop	 ebx
  002a6	8b e5		 mov	 esp, ebp
  002a8	5d		 pop	 ebp
  002a9	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$2:
  00000	8d 4d e4	 lea	 ecx, DWORD PTR __Ok$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1sentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@XZ ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::sentry::~sentry
__unwindfunclet$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z$3:
  00008	8d 4d d8	 lea	 ecx, DWORD PTR $T347480[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1locale@std@@QAE@XZ	; std::locale::~locale
__ehhandler$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@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 b8	 mov	 ecx, DWORD PTR [edx-72]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z
  00026	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z ENDP ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
PUBLIC	__$ArrayPad$
PUBLIC	?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; DecodeASCIISafeString
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\stringhelpers.cpp
xdata$x	SEGMENT
__unwindtable$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$1
__ehfuncinfo$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
_TEXT	SEGMENT
$T349281 = -204						; size = 4
_CharValue$140071 = -200				; size = 4
_CurChar$140061 = -196					; size = 2
_DoingPercent$ = -192					; size = 4
_TempString$ = -188					; size = 28
__$ArrayPad$ = -160					; size = 4
_LastIt$ = -156						; size = 8
_oss$ = -148						; size = 128
_CurIt$ = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_InString$ = 12						; size = 4
?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z PROC ; DecodeASCIISafeString, COMDAT

; 105  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec c0 00 00
	00		 sub	 esp, 192		; 000000c0H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 85 60 ff ff
	ff		 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00024	50		 push	 eax
  00025	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00028	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0002e	c7 85 34 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR $T349281[ebp], 0

; 106  :     tostringstream oss;

  00038	6a 01		 push	 1
  0003a	6a 02		 push	 2
  0003c	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  00042	e8 00 00 00 00	 call	 ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z ; std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00047	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 107  :     tstring::const_iterator CurIt(InString.begin());

  0004e	8d 45 ec	 lea	 eax, DWORD PTR _CurIt$[ebp]
  00051	50		 push	 eax
  00052	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  00055	e8 00 00 00 00	 call	 ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::begin

; 108  :     tstring::const_iterator LastIt(InString.end());

  0005a	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _LastIt$[ebp]
  00060	51		 push	 ecx
  00061	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  00064	e8 00 00 00 00	 call	 ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::end

; 109  :     BOOL DoingPercent(FALSE);

  00069	c7 85 40 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _DoingPercent$[ebp], 0

; 110  :     tstring TempString;

  00073	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  00079	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0007e	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
$LN11@DecodeASCI:

; 111  : 
; 112  :     while(CurIt != LastIt)

  00082	8d 95 64 ff ff
	ff		 lea	 edx, DWORD PTR _LastIt$[ebp]
  00088	52		 push	 edx
  00089	8d 4d ec	 lea	 ecx, DWORD PTR _CurIt$[ebp]
  0008c	e8 00 00 00 00	 call	 ??9?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator!=
  00091	0f b6 c0	 movzx	 eax, al
  00094	85 c0		 test	 eax, eax
  00096	0f 84 e6 00 00
	00		 je	 $LN10@DecodeASCI

; 113  :     {
; 114  :         TCHAR CurChar(*CurIt);

  0009c	8d 4d ec	 lea	 ecx, DWORD PTR _CurIt$[ebp]
  0009f	e8 00 00 00 00	 call	 ??D?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WXZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator*
  000a4	66 8b 08	 mov	 cx, WORD PTR [eax]
  000a7	66 89 8d 3c ff
	ff ff		 mov	 WORD PTR _CurChar$140061[ebp], cx

; 115  : 
; 116  :         if(CurChar == '%')

  000ae	0f b7 95 3c ff
	ff ff		 movzx	 edx, WORD PTR _CurChar$140061[ebp]
  000b5	83 fa 25	 cmp	 edx, 37			; 00000025H
  000b8	0f 85 82 00 00
	00		 jne	 $LN9@DecodeASCI

; 117  :         {
; 118  :             if(DoingPercent)

  000be	83 bd 40 ff ff
	ff 00		 cmp	 DWORD PTR _DoingPercent$[ebp], 0
  000c5	74 5d		 je	 SHORT $LN8@DecodeASCI

; 119  :             {
; 120  :                 if(TempString.empty())

  000c7	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  000cd	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  000d2	0f b6 c0	 movzx	 eax, al
  000d5	85 c0		 test	 eax, eax
  000d7	74 13		 je	 SHORT $LN7@DecodeASCI

; 121  :                 {
; 122  :                     oss << '%';

  000d9	6a 25		 push	 37			; 00000025H
  000db	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  000e1	51		 push	 ecx
  000e2	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  000e7	83 c4 08	 add	 esp, 8

; 123  :                 }
; 124  :                 else

  000ea	eb 2c		 jmp	 SHORT $LN6@DecodeASCI
$LN7@DecodeASCI:

; 125  :                 {
; 126  :                     DWORD CharValue(FromString<DWORD>(TempString));

  000ec	8d 95 44 ff ff
	ff		 lea	 edx, DWORD PTR _TempString$[ebp]
  000f2	52		 push	 edx
  000f3	e8 00 00 00 00	 call	 ??$FromString@K@@YAKABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; FromString<unsigned long>
  000f8	83 c4 04	 add	 esp, 4
  000fb	89 85 38 ff ff
	ff		 mov	 DWORD PTR _CharValue$140071[ebp], eax

; 127  : #ifdef _UNICODE    
; 128  :                     oss << (TCHAR)CharValue;

  00101	0f b7 85 38 ff
	ff ff		 movzx	 eax, WORD PTR _CharValue$140071[ebp]
  00108	50		 push	 eax
  00109	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  0010f	51		 push	 ecx
  00110	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  00115	83 c4 08	 add	 esp, 8
$LN6@DecodeASCI:

; 129  : #else
; 130  :                     if(CharValue < 255)
; 131  :                     {
; 132  :                         oss << (TCHAR)CharValue;
; 133  :                     }
; 134  :                     else
; 135  :                     {
; 136  :                         oss << (TCHAR)'?';
; 137  :                     }
; 138  : #endif
; 139  :                 }
; 140  :                 DoingPercent = FALSE;

  00118	c7 85 40 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _DoingPercent$[ebp], 0

; 141  :             }
; 142  :             else

  00122	eb 1a		 jmp	 SHORT $LN5@DecodeASCI
$LN8@DecodeASCI:

; 143  :             {
; 144  :                 DoingPercent = TRUE;

  00124	c7 85 40 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _DoingPercent$[ebp], 1

; 145  :                 TempString = _T("");

  0012e	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  00133	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  00139	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
$LN5@DecodeASCI:

; 146  :             }
; 147  :         }
; 148  :         else

  0013e	eb 35		 jmp	 SHORT $LN4@DecodeASCI
$LN9@DecodeASCI:

; 149  :         {
; 150  :             if(DoingPercent)

  00140	83 bd 40 ff ff
	ff 00		 cmp	 DWORD PTR _DoingPercent$[ebp], 0
  00147	74 15		 je	 SHORT $LN3@DecodeASCI

; 151  :             {
; 152  :                 TempString += CurChar;

  00149	0f b7 95 3c ff
	ff ff		 movzx	 edx, WORD PTR _CurChar$140061[ebp]
  00150	52		 push	 edx
  00151	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  00157	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=

; 153  :             }
; 154  :             else

  0015c	eb 17		 jmp	 SHORT $LN4@DecodeASCI
$LN3@DecodeASCI:

; 155  :             {
; 156  :                 oss << CurChar;

  0015e	0f b7 85 3c ff
	ff ff		 movzx	 eax, WORD PTR _CurChar$140061[ebp]
  00165	50		 push	 eax
  00166	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  0016c	51		 push	 ecx
  0016d	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  00172	83 c4 08	 add	 esp, 8
$LN4@DecodeASCI:

; 157  :             }
; 158  :         }
; 159  :         ++CurIt;

  00175	8d 4d ec	 lea	 ecx, DWORD PTR _CurIt$[ebp]
  00178	e8 00 00 00 00	 call	 ??E?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@XZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator++

; 160  :     }

  0017d	e9 00 ff ff ff	 jmp	 $LN11@DecodeASCI
$LN10@DecodeASCI:

; 161  :     
; 162  :     if(DoingPercent)

  00182	83 bd 40 ff ff
	ff 00		 cmp	 DWORD PTR _DoingPercent$[ebp], 0
  00189	74 4d		 je	 SHORT $LN1@DecodeASCI

; 163  :     {
; 164  :         LOG(1, "Invalid escaping in DecodeASCIISafeString");

  0018b	68 00 00 00 00	 push	 OFFSET ??_C@_0CK@CNMIMHGM@Invalid?5escaping?5in?5DecodeASCIIS@
  00190	6a 01		 push	 1
  00192	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  00197	83 c4 08	 add	 esp, 8

; 165  :         return InString;

  0019a	8b 55 0c	 mov	 edx, DWORD PTR _InString$[ebp]
  0019d	52		 push	 edx
  0019e	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  001a1	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  001a6	8b 85 34 ff ff
	ff		 mov	 eax, DWORD PTR $T349281[ebp]
  001ac	83 c8 01	 or	 eax, 1
  001af	89 85 34 ff ff
	ff		 mov	 DWORD PTR $T349281[ebp], eax
  001b5	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  001b9	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  001bf	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  001c4	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  001c8	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  001ce	e8 00 00 00 00	 call	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
  001d3	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
  001d6	eb 3f		 jmp	 SHORT $LN12@DecodeASCI
$LN1@DecodeASCI:

; 166  :     }
; 167  : 
; 168  :     return oss.str();

  001d8	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  001db	51		 push	 ecx
  001dc	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  001e2	e8 00 00 00 00	 call	 ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str
  001e7	8b 95 34 ff ff
	ff		 mov	 edx, DWORD PTR $T349281[ebp]
  001ed	83 ca 01	 or	 edx, 1
  001f0	89 95 34 ff ff
	ff		 mov	 DWORD PTR $T349281[ebp], edx
  001f6	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  001fa	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  00200	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00205	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00209	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  0020f	e8 00 00 00 00	 call	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
  00214	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]
$LN12@DecodeASCI:

; 169  : }

  00217	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0021a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00221	59		 pop	 ecx
  00222	8b 8d 60 ff ff
	ff		 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00228	33 cd		 xor	 ecx, ebp
  0022a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0022f	8b e5		 mov	 esp, ebp
  00231	5d		 pop	 ebp
  00232	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0:
  00000	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  00006	e9 00 00 00 00	 jmp	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
__unwindfunclet$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$1:
  0000b	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR _TempString$[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$2:
  00016	8b 85 34 ff ff
	ff		 mov	 eax, DWORD PTR $T349281[ebp]
  0001c	83 e0 01	 and	 eax, 1
  0001f	0f 84 0f 00 00
	00		 je	 $LN17@DecodeASCI
  00025	83 a5 34 ff ff
	ff fe		 and	 DWORD PTR $T349281[ebp], -2 ; fffffffeH
  0002c	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0002f	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN17@DecodeASCI:
  00034	c3		 ret	 0
__ehhandler$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z:
  00035	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00039	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0003c	8b 8a 3c ff ff
	ff		 mov	 ecx, DWORD PTR [edx-196]
  00042	33 c8		 xor	 ecx, eax
  00044	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00049	8b 8a 6c ff ff
	ff		 mov	 ecx, DWORD PTR [edx-148]
  0004f	33 c8		 xor	 ecx, eax
  00051	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00056	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  0005b	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?DecodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ENDP ; DecodeASCIISafeString
PUBLIC	?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; EncodeASCIISafeString
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0
__ehfuncinfo$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
_TEXT	SEGMENT
$T349293 = -164						; size = 4
_CurChar$139998 = -160					; size = 2
_LastIt$ = -156						; size = 8
_oss$ = -148						; size = 128
_CurIt$ = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_InString$ = 12						; size = 4
?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z PROC ; EncodeASCIISafeString, COMDAT

; 78   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 98 00 00
	00		 sub	 esp, 152		; 00000098H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	c7 85 5c ff ff
	ff 00 00 00 00	 mov	 DWORD PTR $T349293[ebp], 0

; 79   :     tostringstream oss;

  00032	6a 01		 push	 1
  00034	6a 02		 push	 2
  00036	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  0003c	e8 00 00 00 00	 call	 ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z ; std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00041	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 80   :     tstring::const_iterator CurIt(InString.begin());

  00048	8d 45 ec	 lea	 eax, DWORD PTR _CurIt$[ebp]
  0004b	50		 push	 eax
  0004c	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  0004f	e8 00 00 00 00	 call	 ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::begin

; 81   :     tstring::const_iterator LastIt(InString.end());

  00054	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _LastIt$[ebp]
  0005a	51		 push	 ecx
  0005b	8b 4d 0c	 mov	 ecx, DWORD PTR _InString$[ebp]
  0005e	e8 00 00 00 00	 call	 ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::end
$LN7@EncodeASCI:

; 82   : 
; 83   :     while(CurIt != LastIt)

  00063	8d 95 64 ff ff
	ff		 lea	 edx, DWORD PTR _LastIt$[ebp]
  00069	52		 push	 edx
  0006a	8d 4d ec	 lea	 ecx, DWORD PTR _CurIt$[ebp]
  0006d	e8 00 00 00 00	 call	 ??9?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NABV01@@Z ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator!=
  00072	0f b6 c0	 movzx	 eax, al
  00075	85 c0		 test	 eax, eax
  00077	0f 84 9d 00 00
	00		 je	 $LN6@EncodeASCI

; 84   :     {
; 85   :         TCHAR CurChar(*CurIt);

  0007d	8d 4d ec	 lea	 ecx, DWORD PTR _CurIt$[ebp]
  00080	e8 00 00 00 00	 call	 ??D?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WXZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator*
  00085	66 8b 08	 mov	 cx, WORD PTR [eax]
  00088	66 89 8d 60 ff
	ff ff		 mov	 WORD PTR _CurChar$139998[ebp], cx

; 86   : 
; 87   :         if(CurChar < 32 || CurChar > 127)

  0008f	0f b7 95 60 ff
	ff ff		 movzx	 edx, WORD PTR _CurChar$139998[ebp]
  00096	83 fa 20	 cmp	 edx, 32			; 00000020H
  00099	7c 0c		 jl	 SHORT $LN4@EncodeASCI
  0009b	0f b7 85 60 ff
	ff ff		 movzx	 eax, WORD PTR _CurChar$139998[ebp]
  000a2	83 f8 7f	 cmp	 eax, 127		; 0000007fH
  000a5	7e 2d		 jle	 SHORT $LN5@EncodeASCI
$LN4@EncodeASCI:

; 88   :         {
; 89   :             oss << '%' << (DWORD)CurChar << '%';

  000a7	6a 25		 push	 37			; 00000025H
  000a9	0f b7 8d 60 ff
	ff ff		 movzx	 ecx, WORD PTR _CurChar$139998[ebp]
  000b0	51		 push	 ecx
  000b1	6a 25		 push	 37			; 00000025H
  000b3	8d 95 6c ff ff
	ff		 lea	 edx, DWORD PTR _oss$[ebp]
  000b9	52		 push	 edx
  000ba	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  000bf	83 c4 08	 add	 esp, 8
  000c2	8b c8		 mov	 ecx, eax
  000c4	e8 00 00 00 00	 call	 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::operator<<
  000c9	50		 push	 eax
  000ca	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@D@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  000cf	83 c4 08	 add	 esp, 8
  000d2	eb 39		 jmp	 SHORT $LN3@EncodeASCI
$LN5@EncodeASCI:

; 90   :         }
; 91   :         else if(CurChar == '%')

  000d4	0f b7 85 60 ff
	ff ff		 movzx	 eax, WORD PTR _CurChar$139998[ebp]
  000db	83 f8 25	 cmp	 eax, 37			; 00000025H
  000de	75 16		 jne	 SHORT $LN2@EncodeASCI

; 92   :         {
; 93   :             oss << _T("%%");

  000e0	68 00 00 00 00	 push	 OFFSET ??_C@_15IOLAJFNF@?$AA?$CF?$AA?$CF?$AA?$AA@
  000e5	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  000eb	51		 push	 ecx
  000ec	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  000f1	83 c4 08	 add	 esp, 8

; 94   :         }
; 95   :         else

  000f4	eb 17		 jmp	 SHORT $LN3@EncodeASCI
$LN2@EncodeASCI:

; 96   :         {
; 97   :             oss << CurChar;

  000f6	0f b7 95 60 ff
	ff ff		 movzx	 edx, WORD PTR _CurChar$139998[ebp]
  000fd	52		 push	 edx
  000fe	8d 85 6c ff ff
	ff		 lea	 eax, DWORD PTR _oss$[ebp]
  00104	50		 push	 eax
  00105	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  0010a	83 c4 08	 add	 esp, 8
$LN3@EncodeASCI:

; 98   :         }
; 99   :         ++CurIt;

  0010d	8d 4d ec	 lea	 ecx, DWORD PTR _CurIt$[ebp]
  00110	e8 00 00 00 00	 call	 ??E?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@XZ ; std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator++

; 100  :     }

  00115	e9 49 ff ff ff	 jmp	 $LN7@EncodeASCI
$LN6@EncodeASCI:

; 101  :     return oss.str();

  0011a	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0011d	51		 push	 ecx
  0011e	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  00124	e8 00 00 00 00	 call	 ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str
  00129	8b 95 5c ff ff
	ff		 mov	 edx, DWORD PTR $T349293[ebp]
  0012f	83 ca 01	 or	 edx, 1
  00132	89 95 5c ff ff
	ff		 mov	 DWORD PTR $T349293[ebp], edx
  00138	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0013c	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  00142	e8 00 00 00 00	 call	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
  00147	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 102  : }

  0014a	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0014d	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00154	59		 pop	 ecx
  00155	8b e5		 mov	 esp, ebp
  00157	5d		 pop	 ebp
  00158	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$0:
  00000	8d 8d 6c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$[ebp]
  00006	e9 00 00 00 00	 jmp	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
__unwindfunclet$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z$1:
  0000b	8b 85 5c ff ff
	ff		 mov	 eax, DWORD PTR $T349293[ebp]
  00011	83 e0 01	 and	 eax, 1
  00014	0f 84 0f 00 00
	00		 je	 $LN12@EncodeASCI
  0001a	83 a5 5c ff ff
	ff fe		 and	 DWORD PTR $T349293[ebp], -2 ; fffffffeH
  00021	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00024	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN12@EncodeASCI:
  00029	c3		 ret	 0
__ehhandler$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z:
  0002a	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0002e	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00031	8b 8a 64 ff ff
	ff		 mov	 ecx, DWORD PTR [edx-156]
  00037	33 c8		 xor	 ecx, eax
  00039	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003e	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z
  00043	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?EncodeASCIISafeString@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ENDP ; EncodeASCIISafeString
END
