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

	TITLE	d:\Source Code\NC lib\ncString2.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_13NOLLCAOD@?$AA?$AA?$AA?$AA@		; `string'
PUBLIC	??_C@_01LOCGONAA@?$AA?$AA@			; `string'
PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
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	?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	?m_NullChar@ncString2@@2DB			; ncString2::m_NullChar
PUBLIC	?m_EmptyString@ncString2@@2PBDB			; ncString2::m_EmptyString
PUBLIC	?m_NullChar@ncWideString2@@2_WB			; ncWideString2::m_NullChar
PUBLIC	?m_EmptyString@ncWideString2@@2PB_WB		; ncWideString2::m_EmptyString
;	COMDAT ??_C@_13NOLLCAOD@?$AA?$AA?$AA?$AA@
CONST	SEGMENT
??_C@_13NOLLCAOD@?$AA?$AA?$AA?$AA@ DB 00H, 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_01LOCGONAA@?$AA?$AA@
CONST	SEGMENT
??_C@_01LOCGONAA@?$AA?$AA@ DB 00H, 00H			; `string'
CONST	ENDS
CONST	SEGMENT
?m_NullChar@ncString2@@2DB DB 00H			; ncString2::m_NullChar
	ORG $+3
?m_NullChar@ncWideString2@@2_WB DW 00H			; ncWideString2::m_NullChar
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 ?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@
?m_EmptyString@ncString2@@2PBDB DD FLAT:??_C@_01LOCGONAA@?$AA?$AA@ ; ncString2::m_EmptyString
?m_EmptyString@ncWideString2@@2PB_WB DD FLAT:??_C@_13NOLLCAOD@?$AA?$AA?$AA?$AA@ ; ncWideString2::m_EmptyString
_DATA	ENDS
;	COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
CONST	SEGMENT
??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string'
CONST	ENDS
EXTRN	__vswprintf_c_l:PROC
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\swprintf.inl
;	COMDAT _swprintf
_TEXT	SEGMENT
__String$ = 8						; size = 4
__Format$ = 12						; size = 4
_swprintf PROC						; COMDAT
; __Count$ = edx

; 38   :     va_list _Arglist;
; 39   :     int _Ret;
; 40   :     _crt_va_start(_Arglist, _Format);
; 41   :     _Ret = _vswprintf_c_l(_String, _Count, _Format, NULL, _Arglist);

	mov	ecx, DWORD PTR __Format$[esp-4]
	lea	eax, DWORD PTR __Format$[esp]
	push	eax
	mov	eax, DWORD PTR __String$[esp]
	push	0
	push	ecx
	push	edx
	push	eax
	call	__vswprintf_c_l
	add	esp, 20					; 00000014H

; 42   :     _crt_va_end(_Arglist);
; 43   :     return _Ret;
; 44   : }

	ret	0
_swprintf ENDP
_TEXT	ENDS
PUBLIC	?swprintf@@YAHPA_WPB_WZZ			; swprintf
EXTRN	__vswprintf:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?swprintf@@YAHPA_WPB_WZZ
_TEXT	SEGMENT
__String$ = 8						; size = 4
__Format$ = 12						; size = 4
?swprintf@@YAHPA_WPB_WZZ PROC				; swprintf, COMDAT

; 87   :     va_list _Arglist;
; 88   :     _crt_va_start(_Arglist, _Format);
; 89   :     int _Ret = _vswprintf(_String, _Format, _Arglist);

	mov	ecx, DWORD PTR __Format$[esp-4]
	mov	edx, DWORD PTR __String$[esp-4]
	lea	eax, DWORD PTR __Format$[esp]
	push	eax
	push	ecx
	push	edx
	call	__vswprintf
	add	esp, 12					; 0000000cH

; 90   :     _crt_va_end(_Arglist);
; 91   :     return _Ret;
; 92   : }

	ret	0
?swprintf@@YAHPA_WPB_WZZ ENDP				; swprintf
_TEXT	ENDS
PUBLIC	?vswprintf@@YAHPA_WPB_WPAD@Z			; vswprintf
; Function compile flags: /Ogtpy
;	COMDAT ?vswprintf@@YAHPA_WPB_WPAD@Z
_TEXT	SEGMENT
__String$ = 8						; size = 4
__Format$ = 12						; size = 4
__Ap$ = 16						; size = 4
?vswprintf@@YAHPA_WPB_WPAD@Z PROC			; vswprintf, COMDAT

; 99   :     return _vswprintf(_String, _Format, _Ap);

	jmp	__vswprintf
?vswprintf@@YAHPA_WPB_WPAD@Z ENDP			; vswprintf
_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\microsoft visual studio 8\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

	push	esi
	lea	eax, DWORD PTR __Message$[esp]
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@

; 372  : 		}

	mov	eax, esi
	pop	esi
	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

	mov	DWORD PTR [ecx], OFFSET ??_7bad_alloc@std@@6B@

; 381  : 		}

	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
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	call	??1exception@std@@UAE@XZ		; std::exception::~exception
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN6@scalar
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar:
	mov	eax, esi
	pop	esi
	ret	4
??_Gbad_alloc@std@@UAEPAXI@Z ENDP			; std::bad_alloc::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_7ncRefCount@@6B@				; ncRefCount::`vftable'
PUBLIC	??0ncRefCount@@QAE@XZ				; ncRefCount::ncRefCount
PUBLIC	??_R4ncRefCount@@6B@				; ncRefCount::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVncRefCount@@@8				; ncRefCount `RTTI Type Descriptor'
PUBLIC	??_R3ncRefCount@@8				; ncRefCount::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ncRefCount@@8				; ncRefCount::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ncRefCount@@8			; ncRefCount::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?IncRef@ncRefCount@@UAEXH@Z			; ncRefCount::IncRef
PUBLIC	?DecRef@ncRefCount@@UAEXI@Z			; ncRefCount::DecRef
;	COMDAT ??_R1A@?0A@EA@ncRefCount@@8
; File d:\source code\nc lib\ncrefcount.h
rdata$r	SEGMENT
??_R1A@?0A@EA@ncRefCount@@8 DD FLAT:??_R0?AVncRefCount@@@8 ; ncRefCount::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ncRefCount@@8
rdata$r	ENDS
;	COMDAT ??_R2ncRefCount@@8
rdata$r	SEGMENT
??_R2ncRefCount@@8 DD FLAT:??_R1A@?0A@EA@ncRefCount@@8	; ncRefCount::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3ncRefCount@@8
rdata$r	SEGMENT
??_R3ncRefCount@@8 DD 00H				; ncRefCount::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2ncRefCount@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVncRefCount@@@8
_DATA	SEGMENT
??_R0?AVncRefCount@@@8 DD FLAT:??_7type_info@@6B@	; ncRefCount `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVncRefCount@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ncRefCount@@6B@
rdata$r	SEGMENT
??_R4ncRefCount@@6B@ DD 00H				; ncRefCount::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVncRefCount@@@8
	DD	FLAT:??_R3ncRefCount@@8
rdata$r	ENDS
;	COMDAT ??_7ncRefCount@@6B@
CONST	SEGMENT
??_7ncRefCount@@6B@ DD FLAT:??_R4ncRefCount@@6B@	; ncRefCount::`vftable'
	DD	FLAT:?IncRef@ncRefCount@@UAEXH@Z
	DD	FLAT:?DecRef@ncRefCount@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0ncRefCount@@QAE@XZ
_TEXT	SEGMENT
??0ncRefCount@@QAE@XZ PROC				; ncRefCount::ncRefCount, COMDAT
; _this$ = ecx

; 8    : 	ncRefCount()

	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET ??_7ncRefCount@@6B@

; 9    : 	{
; 10   : 		this->m_refCount = 0;

	mov	DWORD PTR [eax+4], 0

; 11   : 	};

	ret	0
??0ncRefCount@@QAE@XZ ENDP				; ncRefCount::ncRefCount
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?IncRef@ncRefCount@@UAEXH@Z
_TEXT	SEGMENT
_c$ = 8							; size = 4
?IncRef@ncRefCount@@UAEXH@Z PROC			; ncRefCount::IncRef, COMDAT
; _this$ = ecx

; 14   : 		this->m_refCount += c;

	mov	eax, DWORD PTR _c$[esp-4]
	add	DWORD PTR [ecx+4], eax

; 15   : 	};

	ret	4
?IncRef@ncRefCount@@UAEXH@Z ENDP			; ncRefCount::IncRef
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?DecRef@ncRefCount@@UAEXI@Z
_TEXT	SEGMENT
_d$ = 8							; size = 4
?DecRef@ncRefCount@@UAEXI@Z PROC			; ncRefCount::DecRef, COMDAT
; _this$ = ecx

; 18   : 		this->m_refCount -= d;

	mov	eax, DWORD PTR _d$[esp-4]
	sub	DWORD PTR [ecx+4], eax

; 19   : 	};

	ret	4
?DecRef@ncRefCount@@UAEXI@Z ENDP			; ncRefCount::DecRef
_TEXT	ENDS
PUBLIC	?GetAllocSize@ncStringData@@QAE?BIXZ		; ncStringData::GetAllocSize
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.h
;	COMDAT ?GetAllocSize@ncStringData@@QAE?BIXZ
_TEXT	SEGMENT
?GetAllocSize@ncStringData@@QAE?BIXZ PROC		; ncStringData::GetAllocSize, COMDAT
; _this$ = ecx

; 31   : 	inline const unsigned int GetAllocSize() { return this->m_allocSize; };

	mov	eax, DWORD PTR [ecx+16]
	ret	0
?GetAllocSize@ncStringData@@QAE?BIXZ ENDP		; ncStringData::GetAllocSize
_TEXT	ENDS
PUBLIC	?GetLength@ncStringData@@QAE?BIXZ		; ncStringData::GetLength
; Function compile flags: /Ogtpy
;	COMDAT ?GetLength@ncStringData@@QAE?BIXZ
_TEXT	SEGMENT
?GetLength@ncStringData@@QAE?BIXZ PROC			; ncStringData::GetLength, COMDAT
; _this$ = ecx

; 32   : 	inline const unsigned int GetLength() { return this->m_length; };

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?GetLength@ncStringData@@QAE?BIXZ ENDP			; ncStringData::GetLength
_TEXT	ENDS
PUBLIC	?SetLength@ncStringData@@QAEXI@Z		; ncStringData::SetLength
; Function compile flags: /Ogtpy
;	COMDAT ?SetLength@ncStringData@@QAEXI@Z
_TEXT	SEGMENT
_length$ = 8						; size = 4
?SetLength@ncStringData@@QAEXI@Z PROC			; ncStringData::SetLength, COMDAT
; _this$ = ecx

; 33   : 	inline void SetLength(unsigned int length) { this->m_length = length; };

	mov	eax, DWORD PTR _length$[esp-4]
	mov	DWORD PTR [ecx+12], eax
	ret	4
?SetLength@ncStringData@@QAEXI@Z ENDP			; ncStringData::SetLength
_TEXT	ENDS
PUBLIC	?GetBuffer@ncStringData@@QAEPAXXZ		; ncStringData::GetBuffer
; Function compile flags: /Ogtpy
;	COMDAT ?GetBuffer@ncStringData@@QAEPAXXZ
_TEXT	SEGMENT
?GetBuffer@ncStringData@@QAEPAXXZ PROC			; ncStringData::GetBuffer, COMDAT
; _this$ = ecx

; 34   : 	inline void *GetBuffer() { return this->m_ptr; };

	mov	eax, DWORD PTR [ecx+8]
	ret	0
?GetBuffer@ncStringData@@QAEPAXXZ ENDP			; ncStringData::GetBuffer
_TEXT	ENDS
PUBLIC	?IsShared@ncStringData@@QAE_NXZ			; ncStringData::IsShared
; Function compile flags: /Ogtpy
;	COMDAT ?IsShared@ncStringData@@QAE_NXZ
_TEXT	SEGMENT
?IsShared@ncStringData@@QAE_NXZ PROC			; ncStringData::IsShared, COMDAT
; _this$ = ecx

; 37   : 	bool IsShared() { return (this->m_refCount >= 2); };

	cmp	DWORD PTR [ecx+4], 2
	sbb	eax, eax
	add	eax, 1
	ret	0
?IsShared@ncStringData@@QAE_NXZ ENDP			; ncStringData::IsShared
_TEXT	ENDS
PUBLIC	?GetData@ncStringBase@@QBEPAVncStringData@@XZ	; ncStringBase::GetData
; Function compile flags: /Ogtpy
;	COMDAT ?GetData@ncStringBase@@QBEPAVncStringData@@XZ
_TEXT	SEGMENT
?GetData@ncStringBase@@QBEPAVncStringData@@XZ PROC	; ncStringBase::GetData, COMDAT
; _this$ = ecx

; 54   : 	inline ncStringData *GetData() const { return this->m_data; };

	mov	eax, DWORD PTR [ecx+4]
	ret	0
?GetData@ncStringBase@@QBEPAVncStringData@@XZ ENDP	; ncStringBase::GetData
_TEXT	ENDS
PUBLIC	?IsEmpty@ncStringBase@@QBE_NXZ			; ncStringBase::IsEmpty
; Function compile flags: /Ogtpy
;	COMDAT ?IsEmpty@ncStringBase@@QBE_NXZ
_TEXT	SEGMENT
?IsEmpty@ncStringBase@@QBE_NXZ PROC			; ncStringBase::IsEmpty, COMDAT
; _this$ = ecx

; 60   : 	bool IsEmpty() const { return (this->m_data == NULL || this->m_data->GetLength() == 0 || this->m_data->GetBuffer() == NULL); };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@IsEmpty
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN3@IsEmpty
	cmp	DWORD PTR [eax+8], 0
	je	SHORT $LN3@IsEmpty
	xor	eax, eax
	ret	0
$LN3@IsEmpty:
	mov	eax, 1
	ret	0
?IsEmpty@ncStringBase@@QBE_NXZ ENDP			; ncStringBase::IsEmpty
_TEXT	ENDS
PUBLIC	?GetString@ncString2@@QBEPBDXZ			; ncString2::GetString
; Function compile flags: /Ogtpy
;	COMDAT ?GetString@ncString2@@QBEPBDXZ
_TEXT	SEGMENT
?GetString@ncString2@@QBEPBDXZ PROC			; ncString2::GetString, COMDAT
; _this$ = ecx

; 141  : 	const char *GetString() const { return (this->m_data) ? (const char*)this->m_data->GetBuffer() : NULL; };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString
	mov	eax, DWORD PTR [eax+8]
	ret	0
$LN3@GetString:
	xor	eax, eax
	ret	0
?GetString@ncString2@@QBEPBDXZ ENDP			; ncString2::GetString
_TEXT	ENDS
PUBLIC	?GetString@ncWideString2@@QBEPB_WXZ		; ncWideString2::GetString
; Function compile flags: /Ogtpy
;	COMDAT ?GetString@ncWideString2@@QBEPB_WXZ
_TEXT	SEGMENT
?GetString@ncWideString2@@QBEPB_WXZ PROC		; ncWideString2::GetString, COMDAT
; _this$ = ecx

; 296  : 	const wchar_t *GetString() const { return (this->m_data) ? (const wchar_t*)this->m_data->GetBuffer() : NULL; };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString@2
	mov	eax, DWORD PTR [eax+8]
	ret	0
$LN3@GetString@2:
	xor	eax, eax
	ret	0
?GetString@ncWideString2@@QBEPB_WXZ ENDP		; ncWideString2::GetString
_TEXT	ENDS
PUBLIC	??_7ncStringData@@6B@				; ncStringData::`vftable'
PUBLIC	??0ncStringData@@QAE@XZ				; ncStringData::ncStringData
PUBLIC	??_R4ncStringData@@6B@				; ncStringData::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVncStringData@@@8			; ncStringData `RTTI Type Descriptor'
PUBLIC	??_R3ncStringData@@8				; ncStringData::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ncStringData@@8				; ncStringData::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ncStringData@@8			; ncStringData::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?DecRef@ncStringData@@UAEXI@Z			; ncStringData::DecRef
;	COMDAT ??_R1A@?0A@EA@ncStringData@@8
; File d:\source code\nc lib\ncrefcount.h
rdata$r	SEGMENT
??_R1A@?0A@EA@ncStringData@@8 DD FLAT:??_R0?AVncStringData@@@8 ; ncStringData::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ncStringData@@8
rdata$r	ENDS
;	COMDAT ??_R2ncStringData@@8
rdata$r	SEGMENT
??_R2ncStringData@@8 DD FLAT:??_R1A@?0A@EA@ncStringData@@8 ; ncStringData::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ncRefCount@@8
rdata$r	ENDS
;	COMDAT ??_R3ncStringData@@8
rdata$r	SEGMENT
??_R3ncStringData@@8 DD 00H				; ncStringData::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ncStringData@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVncStringData@@@8
_DATA	SEGMENT
??_R0?AVncStringData@@@8 DD FLAT:??_7type_info@@6B@	; ncStringData `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVncStringData@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ncStringData@@6B@
rdata$r	SEGMENT
??_R4ncStringData@@6B@ DD 00H				; ncStringData::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVncStringData@@@8
	DD	FLAT:??_R3ncStringData@@8
rdata$r	ENDS
;	COMDAT ??_7ncStringData@@6B@
CONST	SEGMENT
??_7ncStringData@@6B@ DD FLAT:??_R4ncStringData@@6B@	; ncStringData::`vftable'
	DD	FLAT:?IncRef@ncRefCount@@UAEXH@Z
	DD	FLAT:?DecRef@ncStringData@@UAEXI@Z
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
CONST	ENDS
;	COMDAT ??0ncStringData@@QAE@XZ
_TEXT	SEGMENT
??0ncStringData@@QAE@XZ PROC				; ncStringData::ncStringData, COMDAT
; _this$ = ecx

; 16   : {

	mov	eax, ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@

; 17   : 	this->m_ptr       = NULL;

	mov	DWORD PTR [eax+8], ecx

; 18   : 	this->m_length    = 0;

	mov	DWORD PTR [eax+12], ecx

; 19   : 	this->m_allocSize = 0;

	mov	DWORD PTR [eax+16], ecx

; 20   : }

	ret	0
??0ncStringData@@QAE@XZ ENDP				; ncStringData::ncStringData
_TEXT	ENDS
PUBLIC	??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@ ; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	??1ncStringData@@QAE@XZ				; ncStringData::~ncStringData
EXTRN	?m_deallocator@@YAXPBDI0IPBX@Z:PROC		; m_deallocator
EXTRN	?m_alloc_free@@3IB:DWORD			; m_alloc_free
;	COMDAT ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
CONST	SEGMENT
??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@ DB '..\NC lib\ncStr'
	DB	'ing2.cpp', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1ncStringData@@QAE@XZ
_TEXT	SEGMENT
??1ncStringData@@QAE@XZ PROC				; ncStringData::~ncStringData, COMDAT
; _this$ = ecx

; 22   : {

	push	esi
	mov	esi, ecx

; 23   : 	if (this->m_ptr != NULL)

	mov	eax, DWORD PTR [esi+8]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7ncStringData@@6B@
	je	SHORT $LN1@ncStringDa

; 24   : 		free(this->m_ptr);

	push	eax
	mov	eax, DWORD PTR ?m_alloc_free@@3IB	; m_alloc_free
	push	eax
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	24					; 00000018H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_deallocator@@YAXPBDI0IPBX@Z		; m_deallocator
	add	esp, 20					; 00000014H
$LN1@ncStringDa:

; 25   : 
; 26   : 	this->m_ptr       = NULL;

	mov	DWORD PTR [esi+8], 0

; 27   : 	this->m_length    = 0;

	mov	DWORD PTR [esi+12], 0

; 28   : 	this->m_allocSize = 0;

	mov	DWORD PTR [esi+16], 0
	pop	esi

; 29   : }

	ret	0
??1ncStringData@@QAE@XZ ENDP				; ncStringData::~ncStringData
_TEXT	ENDS
PUBLIC	?Resize@ncStringData@@QAEXIE@Z			; ncStringData::Resize
EXTRN	?m_allocator@@YAPAXPBDI0II@Z:PROC		; m_allocator
EXTRN	?m_alloc_malloc@@3IB:DWORD			; m_alloc_malloc
EXTRN	_memcpy:PROC
EXTRN	_memset:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@ncStringData@@QAEXIE@Z
_TEXT	SEGMENT
_size$ = 8						; size = 4
_wordSize$ = 12						; size = 1
?Resize@ncStringData@@QAEXIE@Z PROC			; ncStringData::Resize, COMDAT
; _this$ = ecx

; 38   : 	size += wordSize;
; 39   : 	void *newBuf = malloc(size);

	mov	eax, DWORD PTR ?m_alloc_malloc@@3IB	; m_alloc_malloc
	push	ebx
	push	ebp
	movzx	ebp, BYTE PTR _wordSize$[esp+4]
	push	esi
	push	edi
	mov	edi, DWORD PTR _size$[esp+12]
	add	edi, ebp
	push	edi
	push	eax
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	39					; 00000027H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	esi, ecx
	call	?m_allocator@@YAPAXPBDI0II@Z		; m_allocator

; 40   : 	memset(newBuf, 0, size);

	push	edi
	mov	ebx, eax
	push	0
	push	ebx
	call	_memset

; 41   : 	if (this->m_ptr != NULL)

	mov	eax, DWORD PTR [esi+8]
	add	esp, 32					; 00000020H
	test	eax, eax
	je	SHORT $LN6@Resize

; 42   : 	{
; 43   : 		int length = (this->m_length > (size - wordSize)) ? size - wordSize : this->m_length;

	mov	ecx, edi
	sub	ecx, ebp
	mov	ebp, DWORD PTR [esi+12]
	cmp	ebp, ecx
	jbe	SHORT $LN4@Resize
	mov	ebp, ecx
$LN4@Resize:

; 44   : 		memcpy(newBuf, this->m_ptr, length);

	push	ebp
	push	eax
	push	ebx
	call	_memcpy

; 45   : 		free(this->m_ptr);

	mov	ecx, DWORD PTR [esi+8]
	mov	edx, DWORD PTR ?m_alloc_free@@3IB	; m_alloc_free
	push	ecx
	push	edx
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	45					; 0000002dH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_deallocator@@YAXPBDI0IPBX@Z		; m_deallocator
	add	esp, 32					; 00000020H

; 46   : 		this->m_length = length;

	mov	DWORD PTR [esi+12], ebp
$LN6@Resize:

; 47   : 	}
; 48   : 	this->m_ptr = newBuf;
; 49   : 	this->m_allocSize = size;

	mov	DWORD PTR [esi+16], edi
	pop	edi
	mov	DWORD PTR [esi+8], ebx
	pop	esi
	pop	ebp
	pop	ebx

; 50   : }

	ret	8
?Resize@ncStringData@@QAEXIE@Z ENDP			; ncStringData::Resize
_TEXT	ENDS
PUBLIC	??_GncStringData@@QAEPAXI@Z			; ncStringData::`scalar deleting destructor'
; Function compile flags: /Ogtpy
;	COMDAT ??_GncStringData@@QAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GncStringData@@QAEPAXI@Z PROC			; ncStringData::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+8]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7ncStringData@@6B@
	je	SHORT $LN4@scalar@2
	push	eax
	mov	eax, DWORD PTR ?m_alloc_free@@3IB	; m_alloc_free
	push	eax
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	24					; 00000018H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_deallocator@@YAXPBDI0IPBX@Z		; m_deallocator
	add	esp, 20					; 00000014H
$LN4@scalar@2:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	mov	DWORD PTR [esi+16], 0
	je	SHORT $LN7@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_GncStringData@@QAEPAXI@Z ENDP			; ncStringData::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_7ncStringBase@@6B@				; ncStringBase::`vftable'
PUBLIC	??0ncStringBase@@QAE@XZ				; ncStringBase::ncStringBase
PUBLIC	??_R4ncStringBase@@6B@				; ncStringBase::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVncStringBase@@@8			; ncStringBase `RTTI Type Descriptor'
PUBLIC	??_R3ncStringBase@@8				; ncStringBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ncStringBase@@8				; ncStringBase::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ncStringBase@@8			; ncStringBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?GetLength@ncStringBase@@UBEIXZ			; ncStringBase::GetLength
EXTRN	??2@YAPAXI@Z:PROC				; operator new
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
EXTRN	??_EncStringBase@@UAEPAXI@Z:PROC		; ncStringBase::`vector deleting destructor'
EXTRN	__purecall:PROC
;	COMDAT ??_R1A@?0A@EA@ncStringBase@@8
; File d:\source code\nc lib\ncrefcount.h
rdata$r	SEGMENT
??_R1A@?0A@EA@ncStringBase@@8 DD FLAT:??_R0?AVncStringBase@@@8 ; ncStringBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ncStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R2ncStringBase@@8
rdata$r	SEGMENT
??_R2ncStringBase@@8 DD FLAT:??_R1A@?0A@EA@ncStringBase@@8 ; ncStringBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3ncStringBase@@8
rdata$r	SEGMENT
??_R3ncStringBase@@8 DD 00H				; ncStringBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2ncStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVncStringBase@@@8
_DATA	SEGMENT
??_R0?AVncStringBase@@@8 DD FLAT:??_7type_info@@6B@	; ncStringBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVncStringBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ncStringBase@@6B@
rdata$r	SEGMENT
??_R4ncStringBase@@6B@ DD 00H				; ncStringBase::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVncStringBase@@@8
	DD	FLAT:??_R3ncStringBase@@8
rdata$r	ENDS
;	COMDAT ??_7ncStringBase@@6B@
CONST	SEGMENT
??_7ncStringBase@@6B@ DD FLAT:??_R4ncStringBase@@6B@	; ncStringBase::`vftable'
	DD	FLAT:??_EncStringBase@@UAEPAXI@Z
	DD	FLAT:?GetLength@ncStringBase@@UBEIXZ
	DD	FLAT:__purecall
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
CONST	ENDS
;	COMDAT ??0ncStringBase@@QAE@XZ
_TEXT	SEGMENT
??0ncStringBase@@QAE@XZ PROC				; ncStringBase::ncStringBase, COMDAT
; _this$ = ecx

; 66   : {

	push	esi

; 67   : 	this->m_data = new ncStringData;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	esi, ecx
	push	67					; 00000043H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	xor	ecx, ecx
	add	esp, 16					; 00000010H
	cmp	eax, ecx
	je	SHORT $LN3@ncStringBa
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	DWORD PTR [esi+4], eax

; 68   : 	this->m_data->IncRef();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax

; 69   : }

	mov	eax, esi
	pop	esi
	ret	0
$LN3@ncStringBa:

; 67   : 	this->m_data = new ncStringData;

	xor	eax, eax
	mov	DWORD PTR [esi+4], eax

; 68   : 	this->m_data->IncRef();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax

; 69   : }

	mov	eax, esi
	pop	esi
	ret	0
??0ncStringBase@@QAE@XZ ENDP				; ncStringBase::ncStringBase
_TEXT	ENDS
PUBLIC	??0ncStringBase@@QAE@ABV0@@Z			; ncStringBase::ncStringBase
; Function compile flags: /Ogtpy
;	COMDAT ??0ncStringBase@@QAE@ABV0@@Z
_TEXT	SEGMENT
_base$ = 8						; size = 4
??0ncStringBase@@QAE@ABV0@@Z PROC			; ncStringBase::ncStringBase, COMDAT
; _this$ = ecx

; 72   : 	this->m_data = base.m_data;

	mov	eax, DWORD PTR _base$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+4], ecx

; 73   : 	this->m_data->IncRef();

	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax

; 74   : }

	mov	eax, esi
	pop	esi
	ret	4
??0ncStringBase@@QAE@ABV0@@Z ENDP			; ncStringBase::ncStringBase
_TEXT	ENDS
PUBLIC	??1ncStringBase@@UAE@XZ				; ncStringBase::~ncStringBase
; Function compile flags: /Ogtpy
;	COMDAT ??1ncStringBase@@UAE@XZ
_TEXT	SEGMENT
??1ncStringBase@@UAE@XZ PROC				; ncStringBase::~ncStringBase, COMDAT
; _this$ = ecx

; 76   : {

	push	esi
	mov	esi, ecx

; 77   : 	if (this->m_data != NULL)

	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN1@ncStringBa@2

; 78   : 	{
; 79   : 		this->m_data->DecRef();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx

; 80   : 		this->m_data = NULL;

	mov	DWORD PTR [esi+4], 0
$LN1@ncStringBa@2:
	pop	esi

; 81   : 	}
; 82   : }

	ret	0
??1ncStringBase@@UAE@XZ ENDP				; ncStringBase::~ncStringBase
_TEXT	ENDS
PUBLIC	?SetData@ncStringBase@@QAEXPAVncStringData@@@Z	; ncStringBase::SetData
; Function compile flags: /Ogtpy
;	COMDAT ?SetData@ncStringBase@@QAEXPAVncStringData@@@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
?SetData@ncStringBase@@QAEXPAVncStringData@@@Z PROC	; ncStringBase::SetData, COMDAT
; _this$ = ecx

; 84   : {

	push	esi
	mov	esi, ecx

; 85   : 	if (this->m_data != NULL)

	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	je	SHORT $LN1@SetData

; 86   : 		this->m_data->DecRef();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN1@SetData:

; 87   : 	this->m_data = data;

	mov	ecx, DWORD PTR _data$[esp]
	mov	DWORD PTR [esi+4], ecx

; 88   : 	data->IncRef();

	mov	eax, DWORD PTR [ecx]
	pop	esi
	mov	DWORD PTR _data$[esp-4], 1
	mov	edx, DWORD PTR [eax]
	jmp	edx
?SetData@ncStringBase@@QAEXPAVncStringData@@@Z ENDP	; ncStringBase::SetData
_TEXT	ENDS
PUBLIC	?GetAllocSize@ncStringBase@@QBEIXZ		; ncStringBase::GetAllocSize
; Function compile flags: /Ogtpy
;	COMDAT ?GetAllocSize@ncStringBase@@QBEIXZ
_TEXT	SEGMENT
?GetAllocSize@ncStringBase@@QBEIXZ PROC			; ncStringBase::GetAllocSize, COMDAT
; _this$ = ecx

; 92   : 	if (this->m_data != NULL)

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN1@GetAllocSi

; 93   : 		return this->m_data->GetAllocSize();

	mov	eax, DWORD PTR [eax+16]

; 95   : }

	ret	0
$LN1@GetAllocSi:

; 94   : 	return 0;

	xor	eax, eax

; 95   : }

	ret	0
?GetAllocSize@ncStringBase@@QBEIXZ ENDP			; ncStringBase::GetAllocSize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?GetLength@ncStringBase@@UBEIXZ
_TEXT	SEGMENT
?GetLength@ncStringBase@@UBEIXZ PROC			; ncStringBase::GetLength, COMDAT
; _this$ = ecx

; 98   : 	if (this->m_data != NULL)

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN1@GetLength

; 99   : 		return this->m_data->GetLength();

	mov	eax, DWORD PTR [eax+12]

; 101  : }

	ret	0
$LN1@GetLength:

; 100  : 	return 0;

	xor	eax, eax

; 101  : }

	ret	0
?GetLength@ncStringBase@@UBEIXZ ENDP			; ncStringBase::GetLength
_TEXT	ENDS
PUBLIC	?Clear@ncStringBase@@QAEXXZ			; ncStringBase::Clear
; Function compile flags: /Ogtpy
;	COMDAT ?Clear@ncStringBase@@QAEXXZ
_TEXT	SEGMENT
?Clear@ncStringBase@@QAEXXZ PROC			; ncStringBase::Clear, COMDAT
; _this$ = ecx

; 103  : {

	push	esi
	mov	esi, ecx

; 104  : 	if (this->m_data != NULL)

	mov	ecx, DWORD PTR [esi+4]
	push	edi
	xor	edi, edi
	cmp	ecx, edi
	je	SHORT $LN1@Clear

; 105  : 		this->m_data->DecRef();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN1@Clear:

; 106  : 	this->m_data = new ncStringData;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	106					; 0000006aH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, edi
	je	SHORT $LN4@Clear
	mov	DWORD PTR [eax+4], edi
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	DWORD PTR [eax+8], edi
	mov	DWORD PTR [eax+12], edi
	mov	DWORD PTR [eax+16], edi
	mov	DWORD PTR [esi+4], eax

; 107  : 	this->m_data->IncRef();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
	pop	edi
	pop	esi

; 108  : }

	ret	0
$LN4@Clear:

; 106  : 	this->m_data = new ncStringData;

	xor	eax, eax
	mov	DWORD PTR [esi+4], eax

; 107  : 	this->m_data->IncRef();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
	pop	edi
	pop	esi

; 108  : }

	ret	0
?Clear@ncStringBase@@QAEXXZ ENDP			; ncStringBase::Clear
_TEXT	ENDS
PUBLIC	?GetWritableString@ncString2@@AAEPADXZ		; ncString2::GetWritableString
; Function compile flags: /Ogtpy
;	COMDAT ?GetWritableString@ncString2@@AAEPADXZ
_TEXT	SEGMENT
?GetWritableString@ncString2@@AAEPADXZ PROC		; ncString2::GetWritableString, COMDAT
; _this$ = ecx

; 120  : 	return (char *)this->m_data->GetBuffer();

	mov	eax, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [eax+8]

; 121  : }

	ret	0
?GetWritableString@ncString2@@AAEPADXZ ENDP		; ncString2::GetWritableString
_TEXT	ENDS
PUBLIC	__real@0000000000000000
PUBLIC	?ToDouble@ncString2@@QAENXZ			; ncString2::ToDouble
EXTRN	_atof:PROC
EXTRN	__fltused:DWORD
;	COMDAT __real@0000000000000000
; File d:\source code\nc lib\ncstring2.h
CONST	SEGMENT
__real@0000000000000000 DQ 00000000000000000r	; 0
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
CONST	ENDS
;	COMDAT ?ToDouble@ncString2@@QAENXZ
_TEXT	SEGMENT
?ToDouble@ncString2@@QAENXZ PROC			; ncString2::ToDouble, COMDAT
; _this$ = ecx

; 209  : 	if (this->IsEmpty())

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN6@ToDouble
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@ToDouble
	mov	eax, DWORD PTR [eax+8]
	test	eax, eax
	jne	SHORT $LN1@ToDouble
$LN6@ToDouble:

; 210  : 		return 0.0f;

	fldz

; 212  : }

	ret	0
$LN1@ToDouble:

; 211  : 	return atof(this->GetString());

	push	eax
	call	_atof
	add	esp, 4

; 212  : }

	ret	0
?ToDouble@ncString2@@QAENXZ ENDP			; ncString2::ToDouble
_TEXT	ENDS
PUBLIC	?ToLong@ncString2@@QAEJXZ			; ncString2::ToLong
EXTRN	_atol:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?ToLong@ncString2@@QAEJXZ
_TEXT	SEGMENT
?ToLong@ncString2@@QAEJXZ PROC				; ncString2::ToLong, COMDAT
; _this$ = ecx

; 215  : 	if (this->IsEmpty())

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN6@ToLong
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@ToLong
	mov	eax, DWORD PTR [eax+8]
	test	eax, eax
	jne	SHORT $LN1@ToLong
$LN6@ToLong:

; 216  : 		return 0;

	xor	eax, eax

; 218  : }

	ret	0
$LN1@ToLong:

; 217  : 	return atol(this->GetString());

	push	eax
	call	_atol
	add	esp, 4

; 218  : }

	ret	0
?ToLong@ncString2@@QAEJXZ ENDP				; ncString2::ToLong
_TEXT	ENDS
PUBLIC	??4ncString2@@QAEAAV0@ABV0@@Z			; ncString2::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4ncString2@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
??4ncString2@@QAEAAV0@ABV0@@Z PROC			; ncString2::operator=, COMDAT
; _this$ = ecx

; 221  : 	this->SetData(content.m_data);

	mov	eax, DWORD PTR _content$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	push	edi
	mov	edi, DWORD PTR [eax+4]
	je	SHORT $LN3@operator
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN3@operator:
	mov	DWORD PTR [esi+4], edi
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, edi
	call	eax
	pop	edi

; 222  : 	return *this;

	mov	eax, esi
	pop	esi

; 223  : }

	ret	4
??4ncString2@@QAEAAV0@ABV0@@Z ENDP			; ncString2::operator=
_TEXT	ENDS
PUBLIC	?Compare@ncString2@@QBE_NABV1@H_N@Z		; ncString2::Compare
EXTRN	_tolower:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Compare@ncString2@@QBE_NABV1@H_N@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
_length$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?Compare@ncString2@@QBE_NABV1@H_N@Z PROC		; ncString2::Compare, COMDAT
; _this$ = ecx

; 255  : {

	push	esi
	mov	esi, ecx

; 256  : 	if (this->IsEmpty() && content.IsEmpty())

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	push	edi
	mov	edi, DWORD PTR _content$[esp+4]
	je	SHORT $LN16@Compare
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN16@Compare
	cmp	DWORD PTR [eax+8], 0
	jne	SHORT $LN11@Compare
$LN16@Compare:
	mov	ecx, DWORD PTR [edi+4]
	test	ecx, ecx
	je	SHORT $LN24@Compare
	cmp	DWORD PTR [ecx+12], 0
	je	SHORT $LN24@Compare
	cmp	DWORD PTR [ecx+8], 0
	jne	SHORT $LN11@Compare
$LN24@Compare:
	pop	edi

; 257  : 		return true;

	mov	al, 1
	pop	esi

; 281  : }

	ret	12					; 0000000cH
$LN11@Compare:

; 258  : 
; 259  : 	if (!this->IsEmpty() && !content.IsEmpty())

	test	eax, eax
	push	ebx
	push	ebp
	je	$LN7@Compare
	cmp	DWORD PTR [eax+12], 0
	je	$LN7@Compare
	cmp	DWORD PTR [eax+8], 0
	je	$LN7@Compare
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	je	$LN7@Compare
	cmp	DWORD PTR [eax+12], 0
	je	$LN7@Compare
	cmp	DWORD PTR [eax+8], 0
	je	$LN7@Compare

; 260  : 	{
; 261  : 		if (length == -1)

	mov	ecx, DWORD PTR _length$[esp+12]
	cmp	ecx, -1
	jne	SHORT $LN9@Compare

; 262  : 			length = content.GetLength();

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, edi
	call	edx
	mov	ecx, eax
$LN9@Compare:

; 263  : 
; 264  : 		register char *strPtr = (char *)this->GetString();

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	je	SHORT $LN48@Compare
	mov	esi, DWORD PTR [eax+8]
	jmp	SHORT $LN49@Compare
$LN48@Compare:
	xor	esi, esi
$LN49@Compare:

; 265  : 		register char *cmpPtr = (char *)content.GetString();

	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	je	SHORT $LN54@Compare
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN55@Compare
$LN54@Compare:
	xor	eax, eax
$LN55@Compare:
	mov	edi, eax

; 266  : 		while (*strPtr)

	mov	al, BYTE PTR [esi]
	test	al, al
	je	SHORT $LN7@Compare
	mov	bl, BYTE PTR _case_sensitive$[esp+12]
	npad	2
$LL8@Compare:

; 267  : 		{
; 268  : 			length--;

	sub	ecx, 1

; 269  : 			if ((!case_sensitive && tolower(*strPtr) == tolower(*cmpPtr)) || (case_sensitive && *strPtr == *cmpPtr))

	test	bl, bl
	mov	DWORD PTR _length$[esp+12], ecx
	jne	SHORT $LN61@Compare
	movsx	eax, BYTE PTR [edi]
	push	eax
	call	_tolower
	movsx	ecx, BYTE PTR [esi]
	push	ecx
	mov	ebp, eax
	call	_tolower
	add	esp, 8
	cmp	eax, ebp
	jne	SHORT $LN7@Compare
	mov	ecx, DWORD PTR _length$[esp+12]
	jmp	SHORT $LN5@Compare
$LN61@Compare:
	cmp	al, BYTE PTR [edi]
	jne	SHORT $LN7@Compare
$LN5@Compare:

; 270  : 			{
; 271  : 				*cmpPtr++;

	add	edi, 1

; 272  : 				if (!*cmpPtr || length == 0)

	cmp	BYTE PTR [edi], 0
	je	SHORT $LN59@Compare
	test	ecx, ecx
	je	SHORT $LN59@Compare
	mov	al, BYTE PTR [esi+1]

; 274  : 			}
; 275  : 			else
; 276  : 				return false;
; 277  : 			*strPtr++;

	add	esi, 1
	test	al, al
	jne	SHORT $LL8@Compare
$LN7@Compare:
	pop	ebp
	pop	ebx
	pop	edi

; 278  : 		}
; 279  : 	}
; 280  : 	return false;

	xor	al, al
	pop	esi

; 281  : }

	ret	12					; 0000000cH
$LN59@Compare:
	pop	ebp
	pop	ebx
	pop	edi

; 273  : 					return true;

	mov	al, 1
	pop	esi

; 281  : }

	ret	12					; 0000000cH
?Compare@ncString2@@QBE_NABV1@H_N@Z ENDP		; ncString2::Compare
_TEXT	ENDS
PUBLIC	?Contain@ncString2@@QBE_NABV1@H_N@Z		; ncString2::Contain
; Function compile flags: /Ogtpy
;	COMDAT ?Contain@ncString2@@QBE_NABV1@H_N@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
_length$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?Contain@ncString2@@QBE_NABV1@H_N@Z PROC		; ncString2::Contain, COMDAT
; _this$ = ecx

; 284  : 	if (!this->IsEmpty() && !content.IsEmpty())

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	push	ebx
	push	ebp
	push	esi
	push	edi
	je	SHORT $LN6@Contain
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@Contain
	mov	edi, DWORD PTR [eax+8]
	test	edi, edi
	je	SHORT $LN6@Contain
	mov	eax, DWORD PTR _content$[esp+12]
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	je	SHORT $LN6@Contain
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@Contain
	mov	esi, DWORD PTR [eax+8]
	test	esi, esi
	je	SHORT $LN6@Contain

; 285  : 	{
; 286  : 		register char *strPtr = (char *)this->GetString();
; 287  : 		register char *cmpPtr = (char *)content.GetString();
; 288  : 		while (*strPtr)

	mov	al, BYTE PTR [edi]
	test	al, al
	je	SHORT $LN6@Contain
	mov	bl, BYTE PTR _case_sensitive$[esp+12]
	npad	6
$LL7@Contain:

; 289  : 		{
; 290  : 			if ((!case_sensitive && tolower(*strPtr) == tolower(*cmpPtr)) || (case_sensitive && *strPtr == *cmpPtr))

	test	bl, bl
	jne	SHORT $LN42@Contain
	movsx	ecx, BYTE PTR [esi]
	push	ecx
	call	_tolower
	movsx	edx, BYTE PTR [edi]
	push	edx
	mov	ebp, eax
	call	_tolower
	add	esp, 8
	cmp	eax, ebp
	je	SHORT $LN45@Contain
$LN5@Contain:

; 297  : 				cmpPtr = (char *)content.GetString();

	mov	ecx, DWORD PTR _content$[esp+12]
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	mov	esi, eax
$LN1@Contain:
	mov	al, BYTE PTR [edi+1]

; 298  : 			*strPtr++;

	add	edi, 1
	test	al, al
	jne	SHORT $LL7@Contain
$LN6@Contain:
	pop	edi
	pop	esi
	pop	ebp

; 299  : 		}
; 300  : 	}
; 301  : 	return false;

	xor	al, al
	pop	ebx

; 302  : }

	ret	12					; 0000000cH
$LN42@Contain:

; 289  : 		{
; 290  : 			if ((!case_sensitive && tolower(*strPtr) == tolower(*cmpPtr)) || (case_sensitive && *strPtr == *cmpPtr))

	cmp	al, BYTE PTR [esi]
	jne	SHORT $LN5@Contain
$LN45@Contain:

; 291  : 			{
; 292  : 				*cmpPtr++;

	add	esi, 1

; 293  : 				if (!*cmpPtr)

	cmp	BYTE PTR [esi], 0

; 294  : 					return true;
; 295  : 			}
; 296  : 			else

	jne	SHORT $LN1@Contain
	pop	edi
	pop	esi
	pop	ebp
	mov	al, 1
	pop	ebx

; 302  : }

	ret	12					; 0000000cH
?Contain@ncString2@@QBE_NABV1@H_N@Z ENDP		; ncString2::Contain
_TEXT	ENDS
PUBLIC	?Matches@ncString2@@QBE_NABV1@_N@Z		; ncString2::Matches
; Function compile flags: /Ogtpy
;	COMDAT ?Matches@ncString2@@QBE_NABV1@_N@Z
_TEXT	SEGMENT
_mp$ = -4						; size = 4
tv238 = 8						; size = 4
tv236 = 8						; size = 4
_content$ = 8						; size = 4
_case_sensitive$ = 12					; size = 1
?Matches@ncString2@@QBE_NABV1@_N@Z PROC			; ncString2::Matches, COMDAT
; _this$ = ecx

; 304  : {

	push	ecx

; 305  : 	register char *cp = NULL, *mp = NULL;
; 306  : 	char *cStr = (char *)this->GetString();

	mov	eax, DWORD PTR [ecx+4]
	push	ebx
	push	ebp
	xor	ebp, ebp
	cmp	eax, ebp
	push	esi
	push	edi
	mov	DWORD PTR _mp$[esp+20], ebp
	je	SHORT $LN22@Matches
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN23@Matches
$LN22@Matches:
	xor	eax, eax
$LN23@Matches:
	mov	edi, eax

; 307  : 	char *wStr = (char *)content.GetString();

	mov	eax, DWORD PTR _content$[esp+16]
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebp
	je	SHORT $LN28@Matches
	mov	esi, DWORD PTR [eax+8]
	jmp	SHORT $LN29@Matches
$LN28@Matches:
	xor	esi, esi
$LN29@Matches:

; 308  : 	while ((*cStr) && (*wStr != '*'))

	mov	al, BYTE PTR [edi]
	test	al, al
	je	SHORT $LN34@Matches
$LL17@Matches:
	mov	bl, BYTE PTR [esi]
	cmp	bl, 42					; 0000002aH
	je	SHORT $LN33@Matches

; 309  : 	{
; 310  : 		if (((case_sensitive && *wStr != *cStr) || (!case_sensitive && tolower(*wStr) != tolower(*cStr))) && (*wStr != '?'))

	cmp	BYTE PTR _case_sensitive$[esp+16], 0
	je	SHORT $LN40@Matches
	cmp	bl, al
	jne	SHORT $LN14@Matches
	jmp	SHORT $LN41@Matches
$LN40@Matches:
	movsx	ecx, BYTE PTR [edi]
	push	ecx
	call	_tolower
	movsx	edx, bl
	push	edx
	mov	DWORD PTR tv238[esp+24], eax
	call	_tolower
	mov	ecx, DWORD PTR tv238[esp+24]
	add	esp, 8
	cmp	eax, ecx
	je	SHORT $LN41@Matches
$LN14@Matches:
	cmp	BYTE PTR [esi], 63			; 0000003fH
	jne	SHORT $LN35@Matches
$LN41@Matches:

; 308  : 	while ((*cStr) && (*wStr != '*'))

	mov	al, BYTE PTR [edi+1]

; 312  : 		*wStr++;
; 313  : 		cStr++;

	add	edi, 1
	add	esi, 1
	test	al, al
	jne	SHORT $LL17@Matches
$LN34@Matches:

; 333  : 		}
; 334  : 	}
; 335  : 	while (*wStr == '*')

	cmp	BYTE PTR [esi], 42			; 0000002aH
	jne	SHORT $LN1@Matches
	npad	1
$LL2@Matches:

; 336  : 		*wStr++;

	add	esi, 1
	cmp	BYTE PTR [esi], 42			; 0000002aH
	je	SHORT $LL2@Matches
$LN1@Matches:

; 337  : 	return !*wStr;

	xor	eax, eax
	cmp	BYTE PTR [esi], al
	pop	edi
	pop	esi
	pop	ebp
	sete	al
	pop	ebx

; 338  : }

	pop	ecx
	ret	8
$LN35@Matches:
	pop	edi
	pop	esi
	pop	ebp

; 311  : 			return false;

	xor	al, al
	pop	ebx

; 338  : }

	pop	ecx
	ret	8
$LN33@Matches:

; 314  : 	}
; 315  : 	while (*cStr)

	mov	al, BYTE PTR [edi]
	test	al, al
	je	SHORT $LN34@Matches
$LL12@Matches:

; 316  : 	{
; 317  : 		if (*wStr == '*')

	mov	bl, BYTE PTR [esi]
	cmp	bl, 42					; 0000002aH
	jne	SHORT $LN10@Matches

; 318  : 		{
; 319  : 			if (!*++wStr)

	add	esi, 1
	cmp	BYTE PTR [esi], 0
	je	SHORT $LN36@Matches

; 321  : 			mp = wStr;

	mov	DWORD PTR _mp$[esp+20], esi

; 322  : 			cp = cStr + 1;

	lea	ebp, DWORD PTR [edi+1]
	jmp	SHORT $LN3@Matches
$LN10@Matches:

; 323  : 		}
; 324  : 		else if (((case_sensitive && *wStr == *cStr) || (!case_sensitive && tolower(*wStr) == tolower(*cStr))) || (*wStr == '?'))

	cmp	BYTE PTR _case_sensitive$[esp+16], 0
	je	SHORT $LN39@Matches
	cmp	bl, al
	jmp	SHORT $LN43@Matches
$LN39@Matches:
	movsx	eax, BYTE PTR [edi]
	push	eax
	call	_tolower
	movsx	ecx, bl
	push	ecx
	mov	DWORD PTR tv236[esp+24], eax
	call	_tolower
	mov	ecx, DWORD PTR tv236[esp+24]
	add	esp, 8
	cmp	eax, ecx
$LN43@Matches:
	je	SHORT $LN42@Matches
	cmp	BYTE PTR [esi], 63			; 0000003fH
	jne	SHORT $LN7@Matches
$LN42@Matches:

; 325  : 		{
; 326  : 			*wStr++;

	add	esi, 1

; 327  : 			cStr++;

	add	edi, 1

; 328  : 		}
; 329  : 		else

	jmp	SHORT $LN3@Matches
$LN7@Matches:

; 330  : 		{
; 331  : 			wStr = mp;

	mov	esi, DWORD PTR _mp$[esp+20]

; 332  : 			cStr = cp++;

	mov	edi, ebp
	add	ebp, 1
$LN3@Matches:
	mov	al, BYTE PTR [edi]
	test	al, al
	jne	SHORT $LL12@Matches

; 318  : 		{
; 319  : 			if (!*++wStr)

	jmp	$LN34@Matches
$LN36@Matches:
	pop	edi
	pop	esi
	pop	ebp

; 320  : 				return true;

	mov	al, 1
	pop	ebx

; 338  : }

	pop	ecx
	ret	8
?Matches@ncString2@@QBE_NABV1@_N@Z ENDP			; ncString2::Matches
_TEXT	ENDS
PUBLIC	?Find@ncString2@@QAEHABV1@_N1@Z			; ncString2::Find
; Function compile flags: /Ogtpy
;	COMDAT ?Find@ncString2@@QAEHABV1@_N1@Z
_TEXT	SEGMENT
_pos$ = -8						; size = 4
tv266 = -4						; size = 4
_content$ = 8						; size = 4
_cmpStart$38211 = 12					; size = 4
_fromEnd$ = 12						; size = 1
_case_sensitive$ = 16					; size = 1
?Find@ncString2@@QAEHABV1@_N1@Z PROC			; ncString2::Find, COMDAT
; _this$ = ecx

; 340  : {

	sub	esp, 8
	push	ebp
	mov	ebp, ecx

; 341  : 	int pos = -1;
; 342  : 	if (!this->IsEmpty() && !content.IsEmpty())

	mov	eax, DWORD PTR [ebp+4]
	test	eax, eax
	mov	DWORD PTR _pos$[esp+12], -1
	je	$LN77@Find
	cmp	DWORD PTR [eax+12], 0
	je	$LN77@Find
	mov	edx, DWORD PTR [eax+8]
	test	edx, edx
	mov	DWORD PTR tv266[esp+12], edx
	je	$LN77@Find
	mov	ecx, DWORD PTR _content$[esp+8]
	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	$LN77@Find
	cmp	DWORD PTR [eax+12], 0
	je	$LN77@Find
	push	ebx
	mov	ebx, DWORD PTR [eax+8]
	test	ebx, ebx
	je	$LN78@Find

; 343  : 	{
; 344  : 		if (fromEnd)

	cmp	BYTE PTR _fromEnd$[esp+12], 0
	push	esi
	push	edi
	je	$LN13@Find

; 345  : 		{
; 346  : 			const char *cmpStart = ((char *)content.GetString() + content.GetLength() - 1);

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	call	edx
	lea	edi, DWORD PTR [eax+ebx-1]

; 347  : 			register char *str = ((char *)this->GetString() + this->GetLength() - 1);

	mov	eax, DWORD PTR [ebp+4]
	test	eax, eax
	mov	DWORD PTR _cmpStart$38211[esp+20], edi
	je	SHORT $LN41@Find
	mov	esi, DWORD PTR [eax+8]
	jmp	SHORT $LN42@Find
$LN41@Find:
	xor	esi, esi
$LN42@Find:
	mov	eax, DWORD PTR [ebp]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, ebp
	call	edx

; 348  : 			register char *cmp = (char *)cmpStart;
; 349  : 			while (str != this->GetString())

	mov	ecx, ebp
	lea	esi, DWORD PTR [eax+esi-1]
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	mov	ebx, eax
	cmp	esi, ebx
	je	$LN79@Find
$LL12@Find:

; 350  : 			{
; 351  : 				if (cmp == content.GetString())

	mov	ecx, DWORD PTR _content$[esp+20]
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	edi, eax
	je	SHORT $LN71@Find

; 354  : 					break;
; 355  : 				}
; 356  : 				if (*str == *cmp)

	mov	al, BYTE PTR [esi]
	cmp	al, BYTE PTR [edi]
	jne	SHORT $LN9@Find

; 357  : 					*cmp--;

	sub	edi, 1

; 358  : 				else

	jmp	SHORT $LN8@Find
$LN9@Find:

; 359  : 					cmp = (char *)cmpStart;

	mov	edi, DWORD PTR _cmpStart$38211[esp+20]
$LN8@Find:

; 360  : 				*str--;

	sub	esi, 1
	cmp	esi, ebx
	jne	SHORT $LL12@Find

; 385  : 				}
; 386  : 			}
; 387  : 		}
; 388  : 	}
; 389  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+24]
	pop	edi
	pop	esi
	pop	ebx
	pop	ebp

; 390  : }

	add	esp, 8
	ret	12					; 0000000cH
$LN71@Find:

; 352  : 				{
; 353  : 					pos = (str - this->GetString());

	mov	ebp, DWORD PTR [ebp+4]
	test	ebp, ebp
	je	SHORT $LN47@Find
	mov	ebp, DWORD PTR [ebp+8]
	sub	esi, ebp
	pop	edi
	mov	DWORD PTR _pos$[esp+20], esi

; 385  : 				}
; 386  : 			}
; 387  : 		}
; 388  : 	}
; 389  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+20]
	pop	esi
	pop	ebx
	pop	ebp

; 390  : }

	add	esp, 8
	ret	12					; 0000000cH

; 352  : 				{
; 353  : 					pos = (str - this->GetString());

$LN47@Find:
	xor	ebp, ebp
	sub	esi, ebp
	pop	edi
	mov	DWORD PTR _pos$[esp+20], esi

; 385  : 				}
; 386  : 			}
; 387  : 		}
; 388  : 	}
; 389  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+20]
	pop	esi
	pop	ebx
	pop	ebp

; 390  : }

	add	esp, 8
	ret	12					; 0000000cH
$LN13@Find:

; 361  : 			}
; 362  : 		}
; 363  : 		else
; 364  : 		{
; 365  : 			char *start = NULL;
; 366  : 			register char *str = (char *)this->GetString();

	mov	esi, edx
	xor	edi, edi

; 367  : 			register char *cmp = (char *)content.GetString();
; 368  : 			while (*str++)

	cmp	BYTE PTR [esi], 0
	mov	eax, ebx
	je	SHORT $LN79@Find
$LL6@Find:

; 369  : 			{
; 370  : 				if (!*cmp)

	mov	cl, BYTE PTR [eax]
	add	esi, 1
	test	cl, cl
	je	SHORT $LN72@Find

; 373  : 					break;
; 374  : 				}
; 375  : 				if (*str == *cmp)

	mov	bl, BYTE PTR [esi]
	cmp	bl, cl
	jne	SHORT $LN3@Find

; 376  : 				{
; 377  : 					if (start == NULL)

	test	edi, edi
	jne	SHORT $LN2@Find

; 378  : 						start = str;

	mov	edi, esi
$LN2@Find:

; 379  : 					*cmp++;

	add	eax, 1

; 380  : 				}
; 381  : 				else

	jmp	SHORT $LN1@Find
$LN3@Find:

; 382  : 				{
; 383  : 					start = NULL;
; 384  : 					cmp = (char *)content.GetString();

	mov	ecx, DWORD PTR _content$[esp+20]
	xor	edi, edi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	mov	edx, DWORD PTR tv266[esp+24]
$LN1@Find:

; 367  : 			register char *cmp = (char *)content.GetString();
; 368  : 			while (*str++)

	test	bl, bl
	jne	SHORT $LL6@Find

; 385  : 				}
; 386  : 			}
; 387  : 		}
; 388  : 	}
; 389  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+24]
	pop	edi
	pop	esi
	pop	ebx
	pop	ebp

; 390  : }

	add	esp, 8
	ret	12					; 0000000cH
$LN72@Find:

; 371  : 				{
; 372  : 					pos = (start - this->GetString());

	sub	edi, edx
	mov	DWORD PTR _pos$[esp+24], edi
$LN79@Find:
	pop	edi
	pop	esi
$LN78@Find:
	pop	ebx
$LN77@Find:

; 385  : 				}
; 386  : 			}
; 387  : 		}
; 388  : 	}
; 389  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+12]
	pop	ebp

; 390  : }

	add	esp, 8
	ret	12					; 0000000cH
?Find@ncString2@@QAEHABV1@_N1@Z ENDP			; ncString2::Find
_TEXT	ENDS
PUBLIC	?MakeLower@ncString2@@QAEAAV1@XZ		; ncString2::MakeLower
; Function compile flags: /Ogtpy
;	COMDAT ?MakeLower@ncString2@@QAEAAV1@XZ
_TEXT	SEGMENT
?MakeLower@ncString2@@QAEAAV1@XZ PROC			; ncString2::MakeLower, COMDAT
; _this$ = ecx

; 491  : {

	push	esi
	mov	esi, ecx

; 492  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	xor	edi, edi
	call	edx
	test	eax, eax
	jbe	SHORT $LN13@MakeLower
$LL4@MakeLower:

; 493  : 	{
; 494  : 		if (this->GetString()[i] > 'A' && this->GetString()[i] < 'Z')

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	BYTE PTR [eax+edi], 65			; 00000041H
	jle	SHORT $LN3@MakeLower
	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	BYTE PTR [eax+edi], 90			; 0000005aH
	jge	SHORT $LN3@MakeLower

; 495  : 			this->GetWritableString()[i] += 32;

	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax+8]
	add	BYTE PTR [ecx+edi], 32			; 00000020H
	lea	eax, DWORD PTR [ecx+edi]
$LN3@MakeLower:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	add	edi, 1
	call	eax
	cmp	edi, eax
	jb	SHORT $LL4@MakeLower
$LN13@MakeLower:
	pop	edi

; 496  : 	}
; 497  : 	return *this;

	mov	eax, esi
	pop	esi

; 498  : }

	ret	0
?MakeLower@ncString2@@QAEAAV1@XZ ENDP			; ncString2::MakeLower
_TEXT	ENDS
PUBLIC	?MakeUpper@ncString2@@QAEAAV1@XZ		; ncString2::MakeUpper
; Function compile flags: /Ogtpy
;	COMDAT ?MakeUpper@ncString2@@QAEAAV1@XZ
_TEXT	SEGMENT
?MakeUpper@ncString2@@QAEAAV1@XZ PROC			; ncString2::MakeUpper, COMDAT
; _this$ = ecx

; 506  : {

	push	esi
	mov	esi, ecx

; 507  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	xor	edi, edi
	call	edx
	test	eax, eax
	jbe	SHORT $LN13@MakeUpper
$LL4@MakeUpper:

; 508  : 	{
; 509  : 		if (this->GetString()[i] > 'a' && this->GetString()[i] < 'z')

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	BYTE PTR [eax+edi], 97			; 00000061H
	jle	SHORT $LN3@MakeUpper
	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	BYTE PTR [eax+edi], 122			; 0000007aH
	jge	SHORT $LN3@MakeUpper

; 510  : 			this->GetWritableString()[i] -= 32;

	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax+8]
	add	BYTE PTR [ecx+edi], -32			; ffffffe0H
	lea	eax, DWORD PTR [ecx+edi]
$LN3@MakeUpper:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	add	edi, 1
	call	eax
	cmp	edi, eax
	jb	SHORT $LL4@MakeUpper
$LN13@MakeUpper:
	pop	edi

; 511  : 	}
; 512  : 	return *this;

	mov	eax, esi
	pop	esi

; 513  : }

	ret	0
?MakeUpper@ncString2@@QAEAAV1@XZ ENDP			; ncString2::MakeUpper
_TEXT	ENDS
PUBLIC	?GetWritableString@ncWideString2@@AAEPA_WXZ	; ncWideString2::GetWritableString
; Function compile flags: /Ogtpy
;	COMDAT ?GetWritableString@ncWideString2@@AAEPA_WXZ
_TEXT	SEGMENT
?GetWritableString@ncWideString2@@AAEPA_WXZ PROC	; ncWideString2::GetWritableString, COMDAT
; _this$ = ecx

; 594  : 	return (wchar_t *)this->m_data->GetBuffer();

	mov	eax, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [eax+8]

; 595  : }

	ret	0
?GetWritableString@ncWideString2@@AAEPA_WXZ ENDP	; ncWideString2::GetWritableString
_TEXT	ENDS
PUBLIC	?GetLength@ncWideString2@@UBEIXZ		; ncWideString2::GetLength
; Function compile flags: /Ogtpy
;	COMDAT ?GetLength@ncWideString2@@UBEIXZ
_TEXT	SEGMENT
?GetLength@ncWideString2@@UBEIXZ PROC			; ncWideString2::GetLength, COMDAT
; _this$ = ecx

; 648  : 	if (this->m_data != NULL)

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN1@GetLength@2

; 649  : 		return (this->m_data->GetLength() / 2);

	mov	eax, DWORD PTR [eax+12]
	shr	eax, 1

; 651  : }

	ret	0
$LN1@GetLength@2:

; 650  : 	return 0;

	xor	eax, eax

; 651  : }

	ret	0
?GetLength@ncWideString2@@UBEIXZ ENDP			; ncWideString2::GetLength
_TEXT	ENDS
PUBLIC	?ToDouble@ncWideString2@@QAENXZ			; ncWideString2::ToDouble
EXTRN	__wtof:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?ToDouble@ncWideString2@@QAENXZ
_TEXT	SEGMENT
?ToDouble@ncWideString2@@QAENXZ PROC			; ncWideString2::ToDouble, COMDAT
; _this$ = ecx

; 694  : 	if (this->IsEmpty())

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN6@ToDouble@2
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@ToDouble@2
	mov	eax, DWORD PTR [eax+8]
	test	eax, eax
	jne	SHORT $LN1@ToDouble@2
$LN6@ToDouble@2:

; 695  : 		return 0.0f;

	fldz

; 697  : }

	ret	0
$LN1@ToDouble@2:

; 696  : 	return _wtof(this->GetString());

	push	eax
	call	__wtof
	add	esp, 4

; 697  : }

	ret	0
?ToDouble@ncWideString2@@QAENXZ ENDP			; ncWideString2::ToDouble
_TEXT	ENDS
PUBLIC	?ToLong@ncWideString2@@QAEJXZ			; ncWideString2::ToLong
EXTRN	__wtol:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?ToLong@ncWideString2@@QAEJXZ
_TEXT	SEGMENT
?ToLong@ncWideString2@@QAEJXZ PROC			; ncWideString2::ToLong, COMDAT
; _this$ = ecx

; 700  : 	if (this->IsEmpty())

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN6@ToLong@2
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@ToLong@2
	mov	eax, DWORD PTR [eax+8]
	test	eax, eax
	jne	SHORT $LN1@ToLong@2
$LN6@ToLong@2:

; 701  : 		return 0;

	xor	eax, eax

; 703  : }

	ret	0
$LN1@ToLong@2:

; 702  : 	return _wtol(this->GetString());

	push	eax
	call	__wtol
	add	esp, 4

; 703  : }

	ret	0
?ToLong@ncWideString2@@QAEJXZ ENDP			; ncWideString2::ToLong
_TEXT	ENDS
PUBLIC	??4ncWideString2@@QAEAAV0@ABV0@@Z		; ncWideString2::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4ncWideString2@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
??4ncWideString2@@QAEAAV0@ABV0@@Z PROC			; ncWideString2::operator=, COMDAT
; _this$ = ecx

; 706  : 	this->SetData(content.m_data);

	mov	eax, DWORD PTR _content$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	push	edi
	mov	edi, DWORD PTR [eax+4]
	je	SHORT $LN3@operator@2
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN3@operator@2:
	mov	DWORD PTR [esi+4], edi
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, edi
	call	eax
	pop	edi

; 707  : 	return *this;

	mov	eax, esi
	pop	esi

; 708  : }

	ret	4
??4ncWideString2@@QAEAAV0@ABV0@@Z ENDP			; ncWideString2::operator=
_TEXT	ENDS
PUBLIC	?Compare@ncWideString2@@QBE_NABV1@H_N@Z		; ncWideString2::Compare
; Function compile flags: /Ogtpy
;	COMDAT ?Compare@ncWideString2@@QBE_NABV1@H_N@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
_length$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?Compare@ncWideString2@@QBE_NABV1@H_N@Z PROC		; ncWideString2::Compare, COMDAT
; _this$ = ecx

; 740  : {

	push	esi
	mov	esi, ecx

; 741  : 	if (this->IsEmpty() && content.IsEmpty())

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	push	edi
	mov	edi, DWORD PTR _content$[esp+4]
	je	SHORT $LN16@Compare@2
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN16@Compare@2
	cmp	DWORD PTR [eax+8], 0
	jne	SHORT $LN11@Compare@2
$LN16@Compare@2:
	mov	ecx, DWORD PTR [edi+4]
	test	ecx, ecx
	je	SHORT $LN24@Compare@2
	cmp	DWORD PTR [ecx+12], 0
	je	SHORT $LN24@Compare@2
	cmp	DWORD PTR [ecx+8], 0
	jne	SHORT $LN11@Compare@2
$LN24@Compare@2:
	pop	edi

; 742  : 		return true;

	mov	al, 1
	pop	esi

; 766  : }

	ret	12					; 0000000cH
$LN11@Compare@2:

; 743  : 
; 744  : 	if (!this->IsEmpty() && !content.IsEmpty())

	test	eax, eax
	push	ebx
	push	ebp
	je	$LN7@Compare@2
	cmp	DWORD PTR [eax+12], 0
	je	$LN7@Compare@2
	cmp	DWORD PTR [eax+8], 0
	je	$LN7@Compare@2
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	je	$LN7@Compare@2
	cmp	DWORD PTR [eax+12], 0
	je	$LN7@Compare@2
	cmp	DWORD PTR [eax+8], 0
	je	$LN7@Compare@2

; 745  : 	{
; 746  : 		if (length == -1)

	mov	ecx, DWORD PTR _length$[esp+12]
	cmp	ecx, -1
	jne	SHORT $LN9@Compare@2

; 747  : 			length = content.GetLength();

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, edi
	call	edx
	mov	ecx, eax
$LN9@Compare@2:

; 748  : 
; 749  : 		register wchar_t *strPtr = (wchar_t *)this->GetString();

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	je	SHORT $LN48@Compare@2
	mov	esi, DWORD PTR [eax+8]
	jmp	SHORT $LN49@Compare@2
$LN48@Compare@2:
	xor	esi, esi
$LN49@Compare@2:

; 750  : 		register wchar_t *cmpPtr = (wchar_t *)content.GetString();

	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	je	SHORT $LN54@Compare@2
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN55@Compare@2
$LN54@Compare@2:
	xor	eax, eax
$LN55@Compare@2:
	mov	edi, eax

; 751  : 		while (*strPtr)

	movzx	eax, WORD PTR [esi]
	test	ax, ax
	je	SHORT $LN7@Compare@2
	mov	bl, BYTE PTR _case_sensitive$[esp+12]
$LL8@Compare@2:

; 752  : 		{
; 753  : 			length--;

	sub	ecx, 1

; 754  : 			if ((!case_sensitive && tolower(*strPtr) == tolower(*cmpPtr)) || (case_sensitive && *strPtr == *cmpPtr))

	test	bl, bl
	mov	DWORD PTR _length$[esp+12], ecx
	jne	SHORT $LN61@Compare@2
	movzx	eax, WORD PTR [edi]
	push	eax
	call	_tolower
	movzx	ecx, WORD PTR [esi]
	push	ecx
	mov	ebp, eax
	call	_tolower
	add	esp, 8
	cmp	eax, ebp
	jne	SHORT $LN7@Compare@2
	mov	ecx, DWORD PTR _length$[esp+12]
	jmp	SHORT $LN5@Compare@2
$LN61@Compare@2:
	cmp	ax, WORD PTR [edi]
	jne	SHORT $LN7@Compare@2
$LN5@Compare@2:

; 755  : 			{
; 756  : 				*cmpPtr++;

	add	edi, 2

; 757  : 				if (!*cmpPtr || length == 0)

	cmp	WORD PTR [edi], 0
	je	SHORT $LN59@Compare@2
	test	ecx, ecx
	je	SHORT $LN59@Compare@2
	movzx	eax, WORD PTR [esi+2]

; 759  : 			}
; 760  : 			else
; 761  : 				return false;
; 762  : 			*strPtr++;

	add	esi, 2
	test	ax, ax
	jne	SHORT $LL8@Compare@2
$LN7@Compare@2:
	pop	ebp
	pop	ebx
	pop	edi

; 763  : 		}
; 764  : 	}
; 765  : 	return false;

	xor	al, al
	pop	esi

; 766  : }

	ret	12					; 0000000cH
$LN59@Compare@2:
	pop	ebp
	pop	ebx
	pop	edi

; 758  : 					return true;

	mov	al, 1
	pop	esi

; 766  : }

	ret	12					; 0000000cH
?Compare@ncWideString2@@QBE_NABV1@H_N@Z ENDP		; ncWideString2::Compare
_TEXT	ENDS
PUBLIC	?Contain@ncWideString2@@QBE_NABV1@H_N@Z		; ncWideString2::Contain
; Function compile flags: /Ogtpy
;	COMDAT ?Contain@ncWideString2@@QBE_NABV1@H_N@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
_length$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?Contain@ncWideString2@@QBE_NABV1@H_N@Z PROC		; ncWideString2::Contain, COMDAT
; _this$ = ecx

; 769  : 	if (!this->IsEmpty() && !content.IsEmpty())

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	push	ebx
	push	ebp
	push	esi
	push	edi
	je	SHORT $LN6@Contain@2
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@Contain@2
	mov	edi, DWORD PTR [eax+8]
	test	edi, edi
	je	SHORT $LN6@Contain@2
	mov	eax, DWORD PTR _content$[esp+12]
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	je	SHORT $LN6@Contain@2
	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN6@Contain@2
	mov	esi, DWORD PTR [eax+8]
	test	esi, esi
	je	SHORT $LN6@Contain@2

; 770  : 	{
; 771  : 		register wchar_t *strPtr = (wchar_t *)this->GetString();
; 772  : 		register wchar_t *cmpPtr = (wchar_t *)content.GetString();
; 773  : 		while (*strPtr)

	movzx	eax, WORD PTR [edi]
	test	ax, ax
	je	SHORT $LN6@Contain@2
	mov	bl, BYTE PTR _case_sensitive$[esp+12]
	npad	4
$LL7@Contain@2:

; 774  : 		{
; 775  : 			if ((!case_sensitive && tolower(*strPtr) == tolower(*cmpPtr)) || (case_sensitive && *strPtr == *cmpPtr))

	test	bl, bl
	jne	SHORT $LN42@Contain@2
	movzx	ecx, WORD PTR [esi]
	push	ecx
	call	_tolower
	movzx	edx, WORD PTR [edi]
	push	edx
	mov	ebp, eax
	call	_tolower
	add	esp, 8
	cmp	eax, ebp
	je	SHORT $LN45@Contain@2
$LN5@Contain@2:

; 782  : 				cmpPtr = (wchar_t *)content.GetString();

	mov	ecx, DWORD PTR _content$[esp+12]
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	mov	esi, eax
$LN1@Contain@2:
	movzx	eax, WORD PTR [edi+2]

; 783  : 			*strPtr++;

	add	edi, 2
	test	ax, ax
	jne	SHORT $LL7@Contain@2
$LN6@Contain@2:
	pop	edi
	pop	esi
	pop	ebp

; 784  : 		}
; 785  : 	}
; 786  : 	return false;

	xor	al, al
	pop	ebx

; 787  : }

	ret	12					; 0000000cH
$LN42@Contain@2:

; 774  : 		{
; 775  : 			if ((!case_sensitive && tolower(*strPtr) == tolower(*cmpPtr)) || (case_sensitive && *strPtr == *cmpPtr))

	cmp	ax, WORD PTR [esi]
	jne	SHORT $LN5@Contain@2
$LN45@Contain@2:

; 776  : 			{
; 777  : 				*cmpPtr++;

	add	esi, 2

; 778  : 				if (!*cmpPtr)

	cmp	WORD PTR [esi], 0

; 779  : 					return true;
; 780  : 			}
; 781  : 			else

	jne	SHORT $LN1@Contain@2
	pop	edi
	pop	esi
	pop	ebp
	mov	al, 1
	pop	ebx

; 787  : }

	ret	12					; 0000000cH
?Contain@ncWideString2@@QBE_NABV1@H_N@Z ENDP		; ncWideString2::Contain
_TEXT	ENDS
PUBLIC	?Matches@ncWideString2@@QBE_NABV1@_N@Z		; ncWideString2::Matches
EXTRN	_towlower:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Matches@ncWideString2@@QBE_NABV1@_N@Z
_TEXT	SEGMENT
_mp$ = -4						; size = 4
tv234 = 8						; size = 2
tv232 = 8						; size = 2
_content$ = 8						; size = 4
_case_sensitive$ = 12					; size = 1
?Matches@ncWideString2@@QBE_NABV1@_N@Z PROC		; ncWideString2::Matches, COMDAT
; _this$ = ecx

; 789  : {

	push	ecx

; 790  : 	register wchar_t* cp = NULL, *mp = NULL;
; 791  : 	wchar_t* cStr = (wchar_t *)this->GetString();

	mov	eax, DWORD PTR [ecx+4]
	push	ebx
	push	ebp
	xor	ebx, ebx
	test	eax, eax
	push	esi
	push	edi
	mov	DWORD PTR _mp$[esp+20], ebx
	je	SHORT $LN22@Matches@2
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN23@Matches@2
$LN22@Matches@2:
	xor	eax, eax
$LN23@Matches@2:
	mov	edi, eax

; 792  : 	wchar_t* wStr = (wchar_t *)content.GetString();

	mov	eax, DWORD PTR _content$[esp+16]
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	je	SHORT $LN28@Matches@2
	mov	esi, DWORD PTR [eax+8]
	jmp	SHORT $LN29@Matches@2
$LN28@Matches@2:
	xor	esi, esi
$LN29@Matches@2:

; 793  : 	while ((*cStr) && (*wStr != '*'))

	movzx	eax, WORD PTR [edi]
	test	ax, ax
	je	SHORT $LN43@Matches@2
$LL17@Matches@2:
	movzx	ebp, WORD PTR [esi]
	cmp	bp, 42					; 0000002aH
	je	SHORT $LN33@Matches@2

; 794  : 	{
; 795  : 		if (((case_sensitive && *wStr != *cStr) || (!case_sensitive && towlower(*wStr) != towlower(*cStr))) && (*wStr != '?'))

	cmp	BYTE PTR _case_sensitive$[esp+16], bl
	je	SHORT $LN40@Matches@2
	cmp	bp, ax
	jne	SHORT $LN14@Matches@2
	jmp	SHORT $LN41@Matches@2
$LN40@Matches@2:
	movzx	ecx, WORD PTR [edi]
	push	ecx
	call	_towlower
	push	ebp
	mov	WORD PTR tv234[esp+24], ax
	call	_towlower
	movzx	ecx, WORD PTR tv234[esp+24]
	add	esp, 8
	cmp	ax, cx
	je	SHORT $LN41@Matches@2
$LN14@Matches@2:
	cmp	WORD PTR [esi], 63			; 0000003fH
	jne	SHORT $LN35@Matches@2
$LN41@Matches@2:

; 793  : 	while ((*cStr) && (*wStr != '*'))

	movzx	eax, WORD PTR [edi+2]

; 797  : 		*wStr++;
; 798  : 		cStr++;

	add	edi, 2
	add	esi, 2
	test	ax, ax
	jne	SHORT $LL17@Matches@2
$LN43@Matches@2:

; 818  : 		}
; 819  : 	}
; 820  : 	while (*wStr == '*')

	cmp	WORD PTR [esi], 42			; 0000002aH
	jne	SHORT $LN1@Matches@2
$LL2@Matches@2:

; 821  : 		*wStr++;

	add	esi, 2
	cmp	WORD PTR [esi], 42			; 0000002aH
	je	SHORT $LL2@Matches@2
$LN1@Matches@2:

; 822  : 	return !*wStr;

	xor	eax, eax
	cmp	WORD PTR [esi], ax
	pop	edi
	pop	esi
	pop	ebp
	sete	al
	pop	ebx

; 823  : }

	pop	ecx
	ret	8
$LN35@Matches@2:
	pop	edi
	pop	esi
	pop	ebp

; 796  : 			return false;

	xor	al, al
	pop	ebx

; 823  : }

	pop	ecx
	ret	8
$LN33@Matches@2:

; 799  : 	}
; 800  : 	while (*cStr)

	movzx	eax, WORD PTR [edi]
	test	ax, ax
	je	SHORT $LN43@Matches@2
$LL12@Matches@2:

; 801  : 	{
; 802  : 		if (*wStr == '*')

	movzx	ebp, WORD PTR [esi]
	cmp	bp, 42					; 0000002aH
	jne	SHORT $LN10@Matches@2

; 803  : 		{
; 804  : 			if (!*++wStr)

	add	esi, 2
	cmp	WORD PTR [esi], 0
	je	SHORT $LN36@Matches@2

; 806  : 			mp = wStr;

	mov	DWORD PTR _mp$[esp+20], esi

; 807  : 			cp = cStr + 1;

	lea	ebx, DWORD PTR [edi+2]
	jmp	SHORT $LN3@Matches@2
$LN10@Matches@2:

; 808  : 		}
; 809  : 		else if (((case_sensitive && *wStr == *cStr) || (!case_sensitive && towlower(*wStr) == towlower(*cStr))) || (*wStr == '?'))

	cmp	BYTE PTR _case_sensitive$[esp+16], 0
	je	SHORT $LN39@Matches@2
	cmp	bp, ax
	jmp	SHORT $LN45@Matches@2
$LN39@Matches@2:
	movzx	edx, WORD PTR [edi]
	push	edx
	call	_towlower
	push	ebp
	mov	WORD PTR tv232[esp+24], ax
	call	_towlower
	mov	cx, WORD PTR tv232[esp+24]
	add	esp, 8
	cmp	ax, cx
$LN45@Matches@2:
	je	SHORT $LN42@Matches@2
	cmp	WORD PTR [esi], 63			; 0000003fH
	jne	SHORT $LN7@Matches@2
$LN42@Matches@2:

; 810  : 		{
; 811  : 			*wStr++;

	add	esi, 2

; 812  : 			cStr++;

	add	edi, 2

; 813  : 		}
; 814  : 		else

	jmp	SHORT $LN3@Matches@2
$LN7@Matches@2:

; 815  : 		{
; 816  : 			wStr = mp;

	mov	esi, DWORD PTR _mp$[esp+20]

; 817  : 			cStr = cp++;

	mov	edi, ebx
	add	ebx, 2
$LN3@Matches@2:
	movzx	eax, WORD PTR [edi]
	test	ax, ax
	jne	SHORT $LL12@Matches@2

; 803  : 		{
; 804  : 			if (!*++wStr)

	jmp	$LN43@Matches@2
$LN36@Matches@2:
	pop	edi
	pop	esi
	pop	ebp

; 805  : 				return true;

	mov	al, 1
	pop	ebx

; 823  : }

	pop	ecx
	ret	8
?Matches@ncWideString2@@QBE_NABV1@_N@Z ENDP		; ncWideString2::Matches
_TEXT	ENDS
PUBLIC	?Find@ncWideString2@@QAEHABV1@_N1@Z		; ncWideString2::Find
; Function compile flags: /Ogtpy
;	COMDAT ?Find@ncWideString2@@QAEHABV1@_N1@Z
_TEXT	SEGMENT
_pos$ = -8						; size = 4
tv266 = -4						; size = 4
_content$ = 8						; size = 4
_cmpStart$38651 = 12					; size = 4
_fromEnd$ = 12						; size = 1
_case_sensitive$ = 16					; size = 1
?Find@ncWideString2@@QAEHABV1@_N1@Z PROC		; ncWideString2::Find, COMDAT
; _this$ = ecx

; 825  : {

	sub	esp, 8
	push	ebp
	mov	ebp, ecx

; 826  : 	int pos = -1;
; 827  : 	if (!this->IsEmpty() && !content.IsEmpty())

	mov	eax, DWORD PTR [ebp+4]
	test	eax, eax
	mov	DWORD PTR _pos$[esp+12], -1
	je	$LN77@Find@2
	cmp	DWORD PTR [eax+12], 0
	je	$LN77@Find@2
	mov	edx, DWORD PTR [eax+8]
	test	edx, edx
	mov	DWORD PTR tv266[esp+12], edx
	je	$LN77@Find@2
	mov	ecx, DWORD PTR _content$[esp+8]
	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	$LN77@Find@2
	cmp	DWORD PTR [eax+12], 0
	je	$LN77@Find@2
	push	ebx
	mov	ebx, DWORD PTR [eax+8]
	test	ebx, ebx
	je	$LN78@Find@2

; 828  : 	{
; 829  : 		if (fromEnd)

	cmp	BYTE PTR _fromEnd$[esp+12], 0
	push	esi
	push	edi
	je	$LN13@Find@2

; 830  : 		{
; 831  : 			const wchar_t *cmpStart = ((wchar_t *)content.GetString() + content.GetLength() - 1);

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	call	edx
	lea	edi, DWORD PTR [ebx+eax*2-2]

; 832  : 			register wchar_t *str = ((wchar_t *)this->GetString() + this->GetLength() - 1);

	mov	eax, DWORD PTR [ebp+4]
	test	eax, eax
	mov	DWORD PTR _cmpStart$38651[esp+20], edi
	je	SHORT $LN41@Find@2
	mov	esi, DWORD PTR [eax+8]
	jmp	SHORT $LN42@Find@2
$LN41@Find@2:
	xor	esi, esi
$LN42@Find@2:
	mov	eax, DWORD PTR [ebp]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, ebp
	call	edx

; 833  : 			register wchar_t *cmp = (wchar_t *)cmpStart;
; 834  : 			while (str != this->GetString())

	mov	ecx, ebp
	lea	esi, DWORD PTR [esi+eax*2-2]
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	mov	ebx, eax
	cmp	esi, ebx
	je	$LN79@Find@2
$LL12@Find@2:

; 835  : 			{
; 836  : 				if (cmp == content.GetString())

	mov	ecx, DWORD PTR _content$[esp+20]
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	edi, eax
	je	SHORT $LN71@Find@2

; 839  : 					break;
; 840  : 				}
; 841  : 				if (*str == *cmp)

	mov	ax, WORD PTR [esi]
	cmp	ax, WORD PTR [edi]
	jne	SHORT $LN9@Find@2

; 842  : 					*cmp--;

	sub	edi, 2

; 843  : 				else

	jmp	SHORT $LN8@Find@2
$LN9@Find@2:

; 844  : 					cmp = (wchar_t *)cmpStart;

	mov	edi, DWORD PTR _cmpStart$38651[esp+20]
$LN8@Find@2:

; 845  : 				*str--;

	sub	esi, 2
	cmp	esi, ebx
	jne	SHORT $LL12@Find@2

; 870  : 				}
; 871  : 			}
; 872  : 		}
; 873  : 	}
; 874  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+24]
	pop	edi
	pop	esi
	pop	ebx
	pop	ebp

; 875  : }

	add	esp, 8
	ret	12					; 0000000cH
$LN71@Find@2:

; 837  : 				{
; 838  : 					pos = (str - this->GetString());

	mov	ebp, DWORD PTR [ebp+4]
	test	ebp, ebp
	je	SHORT $LN47@Find@2
	mov	ebp, DWORD PTR [ebp+8]
	sub	esi, ebp

; 856  : 				{
; 857  : 					pos = (start - this->GetString());

	sar	esi, 1
	pop	edi
	mov	DWORD PTR _pos$[esp+20], esi

; 870  : 				}
; 871  : 			}
; 872  : 		}
; 873  : 	}
; 874  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+20]
	pop	esi
	pop	ebx
	pop	ebp

; 875  : }

	add	esp, 8
	ret	12					; 0000000cH

; 837  : 				{
; 838  : 					pos = (str - this->GetString());

$LN47@Find@2:
	xor	ebp, ebp
	sub	esi, ebp

; 856  : 				{
; 857  : 					pos = (start - this->GetString());

	sar	esi, 1
	pop	edi
	mov	DWORD PTR _pos$[esp+20], esi

; 870  : 				}
; 871  : 			}
; 872  : 		}
; 873  : 	}
; 874  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+20]
	pop	esi
	pop	ebx
	pop	ebp

; 875  : }

	add	esp, 8
	ret	12					; 0000000cH
$LN13@Find@2:

; 846  : 			}
; 847  : 		}
; 848  : 		else
; 849  : 		{
; 850  : 			wchar_t *start = NULL;

	xor	esi, esi

; 851  : 			register wchar_t *str = (wchar_t *)this->GetString();

	mov	edi, edx

; 852  : 			register wchar_t *cmp = (wchar_t *)content.GetString();
; 853  : 			while (*str++)

	cmp	WORD PTR [edi], si
	mov	eax, ebx
	je	SHORT $LN79@Find@2
$LL6@Find@2:

; 854  : 			{
; 855  : 				if (!*cmp)

	movzx	ecx, WORD PTR [eax]
	add	edi, 2
	test	cx, cx
	je	SHORT $LN72@Find@2

; 858  : 					break;
; 859  : 				}
; 860  : 				if (*str == *cmp)

	movzx	ebx, WORD PTR [edi]
	cmp	bx, cx
	jne	SHORT $LN3@Find@2

; 861  : 				{
; 862  : 					if (start == NULL)

	test	esi, esi
	jne	SHORT $LN2@Find@2

; 863  : 						start = str;

	mov	esi, edi
$LN2@Find@2:

; 864  : 					*cmp++;

	add	eax, 2

; 865  : 				}
; 866  : 				else

	jmp	SHORT $LN1@Find@2
$LN3@Find@2:

; 867  : 				{
; 868  : 					start = NULL;
; 869  : 					cmp = (wchar_t *)content.GetString();

	mov	ecx, DWORD PTR _content$[esp+20]
	xor	esi, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	mov	edx, DWORD PTR tv266[esp+24]
$LN1@Find@2:

; 852  : 			register wchar_t *cmp = (wchar_t *)content.GetString();
; 853  : 			while (*str++)

	test	bx, bx
	jne	SHORT $LL6@Find@2

; 870  : 				}
; 871  : 			}
; 872  : 		}
; 873  : 	}
; 874  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+24]
	pop	edi
	pop	esi
	pop	ebx
	pop	ebp

; 875  : }

	add	esp, 8
	ret	12					; 0000000cH
$LN72@Find@2:

; 856  : 				{
; 857  : 					pos = (start - this->GetString());

	sub	esi, edx
	sar	esi, 1
	mov	DWORD PTR _pos$[esp+24], esi
$LN79@Find@2:
	pop	edi
	pop	esi
$LN78@Find@2:
	pop	ebx
$LN77@Find@2:

; 870  : 				}
; 871  : 			}
; 872  : 		}
; 873  : 	}
; 874  : 	return pos;

	mov	eax, DWORD PTR _pos$[esp+12]
	pop	ebp

; 875  : }

	add	esp, 8
	ret	12					; 0000000cH
?Find@ncWideString2@@QAEHABV1@_N1@Z ENDP		; ncWideString2::Find
_TEXT	ENDS
PUBLIC	?MakeLower@ncWideString2@@QAEAAV1@XZ		; ncWideString2::MakeLower
; Function compile flags: /Ogtpy
;	COMDAT ?MakeLower@ncWideString2@@QAEAAV1@XZ
_TEXT	SEGMENT
?MakeLower@ncWideString2@@QAEAAV1@XZ PROC		; ncWideString2::MakeLower, COMDAT
; _this$ = ecx

; 976  : {

	push	esi
	mov	esi, ecx

; 977  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	xor	edi, edi
	call	edx
	test	eax, eax
	jbe	SHORT $LN13@MakeLower@2
$LL4@MakeLower@2:

; 978  : 	{
; 979  : 		if (this->GetString()[i] > 'A' && this->GetString()[i] < 'Z')

	mov	ecx, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	WORD PTR [eax+edi*2], 65		; 00000041H
	jbe	SHORT $LN3@MakeLower@2
	mov	ecx, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	WORD PTR [eax+edi*2], 90		; 0000005aH
	jae	SHORT $LN3@MakeLower@2
	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax+8]

; 980  : 			this->GetWritableString()[i] += 32;

	add	WORD PTR [ecx+edi*2], 32		; 00000020H
	lea	eax, DWORD PTR [ecx+edi*2]
$LN3@MakeLower@2:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	add	edi, 1
	call	eax
	cmp	edi, eax
	jb	SHORT $LL4@MakeLower@2
$LN13@MakeLower@2:
	pop	edi

; 981  : 	}
; 982  : 	return *this;

	mov	eax, esi
	pop	esi

; 983  : }

	ret	0
?MakeLower@ncWideString2@@QAEAAV1@XZ ENDP		; ncWideString2::MakeLower
_TEXT	ENDS
PUBLIC	?MakeUpper@ncWideString2@@QAEAAV1@XZ		; ncWideString2::MakeUpper
; Function compile flags: /Ogtpy
;	COMDAT ?MakeUpper@ncWideString2@@QAEAAV1@XZ
_TEXT	SEGMENT
?MakeUpper@ncWideString2@@QAEAAV1@XZ PROC		; ncWideString2::MakeUpper, COMDAT
; _this$ = ecx

; 991  : {

	push	esi
	mov	esi, ecx

; 992  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	xor	edi, edi
	call	edx
	test	eax, eax
	jbe	SHORT $LN13@MakeUpper@2
$LL4@MakeUpper@2:

; 993  : 	{
; 994  : 		if (this->GetString()[i] > 'a' && this->GetString()[i] < 'z')

	mov	ecx, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	WORD PTR [eax+edi*2], 97		; 00000061H
	jbe	SHORT $LN3@MakeUpper@2
	mov	ecx, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	WORD PTR [eax+edi*2], 122		; 0000007aH
	jae	SHORT $LN3@MakeUpper@2
	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax+8]

; 995  : 			this->GetWritableString()[i] -= 32;

	add	WORD PTR [ecx+edi*2], 65504		; 0000ffe0H
	lea	eax, DWORD PTR [ecx+edi*2]
$LN3@MakeUpper@2:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	add	edi, 1
	call	eax
	cmp	edi, eax
	jb	SHORT $LL4@MakeUpper@2
$LN13@MakeUpper@2:
	pop	edi

; 996  : 	}
; 997  : 	return *this;

	mov	eax, esi
	pop	esi

; 998  : }

	ret	0
?MakeUpper@ncWideString2@@QAEAAV1@XZ ENDP		; ncWideString2::MakeUpper
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ; std::_DebugHeapAllocator<char>::allocate
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	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z:PROC	; operator new[]
EXTRN	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ:PROC ; std::_DebugHeapTag_func
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\microsoft visual studio 8\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@@
xdata$x	ENDS
;	COMDAT ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xdebug', 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T43512 = -12						; size = 12
_this$ = 8						; size = 4
$T43518 = 12						; size = 4
__Count$ = 12						; size = 4
___formal$ = 16						; size = 4
?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z PROC ; std::_DebugHeapAllocator<char>::allocate, COMDAT

; 79   : 		{	// check for integer overflow

	sub	esp, 12					; 0000000cH
	push	esi

; 80   : 		if (_Count <= 0)

	mov	esi, DWORD PTR __Count$[esp+12]
	test	esi, esi
	ja	SHORT $LN3@allocate

; 81   : 			_Count = 0;

	xor	esi, esi
$LN1@allocate:

; 84   : 
; 85   : 			// allocate array of _Count elements, ignore hint
; 86   : 		return ((_Ty *)_NEW_CRT char[_Count * sizeof(_Ty)]);

	push	86					; 00000056H
	push	OFFSET ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	eax
	push	esi
	call	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new[]
	add	esp, 16					; 00000010H
	pop	esi

; 87   : 		}

	add	esp, 12					; 0000000cH
	ret	0
$LN3@allocate:

; 82   : 		else if (((size_t)(-1) / _Count) < sizeof(_Ty))

	or	eax, -1
	xor	edx, edx
	div	esi
	cmp	eax, 1
	jae	SHORT $LN1@allocate

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

	lea	eax, DWORD PTR $T43518[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T43512[esp+20]
	mov	DWORD PTR $T43518[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T43512[esp+20]
	push	ecx
	mov	DWORD PTR $T43512[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate:
$LN8@allocate:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ENDP ; std::_DebugHeapAllocator<char>::allocate
_TEXT	ENDS
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ; std::_DebugHeapAllocator<char>::allocate
; Function compile flags: /Ogtpy
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z
_TEXT	SEGMENT
$T43524 = -12						; size = 12
$T43529 = 8						; size = 4
__Count$ = 8						; size = 4
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z PROC	; std::_DebugHeapAllocator<char>::allocate, COMDAT
; _this$ = ecx

; 90   : 		{	// check for integer overflow

	sub	esp, 12					; 0000000cH
	push	esi

; 91   : 		if (_Count <= 0)

	mov	esi, DWORD PTR __Count$[esp+12]
	test	esi, esi
	ja	SHORT $LN3@allocate@2

; 92   : 			_Count = 0;

	xor	esi, esi
$LN1@allocate@2:

; 95   : 
; 96   : 			// allocate array of _Count elements
; 97   : 		return ((_Ty *)_NEW_CRT char[_Count * sizeof(_Ty)]);

	push	97					; 00000061H
	push	OFFSET ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	eax
	push	esi
	call	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new[]
	add	esp, 16					; 00000010H
	pop	esi

; 98   : 		}

	add	esp, 12					; 0000000cH
	ret	4
$LN3@allocate@2:

; 93   : 		else if (((size_t)(-1) / _Count) < sizeof(_Ty))

	or	eax, -1
	xor	edx, edx
	div	esi
	cmp	eax, 1
	jae	SHORT $LN1@allocate@2

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

	lea	eax, DWORD PTR $T43529[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T43524[esp+20]
	mov	DWORD PTR $T43529[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T43524[esp+20]
	push	ecx
	mov	DWORD PTR $T43524[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate@2:
$LN8@allocate@2:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ENDP	; std::_DebugHeapAllocator<char>::allocate
; 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
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??_H@YGXPAXIHP6EPAX0@Z@Z			; `vector constructor iterator'
; Function compile flags: /Ogtpy
;	COMDAT ??_H@YGXPAXIHP6EPAX0@Z@Z
_TEXT	SEGMENT
___t$ = 8						; size = 4
___s$ = 12						; size = 4
___n$ = 16						; size = 4
___f$ = 20						; size = 4
??_H@YGXPAXIHP6EPAX0@Z@Z PROC				; `vector constructor iterator', COMDAT
	push	edi
	mov	edi, DWORD PTR ___n$[esp]
	sub	edi, 1
	js	SHORT $LN1@vector
	push	ebx
	mov	ebx, DWORD PTR ___f$[esp+4]
	push	ebp
	mov	ebp, DWORD PTR ___s$[esp+8]
	push	esi
	mov	esi, DWORD PTR ___t$[esp+12]
	npad	7
$LL2@vector:
	mov	ecx, esi
	call	ebx
	add	esi, ebp
	sub	edi, 1
	jns	SHORT $LL2@vector
	pop	esi
	pop	ebp
	pop	ebx
$LN1@vector:
	pop	edi
	ret	16					; 00000010H
??_H@YGXPAXIHP6EPAX0@Z@Z ENDP				; `vector constructor iterator'
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\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

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

	ret	0
??0?$allocator@D@std@@QAE@XZ ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@ABV01@@Z		; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
;	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

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

	mov	eax, ecx

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

	ret	4
??0?$allocator@D@std@@QAE@ABV01@@Z ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	??$_DebugHeapDelete@X@std@@YAXPAX@Z		; std::_DebugHeapDelete<void>
EXTRN	_free:PROC
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ??$_DebugHeapDelete@X@std@@YAXPAX@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??$_DebugHeapDelete@X@std@@YAXPAX@Z PROC		; std::_DebugHeapDelete<void>, COMDAT

; 56   : 	if (_Ptr != 0)

	mov	eax, DWORD PTR __Ptr$[esp-4]
	test	eax, eax
	je	SHORT $LN1@DebugHeapD

; 57   : 		{	// worth deleting
; 58   : 		_Ptr->~_Ty();
; 59   : 		// delete as _NORMAL_BLOCK, not _CRT_BLOCK, since we might have
; 60   : 		// facets allocated by normal new.
; 61   : 		free(_Ptr);

	mov	DWORD PTR __Ptr$[esp-4], eax
	jmp	_free
$LN1@DebugHeapD:

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
_TEXT	ENDS
PUBLIC	??_7ncString2@@6B@				; ncString2::`vftable'
PUBLIC	??0ncString2@@QAE@ABV0@@Z			; ncString2::ncString2
PUBLIC	??_R4ncString2@@6B@				; ncString2::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVncString2@@@8				; ncString2 `RTTI Type Descriptor'
PUBLIC	??_R3ncString2@@8				; ncString2::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ncString2@@8				; ncString2::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ncString2@@8			; ncString2::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Resize@ncString2@@UAEXI@Z			; ncString2::Resize
EXTRN	??_EncString2@@UAEPAXI@Z:PROC			; ncString2::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@ncString2@@8
; File d:\source code\nc lib\ncstring2.cpp
rdata$r	SEGMENT
??_R1A@?0A@EA@ncString2@@8 DD FLAT:??_R0?AVncString2@@@8 ; ncString2::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ncString2@@8
rdata$r	ENDS
;	COMDAT ??_R2ncString2@@8
rdata$r	SEGMENT
??_R2ncString2@@8 DD FLAT:??_R1A@?0A@EA@ncString2@@8	; ncString2::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ncStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R3ncString2@@8
rdata$r	SEGMENT
??_R3ncString2@@8 DD 00H				; ncString2::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ncString2@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVncString2@@@8
_DATA	SEGMENT
??_R0?AVncString2@@@8 DD FLAT:??_7type_info@@6B@	; ncString2 `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVncString2@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ncString2@@6B@
rdata$r	SEGMENT
??_R4ncString2@@6B@ DD 00H				; ncString2::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVncString2@@@8
	DD	FLAT:??_R3ncString2@@8
rdata$r	ENDS
;	COMDAT ??_7ncString2@@6B@
CONST	SEGMENT
??_7ncString2@@6B@ DD FLAT:??_R4ncString2@@6B@		; ncString2::`vftable'
	DD	FLAT:??_EncString2@@UAEPAXI@Z
	DD	FLAT:?GetLength@ncStringBase@@UBEIXZ
	DD	FLAT:?Resize@ncString2@@UAEXI@Z
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.h
CONST	ENDS
;	COMDAT ??0ncString2@@QAE@ABV0@@Z
_TEXT	SEGMENT
_str$ = 8						; size = 4
??0ncString2@@QAE@ABV0@@Z PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 132  : 	ncString2(const ncString2& str) : ncStringBase(str) { };

	mov	eax, DWORD PTR _str$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+4], ecx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
	mov	DWORD PTR [esi], OFFSET ??_7ncString2@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0ncString2@@QAE@ABV0@@Z ENDP				; ncString2::ncString2
_TEXT	ENDS
PUBLIC	??1ncString2@@UAE@XZ				; ncString2::~ncString2
; Function compile flags: /Ogtpy
;	COMDAT ??1ncString2@@UAE@XZ
_TEXT	SEGMENT
??1ncString2@@UAE@XZ PROC				; ncString2::~ncString2, COMDAT
; _this$ = ecx

; 139  : 	~ncString2() { };

	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN4@ncString2
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	mov	DWORD PTR [esi+4], 0
$LN4@ncString2:
	pop	esi
	ret	0
??1ncString2@@UAE@XZ ENDP				; ncString2::~ncString2
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GncString2@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GncString2@@UAEPAXI@Z PROC				; ncString2::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN7@scalar@3
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	mov	DWORD PTR [esi+4], 0
$LN7@scalar@3:
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN10@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN10@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_GncString2@@UAEPAXI@Z ENDP				; ncString2::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_7ncWideString2@@6B@				; ncWideString2::`vftable'
PUBLIC	??0ncWideString2@@QAE@ABV0@@Z			; ncWideString2::ncWideString2
PUBLIC	??_R4ncWideString2@@6B@				; ncWideString2::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVncWideString2@@@8			; ncWideString2 `RTTI Type Descriptor'
PUBLIC	??_R3ncWideString2@@8				; ncWideString2::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ncWideString2@@8				; ncWideString2::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ncWideString2@@8			; ncWideString2::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Resize@ncWideString2@@UAEXI@Z			; ncWideString2::Resize
EXTRN	??_EncWideString2@@UAEPAXI@Z:PROC		; ncWideString2::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@ncWideString2@@8
; File d:\source code\nc lib\ncstring2.cpp
rdata$r	SEGMENT
??_R1A@?0A@EA@ncWideString2@@8 DD FLAT:??_R0?AVncWideString2@@@8 ; ncWideString2::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ncWideString2@@8
rdata$r	ENDS
;	COMDAT ??_R2ncWideString2@@8
rdata$r	SEGMENT
??_R2ncWideString2@@8 DD FLAT:??_R1A@?0A@EA@ncWideString2@@8 ; ncWideString2::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ncStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R3ncWideString2@@8
rdata$r	SEGMENT
??_R3ncWideString2@@8 DD 00H				; ncWideString2::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ncWideString2@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVncWideString2@@@8
_DATA	SEGMENT
??_R0?AVncWideString2@@@8 DD FLAT:??_7type_info@@6B@	; ncWideString2 `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVncWideString2@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ncWideString2@@6B@
rdata$r	SEGMENT
??_R4ncWideString2@@6B@ DD 00H				; ncWideString2::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVncWideString2@@@8
	DD	FLAT:??_R3ncWideString2@@8
rdata$r	ENDS
;	COMDAT ??_7ncWideString2@@6B@
CONST	SEGMENT
??_7ncWideString2@@6B@ DD FLAT:??_R4ncWideString2@@6B@	; ncWideString2::`vftable'
	DD	FLAT:??_EncWideString2@@UAEPAXI@Z
	DD	FLAT:?GetLength@ncWideString2@@UBEIXZ
	DD	FLAT:?Resize@ncWideString2@@UAEXI@Z
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.h
CONST	ENDS
;	COMDAT ??0ncWideString2@@QAE@ABV0@@Z
_TEXT	SEGMENT
_str$ = 8						; size = 4
??0ncWideString2@@QAE@ABV0@@Z PROC			; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 285  : 	ncWideString2(const ncWideString2& str) : ncStringBase(str) { };

	mov	eax, DWORD PTR _str$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+4], ecx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
	mov	DWORD PTR [esi], OFFSET ??_7ncWideString2@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0ncWideString2@@QAE@ABV0@@Z ENDP			; ncWideString2::ncWideString2
_TEXT	ENDS
PUBLIC	??1ncWideString2@@UAE@XZ			; ncWideString2::~ncWideString2
; Function compile flags: /Ogtpy
;	COMDAT ??1ncWideString2@@UAE@XZ
_TEXT	SEGMENT
??1ncWideString2@@UAE@XZ PROC				; ncWideString2::~ncWideString2, COMDAT
; _this$ = ecx

; 293  : 	~ncWideString2() { };

	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN4@ncWideStri
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	mov	DWORD PTR [esi+4], 0
$LN4@ncWideStri:
	pop	esi
	ret	0
??1ncWideString2@@UAE@XZ ENDP				; ncWideString2::~ncWideString2
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GncWideString2@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GncWideString2@@UAEPAXI@Z PROC			; ncWideString2::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN7@scalar@4
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	mov	DWORD PTR [esi+4], 0
$LN7@scalar@4:
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN10@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN10@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_GncWideString2@@UAEPAXI@Z ENDP			; ncWideString2::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?SetBuffer@ncStringData@@QAEXPAXHE@Z		; ncStringData::SetBuffer
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
;	COMDAT ?SetBuffer@ncStringData@@QAEXPAXHE@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_length$ = 12						; size = 4
_wordSize$ = 16						; size = 1
?SetBuffer@ncStringData@@QAEXPAXHE@Z PROC		; ncStringData::SetBuffer, COMDAT
; _this$ = ecx

; 32   : 	this->Resize(length, wordSize);

	mov	eax, DWORD PTR _wordSize$[esp-4]
	push	esi
	push	edi
	mov	edi, DWORD PTR _length$[esp+4]
	push	eax
	push	edi
	mov	esi, ecx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize

; 33   : 	memcpy(this->m_ptr, data, length);

	mov	ecx, DWORD PTR _data$[esp+4]
	mov	edx, DWORD PTR [esi+8]
	push	edi
	push	ecx
	push	edx
	call	_memcpy
	add	esp, 12					; 0000000cH

; 34   : 	this->m_length = length;

	mov	DWORD PTR [esi+12], edi
	pop	edi
	pop	esi

; 35   : }

	ret	12					; 0000000cH
?SetBuffer@ncStringData@@QAEXPAXHE@Z ENDP		; ncStringData::SetBuffer
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?DecRef@ncStringData@@UAEXI@Z
_TEXT	SEGMENT
_d$ = 8							; size = 4
?DecRef@ncStringData@@UAEXI@Z PROC			; ncStringData::DecRef, COMDAT
; _this$ = ecx

; 53   : 	this->m_refCount -= d;

	mov	eax, DWORD PTR _d$[esp-4]
	push	esi
	mov	esi, ecx
	sub	DWORD PTR [esi+4], eax

; 54   : 	if (this->m_refCount == 0)

	jne	SHORT $LN4@DecRef

; 55   : 		delete this;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	add	esp, 12					; 0000000cH
	push	1
	mov	ecx, esi
	call	??_GncStringData@@QAEPAXI@Z
$LN4@DecRef:
	pop	esi

; 56   : }

	ret	4
?DecRef@ncStringData@@UAEXI@Z ENDP			; ncStringData::DecRef
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GncStringBase@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GncStringBase@@UAEPAXI@Z PROC			; ncStringBase::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN4@scalar@5
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	mov	DWORD PTR [esi+4], 0
$LN4@scalar@5:
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_GncStringBase@@UAEPAXI@Z ENDP			; ncStringBase::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0ncString2@@QAE@ABVncWideString2@@@Z		; ncString2::ncString2
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	_wcstombs:PROC
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@ABVncWideString2@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@ABVncWideString2@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@ABVncWideString2@@@Z$1
__ehfuncinfo$??0ncString2@@QAE@ABVncWideString2@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@ABVncWideString2@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@ABVncWideString2@@@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
$T43634 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_str$ = 8						; size = 4
??0ncString2@@QAE@ABVncWideString2@@@Z PROC		; ncString2::ncString2, COMDAT
; _this$ = ecx

; 127  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@ABVncWideString2@@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	edi, ecx
	mov	DWORD PTR _this$[esp+40], edi
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 128  : 	int len = ((ncWideString2)str).GetLength();

	mov	esi, DWORD PTR _str$[esp+36]
	mov	DWORD PTR [edi], OFFSET ??_7ncString2@@6B@
	mov	ecx, DWORD PTR [esi+4]
	mov	ebp, OFFSET ??_7ncStringBase@@6B@
	mov	DWORD PTR $T43634[esp+40], ebp
	mov	DWORD PTR $T43634[esp+44], ecx
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	DWORD PTR __$EHRec$[esp+52], 0
	call	edx
	mov	DWORD PTR $T43634[esp+40], OFFSET ??_7ncWideString2@@6B@
	lea	ecx, DWORD PTR $T43634[esp+40]
	mov	BYTE PTR __$EHRec$[esp+48], 1
	call	DWORD PTR ??_7ncWideString2@@6B@+4
	mov	ecx, DWORD PTR $T43634[esp+44]
	test	ecx, ecx
	mov	ebx, eax
	mov	BYTE PTR __$EHRec$[esp+48], 0
	mov	DWORD PTR $T43634[esp+40], ebp
	je	SHORT $LN40@ncString2@2
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN40@ncString2@2:

; 129  : 	const wchar_t* content = ((ncWideString2)str).GetString();

	mov	esi, DWORD PTR [esi+4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, esi
	call	edx
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ebp, DWORD PTR [esi+8]
	push	1
	mov	ecx, esi
	call	edx

; 130  : 	char* tmp = new char[WCHAR_SIZE(len) + 2];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	130					; 00000082H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	lea	esi, DWORD PTR [ebx+ebx]
	lea	eax, DWORD PTR [esi+2]
	push	eax
	call	??_U@YAPAXI@Z				; operator new[]

; 131  : 	wcstombs(tmp, content, WCHAR_SIZE(len));

	push	esi
	mov	ebx, eax
	push	ebp
	push	ebx
	call	_wcstombs

; 132  : 	this->m_data->SetBuffer((void *)tmp, WCHAR_SIZE(len), 2);

	mov	ebp, DWORD PTR [edi+4]
	add	esp, 28					; 0000001cH
	push	2
	push	esi
	mov	ecx, ebp
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR [ebp+8]
	push	esi
	push	ebx
	push	ecx
	call	_memcpy

; 133  : 	delete[] tmp;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	133					; 00000085H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	DWORD PTR [ebp+12], esi
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]

; 134  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	add	esp, 28					; 0000001cH
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@ABVncWideString2@@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__unwindfunclet$??0ncString2@@QAE@ABVncWideString2@@@Z$1:
	lea	ecx, DWORD PTR $T43634[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$??0ncString2@@QAE@ABVncWideString2@@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@ABVncWideString2@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@ABVncWideString2@@@Z ENDP		; ncString2::ncString2
PUBLIC	??0ncString2@@QAE@PBD@Z				; ncString2::ncString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@PBD@Z$0
__ehfuncinfo$??0ncString2@@QAE@PBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@PBD@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??0ncString2@@QAE@PBD@Z PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 136  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@PBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	mov	ebx, ecx
	push	ebp
	mov	DWORD PTR _this$[esp+24], ebx
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 137  : 	if (content)

	mov	ebp, DWORD PTR _content$[esp+20]
	test	ebp, ebp
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR [ebx], OFFSET ??_7ncString2@@6B@
	je	SHORT $LN8@ncString2@3

; 138  : 		this->m_data->SetBuffer((void *)content, strlen(content), 1);

	mov	eax, ebp
	lea	edx, DWORD PTR [eax+1]
	npad	2
$LL7@ncString2@3:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL7@ncString2@3
	push	esi
	push	edi
	mov	edi, DWORD PTR [ebx+4]
	sub	eax, edx
	mov	esi, eax
	push	1
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	push	esi
	push	ebp
	push	eax
	call	_memcpy
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
$LN8@ncString2@3:

; 139  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	ebp
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@PBD@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncString2@@QAE@PBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@PBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@PBD@Z ENDP				; ncString2::ncString2
PUBLIC	??0ncString2@@QAE@PB_W@Z			; ncString2::ncString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@PB_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@PB_W@Z$0
__ehfuncinfo$??0ncString2@@QAE@PB_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@PB_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@PB_W@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??0ncString2@@QAE@PB_W@Z PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 141  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@PB_W@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebp
	mov	ebp, ecx
	push	esi
	mov	DWORD PTR _this$[esp+24], ebp
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 142  : 	if (content)

	mov	esi, DWORD PTR _content$[esp+20]
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR [ebp], OFFSET ??_7ncString2@@6B@
	je	$LN14@ncString2@4

; 143  : 	{
; 144  : 		char *tmp = new char[wcslen(content) + 2];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	144					; 00000090H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, esi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
	npad	6
$LL11@ncString2@4:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL11@ncString2@4
	sub	eax, edx
	push	ebx
	sar	eax, 1
	add	eax, 2
	push	edi
	push	eax
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 145  : 		wcstombs(tmp, content, wcslen(content) * 2);

	mov	eax, esi
	add	esp, 4
	lea	edx, DWORD PTR [eax+2]
$LL12@ncString2@4:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL12@ncString2@4
	sub	eax, edx
	sar	eax, 1
	add	eax, eax
	push	eax
	push	esi
	push	ebx
	call	_wcstombs

; 146  : 		this->m_data->SetBuffer((void *)tmp, strlen(tmp), 1);

	mov	eax, ebx
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
$LL13@ncString2@4:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL13@ncString2@4
	mov	edi, DWORD PTR [ebp+4]
	sub	eax, edx
	mov	esi, eax
	push	1
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR [edi+8]
	push	esi
	push	ebx
	push	ecx
	call	_memcpy

; 147  : 		delete[] tmp;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	147					; 00000093H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	DWORD PTR [edi+12], esi
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH
	pop	edi
	pop	ebx
$LN14@ncString2@4:

; 148  : 	}
; 149  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	esi
	mov	eax, ebp
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@PB_W@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncString2@@QAE@PB_W@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@PB_W@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@PB_W@Z ENDP				; ncString2::ncString2
PUBLIC	??0ncString2@@QAE@D@Z				; ncString2::ncString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@D@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@D@Z$0
__ehfuncinfo$??0ncString2@@QAE@D@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@D@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@D@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_word$ = 8						; size = 1
??0ncString2@@QAE@D@Z PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 151  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@D@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 152  : 	this->m_data->SetBuffer(&word, 1, 1);

	mov	edi, DWORD PTR [esi+4]
	push	1
	push	1
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR [esi], OFFSET ??_7ncString2@@6B@
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	mov	cl, BYTE PTR _word$[esp+20]
	mov	BYTE PTR [eax], cl

; 153  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR [edi+12], 1
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@D@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncString2@@QAE@D@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@D@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@D@Z ENDP				; ncString2::ncString2
PUBLIC	??_C@_02DPKJAMEF@?$CFd?$AA@			; `string'
PUBLIC	??0ncString2@@QAE@H@Z				; ncString2::ncString2
EXTRN	_sprintf:PROC
;	COMDAT ??_C@_02DPKJAMEF@?$CFd?$AA@
CONST	SEGMENT
??_C@_02DPKJAMEF@?$CFd?$AA@ DB '%d', 00H		; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@H@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@H@Z$0
__ehfuncinfo$??0ncString2@@QAE@H@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@H@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@H@Z
_TEXT	SEGMENT
_this$ = -52						; size = 4
_iStr$ = -48						; size = 35
__$EHRec$ = -12						; size = 12
_i$ = 8							; size = 4
??0ncString2@@QAE@H@Z PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 155  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@H@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 40					; 00000028H
	push	ebx
	push	esi
	mov	ebx, ecx
	push	edi
	mov	DWORD PTR _this$[esp+64], ebx
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 156  : 	char iStr[35];
; 157  : 	sprintf(iStr, "%d", i);

	mov	eax, DWORD PTR _i$[esp+60]
	push	eax
	lea	ecx, DWORD PTR _iStr$[esp+68]
	push	OFFSET ??_C@_02DPKJAMEF@?$CFd?$AA@
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+84], 0
	mov	DWORD PTR [ebx], OFFSET ??_7ncString2@@6B@
	call	_sprintf

; 158  : 	this->m_data->SetBuffer((void *)iStr, strlen(iStr), 1);

	lea	eax, DWORD PTR _iStr$[esp+76]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
$LL6@ncString2@5:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL6@ncString2@5
	mov	edi, DWORD PTR [ebx+4]
	sub	eax, edx
	mov	esi, eax
	push	1
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	push	esi
	lea	edx, DWORD PTR _iStr$[esp+68]
	push	edx
	push	eax
	call	_memcpy

; 159  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+76]
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 52					; 00000034H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@H@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncString2@@QAE@H@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@H@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@H@Z ENDP				; ncString2::ncString2
PUBLIC	??_C@_02NJPGOMH@?$CFf?$AA@			; `string'
PUBLIC	??0ncString2@@QAE@N@Z				; ncString2::ncString2
;	COMDAT ??_C@_02NJPGOMH@?$CFf?$AA@
CONST	SEGMENT
??_C@_02NJPGOMH@?$CFf?$AA@ DB '%f', 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@N@Z$0
__ehfuncinfo$??0ncString2@@QAE@N@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@N@Z
_TEXT	SEGMENT
_this$ = -336						; size = 4
_dStr$ = -332						; size = 317
__$EHRec$ = -12						; size = 12
_d$ = 8							; size = 8
??0ncString2@@QAE@N@Z PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 161  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 324				; 00000144H
	push	ebx
	push	esi
	mov	ebx, ecx
	push	edi
	mov	DWORD PTR _this$[esp+348], ebx
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 162  : 	// Maximum length of double is 316
; 163  : 	char dStr[317];
; 164  : 	sprintf(dStr, "%f", d);

	fld	QWORD PTR _d$[esp+344]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	lea	eax, DWORD PTR _dStr$[esp+356]
	push	OFFSET ??_C@_02NJPGOMH@?$CFf?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+372], 0
	mov	DWORD PTR [ebx], OFFSET ??_7ncString2@@6B@
	call	_sprintf

; 165  : 	this->m_data->SetBuffer((void *)dStr, strlen(dStr), 1);

	lea	eax, DWORD PTR _dStr$[esp+364]
	add	esp, 16					; 00000010H
	lea	edx, DWORD PTR [eax+1]
$LL6@ncString2@6:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL6@ncString2@6
	mov	edi, DWORD PTR [ebx+4]
	sub	eax, edx
	mov	esi, eax
	push	1
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	edx, DWORD PTR [edi+8]
	push	esi
	lea	ecx, DWORD PTR _dStr$[esp+352]
	push	ecx
	push	edx
	call	_memcpy

; 166  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+360]
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 336				; 00000150H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@N@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncString2@@QAE@N@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@N@Z ENDP				; ncString2::ncString2
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@ncString2@@UAEXI@Z
_TEXT	SEGMENT
_size$ = 8						; size = 4
?Resize@ncString2@@UAEXI@Z PROC				; ncString2::Resize, COMDAT
; _this$ = ecx

; 168  : {

	push	ebx
	mov	ebx, ecx

; 169  : 	ncStringData *newData = NULL;
; 170  : 	if (this->m_data != NULL)

	mov	ecx, DWORD PTR [ebx+4]
	push	esi
	xor	esi, esi
	cmp	ecx, esi
	je	$LN1@Resize@2

; 171  : 	{
; 172  : 		if (this->m_data->IsShared())

	cmp	DWORD PTR [ecx+4], 2
	jb	$LN3@Resize@2

; 173  : 		{
; 174  : 			newData = new ncStringData;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	174					; 000000aeH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, esi
	je	SHORT $LN7@Resize@2
	mov	DWORD PTR [eax+4], esi
	mov	DWORD PTR [eax+8], esi
	mov	DWORD PTR [eax+12], esi
	mov	DWORD PTR [eax+16], esi
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	esi, eax
$LN7@Resize@2:

; 175  : 			newData->IncRef();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	ebp
	push	edi
	push	1
	mov	ecx, esi
	call	edx

; 176  : 			newData->SetBuffer(this->GetData()->GetBuffer(), this->GetData()->GetLength(), 1);

	mov	eax, DWORD PTR [ebx+4]
	mov	edi, DWORD PTR [eax+12]
	mov	ebp, DWORD PTR [eax+8]
	push	1
	push	edi
	mov	ecx, esi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [esi+8]
	push	edi
	push	ebp
	push	eax
	call	_memcpy

; 177  : 			newData->Resize(size, 1);

	mov	ecx, DWORD PTR _size$[esp+24]
	add	esp, 12					; 0000000cH
	push	1
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [esi+12], edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize

; 178  : 			this->m_data->DecRef();

	mov	ecx, DWORD PTR [ebx+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	pop	edi
	pop	ebp

; 182  : 	}
; 183  : 	if (newData != NULL)
; 184  : 		this->m_data = newData;

	mov	DWORD PTR [ebx+4], esi
$LN1@Resize@2:
	pop	esi
	pop	ebx

; 185  : }

	ret	4
$LN3@Resize@2:

; 179  : 		}
; 180  : 		else
; 181  : 			this->m_data->Resize(size, 1);

	mov	edx, DWORD PTR _size$[esp+4]
	push	1
	push	edx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	pop	esi
	pop	ebx

; 185  : }

	ret	4
?Resize@ncString2@@UAEXI@Z ENDP				; ncString2::Resize
_TEXT	ENDS
PUBLIC	?SetString@ncString2@@QAEXPBD@Z			; ncString2::SetString
; Function compile flags: /Ogtpy
;	COMDAT ?SetString@ncString2@@QAEXPBD@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
?SetString@ncString2@@QAEXPBD@Z PROC			; ncString2::SetString, COMDAT
; _this$ = ecx

; 187  : {

	push	ebx
	push	ebp

; 188  : 	if (content != NULL)

	mov	ebp, DWORD PTR _content$[esp+4]
	push	esi
	xor	esi, esi
	cmp	ebp, esi
	mov	ebx, ecx
	je	$LN1@SetString
	push	edi

; 189  : 	{
; 190  : 		ncStringData *newData = NULL;
; 191  : 		if (this->m_data != NULL)

	mov	edi, DWORD PTR [ebx+4]
	cmp	edi, esi
	je	$LN25@SetString

; 192  : 		{
; 193  : 			if (this->m_data->IsShared())

	cmp	DWORD PTR [edi+4], 2
	jb	$LN3@SetString

; 194  : 			{
; 195  : 				newData = new ncStringData;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	195					; 000000c3H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, esi
	je	SHORT $LN8@SetString
	mov	DWORD PTR [eax+4], esi
	mov	DWORD PTR [eax+8], esi
	mov	DWORD PTR [eax+12], esi
	mov	DWORD PTR [eax+16], esi
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	esi, eax
$LN8@SetString:

; 196  : 				newData->IncRef();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, esi
	call	edx

; 197  : 				newData->SetBuffer((void *)content, strlen(content), 1);

	mov	eax, ebp
	lea	edx, DWORD PTR [eax+1]
	npad	2
$LL23@SetString:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL23@SetString
	sub	eax, edx
	mov	edi, eax
	push	1
	push	edi
	mov	ecx, esi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [esi+8]
	push	edi
	push	ebp
	push	eax
	call	_memcpy
	mov	DWORD PTR [esi+12], edi

; 198  : 				this->m_data->DecRef();

	mov	ecx, DWORD PTR [ebx+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	add	esp, 12					; 0000000cH
	push	1
	call	eax

; 202  : 		}
; 203  : 		if (newData != NULL)
; 204  : 			this->m_data = newData;

	mov	DWORD PTR [ebx+4], esi
$LN25@SetString:
	pop	edi
$LN1@SetString:
	pop	esi
	pop	ebp
	pop	ebx

; 205  : 	}
; 206  : }

	ret	4
$LN3@SetString:

; 199  : 			}
; 200  : 			else
; 201  : 				this->m_data->SetBuffer((void *)content, strlen(content), 1);

	mov	eax, ebp
	lea	edx, DWORD PTR [eax+1]
$LL24@SetString:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL24@SetString
	sub	eax, edx
	mov	esi, eax
	push	1
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR [edi+8]
	push	esi
	push	ebp
	push	ecx
	call	_memcpy
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 205  : 	}
; 206  : }

	ret	4
?SetString@ncString2@@QAEXPBD@Z ENDP			; ncString2::SetString
_TEXT	ENDS
PUBLIC	??8ncString2@@QAE_NABV0@@Z			; ncString2::operator==
; Function compile flags: /Ogtpy
;	COMDAT ??8ncString2@@QAE_NABV0@@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
??8ncString2@@QAE_NABV0@@Z PROC				; ncString2::operator==, COMDAT
; _this$ = ecx

; 226  : 	return this->Compare(content);

	mov	eax, DWORD PTR _content$[esp-4]
	push	0
	push	-1
	push	eax
	call	?Compare@ncString2@@QBE_NABV1@H_N@Z	; ncString2::Compare

; 227  : }

	ret	4
??8ncString2@@QAE_NABV0@@Z ENDP				; ncString2::operator==
_TEXT	ENDS
PUBLIC	??8ncString2@@QAE_NPBD@Z			; ncString2::operator==
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??8ncString2@@QAE_NPBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??8ncString2@@QAE_NPBD@Z$0
__ehfuncinfo$??8ncString2@@QAE_NPBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??8ncString2@@QAE_NPBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??8ncString2@@QAE_NPBD@Z
_TEXT	SEGMENT
$T43882 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??8ncString2@@QAE_NPBD@Z PROC				; ncString2::operator==, COMDAT
; _this$ = ecx

; 229  : {

	push	-1
	push	__ehhandler$??8ncString2@@QAE_NPBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8

; 230  : 	return this->Compare(content);

	mov	eax, DWORD PTR _content$[esp+16]
	push	ebx
	push	esi
	mov	esi, ecx
	push	eax
	lea	ecx, DWORD PTR $T43882[esp+32]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	push	0
	push	-1
	lea	ecx, DWORD PTR $T43882[esp+36]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+48], 0
	call	?Compare@ncString2@@QBE_NABV1@H_N@Z	; ncString2::Compare
	mov	ecx, DWORD PTR $T43882[esp+32]
	test	ecx, ecx
	mov	bl, al
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T43882[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN10@operator@3
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN10@operator@3:

; 231  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	esi
	mov	al, bl
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??8ncString2@@QAE_NPBD@Z$0:
	lea	ecx, DWORD PTR $T43882[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$??8ncString2@@QAE_NPBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??8ncString2@@QAE_NPBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??8ncString2@@QAE_NPBD@Z ENDP				; ncString2::operator==
PUBLIC	??9ncString2@@QAE_NABV0@@Z			; ncString2::operator!=
; Function compile flags: /Ogtpy
;	COMDAT ??9ncString2@@QAE_NABV0@@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
??9ncString2@@QAE_NABV0@@Z PROC				; ncString2::operator!=, COMDAT
; _this$ = ecx

; 234  : 	return (!this->Compare(content));

	mov	eax, DWORD PTR _content$[esp-4]
	push	0
	push	-1
	push	eax
	call	?Compare@ncString2@@QBE_NABV1@H_N@Z	; ncString2::Compare
	neg	al
	sbb	eax, eax
	add	eax, 1

; 235  : }

	ret	4
??9ncString2@@QAE_NABV0@@Z ENDP				; ncString2::operator!=
_TEXT	ENDS
PUBLIC	??9ncString2@@QAE_NPBD@Z			; ncString2::operator!=
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??9ncString2@@QAE_NPBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??9ncString2@@QAE_NPBD@Z$0
__ehfuncinfo$??9ncString2@@QAE_NPBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??9ncString2@@QAE_NPBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??9ncString2@@QAE_NPBD@Z
_TEXT	SEGMENT
$T43909 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??9ncString2@@QAE_NPBD@Z PROC				; ncString2::operator!=, COMDAT
; _this$ = ecx

; 237  : {

	push	-1
	push	__ehhandler$??9ncString2@@QAE_NPBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8

; 238  : 	return (!this->Compare(content));

	mov	eax, DWORD PTR _content$[esp+16]
	push	ebx
	push	esi
	mov	esi, ecx
	push	eax
	lea	ecx, DWORD PTR $T43909[esp+32]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	push	0
	push	-1
	lea	ecx, DWORD PTR $T43909[esp+36]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+48], 0
	call	?Compare@ncString2@@QBE_NABV1@H_N@Z	; ncString2::Compare
	mov	ecx, DWORD PTR $T43909[esp+32]
	test	al, al
	sete	bl
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T43909[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN10@operator@4
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN10@operator@4:

; 239  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	esi
	mov	al, bl
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??9ncString2@@QAE_NPBD@Z$0:
	lea	ecx, DWORD PTR $T43909[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$??9ncString2@@QAE_NPBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??9ncString2@@QAE_NPBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??9ncString2@@QAE_NPBD@Z ENDP				; ncString2::operator!=
PUBLIC	?CopyWide@ncString2@@QAEAAV1@PB_W@Z		; ncString2::CopyWide
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?CopyWide@ncString2@@QAEAAV1@PB_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?CopyWide@ncString2@@QAEAAV1@PB_W@Z$0
__ehfuncinfo$?CopyWide@ncString2@@QAEAAV1@PB_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?CopyWide@ncString2@@QAEAAV1@PB_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?CopyWide@ncString2@@QAEAAV1@PB_W@Z
_TEXT	SEGMENT
$T43932 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
?CopyWide@ncString2@@QAEAAV1@PB_W@Z PROC		; ncString2::CopyWide, COMDAT
; _this$ = ecx

; 246  : {

	push	-1
	push	__ehhandler$?CopyWide@ncString2@@QAEAAV1@PB_W@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8

; 247  : 	*this = content;

	mov	eax, DWORD PTR _content$[esp+16]
	push	esi
	push	edi
	mov	edi, ecx
	push	eax
	lea	ecx, DWORD PTR $T43932[esp+32]
	call	??0ncString2@@QAE@PB_W@Z		; ncString2::ncString2
	mov	ecx, DWORD PTR [edi+4]
	test	ecx, ecx
	mov	esi, DWORD PTR $T43932[esp+32]
	mov	DWORD PTR __$EHRec$[esp+36], 0
	je	SHORT $LN6@CopyWide
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN6@CopyWide:
	mov	DWORD PTR [edi+4], esi
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR $T43932[esp+32]
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T43932[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN15@CopyWide
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN15@CopyWide:

; 248  : 	return *this;
; 249  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?CopyWide@ncString2@@QAEAAV1@PB_W@Z$0:
	lea	ecx, DWORD PTR $T43932[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$?CopyWide@ncString2@@QAEAAV1@PB_W@Z:
	mov	eax, OFFSET __ehfuncinfo$?CopyWide@ncString2@@QAEAAV1@PB_W@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?CopyWide@ncString2@@QAEAAV1@PB_W@Z ENDP		; ncString2::CopyWide
PUBLIC	?Format_Args@ncString2@@QAEXPBDPAD@Z		; ncString2::Format_Args
EXTRN	_vsprintf:PROC
EXTRN	__vscprintf:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Format_Args@ncString2@@QAEXPBDPAD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Format_Args@ncString2@@QAEXPBDPAD@Z$0
__ehfuncinfo$?Format_Args@ncString2@@QAEXPBDPAD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Format_Args@ncString2@@QAEXPBDPAD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Format_Args@ncString2@@QAEXPBDPAD@Z
_TEXT	SEGMENT
$T43969 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_format$ = 8						; size = 4
_args$ = 12						; size = 4
?Format_Args@ncString2@@QAEXPBDPAD@Z PROC		; ncString2::Format_Args, COMDAT
; _this$ = ecx

; 392  : {

	push	-1
	mov	eax, DWORD PTR fs:0
	push	__ehhandler$?Format_Args@ncString2@@QAEXPBDPAD@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebx
	push	ebp

; 393  : 	int size = _vscprintf(format, args);

	mov	ebp, DWORD PTR _format$[esp+24]
	push	esi
	push	edi
	mov	edi, DWORD PTR _args$[esp+32]
	push	edi
	push	ebp
	mov	ebx, ecx
	call	__vscprintf
	mov	esi, eax
	add	esp, 8

; 394  : 	if (size > -1)

	cmp	esi, -1
	jle	$LN7@Format_Arg

; 395  : 	{
; 396  : 		char *tmp = new char[size + 1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	396					; 0000018cH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	add	esi, 1
	push	esi
	call	??_U@YAPAXI@Z				; operator new[]

; 397  : 		vsprintf(tmp, format, args);

	push	edi
	mov	esi, eax
	push	ebp
	push	esi
	call	_vsprintf
	add	esp, 28					; 0000001cH

; 398  : 		*this = tmp;

	push	esi
	lea	ecx, DWORD PTR $T43969[esp+40]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	mov	ecx, DWORD PTR [ebx+4]
	mov	edi, DWORD PTR $T43969[esp+40]
	xor	ebp, ebp
	cmp	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+44], ebp
	je	SHORT $LN11@Format_Arg
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN11@Format_Arg:
	mov	DWORD PTR [ebx+4], edi
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, edi
	call	edx
	mov	ecx, DWORD PTR $T43969[esp+40]
	cmp	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+44], -1
	mov	DWORD PTR $T43969[esp+36], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN17@Format_Arg
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	mov	DWORD PTR $T43969[esp+40], ebp
$LN17@Format_Arg:

; 399  : 		delete[] tmp;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	399					; 0000018fH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN7@Format_Arg:

; 400  : 	}
; 401  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Format_Args@ncString2@@QAEXPBDPAD@Z$0:
	lea	ecx, DWORD PTR $T43969[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$?Format_Args@ncString2@@QAEXPBDPAD@Z:
	mov	eax, OFFSET __ehfuncinfo$?Format_Args@ncString2@@QAEXPBDPAD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Format_Args@ncString2@@QAEXPBDPAD@Z ENDP		; ncString2::Format_Args
PUBLIC	?Printf@ncString2@@QAAXPBDZZ			; ncString2::Printf
; Function compile flags: /Ogtpy
;	COMDAT ?Printf@ncString2@@QAAXPBDZZ
_TEXT	SEGMENT
_this$ = 8						; size = 4
_format$ = 12						; size = 4
?Printf@ncString2@@QAAXPBDZZ PROC			; ncString2::Printf, COMDAT

; 404  : 	va_list args;
; 405  : 	va_start(args, format);
; 406  : 	this->Format_Args(format, args);

	mov	ecx, DWORD PTR _format$[esp-4]
	lea	eax, DWORD PTR _format$[esp]
	push	eax
	push	ecx
	mov	ecx, DWORD PTR _this$[esp+4]
	call	?Format_Args@ncString2@@QAEXPBDPAD@Z	; ncString2::Format_Args

; 407  : 	va_end(args);
; 408  : }

	ret	0
?Printf@ncString2@@QAAXPBDZZ ENDP			; ncString2::Printf
_TEXT	ENDS
PUBLIC	?Lower@ncString2@@QAE?AV1@XZ			; ncString2::Lower
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Lower@ncString2@@QAE?AV1@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Lower@ncString2@@QAE?AV1@XZ$0
__ehfuncinfo$?Lower@ncString2@@QAE?AV1@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Lower@ncString2@@QAE?AV1@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Lower@ncString2@@QAE?AV1@XZ
_TEXT	SEGMENT
$T44009 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Lower@ncString2@@QAE?AV1@XZ PROC			; ncString2::Lower, COMDAT
; _this$ = ecx

; 485  : {

	push	-1
	push	__ehhandler$?Lower@ncString2@@QAE?AV1@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	DWORD PTR $T44009[esp+16], 0

; 486  : 	ncString2 ret(this->GetString());

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $LN7@Lower
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN8@Lower
$LN7@Lower:
	xor	eax, eax
$LN8@Lower:
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	push	eax
	mov	ecx, esi
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2

; 487  : 	ret.MakeLower();
; 488  : 	return ret;

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	mov	DWORD PTR $T44009[esp+20], 1
	call	?MakeLower@ncString2@@QAEAAV1@XZ	; ncString2::MakeLower

; 489  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Lower@ncString2@@QAE?AV1@XZ$0:
	mov	eax, DWORD PTR $T44009[ebp]
	and	eax, 1
	je	$LN4@Lower
	and	DWORD PTR $T44009[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN4@Lower:
	ret	0
__ehhandler$?Lower@ncString2@@QAE?AV1@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Lower@ncString2@@QAE?AV1@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Lower@ncString2@@QAE?AV1@XZ ENDP			; ncString2::Lower
PUBLIC	?Upper@ncString2@@QAE?AV1@XZ			; ncString2::Upper
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Upper@ncString2@@QAE?AV1@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Upper@ncString2@@QAE?AV1@XZ$0
__ehfuncinfo$?Upper@ncString2@@QAE?AV1@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Upper@ncString2@@QAE?AV1@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Upper@ncString2@@QAE?AV1@XZ
_TEXT	SEGMENT
$T44034 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Upper@ncString2@@QAE?AV1@XZ PROC			; ncString2::Upper, COMDAT
; _this$ = ecx

; 500  : {

	push	-1
	push	__ehhandler$?Upper@ncString2@@QAE?AV1@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	DWORD PTR $T44034[esp+16], 0

; 501  : 	ncString2 ret(this->GetString());

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $LN7@Upper
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN8@Upper
$LN7@Upper:
	xor	eax, eax
$LN8@Upper:
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	push	eax
	mov	ecx, esi
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2

; 502  : 	ret.MakeUpper();
; 503  : 	return ret;

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	mov	DWORD PTR $T44034[esp+20], 1
	call	?MakeUpper@ncString2@@QAEAAV1@XZ	; ncString2::MakeUpper

; 504  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Upper@ncString2@@QAE?AV1@XZ$0:
	mov	eax, DWORD PTR $T44034[ebp]
	and	eax, 1
	je	$LN4@Upper
	and	DWORD PTR $T44034[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN4@Upper:
	ret	0
__ehhandler$?Upper@ncString2@@QAE?AV1@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Upper@ncString2@@QAE?AV1@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Upper@ncString2@@QAE?AV1@XZ ENDP			; ncString2::Upper
PUBLIC	?Trim@ncString2@@QAE?AV1@ABV1@H@Z		; ncString2::Trim
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Trim@ncString2@@QAE?AV1@ABV1@H@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Trim@ncString2@@QAE?AV1@ABV1@H@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Trim@ncString2@@QAE?AV1@ABV1@H@Z$1
__ehfuncinfo$?Trim@ncString2@@QAE?AV1@ABV1@H@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Trim@ncString2@@QAE?AV1@ABV1@H@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Trim@ncString2@@QAE?AV1@ABV1@H@Z
_TEXT	SEGMENT
$T44058 = -24						; size = 8
_i$38370 = -24						; size = 4
$T44060 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_list$ = 12						; size = 4
_mode$ = 16						; size = 4
?Trim@ncString2@@QAE?AV1@ABV1@H@Z PROC			; ncString2::Trim, COMDAT
; _this$ = ecx

; 515  : {

	push	-1
	push	__ehhandler$?Trim@ncString2@@QAE?AV1@ABV1@H@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	ebx
	push	esi
	xor	ebx, ebx
	mov	DWORD PTR $T44060[esp+32], ebx

; 516  : 	ncString2 ret = *this;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+28]
	push	edi
	mov	edi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [edi+4]
	mov	DWORD PTR [esi+4], ecx
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	DWORD PTR __$EHRec$[esp+48], ebx
	call	edx
	mov	DWORD PTR [esi], OFFSET ??_7ncString2@@6B@

; 564  : 		}
; 565  : 	}
; 566  : 	return ret;

	mov	edi, DWORD PTR [edi+4]
	cmp	edi, ebx
	mov	DWORD PTR __$EHRec$[esp+44], ebx
	mov	DWORD PTR $T44060[esp+36], 1
	je	$LN75@Trim

; 517  : 	if (!this->IsEmpty())

	cmp	DWORD PTR [edi+12], ebx
	je	$LN75@Trim
	cmp	DWORD PTR [edi+8], ebx
	je	$LN75@Trim

; 518  : 	{
; 519  : 		if ((mode & ncTRIM_START))

	test	BYTE PTR _mode$[esp+32], 1
	push	ebp
	je	$LN80@Trim

; 520  : 		{
; 521  : 			int start = 0;
; 522  : 			for (unsigned int i = 0; i < ret.GetLength(); i++)

	mov	ecx, esi
	xor	ebp, ebp
	mov	DWORD PTR _i$38370[esp+40], ebx
	call	?GetLength@ncStringBase@@UBEIXZ		; ncStringBase::GetLength
	test	eax, eax
	jbe	SHORT $LN72@Trim
	npad	5
$LL14@Trim:

; 523  : 			{
; 524  : 				bool match = false;
; 525  : 				register const char *ptr = list.GetString();

	mov	ecx, DWORD PTR _list$[esp+36]
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	mov	edi, eax

; 526  : 				while (*ptr)

	mov	bl, BYTE PTR [edi]
	test	bl, bl
	je	SHORT $LN78@Trim
$LL11@Trim:

; 527  : 				{
; 528  : 					if (*ptr == ret.GetString()[start])

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	bl, BYTE PTR [eax+ebp]
	je	SHORT $LN61@Trim
	mov	bl, BYTE PTR [edi+1]

; 532  : 						break;
; 533  : 					}
; 534  : 					*ptr++;

	add	edi, 1
	test	bl, bl
	jne	SHORT $LL11@Trim

; 526  : 				while (*ptr)

	jmp	SHORT $LN78@Trim
$LN61@Trim:

; 520  : 		{
; 521  : 			int start = 0;
; 522  : 			for (unsigned int i = 0; i < ret.GetLength(); i++)

	mov	edx, DWORD PTR _i$38370[esp+40]
	add	edx, 1
	mov	ecx, esi

; 529  : 					{
; 530  : 						match = true;
; 531  : 						start++;

	add	ebp, 1
	mov	DWORD PTR _i$38370[esp+40], edx
	call	?GetLength@ncStringBase@@UBEIXZ		; ncStringBase::GetLength
	cmp	edx, eax
	jb	SHORT $LL14@Trim
$LN78@Trim:

; 520  : 		{
; 521  : 			int start = 0;
; 522  : 			for (unsigned int i = 0; i < ret.GetLength(); i++)

	xor	ebx, ebx
$LN72@Trim:

; 535  : 				}
; 536  : 				if (!match)
; 537  : 					break;
; 538  : 			}
; 539  : 			ret = ret.GetString() + start;

	mov	eax, DWORD PTR [esi+4]
	cmp	eax, ebx
	je	SHORT $LN37@Trim
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN38@Trim
$LN37@Trim:
	xor	eax, eax
$LN38@Trim:
	add	eax, ebp
	push	eax
	lea	ecx, DWORD PTR $T44058[esp+44]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	mov	ecx, DWORD PTR [esi+4]
	cmp	ecx, ebx
	mov	edi, DWORD PTR $T44058[esp+44]
	mov	DWORD PTR __$EHRec$[esp+48], 1
	je	SHORT $LN43@Trim
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN43@Trim:
	mov	DWORD PTR [esi+4], edi
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, edi
	call	edx
	mov	ecx, DWORD PTR $T44058[esp+44]
	cmp	ecx, ebx
	mov	BYTE PTR __$EHRec$[esp+48], 0
	mov	DWORD PTR $T44058[esp+40], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN80@Trim
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN80@Trim:

; 540  : 		}
; 541  : 
; 542  : 		if ((mode & ncTRIM_END))

	test	BYTE PTR _mode$[esp+36], 2
	je	SHORT $LN74@Trim

; 543  : 		{
; 544  : 			int count = ret.GetLength() - 1;

	mov	eax, DWORD PTR [esi+4]
	cmp	eax, ebx
	je	SHORT $LN52@Trim
	mov	eax, DWORD PTR [eax+12]
	jmp	SHORT $LN53@Trim
$LN52@Trim:
	xor	eax, eax
$LN53@Trim:
	lea	ebp, DWORD PTR [eax-1]

; 545  : 			while (count >= 0)

	test	ebp, ebp
	jl	SHORT $LN79@Trim
$LL6@Trim:

; 546  : 			{
; 547  : 				bool match = false;
; 548  : 				register const char *ptr = list.GetString();

	mov	ecx, DWORD PTR _list$[esp+36]
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	mov	edi, eax

; 549  : 				while (*ptr)

	mov	bl, BYTE PTR [edi]
	test	bl, bl
	je	SHORT $LN79@Trim
$LL4@Trim:

; 550  : 				{
; 551  : 					if (*ptr == ret.GetString()[count])

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	cmp	bl, BYTE PTR [eax+ebp]
	je	SHORT $LN63@Trim
	mov	bl, BYTE PTR [edi+1]

; 552  : 					{
; 553  : 						match = true;
; 554  : 						break;
; 555  : 					}
; 556  : 					*ptr++;

	add	edi, 1
	test	bl, bl
	jne	SHORT $LL4@Trim

; 549  : 				while (*ptr)

	jmp	SHORT $LN79@Trim
$LN63@Trim:

; 557  : 				}
; 558  : 				if (!match)
; 559  : 					break;
; 560  : 				count--;

	sub	ebp, 1

; 545  : 			while (count >= 0)

	jns	SHORT $LL6@Trim
$LN79@Trim:

; 561  : 			}
; 562  : 			count++;

	add	ebp, 1

; 563  : 			ret.Resize(count);

	push	ebp
	mov	ecx, esi
	call	?Resize@ncString2@@UAEXI@Z		; ncString2::Resize
$LN74@Trim:
	pop	ebp
	pop	edi

; 564  : 		}
; 565  : 	}
; 566  : 	return ret;

	mov	eax, esi
	pop	esi
	pop	ebx

; 567  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	12					; 0000000cH
$LN75@Trim:
	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Trim@ncString2@@QAE?AV1@ABV1@H@Z$0:
	mov	eax, DWORD PTR $T44060[ebp]
	and	eax, 1
	je	$LN20@Trim
	and	DWORD PTR $T44060[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN20@Trim:
	ret	0
__unwindfunclet$?Trim@ncString2@@QAE?AV1@ABV1@H@Z$1:
	lea	ecx, DWORD PTR $T44058[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$?Trim@ncString2@@QAE?AV1@ABV1@H@Z:
	mov	eax, OFFSET __ehfuncinfo$?Trim@ncString2@@QAE?AV1@ABV1@H@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Trim@ncString2@@QAE?AV1@ABV1@H@Z ENDP			; ncString2::Trim
PUBLIC	??0ncWideString2@@QAE@ABVncString2@@@Z		; ncWideString2::ncWideString2
EXTRN	_mbstowcs:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@ABVncString2@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@ABVncString2@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@ABVncString2@@@Z$1
__ehfuncinfo$??0ncWideString2@@QAE@ABVncString2@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@ABVncString2@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@ABVncString2@@@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
$T44171 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_str$ = 8						; size = 4
??0ncWideString2@@QAE@ABVncString2@@@Z PROC		; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 601  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@ABVncString2@@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	ebx
	push	ebp
	push	esi
	mov	ebp, ecx
	push	edi
	mov	DWORD PTR _this$[esp+40], ebp
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 602  : 	int len = ((ncString2)str).GetLength();

	mov	esi, DWORD PTR _str$[esp+36]
	mov	DWORD PTR [ebp], OFFSET ??_7ncWideString2@@6B@
	mov	ecx, DWORD PTR [esi+4]
	mov	ebx, OFFSET ??_7ncStringBase@@6B@
	mov	DWORD PTR $T44171[esp+40], ebx
	mov	DWORD PTR $T44171[esp+44], ecx
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	DWORD PTR __$EHRec$[esp+52], 0
	call	edx
	mov	DWORD PTR $T44171[esp+40], OFFSET ??_7ncString2@@6B@
	lea	ecx, DWORD PTR $T44171[esp+40]
	mov	BYTE PTR __$EHRec$[esp+48], 1
	call	DWORD PTR ??_7ncString2@@6B@+4
	mov	ecx, DWORD PTR $T44171[esp+44]
	test	ecx, ecx
	mov	edi, eax
	mov	BYTE PTR __$EHRec$[esp+48], 0
	mov	DWORD PTR $T44171[esp+40], ebx
	je	SHORT $LN40@ncWideStri@2
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN40@ncWideStri@2:

; 603  : 	const char *content = ((ncString2)str).GetString();

	mov	esi, DWORD PTR [esi+4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, esi
	call	edx
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ebx, DWORD PTR [esi+8]
	push	1
	mov	ecx, esi
	call	edx

; 604  : 	wchar_t* tmp = new wchar_t[WCHAR_SIZE(len) + 2];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	604					; 0000025cH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	esi, DWORD PTR [edi+edi]
	lea	eax, DWORD PTR [esi+2]
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 605  : 	mbstowcs(tmp, content, WCHAR_SIZE(len));

	push	esi
	mov	edi, eax
	push	ebx
	push	edi
	call	_mbstowcs

; 606  : 	this->m_data->SetBuffer((void *)tmp, WCHAR_SIZE(len), 2);

	mov	ebx, DWORD PTR [ebp+4]
	add	esp, 28					; 0000001cH
	push	2
	push	esi
	mov	ecx, ebx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [ebx+8]
	push	esi
	push	edi
	push	eax
	call	_memcpy

; 607  : 	delete[] tmp;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	607					; 0000025fH
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	DWORD PTR [ebx+12], esi
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 608  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	add	esp, 28					; 0000001cH
	pop	edi
	pop	esi
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@ABVncString2@@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__unwindfunclet$??0ncWideString2@@QAE@ABVncString2@@@Z$1:
	lea	ecx, DWORD PTR $T44171[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$??0ncWideString2@@QAE@ABVncString2@@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@ABVncString2@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@ABVncString2@@@Z ENDP		; ncWideString2::ncWideString2
PUBLIC	??0ncWideString2@@QAE@PBD@Z			; ncWideString2::ncWideString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@PBD@Z$0
__ehfuncinfo$??0ncWideString2@@QAE@PBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@PBD@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??0ncWideString2@@QAE@PBD@Z PROC			; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 610  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@PBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	ebp
	mov	ebp, ecx
	mov	DWORD PTR _this$[esp+24], ebp
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 611  : 	if (content)

	mov	ebx, DWORD PTR _content$[esp+20]
	test	ebx, ebx
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR [ebp], OFFSET ??_7ncWideString2@@6B@
	je	$LN12@ncWideStri@3

; 612  : 	{
; 613  : 		int len = strlen(content);

	mov	eax, ebx
	lea	edx, DWORD PTR [eax+1]
$LL11@ncWideStri@3:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL11@ncWideStri@3
	push	esi
	push	edi

; 614  : 		wchar_t *tmp = new wchar_t[WCHAR_SIZE(len)];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	sub	eax, edx
	push	614					; 00000266H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	esi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	add	esi, esi
	xor	ecx, ecx
	mov	eax, esi
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 615  : 		mbstowcs(tmp, content, len * 2);

	push	esi
	mov	edi, eax
	push	ebx
	push	edi
	call	_mbstowcs

; 616  : 		this->m_data->SetBuffer((void *)tmp, WCHAR_SIZE(len), 2);

	mov	ebx, DWORD PTR [ebp+4]
	add	esp, 28					; 0000001cH
	push	2
	push	esi
	mov	ecx, ebx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [ebx+8]
	push	esi
	push	edi
	push	eax
	call	_memcpy

; 617  : 		delete[] tmp;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	617					; 00000269H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	DWORD PTR [ebx+12], esi
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH
	pop	edi
	pop	esi
$LN12@ncWideStri@3:

; 618  : 	}
; 619  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@PBD@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncWideString2@@QAE@PBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@PBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@PBD@Z ENDP			; ncWideString2::ncWideString2
PUBLIC	??0ncWideString2@@QAE@PB_W@Z			; ncWideString2::ncWideString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@PB_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@PB_W@Z$0
__ehfuncinfo$??0ncWideString2@@QAE@PB_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@PB_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@PB_W@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??0ncWideString2@@QAE@PB_W@Z PROC			; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 621  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@PB_W@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	mov	ebx, ecx
	push	ebp
	mov	DWORD PTR _this$[esp+24], ebx
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 622  : 	if (content)

	mov	ebp, DWORD PTR _content$[esp+20]
	test	ebp, ebp
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR [ebx], OFFSET ??_7ncWideString2@@6B@
	je	SHORT $LN8@ncWideStri@4

; 623  : 		this->m_data->SetBuffer((void *)content, WCHAR_SIZE(wcslen(content)), 2);

	mov	eax, ebp
	lea	edx, DWORD PTR [eax+2]
	npad	2
$LL7@ncWideStri@4:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL7@ncWideStri@4
	push	esi
	push	edi
	mov	edi, DWORD PTR [ebx+4]
	sub	eax, edx
	sar	eax, 1
	lea	esi, DWORD PTR [eax+eax]
	push	2
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	push	esi
	push	ebp
	push	eax
	call	_memcpy
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
$LN8@ncWideStri@4:

; 624  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	ebp
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@PB_W@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncWideString2@@QAE@PB_W@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@PB_W@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@PB_W@Z ENDP			; ncWideString2::ncWideString2
PUBLIC	??0ncWideString2@@QAE@D@Z			; ncWideString2::ncWideString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@D@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@D@Z$0
__ehfuncinfo$??0ncWideString2@@QAE@D@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@D@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@D@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_word$ = 8						; size = 1
??0ncWideString2@@QAE@D@Z PROC				; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 626  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@D@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 627  : 	this->m_data->SetBuffer(&word, WCHAR_SIZE(1), 2);

	mov	edi, DWORD PTR [esi+4]
	push	2
	push	2
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR [esi], OFFSET ??_7ncWideString2@@6B@
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	mov	cx, WORD PTR _word$[esp+20]
	mov	WORD PTR [eax], cx

; 628  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR [edi+12], 2
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@D@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncWideString2@@QAE@D@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@D@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@D@Z ENDP				; ncWideString2::ncWideString2
PUBLIC	??0ncWideString2@@QAE@_W@Z			; ncWideString2::ncWideString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@_W@Z$0
__ehfuncinfo$??0ncWideString2@@QAE@_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@_W@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_word$ = 8						; size = 2
??0ncWideString2@@QAE@_W@Z PROC				; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 630  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@_W@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 631  : 	this->m_data->SetBuffer(&word, WCHAR_SIZE(1), 2);

	mov	edi, DWORD PTR [esi+4]
	push	2
	push	2
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR [esi], OFFSET ??_7ncWideString2@@6B@
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	mov	cx, WORD PTR _word$[esp+20]
	mov	WORD PTR [eax], cx

; 632  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR [edi+12], 2
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@_W@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncWideString2@@QAE@_W@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@_W@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@_W@Z ENDP				; ncWideString2::ncWideString2
PUBLIC	??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@		; `string'
PUBLIC	??0ncWideString2@@QAE@H@Z			; ncWideString2::ncWideString2
;	COMDAT ??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@ DB '%', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@H@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@H@Z$0
__ehfuncinfo$??0ncWideString2@@QAE@H@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@H@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@H@Z
_TEXT	SEGMENT
_this$ = -88						; size = 4
_iStr$ = -84						; size = 70
__$EHRec$ = -12						; size = 12
_i$ = 8							; size = 4
??0ncWideString2@@QAE@H@Z PROC				; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 634  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@H@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 76					; 0000004cH
	push	ebx
	push	esi
	mov	ebx, ecx
	push	edi
	mov	DWORD PTR _this$[esp+100], ebx
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 635  : 	wchar_t iStr[35];
; 636  : 	swprintf(iStr, 34, L"%d", i);

	mov	eax, DWORD PTR _i$[esp+96]
	push	eax
	lea	ecx, DWORD PTR _iStr$[esp+104]
	push	OFFSET ??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@
	push	ecx
	mov	edx, 34					; 00000022H
	mov	DWORD PTR __$EHRec$[esp+120], 0
	mov	DWORD PTR [ebx], OFFSET ??_7ncWideString2@@6B@
	call	_swprintf

; 637  : 	this->m_data->SetBuffer((void *)iStr, WCHAR_SIZE(wcslen(iStr)), 2);

	lea	eax, DWORD PTR _iStr$[esp+112]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
$LL6@ncWideStri@5:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL6@ncWideStri@5
	mov	edi, DWORD PTR [ebx+4]
	sub	eax, edx
	sar	eax, 1
	lea	esi, DWORD PTR [eax+eax]
	push	2
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [edi+8]
	push	esi
	lea	edx, DWORD PTR _iStr$[esp+104]
	push	edx
	push	eax
	call	_memcpy

; 638  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+112]
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 88					; 00000058H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@H@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncWideString2@@QAE@H@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@H@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@H@Z ENDP				; ncWideString2::ncWideString2
PUBLIC	??_C@_15HBBGCAG@?$AA?$CF?$AAf?$AA?$AA@		; `string'
PUBLIC	??0ncWideString2@@QAE@N@Z			; ncWideString2::ncWideString2
;	COMDAT ??_C@_15HBBGCAG@?$AA?$CF?$AAf?$AA?$AA@
CONST	SEGMENT
??_C@_15HBBGCAG@?$AA?$CF?$AAf?$AA?$AA@ DB '%', 00H, 'f', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@N@Z$0
__ehfuncinfo$??0ncWideString2@@QAE@N@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@N@Z
_TEXT	SEGMENT
_this$ = -652						; size = 4
_dStr$ = -648						; size = 634
__$EHRec$ = -12						; size = 12
_d$ = 8							; size = 8
??0ncWideString2@@QAE@N@Z PROC				; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 640  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 640				; 00000280H
	push	ebx
	push	esi
	mov	ebx, ecx
	push	edi
	mov	DWORD PTR _this$[esp+664], ebx
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 641  : 	// Maximum length of double is 316
; 642  : 	wchar_t dStr[317];
; 643  : 	swprintf(dStr, L"%f", d);

	fld	QWORD PTR _d$[esp+660]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	lea	eax, DWORD PTR _dStr$[esp+672]
	push	OFFSET ??_C@_15HBBGCAG@?$AA?$CF?$AAf?$AA?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+688], 0
	mov	DWORD PTR [ebx], OFFSET ??_7ncWideString2@@6B@
	call	?swprintf@@YAHPA_WPB_WZZ		; swprintf

; 644  : 	this->m_data->SetBuffer((void *)dStr, WCHAR_SIZE(wcslen(dStr)), 2);

	lea	eax, DWORD PTR _dStr$[esp+680]
	add	esp, 16					; 00000010H
	lea	edx, DWORD PTR [eax+2]
$LL6@ncWideStri@6:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL6@ncWideStri@6
	mov	edi, DWORD PTR [ebx+4]
	sub	eax, edx
	sar	eax, 1
	lea	esi, DWORD PTR [eax+eax]
	push	2
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	edx, DWORD PTR [edi+8]
	push	esi
	lea	ecx, DWORD PTR _dStr$[esp+668]
	push	ecx
	push	edx
	call	_memcpy

; 645  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+676]
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 652				; 0000028cH
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@N@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncWideString2@@QAE@N@Z:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@N@Z ENDP				; ncWideString2::ncWideString2
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@ncWideString2@@UAEXI@Z
_TEXT	SEGMENT
_size$ = 8						; size = 4
?Resize@ncWideString2@@UAEXI@Z PROC			; ncWideString2::Resize, COMDAT
; _this$ = ecx

; 653  : {

	push	ebx
	mov	ebx, ecx

; 654  : 	ncStringData *newData = NULL;
; 655  : 	if (this->m_data != NULL)

	mov	ecx, DWORD PTR [ebx+4]
	push	esi
	xor	esi, esi
	cmp	ecx, esi
	je	$LN1@Resize@3

; 656  : 	{
; 657  : 		if (this->m_data->IsShared())

	cmp	DWORD PTR [ecx+4], 2
	jb	$LN3@Resize@3

; 658  : 		{
; 659  : 			newData = new ncStringData;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	659					; 00000293H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, esi
	je	SHORT $LN7@Resize@3
	mov	DWORD PTR [eax+4], esi
	mov	DWORD PTR [eax+8], esi
	mov	DWORD PTR [eax+12], esi
	mov	DWORD PTR [eax+16], esi
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	esi, eax
$LN7@Resize@3:

; 660  : 			newData->IncRef();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	ebp
	push	edi
	push	1
	mov	ecx, esi
	call	edx

; 661  : 			newData->SetBuffer(this->GetData()->GetBuffer(), this->GetData()->GetLength(), 2);

	mov	eax, DWORD PTR [ebx+4]
	mov	edi, DWORD PTR [eax+12]
	mov	ebp, DWORD PTR [eax+8]
	push	2
	push	edi
	mov	ecx, esi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [esi+8]
	push	edi
	push	ebp
	push	eax
	call	_memcpy

; 662  : 			newData->Resize(WCHAR_SIZE(size), 2);

	mov	ecx, DWORD PTR _size$[esp+24]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [ecx+ecx]
	push	2
	push	edx
	mov	ecx, esi
	mov	DWORD PTR [esi+12], edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize

; 663  : 			this->m_data->DecRef();

	mov	ecx, DWORD PTR [ebx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
	pop	edi
	pop	ebp

; 667  : 	}
; 668  : 	if (newData != NULL)
; 669  : 		this->m_data = newData;

	mov	DWORD PTR [ebx+4], esi
$LN1@Resize@3:
	pop	esi
	pop	ebx

; 670  : }

	ret	4
$LN3@Resize@3:

; 664  : 		}
; 665  : 		else
; 666  : 			this->m_data->Resize(WCHAR_SIZE(size), 2);

	mov	eax, DWORD PTR _size$[esp+4]
	push	2
	lea	edx, DWORD PTR [eax+eax]
	push	edx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	pop	esi
	pop	ebx

; 670  : }

	ret	4
?Resize@ncWideString2@@UAEXI@Z ENDP			; ncWideString2::Resize
_TEXT	ENDS
PUBLIC	?SetString@ncWideString2@@QAEXPB_W@Z		; ncWideString2::SetString
; Function compile flags: /Ogtpy
;	COMDAT ?SetString@ncWideString2@@QAEXPB_W@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
?SetString@ncWideString2@@QAEXPB_W@Z PROC		; ncWideString2::SetString, COMDAT
; _this$ = ecx

; 672  : {

	push	ebx

; 673  : 	if (content != NULL)

	mov	ebx, DWORD PTR _content$[esp]
	push	ebp
	push	esi
	xor	esi, esi
	cmp	ebx, esi
	mov	ebp, ecx
	je	$LN1@SetString@2
	push	edi

; 674  : 	{
; 675  : 		ncStringData *newData = NULL;
; 676  : 		if (this->m_data != NULL)

	mov	edi, DWORD PTR [ebp+4]
	cmp	edi, esi
	je	$LN25@SetString@2

; 677  : 		{
; 678  : 			if (this->m_data->IsShared())

	cmp	DWORD PTR [edi+4], 2
	jb	$LN3@SetString@2

; 679  : 			{
; 680  : 				newData = new ncStringData;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	680					; 000002a8H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, esi
	je	SHORT $LN8@SetString@2
	mov	DWORD PTR [eax+4], esi
	mov	DWORD PTR [eax+8], esi
	mov	DWORD PTR [eax+12], esi
	mov	DWORD PTR [eax+16], esi
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	esi, eax
$LN8@SetString@2:

; 681  : 				newData->IncRef();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, esi
	call	edx

; 682  : 				newData->SetBuffer((void *)content, WCHAR_SIZE(wcslen(content)), 2);

	mov	eax, ebx
	lea	edx, DWORD PTR [eax+2]
	npad	2
$LL23@SetString@2:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL23@SetString@2
	sub	eax, edx
	sar	eax, 1
	lea	edi, DWORD PTR [eax+eax]
	push	2
	push	edi
	mov	ecx, esi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	eax, DWORD PTR [esi+8]
	push	edi
	push	ebx
	push	eax
	call	_memcpy
	mov	DWORD PTR [esi+12], edi

; 683  : 				this->m_data->DecRef();

	mov	ecx, DWORD PTR [ebp+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	add	esp, 12					; 0000000cH
	push	1
	call	eax

; 687  : 		}
; 688  : 		if (newData != NULL)
; 689  : 			this->m_data = newData;

	mov	DWORD PTR [ebp+4], esi
$LN25@SetString@2:
	pop	edi
$LN1@SetString@2:
	pop	esi
	pop	ebp
	pop	ebx

; 690  : 	}
; 691  : }

	ret	4
$LN3@SetString@2:

; 684  : 			}
; 685  : 			else
; 686  : 				this->m_data->SetBuffer((void *)content, WCHAR_SIZE(wcslen(content)), 2);

	mov	eax, ebx
	lea	edx, DWORD PTR [eax+2]
	npad	8
$LL24@SetString@2:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, si
	jne	SHORT $LL24@SetString@2
	sub	eax, edx
	sar	eax, 1
	lea	esi, DWORD PTR [eax+eax]
	push	2
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR [edi+8]
	push	esi
	push	ebx
	push	ecx
	call	_memcpy
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 690  : 	}
; 691  : }

	ret	4
?SetString@ncWideString2@@QAEXPB_W@Z ENDP		; ncWideString2::SetString
_TEXT	ENDS
PUBLIC	??8ncWideString2@@QAE_NABV0@@Z			; ncWideString2::operator==
; Function compile flags: /Ogtpy
;	COMDAT ??8ncWideString2@@QAE_NABV0@@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
??8ncWideString2@@QAE_NABV0@@Z PROC			; ncWideString2::operator==, COMDAT
; _this$ = ecx

; 711  : 	return this->Compare(content);

	mov	eax, DWORD PTR _content$[esp-4]
	push	0
	push	-1
	push	eax
	call	?Compare@ncWideString2@@QBE_NABV1@H_N@Z	; ncWideString2::Compare

; 712  : }

	ret	4
??8ncWideString2@@QAE_NABV0@@Z ENDP			; ncWideString2::operator==
_TEXT	ENDS
PUBLIC	??8ncWideString2@@QAE_NPB_W@Z			; ncWideString2::operator==
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??8ncWideString2@@QAE_NPB_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??8ncWideString2@@QAE_NPB_W@Z$0
__ehfuncinfo$??8ncWideString2@@QAE_NPB_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??8ncWideString2@@QAE_NPB_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??8ncWideString2@@QAE_NPB_W@Z
_TEXT	SEGMENT
$T44428 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??8ncWideString2@@QAE_NPB_W@Z PROC			; ncWideString2::operator==, COMDAT
; _this$ = ecx

; 714  : {

	push	-1
	push	__ehhandler$??8ncWideString2@@QAE_NPB_W@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8

; 715  : 	return this->Compare(content);

	mov	eax, DWORD PTR _content$[esp+16]
	push	ebx
	push	esi
	mov	esi, ecx
	push	eax
	lea	ecx, DWORD PTR $T44428[esp+32]
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2
	push	0
	push	-1
	lea	ecx, DWORD PTR $T44428[esp+36]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+48], 0
	call	?Compare@ncWideString2@@QBE_NABV1@H_N@Z	; ncWideString2::Compare
	mov	ecx, DWORD PTR $T44428[esp+32]
	test	ecx, ecx
	mov	bl, al
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T44428[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN10@operator@5
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN10@operator@5:

; 716  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	esi
	mov	al, bl
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??8ncWideString2@@QAE_NPB_W@Z$0:
	lea	ecx, DWORD PTR $T44428[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$??8ncWideString2@@QAE_NPB_W@Z:
	mov	eax, OFFSET __ehfuncinfo$??8ncWideString2@@QAE_NPB_W@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??8ncWideString2@@QAE_NPB_W@Z ENDP			; ncWideString2::operator==
PUBLIC	??9ncWideString2@@QAE_NABV0@@Z			; ncWideString2::operator!=
; Function compile flags: /Ogtpy
;	COMDAT ??9ncWideString2@@QAE_NABV0@@Z
_TEXT	SEGMENT
_content$ = 8						; size = 4
??9ncWideString2@@QAE_NABV0@@Z PROC			; ncWideString2::operator!=, COMDAT
; _this$ = ecx

; 719  : 	return (!this->Compare(content));

	mov	eax, DWORD PTR _content$[esp-4]
	push	0
	push	-1
	push	eax
	call	?Compare@ncWideString2@@QBE_NABV1@H_N@Z	; ncWideString2::Compare
	neg	al
	sbb	eax, eax
	add	eax, 1

; 720  : }

	ret	4
??9ncWideString2@@QAE_NABV0@@Z ENDP			; ncWideString2::operator!=
_TEXT	ENDS
PUBLIC	??9ncWideString2@@QAE_NPB_W@Z			; ncWideString2::operator!=
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??9ncWideString2@@QAE_NPB_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??9ncWideString2@@QAE_NPB_W@Z$0
__ehfuncinfo$??9ncWideString2@@QAE_NPB_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??9ncWideString2@@QAE_NPB_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??9ncWideString2@@QAE_NPB_W@Z
_TEXT	SEGMENT
$T44455 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??9ncWideString2@@QAE_NPB_W@Z PROC			; ncWideString2::operator!=, COMDAT
; _this$ = ecx

; 722  : {

	push	-1
	push	__ehhandler$??9ncWideString2@@QAE_NPB_W@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8

; 723  : 	return (!this->Compare(content));

	mov	eax, DWORD PTR _content$[esp+16]
	push	ebx
	push	esi
	mov	esi, ecx
	push	eax
	lea	ecx, DWORD PTR $T44455[esp+32]
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2
	push	0
	push	-1
	lea	ecx, DWORD PTR $T44455[esp+36]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+48], 0
	call	?Compare@ncWideString2@@QBE_NABV1@H_N@Z	; ncWideString2::Compare
	mov	ecx, DWORD PTR $T44455[esp+32]
	test	al, al
	sete	bl
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T44455[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN10@operator@6
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN10@operator@6:

; 724  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	esi
	mov	al, bl
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??9ncWideString2@@QAE_NPB_W@Z$0:
	lea	ecx, DWORD PTR $T44455[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$??9ncWideString2@@QAE_NPB_W@Z:
	mov	eax, OFFSET __ehfuncinfo$??9ncWideString2@@QAE_NPB_W@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??9ncWideString2@@QAE_NPB_W@Z ENDP			; ncWideString2::operator!=
PUBLIC	?CopyString@ncWideString2@@QAEAAV1@PBD@Z	; ncWideString2::CopyString
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?CopyString@ncWideString2@@QAEAAV1@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?CopyString@ncWideString2@@QAEAAV1@PBD@Z$0
__ehfuncinfo$?CopyString@ncWideString2@@QAEAAV1@PBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?CopyString@ncWideString2@@QAEAAV1@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?CopyString@ncWideString2@@QAEAAV1@PBD@Z
_TEXT	SEGMENT
$T44478 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
?CopyString@ncWideString2@@QAEAAV1@PBD@Z PROC		; ncWideString2::CopyString, COMDAT
; _this$ = ecx

; 731  : {

	push	-1
	push	__ehhandler$?CopyString@ncWideString2@@QAEAAV1@PBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8

; 732  : 	*this = content;

	mov	eax, DWORD PTR _content$[esp+16]
	push	esi
	push	edi
	mov	edi, ecx
	push	eax
	lea	ecx, DWORD PTR $T44478[esp+32]
	call	??0ncWideString2@@QAE@PBD@Z		; ncWideString2::ncWideString2
	mov	ecx, DWORD PTR [edi+4]
	test	ecx, ecx
	mov	esi, DWORD PTR $T44478[esp+32]
	mov	DWORD PTR __$EHRec$[esp+36], 0
	je	SHORT $LN6@CopyString
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN6@CopyString:
	mov	DWORD PTR [edi+4], esi
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR $T44478[esp+32]
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T44478[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN15@CopyString
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN15@CopyString:

; 733  : 	return *this;
; 734  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?CopyString@ncWideString2@@QAEAAV1@PBD@Z$0:
	lea	ecx, DWORD PTR $T44478[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$?CopyString@ncWideString2@@QAEAAV1@PBD@Z:
	mov	eax, OFFSET __ehfuncinfo$?CopyString@ncWideString2@@QAEAAV1@PBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?CopyString@ncWideString2@@QAEAAV1@PBD@Z ENDP		; ncWideString2::CopyString
PUBLIC	?Format_Args@ncWideString2@@QAEXPB_WPAD@Z	; ncWideString2::Format_Args
EXTRN	__vscwprintf:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Format_Args@ncWideString2@@QAEXPB_WPAD@Z
_TEXT	SEGMENT
_format$ = 8						; size = 4
_args$ = 12						; size = 4
?Format_Args@ncWideString2@@QAEXPB_WPAD@Z PROC		; ncWideString2::Format_Args, COMDAT
; _this$ = ecx

; 877  : {

	push	ebx

; 878  : 	int size = _vscwprintf(format, args);

	mov	ebx, DWORD PTR _format$[esp]
	push	ebp
	mov	ebp, DWORD PTR _args$[esp+4]
	push	esi
	push	edi
	push	ebp
	push	ebx
	mov	edi, ecx
	call	__vscwprintf
	mov	esi, eax
	add	esp, 8

; 879  : 	if (size > -1)

	cmp	esi, -1
	jle	SHORT $LN7@Format_Arg@2

; 880  : 	{
; 881  : 		wchar_t *tmp = new wchar_t[size + 1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	881					; 00000371H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	eax, DWORD PTR [esi+1]
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 882  : 		vswprintf(tmp, format, args);

	push	ebp
	mov	esi, eax
	push	ebx
	push	esi
	call	__vswprintf
	add	esp, 28					; 0000001cH

; 883  : 		this->SetString(tmp);

	push	esi
	mov	ecx, edi
	call	?SetString@ncWideString2@@QAEXPB_W@Z	; ncWideString2::SetString

; 884  : 		delete[] tmp;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	884					; 00000374H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN7@Format_Arg@2:
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 885  : 	}
; 886  : }

	ret	8
?Format_Args@ncWideString2@@QAEXPB_WPAD@Z ENDP		; ncWideString2::Format_Args
_TEXT	ENDS
PUBLIC	?Printf@ncWideString2@@QAAXPB_WZZ		; ncWideString2::Printf
; Function compile flags: /Ogtpy
;	COMDAT ?Printf@ncWideString2@@QAAXPB_WZZ
_TEXT	SEGMENT
_this$ = 8						; size = 4
_format$ = 12						; size = 4
?Printf@ncWideString2@@QAAXPB_WZZ PROC			; ncWideString2::Printf, COMDAT

; 889  : 	va_list args;
; 890  : 	va_start(args, format);
; 891  : 	this->Format_Args(format, args);

	mov	ecx, DWORD PTR _format$[esp-4]
	lea	eax, DWORD PTR _format$[esp]
	push	eax
	push	ecx
	mov	ecx, DWORD PTR _this$[esp+4]
	call	?Format_Args@ncWideString2@@QAEXPB_WPAD@Z ; ncWideString2::Format_Args

; 892  : 	va_end(args);
; 893  : }

	ret	0
?Printf@ncWideString2@@QAAXPB_WZZ ENDP			; ncWideString2::Printf
_TEXT	ENDS
PUBLIC	?Lower@ncWideString2@@QAE?AV1@XZ		; ncWideString2::Lower
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Lower@ncWideString2@@QAE?AV1@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Lower@ncWideString2@@QAE?AV1@XZ$0
__ehfuncinfo$?Lower@ncWideString2@@QAE?AV1@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Lower@ncWideString2@@QAE?AV1@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Lower@ncWideString2@@QAE?AV1@XZ
_TEXT	SEGMENT
$T44528 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Lower@ncWideString2@@QAE?AV1@XZ PROC			; ncWideString2::Lower, COMDAT
; _this$ = ecx

; 970  : {

	push	-1
	push	__ehhandler$?Lower@ncWideString2@@QAE?AV1@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	DWORD PTR $T44528[esp+16], 0

; 971  : 	ncWideString2 ret(this->GetString());

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $LN7@Lower@2
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN8@Lower@2
$LN7@Lower@2:
	xor	eax, eax
$LN8@Lower@2:
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	push	eax
	mov	ecx, esi
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2

; 972  : 	ret.MakeLower();
; 973  : 	return ret;

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	mov	DWORD PTR $T44528[esp+20], 1
	call	?MakeLower@ncWideString2@@QAEAAV1@XZ	; ncWideString2::MakeLower

; 974  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Lower@ncWideString2@@QAE?AV1@XZ$0:
	mov	eax, DWORD PTR $T44528[ebp]
	and	eax, 1
	je	$LN4@Lower@2
	and	DWORD PTR $T44528[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN4@Lower@2:
	ret	0
__ehhandler$?Lower@ncWideString2@@QAE?AV1@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Lower@ncWideString2@@QAE?AV1@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Lower@ncWideString2@@QAE?AV1@XZ ENDP			; ncWideString2::Lower
PUBLIC	?Upper@ncWideString2@@QAE?AV1@XZ		; ncWideString2::Upper
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Upper@ncWideString2@@QAE?AV1@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Upper@ncWideString2@@QAE?AV1@XZ$0
__ehfuncinfo$?Upper@ncWideString2@@QAE?AV1@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Upper@ncWideString2@@QAE?AV1@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Upper@ncWideString2@@QAE?AV1@XZ
_TEXT	SEGMENT
$T44553 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Upper@ncWideString2@@QAE?AV1@XZ PROC			; ncWideString2::Upper, COMDAT
; _this$ = ecx

; 985  : {

	push	-1
	push	__ehhandler$?Upper@ncWideString2@@QAE?AV1@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	DWORD PTR $T44553[esp+16], 0

; 986  : 	ncWideString2 ret(this->GetString());

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $LN7@Upper@2
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN8@Upper@2
$LN7@Upper@2:
	xor	eax, eax
$LN8@Upper@2:
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	push	eax
	mov	ecx, esi
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2

; 987  : 	ret.MakeUpper();
; 988  : 	return ret;

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	mov	DWORD PTR $T44553[esp+20], 1
	call	?MakeUpper@ncWideString2@@QAEAAV1@XZ	; ncWideString2::MakeUpper

; 989  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Upper@ncWideString2@@QAE?AV1@XZ$0:
	mov	eax, DWORD PTR $T44553[ebp]
	and	eax, 1
	je	$LN4@Upper@2
	and	DWORD PTR $T44553[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN4@Upper@2:
	ret	0
__ehhandler$?Upper@ncWideString2@@QAE?AV1@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Upper@ncWideString2@@QAE?AV1@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Upper@ncWideString2@@QAE?AV1@XZ ENDP			; ncWideString2::Upper
PUBLIC	?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z		; ncWideString2::Trim
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z$0
__ehfuncinfo$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z
_TEXT	SEGMENT
_i$38814 = -20						; size = 4
$T44578 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_list$ = 12						; size = 4
_mode$ = 16						; size = 4
?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z PROC		; ncWideString2::Trim, COMDAT
; _this$ = ecx

; 1000 : {

	push	-1
	push	__ehhandler$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebp
	push	esi
	push	edi
	xor	edi, edi
	mov	DWORD PTR $T44578[esp+32], edi

; 1001 : 	ncWideString2 ret = *this;

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+28]
	mov	esi, ecx
	mov	DWORD PTR [ebp], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR [ebp+4], ecx
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	1
	mov	DWORD PTR __$EHRec$[esp+44], edi
	call	edx
	mov	DWORD PTR [ebp], OFFSET ??_7ncWideString2@@6B@

; 1048 : 		}
; 1049 : 	}
; 1050 : 	return ret;

	mov	esi, DWORD PTR [esi+4]
	cmp	esi, edi
	mov	DWORD PTR __$EHRec$[esp+40], edi
	mov	DWORD PTR $T44578[esp+32], 1
	je	$LN63@Trim@2

; 1002 : 	if (!this->IsEmpty())

	cmp	DWORD PTR [esi+12], edi
	je	$LN63@Trim@2
	cmp	DWORD PTR [esi+8], edi
	je	$LN63@Trim@2

; 1003 : 	{
; 1004 : 		if ((mode & ncTRIM_START))

	test	BYTE PTR _mode$[esp+28], 1
	push	ebx
	je	SHORT $LN15@Trim@2

; 1005 : 		{
; 1006 : 			int start = 0;
; 1007 : 			for (unsigned int i = 0; i < ret.GetLength(); i++)

	mov	ecx, ebp
	xor	ebx, ebx
	mov	DWORD PTR _i$38814[esp+36], edi
	call	?GetLength@ncWideString2@@UBEIXZ	; ncWideString2::GetLength
	test	eax, eax
	jbe	SHORT $LN60@Trim@2
	npad	7
$LL14@Trim@2:

; 1008 : 			{
; 1009 : 				register const wchar_t* ptr = list.GetString();

	mov	ecx, DWORD PTR _list$[esp+32]
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	mov	edi, eax

; 1010 : 				bool match = false;
; 1011 : 				while (*ptr)

	movzx	esi, WORD PTR [edi]
	test	si, si
	je	SHORT $LN66@Trim@2
$LL11@Trim@2:

; 1012 : 				{
; 1013 : 					if (*ptr == ret.GetString()[start])

	mov	ecx, ebp
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	si, WORD PTR [eax+ebx*2]
	je	SHORT $LN49@Trim@2
	movzx	esi, WORD PTR [edi+2]

; 1017 : 						break;
; 1018 : 					}
; 1019 : 					*ptr++;

	add	edi, 2
	test	si, si
	jne	SHORT $LL11@Trim@2

; 1010 : 				bool match = false;
; 1011 : 				while (*ptr)

	jmp	SHORT $LN66@Trim@2
$LN49@Trim@2:

; 1005 : 		{
; 1006 : 			int start = 0;
; 1007 : 			for (unsigned int i = 0; i < ret.GetLength(); i++)

	mov	edx, DWORD PTR _i$38814[esp+36]
	add	edx, 1
	mov	ecx, ebp

; 1014 : 					{
; 1015 : 						match = true;
; 1016 : 						start++;

	add	ebx, 1
	mov	DWORD PTR _i$38814[esp+36], edx
	call	?GetLength@ncWideString2@@UBEIXZ	; ncWideString2::GetLength
	cmp	edx, eax
	jb	SHORT $LL14@Trim@2
$LN66@Trim@2:

; 1005 : 		{
; 1006 : 			int start = 0;
; 1007 : 			for (unsigned int i = 0; i < ret.GetLength(); i++)

	xor	edi, edi
$LN60@Trim@2:

; 1020 : 				}
; 1021 : 				if (!match)
; 1022 : 					break;
; 1023 : 			}
; 1024 : 			ret.SetString(ret.GetString() + start);

	mov	eax, DWORD PTR [ebp+4]
	cmp	eax, edi
	je	SHORT $LN36@Trim@2
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN37@Trim@2
$LN36@Trim@2:
	xor	eax, eax
$LN37@Trim@2:
	lea	eax, DWORD PTR [eax+ebx*2]
	push	eax
	mov	ecx, ebp
	call	?SetString@ncWideString2@@QAEXPB_W@Z	; ncWideString2::SetString
$LN15@Trim@2:

; 1025 : 		}
; 1026 : 
; 1027 : 		if ((mode & ncTRIM_END))

	test	BYTE PTR _mode$[esp+32], 2
	je	SHORT $LN62@Trim@2

; 1028 : 		{
; 1029 : 			int count = ret.GetLength() - 1;

	mov	eax, DWORD PTR [ebp+4]
	cmp	eax, edi
	je	SHORT $LN40@Trim@2
	mov	eax, DWORD PTR [eax+12]
	shr	eax, 1
	jmp	SHORT $LN41@Trim@2
$LN40@Trim@2:
	xor	eax, eax
$LN41@Trim@2:
	lea	ebx, DWORD PTR [eax-1]

; 1030 : 			while (count >= 0)

	test	ebx, ebx
	jl	SHORT $LN61@Trim@2
$LL6@Trim@2:

; 1031 : 			{
; 1032 : 				register const wchar_t* ptr = list.GetString();

	mov	ecx, DWORD PTR _list$[esp+32]
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	mov	edi, eax

; 1033 : 				bool match = false;
; 1034 : 				while (*ptr)

	movzx	esi, WORD PTR [edi]
	test	si, si
	je	SHORT $LN61@Trim@2
$LL4@Trim@2:

; 1035 : 				{
; 1036 : 					if (*ptr == ret.GetString()[count])

	mov	ecx, ebp
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	cmp	si, WORD PTR [eax+ebx*2]
	je	SHORT $LN51@Trim@2
	movzx	esi, WORD PTR [edi+2]

; 1037 : 					{
; 1038 : 						match = true;
; 1039 : 						break;
; 1040 : 					}
; 1041 : 					*ptr++;

	add	edi, 2
	test	si, si
	jne	SHORT $LL4@Trim@2

; 1033 : 				bool match = false;
; 1034 : 				while (*ptr)

	jmp	SHORT $LN61@Trim@2
$LN51@Trim@2:

; 1042 : 				}
; 1043 : 				if (!match)
; 1044 : 					break;
; 1045 : 				count--;

	sub	ebx, 1

; 1030 : 			while (count >= 0)

	jns	SHORT $LL6@Trim@2
$LN61@Trim@2:

; 1046 : 			}
; 1047 : 			ret.Resize((count + 1));

	add	ebx, 1
	push	ebx
	mov	ecx, ebp
	call	?Resize@ncWideString2@@UAEXI@Z		; ncWideString2::Resize
$LN62@Trim@2:
	pop	ebx
	pop	edi
	pop	esi

; 1048 : 		}
; 1049 : 	}
; 1050 : 	return ret;

	mov	eax, ebp
	pop	ebp

; 1051 : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
$LN63@Trim@2:
	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	pop	esi
	mov	eax, ebp
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z$0:
	mov	eax, DWORD PTR $T44578[ebp]
	and	eax, 1
	je	$LN20@Trim@2
	and	DWORD PTR $T44578[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN20@Trim@2:
	ret	0
__ehhandler$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z:
	mov	eax, OFFSET __ehfuncinfo$?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Trim@ncWideString2@@QAE?AV1@ABV1@H@Z ENDP		; ncWideString2::Trim
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z PROC ; std::_DebugHeapAllocator<char>::deallocate, COMDAT
; _this$ = ecx

; 102  : 		_DELETE_CRT_VEC(_Ptr);

	mov	eax, DWORD PTR __Ptr$[esp-4]
	test	eax, eax
	je	SHORT $LN3@deallocate
	push	eax
	call	_free
	pop	ecx
$LN3@deallocate:

; 103  : 		}

	ret	8
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ENDP ; std::_DebugHeapAllocator<char>::deallocate
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@XZ		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_DebugHeapAllocator@D@std@@QAE@XZ PROC		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	0
??0?$_DebugHeapAllocator@D@std@@QAE@XZ ENDP		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z PROC	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z ENDP	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	??0ncString2@@QAE@XZ				; ncString2::ncString2
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	SEGMENT
__unwindtable$??0ncString2@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncString2@@QAE@XZ$0
__ehfuncinfo$??0ncString2@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ncString2@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncString2@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0ncString2@@QAE@XZ PROC				; ncString2::ncString2, COMDAT
; _this$ = ecx

; 123  : {

	push	-1
	push	__ehhandler$??0ncString2@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase

; 124  : 	this->SetString("");

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR [esi], OFFSET ??_7ncString2@@6B@
	call	?SetString@ncString2@@QAEXPBD@Z		; ncString2::SetString

; 125  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncString2@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__ehhandler$??0ncString2@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0ncString2@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncString2@@QAE@XZ ENDP				; ncString2::ncString2
PUBLIC	?Insert@ncString2@@QAE?AV1@ABV1@I@Z		; ncString2::Insert
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Insert@ncString2@@QAE?AV1@ABV1@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Insert@ncString2@@QAE?AV1@ABV1@I@Z$0
__ehfuncinfo$?Insert@ncString2@@QAE?AV1@ABV1@I@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Insert@ncString2@@QAE?AV1@ABV1@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Insert@ncString2@@QAE?AV1@ABV1@I@Z
_TEXT	SEGMENT
$T44694 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
tv215 = 12						; size = 4
tv207 = 12						; size = 4
_content$ = 12						; size = 4
tv219 = 16						; size = 4
tv211 = 16						; size = 4
_nPos$ = 16						; size = 4
?Insert@ncString2@@QAE?AV1@ABV1@I@Z PROC		; ncString2::Insert, COMDAT
; _this$ = ecx

; 410  : {

	push	-1
	push	__ehhandler$?Insert@ncString2@@QAE?AV1@ABV1@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	ebp
	push	esi
	push	edi
	xor	edi, edi
	mov	DWORD PTR $T44694[esp+32], edi

; 411  : 	ncString2 ret;

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+28]
	mov	esi, ecx
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+40], edi
	call	??0ncString2@@QAE@XZ			; ncString2::ncString2

; 425  : 	return ret;

	mov	DWORD PTR __$EHRec$[esp+40], edi
	mov	edi, DWORD PTR _content$[esp+28]
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, edi
	mov	DWORD PTR $T44694[esp+32], 1
	call	edx
	mov	ebx, eax
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	add	ebx, eax
	push	ebx
	mov	ecx, ebp
	call	?Resize@ncString2@@UAEXI@Z		; ncString2::Resize
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, edi
	call	edx
	mov	ebx, eax
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	add	ebx, eax
	mov	eax, DWORD PTR [ebp+4]
	mov	DWORD PTR [eax+12], ebx
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	mov	ebx, DWORD PTR _nPos$[esp+28]
	cmp	ebx, eax
	jbe	SHORT $LN3@Insert
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	mov	ebx, eax
$LN3@Insert:
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	je	SHORT $LN2@Insert

; 412  : 	ret.Resize(this->GetLength() + content.GetLength());
; 413  : 	ret.m_data->SetLength(this->GetLength() + content.GetLength());
; 414  : 
; 415  : 	if (nPos > this->GetLength())
; 416  : 		nPos = this->GetLength();
; 417  : 
; 418  : 	if (!this->IsEmpty() && nPos > 0)

	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN2@Insert
	mov	eax, DWORD PTR [eax+8]
	test	eax, eax
	je	SHORT $LN2@Insert
	test	ebx, ebx
	jbe	SHORT $LN2@Insert

; 419  : 		memcpy((void *)ret.GetString(), this->GetString(), nPos);

	mov	ecx, DWORD PTR [ebp+4]
	test	ecx, ecx
	je	SHORT $LN26@Insert
	mov	ecx, DWORD PTR [ecx+8]
	jmp	SHORT $LN27@Insert
$LN26@Insert:
	xor	ecx, ecx
$LN27@Insert:
	push	ebx
	push	eax
	push	ecx
	call	_memcpy
	add	esp, 12					; 0000000cH
$LN2@Insert:

; 420  : 
; 421  : 	memcpy((void *)(ret.GetString() + nPos), content.GetString(), content.GetLength());

	mov	eax, DWORD PTR [edi+4]
	xor	ecx, ecx
	cmp	eax, ecx
	je	SHORT $LN32@Insert
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR tv207[esp+28], eax
	jmp	SHORT $LN33@Insert
$LN32@Insert:
	mov	DWORD PTR tv207[esp+28], ecx
$LN33@Insert:
	mov	eax, DWORD PTR [ebp+4]
	cmp	eax, ecx
	je	SHORT $LN38@Insert
	mov	ecx, DWORD PTR [eax+8]
$LN38@Insert:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	mov	DWORD PTR tv211[esp+28], ecx
	mov	ecx, edi
	call	eax
	mov	ecx, DWORD PTR tv207[esp+28]
	mov	edx, DWORD PTR tv211[esp+28]
	push	eax
	push	ecx
	add	edx, ebx
	push	edx
	call	_memcpy

; 422  : 
; 423  : 	if (nPos <= this->GetLength())

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	add	esp, 12					; 0000000cH
	mov	ecx, esi
	call	edx
	cmp	ebx, eax
	ja	SHORT $LN55@Insert

; 424  : 		memcpy((void *)(ret.GetString() + nPos + content.GetLength()), this->GetString() + nPos, this->GetLength() - nPos);

	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	cmp	eax, ecx
	je	SHORT $LN44@Insert
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR tv215[esp+28], eax
	jmp	SHORT $LN45@Insert
$LN44@Insert:
	mov	DWORD PTR tv215[esp+28], ecx
$LN45@Insert:
	mov	eax, DWORD PTR [ebp+4]
	cmp	eax, ecx
	je	SHORT $LN50@Insert
	mov	ecx, DWORD PTR [eax+8]
$LN50@Insert:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	DWORD PTR tv219[esp+28], ecx
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR tv215[esp+28]
	mov	edx, DWORD PTR [edi]
	sub	eax, ebx
	push	eax
	mov	eax, DWORD PTR [edx+4]
	add	ecx, ebx
	push	ecx
	mov	ecx, edi
	call	eax
	add	eax, DWORD PTR tv219[esp+36]
	add	eax, ebx
	push	eax
	call	_memcpy
	add	esp, 12					; 0000000cH
$LN55@Insert:

; 426  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	pop	esi
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Insert@ncString2@@QAE?AV1@ABV1@I@Z$0:
	mov	eax, DWORD PTR $T44694[ebp]
	and	eax, 1
	je	$LN7@Insert
	and	DWORD PTR $T44694[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN7@Insert:
	ret	0
__ehhandler$?Insert@ncString2@@QAE?AV1@ABV1@I@Z:
	mov	eax, OFFSET __ehfuncinfo$?Insert@ncString2@@QAE?AV1@ABV1@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Insert@ncString2@@QAE?AV1@ABV1@I@Z ENDP		; ncString2::Insert
PUBLIC	?Mid@ncString2@@QAE?AV1@II@Z			; ncString2::Mid
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Mid@ncString2@@QAE?AV1@II@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Mid@ncString2@@QAE?AV1@II@Z$0
__ehfuncinfo$?Mid@ncString2@@QAE?AV1@II@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Mid@ncString2@@QAE?AV1@II@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Mid@ncString2@@QAE?AV1@II@Z
_TEXT	SEGMENT
$T44810 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
$T44819 = 12						; size = 4
_nPos$ = 12						; size = 4
_count$ = 16						; size = 4
?Mid@ncString2@@QAE?AV1@II@Z PROC			; ncString2::Mid, COMDAT
; _this$ = ecx

; 433  : {

	push	-1
	push	__ehhandler$?Mid@ncString2@@QAE?AV1@II@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	ebp
	push	esi
	xor	esi, esi
	mov	DWORD PTR $T44810[esp+28], esi

; 434  : 	ncString2 ret;

	mov	ebx, DWORD PTR ___$ReturnUdt$[esp+24]
	push	edi
	mov	edi, ecx
	mov	ecx, ebx
	mov	DWORD PTR __$EHRec$[esp+40], esi
	call	??0ncString2@@QAE@XZ			; ncString2::ncString2

; 435  : 	if (nPos <= this->m_data->GetLength())
; 436  : 	{
; 437  : 		if (count == 0)
; 438  : 			count = (this->GetLength() - nPos + 1);
; 439  : 		ret.m_data->SetBuffer((char *)this->m_data->GetBuffer() + nPos, count, 1);
; 440  : 	}
; 441  : 	return ret;

	mov	eax, DWORD PTR [edi+4]
	mov	eax, DWORD PTR [eax+12]
	mov	ebp, DWORD PTR _nPos$[esp+28]
	cmp	ebp, eax
	mov	DWORD PTR __$EHRec$[esp+40], esi
	mov	DWORD PTR $T44810[esp+32], 1
	ja	SHORT $LN13@Mid
	mov	esi, DWORD PTR _count$[esp+28]
	test	esi, esi
	jne	SHORT $LN1@Mid
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, edi
	call	eax
	mov	ecx, 1
	mov	esi, eax
	sub	ecx, ebp
	add	esi, ecx
$LN1@Mid:
	mov	edx, DWORD PTR [edi+4]
	mov	edi, DWORD PTR [ebx+4]
	mov	eax, DWORD PTR [edx+8]
	push	1
	push	esi
	mov	ecx, edi
	mov	DWORD PTR $T44819[esp+36], eax
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR $T44819[esp+28]
	mov	edx, DWORD PTR [edi+8]
	push	esi
	add	ecx, ebp
	push	ecx
	push	edx
	call	_memcpy
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
$LN13@Mid:

; 442  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	pop	esi
	pop	ebp
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Mid@ncString2@@QAE?AV1@II@Z$0:
	mov	eax, DWORD PTR $T44810[ebp]
	and	eax, 1
	je	$LN6@Mid
	and	DWORD PTR $T44810[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN6@Mid:
	ret	0
__ehhandler$?Mid@ncString2@@QAE?AV1@II@Z:
	mov	eax, OFFSET __ehfuncinfo$?Mid@ncString2@@QAE?AV1@II@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Mid@ncString2@@QAE?AV1@II@Z ENDP			; ncString2::Mid
PUBLIC	?Right@ncString2@@QAE?AV1@I@Z			; ncString2::Right
; Function compile flags: /Ogtpy
;	COMDAT ?Right@ncString2@@QAE?AV1@I@Z
_TEXT	SEGMENT
$T44835 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_nPos$ = 12						; size = 4
?Right@ncString2@@QAE?AV1@I@Z PROC			; ncString2::Right, COMDAT
; _this$ = ecx

; 444  : {

	push	ecx
	push	esi
	mov	esi, ecx

; 445  : 	ncString2 ret = this->Mid(this->GetLength() - nPos);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	push	0
	mov	DWORD PTR $T44835[esp+16], 0
	call	edx
	sub	eax, DWORD PTR _nPos$[esp+12]
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+12]
	push	eax
	push	edi
	mov	ecx, esi
	call	?Mid@ncString2@@QAE?AV1@II@Z		; ncString2::Mid

; 446  : 	return ret;

	mov	eax, edi
	pop	edi
	pop	esi

; 447  : }

	pop	ecx
	ret	8
?Right@ncString2@@QAE?AV1@I@Z ENDP			; ncString2::Right
_TEXT	ENDS
PUBLIC	?Format@ncString2@@SA?AV1@PBDZZ			; ncString2::Format
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Format@ncString2@@SA?AV1@PBDZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Format@ncString2@@SA?AV1@PBDZZ$0
__ehfuncinfo$?Format@ncString2@@SA?AV1@PBDZZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Format@ncString2@@SA?AV1@PBDZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Format@ncString2@@SA?AV1@PBDZZ
_TEXT	SEGMENT
$T44841 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_msg$ = 12						; size = 4
?Format@ncString2@@SA?AV1@PBDZZ PROC			; ncString2::Format, COMDAT

; 569  : {

	push	-1
	push	__ehhandler$?Format@ncString2@@SA?AV1@PBDZZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	DWORD PTR $T44841[esp+20], 0

; 570  : 	ncString2 ret;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??0ncString2@@QAE@XZ			; ncString2::ncString2

; 571  : 	va_list args;
; 572  : 	va_start(args, msg);
; 573  : 	ret.Format_Args(msg, args);
; 574  : 	va_end(args);
; 575  : 	return ret;

	mov	ecx, DWORD PTR _msg$[esp+16]
	lea	eax, DWORD PTR _msg$[esp+20]
	push	eax
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+36], 0
	mov	DWORD PTR $T44841[esp+28], 1
	call	?Format_Args@ncString2@@QAEXPBDPAD@Z	; ncString2::Format_Args

; 576  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Format@ncString2@@SA?AV1@PBDZZ$0:
	mov	eax, DWORD PTR $T44841[ebp]
	and	eax, 1
	je	$LN4@Format
	and	DWORD PTR $T44841[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN4@Format:
	ret	0
__ehhandler$?Format@ncString2@@SA?AV1@PBDZZ:
	mov	eax, OFFSET __ehfuncinfo$?Format@ncString2@@SA?AV1@PBDZZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Format@ncString2@@SA?AV1@PBDZZ ENDP			; ncString2::Format
PUBLIC	??0ncWideString2@@QAE@XZ			; ncWideString2::ncWideString2
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ncWideString2@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0ncWideString2@@QAE@XZ$1
__ehfuncinfo$??0ncWideString2@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0ncWideString2@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0ncWideString2@@QAE@XZ
_TEXT	SEGMENT
_this$ = -24						; size = 4
$T44852 = -20						; size = 8
__$EHRec$ = -12						; size = 12
??0ncWideString2@@QAE@XZ PROC				; ncWideString2::ncWideString2, COMDAT
; _this$ = ecx

; 597  : {

	push	-1
	push	__ehhandler$??0ncWideString2@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+32], esi
	call	??0ncStringBase@@QAE@XZ			; ncStringBase::ncStringBase
	mov	DWORD PTR [esi], OFFSET ??_7ncWideString2@@6B@

; 598  : 	*this = this->m_EmptyString;

	mov	eax, DWORD PTR ?m_EmptyString@ncWideString2@@2PB_WB ; ncWideString2::m_EmptyString
	push	eax
	lea	ecx, DWORD PTR $T44852[esp+36]
	mov	DWORD PTR __$EHRec$[esp+44], 0
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	edi, DWORD PTR $T44852[esp+36]
	mov	BYTE PTR __$EHRec$[esp+40], 1
	je	SHORT $LN17@ncWideStri@7
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN17@ncWideStri@7:
	mov	DWORD PTR [esi+4], edi
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, edi
	call	eax
	mov	ecx, DWORD PTR $T44852[esp+36]
	test	ecx, ecx
	mov	BYTE PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR $T44852[esp+32], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN16@ncWideStri@7
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN16@ncWideStri@7:

; 599  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ncWideString2@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__unwindfunclet$??0ncWideString2@@QAE@XZ$1:
	lea	ecx, DWORD PTR $T44852[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$??0ncWideString2@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0ncWideString2@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0ncWideString2@@QAE@XZ ENDP				; ncWideString2::ncWideString2
PUBLIC	?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z		; ncWideString2::Insert
;	COMDAT xdata$x
; File d:\source code\nc lib\ncstring2.h
xdata$x	SEGMENT
__unwindtable$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z$0
__ehfuncinfo$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncstring2.cpp
xdata$x	ENDS
;	COMDAT ?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z
_TEXT	SEGMENT
$T44889 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
tv224 = 12						; size = 4
tv216 = 12						; size = 4
_content$ = 12						; size = 4
tv228 = 16						; size = 4
tv220 = 16						; size = 4
_nPos$ = 16						; size = 4
?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z PROC		; ncWideString2::Insert, COMDAT
; _this$ = ecx

; 895  : {

	push	-1
	push	__ehhandler$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	ebp
	push	esi
	push	edi
	xor	edi, edi
	mov	DWORD PTR $T44889[esp+32], edi

; 896  : 	ncWideString2 ret;

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+28]
	mov	esi, ecx
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+40], edi
	call	??0ncWideString2@@QAE@XZ		; ncWideString2::ncWideString2

; 910  : 	return ret;

	mov	ebx, DWORD PTR _content$[esp+28]
	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, ebx
	mov	DWORD PTR __$EHRec$[esp+40], edi
	mov	DWORD PTR $T44889[esp+32], 1
	call	edx
	mov	edi, eax
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	add	edi, eax
	add	edi, edi
	push	edi
	mov	ecx, ebp
	call	?Resize@ncWideString2@@UAEXI@Z		; ncWideString2::Resize
	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, ebx
	call	edx
	mov	edi, eax
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	add	edi, eax
	mov	eax, DWORD PTR [ebp+4]
	add	edi, edi
	mov	DWORD PTR [eax+12], edi
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	mov	edi, DWORD PTR _nPos$[esp+28]
	cmp	edi, eax
	jbe	SHORT $LN3@Insert@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	mov	edi, eax
$LN3@Insert@2:
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	je	SHORT $LN2@Insert@2

; 897  : 	ret.Resize(WCHAR_SIZE(this->GetLength() + content.GetLength()));
; 898  : 	ret.m_data->SetLength(WCHAR_SIZE(this->GetLength() + content.GetLength()));
; 899  : 
; 900  : 	if (nPos > this->GetLength())
; 901  : 		nPos = this->GetLength();
; 902  : 
; 903  : 	if (!this->IsEmpty() && nPos > 0)

	cmp	DWORD PTR [eax+12], 0
	je	SHORT $LN2@Insert@2
	mov	eax, DWORD PTR [eax+8]
	test	eax, eax
	je	SHORT $LN2@Insert@2
	test	edi, edi
	jbe	SHORT $LN2@Insert@2

; 904  : 		memcpy((void *)ret.GetString(), this->GetString(), WCHAR_SIZE(nPos));

	mov	ecx, DWORD PTR [ebp+4]
	test	ecx, ecx
	je	SHORT $LN26@Insert@2
	mov	ecx, DWORD PTR [ecx+8]
	jmp	SHORT $LN27@Insert@2
$LN26@Insert@2:
	xor	ecx, ecx
$LN27@Insert@2:
	lea	edx, DWORD PTR [edi+edi]
	push	edx
	push	eax
	push	ecx
	call	_memcpy
	add	esp, 12					; 0000000cH
$LN2@Insert@2:

; 905  : 
; 906  : 	memcpy((void *)(ret.GetString() + nPos), content.GetString(), WCHAR_SIZE(content.GetLength()));

	mov	eax, DWORD PTR [ebx+4]
	xor	ecx, ecx
	cmp	eax, ecx
	je	SHORT $LN32@Insert@2
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR tv216[esp+28], eax
	jmp	SHORT $LN33@Insert@2
$LN32@Insert@2:
	mov	DWORD PTR tv216[esp+28], ecx
$LN33@Insert@2:
	mov	eax, DWORD PTR [ebp+4]
	cmp	eax, ecx
	je	SHORT $LN38@Insert@2
	mov	ecx, DWORD PTR [eax+8]
$LN38@Insert@2:
	mov	edx, DWORD PTR [ebx]
	mov	eax, DWORD PTR [edx+4]
	mov	DWORD PTR tv220[esp+28], ecx
	mov	ecx, ebx
	call	eax
	mov	ecx, DWORD PTR tv216[esp+28]
	mov	edx, DWORD PTR tv220[esp+28]
	add	eax, eax
	push	eax
	push	ecx
	lea	eax, DWORD PTR [edx+edi*2]
	push	eax
	call	_memcpy

; 907  : 
; 908  : 	if (nPos <= this->GetLength())

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	add	esp, 12					; 0000000cH
	mov	ecx, esi
	call	eax
	cmp	edi, eax
	ja	SHORT $LN55@Insert@2

; 909  : 		memcpy((void *)(ret.GetString() + nPos + content.GetLength()), this->GetString() + nPos, WCHAR_SIZE(this->GetLength() - nPos));

	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	cmp	eax, ecx
	je	SHORT $LN44@Insert@2
	mov	edx, DWORD PTR [eax+8]
	mov	DWORD PTR tv224[esp+28], edx
	jmp	SHORT $LN45@Insert@2
$LN44@Insert@2:
	mov	DWORD PTR tv224[esp+28], ecx
$LN45@Insert@2:
	mov	eax, DWORD PTR [ebp+4]
	cmp	eax, ecx
	je	SHORT $LN50@Insert@2
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR tv228[esp+28], eax
	jmp	SHORT $LN51@Insert@2
$LN50@Insert@2:
	mov	DWORD PTR tv228[esp+28], ecx
$LN51@Insert@2:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR tv224[esp+28]
	sub	eax, edi
	add	eax, eax
	lea	edx, DWORD PTR [ecx+edi*2]
	push	eax
	mov	eax, DWORD PTR [ebx]
	push	edx
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, ebx
	call	edx
	mov	ecx, DWORD PTR tv228[esp+36]
	add	eax, edi
	lea	edx, DWORD PTR [ecx+eax*2]
	push	edx
	call	_memcpy
	add	esp, 12					; 0000000cH
$LN55@Insert@2:

; 911  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	pop	esi
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z$0:
	mov	eax, DWORD PTR $T44889[ebp]
	and	eax, 1
	je	$LN7@Insert@2
	and	DWORD PTR $T44889[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN7@Insert@2:
	ret	0
__ehhandler$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z:
	mov	eax, OFFSET __ehfuncinfo$?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z ENDP		; ncWideString2::Insert
PUBLIC	?Mid@ncWideString2@@QAE?AV1@II@Z		; ncWideString2::Mid
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Mid@ncWideString2@@QAE?AV1@II@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Mid@ncWideString2@@QAE?AV1@II@Z$0
__ehfuncinfo$?Mid@ncWideString2@@QAE?AV1@II@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Mid@ncWideString2@@QAE?AV1@II@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Mid@ncWideString2@@QAE?AV1@II@Z
_TEXT	SEGMENT
$T45005 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
$T45014 = 12						; size = 4
_nPos$ = 12						; size = 4
_count$ = 16						; size = 4
?Mid@ncWideString2@@QAE?AV1@II@Z PROC			; ncWideString2::Mid, COMDAT
; _this$ = ecx

; 918  : {

	push	-1
	push	__ehhandler$?Mid@ncWideString2@@QAE?AV1@II@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	ebp
	push	esi
	push	edi
	xor	edi, edi
	mov	DWORD PTR $T45005[esp+32], edi

; 919  : 	ncWideString2 ret;

	mov	ebx, DWORD PTR ___$ReturnUdt$[esp+28]
	mov	esi, ecx
	mov	ecx, ebx
	mov	DWORD PTR __$EHRec$[esp+40], edi
	call	??0ncWideString2@@QAE@XZ		; ncWideString2::ncWideString2

; 920  : 	if (nPos <= this->m_data->GetLength())
; 921  : 	{
; 922  : 		if (count == 0)
; 923  : 			count = (this->GetLength() - nPos + 1);
; 924  : 		ret.m_data->SetBuffer((wchar_t *)this->m_data->GetBuffer() + nPos, WCHAR_SIZE(count), 2);
; 925  : 	}
; 926  : 	return ret;

	mov	eax, DWORD PTR [esi+4]
	mov	eax, DWORD PTR [eax+12]
	mov	ebp, DWORD PTR _nPos$[esp+28]
	cmp	ebp, eax
	mov	DWORD PTR __$EHRec$[esp+40], edi
	mov	DWORD PTR $T45005[esp+32], 1
	ja	SHORT $LN13@Mid@2
	mov	eax, DWORD PTR _count$[esp+28]
	cmp	eax, edi
	jne	SHORT $LN1@Mid@2
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	call	eax
	mov	ecx, 1
	sub	ecx, ebp
	add	eax, ecx
$LN1@Mid@2:
	mov	edx, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [edx+8]
	mov	edi, DWORD PTR [ebx+4]
	lea	esi, DWORD PTR [eax+eax]
	push	2
	mov	DWORD PTR $T45014[esp+32], ecx
	push	esi
	mov	ecx, edi
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	edx, DWORD PTR $T45014[esp+28]
	mov	ecx, DWORD PTR [edi+8]
	push	esi
	lea	eax, DWORD PTR [edx+ebp*2]
	push	eax
	push	ecx
	call	_memcpy
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edi+12], esi
$LN13@Mid@2:

; 927  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	pop	esi
	pop	ebp
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Mid@ncWideString2@@QAE?AV1@II@Z$0:
	mov	eax, DWORD PTR $T45005[ebp]
	and	eax, 1
	je	$LN6@Mid@2
	and	DWORD PTR $T45005[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN6@Mid@2:
	ret	0
__ehhandler$?Mid@ncWideString2@@QAE?AV1@II@Z:
	mov	eax, OFFSET __ehfuncinfo$?Mid@ncWideString2@@QAE?AV1@II@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Mid@ncWideString2@@QAE?AV1@II@Z ENDP			; ncWideString2::Mid
PUBLIC	?Right@ncWideString2@@QAE?AV1@I@Z		; ncWideString2::Right
; Function compile flags: /Ogtpy
;	COMDAT ?Right@ncWideString2@@QAE?AV1@I@Z
_TEXT	SEGMENT
$T45031 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_nPos$ = 12						; size = 4
?Right@ncWideString2@@QAE?AV1@I@Z PROC			; ncWideString2::Right, COMDAT
; _this$ = ecx

; 929  : {

	push	ecx
	push	esi
	mov	esi, ecx

; 930  : 	ncWideString2 ret = this->Mid(this->GetLength() - nPos);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	push	0
	mov	DWORD PTR $T45031[esp+16], 0
	call	edx
	sub	eax, DWORD PTR _nPos$[esp+12]
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+12]
	push	eax
	push	edi
	mov	ecx, esi
	call	?Mid@ncWideString2@@QAE?AV1@II@Z	; ncWideString2::Mid

; 931  : 	return ret;

	mov	eax, edi
	pop	edi
	pop	esi

; 932  : }

	pop	ecx
	ret	8
?Right@ncWideString2@@QAE?AV1@I@Z ENDP			; ncWideString2::Right
_TEXT	ENDS
PUBLIC	?Format@ncWideString2@@SA?AV1@PB_WZZ		; ncWideString2::Format
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Format@ncWideString2@@SA?AV1@PB_WZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Format@ncWideString2@@SA?AV1@PB_WZZ$0
__ehfuncinfo$?Format@ncWideString2@@SA?AV1@PB_WZZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Format@ncWideString2@@SA?AV1@PB_WZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Format@ncWideString2@@SA?AV1@PB_WZZ
_TEXT	SEGMENT
$T45037 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_format$ = 12						; size = 4
?Format@ncWideString2@@SA?AV1@PB_WZZ PROC		; ncWideString2::Format, COMDAT

; 1053 : {

	push	-1
	push	__ehhandler$?Format@ncWideString2@@SA?AV1@PB_WZZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	DWORD PTR $T45037[esp+20], 0

; 1054 : 	ncWideString2 ret;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??0ncWideString2@@QAE@XZ		; ncWideString2::ncWideString2

; 1055 : 	va_list args;
; 1056 : 	va_start(args, format);
; 1057 : 	ret.Format_Args(format, args);
; 1058 : 	va_end(args);
; 1059 : 	return ret;

	mov	ecx, DWORD PTR _format$[esp+16]
	lea	eax, DWORD PTR _format$[esp+20]
	push	eax
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+36], 0
	mov	DWORD PTR $T45037[esp+28], 1
	call	?Format_Args@ncWideString2@@QAEXPB_WPAD@Z ; ncWideString2::Format_Args

; 1060 : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Format@ncWideString2@@SA?AV1@PB_WZZ$0:
	mov	eax, DWORD PTR $T45037[ebp]
	and	eax, 1
	je	$LN4@Format@2
	and	DWORD PTR $T45037[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN4@Format@2:
	ret	0
__ehhandler$?Format@ncWideString2@@SA?AV1@PB_WZZ:
	mov	eax, OFFSET __ehfuncinfo$?Format@ncWideString2@@SA?AV1@PB_WZZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Format@ncWideString2@@SA?AV1@PB_WZZ ENDP		; ncWideString2::Format
PUBLIC	??YncString2@@QAEAAV0@ABV0@@Z			; ncString2::operator+=
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??YncString2@@QAEAAV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??YncString2@@QAEAAV0@ABV0@@Z$0
__ehfuncinfo$??YncString2@@QAEAAV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??YncString2@@QAEAAV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??YncString2@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
$T45048 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??YncString2@@QAEAAV0@ABV0@@Z PROC			; ncString2::operator+=, COMDAT
; _this$ = ecx

; 241  : {

	push	-1
	push	__ehhandler$??YncString2@@QAEAAV0@ABV0@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx

; 242  : 	*this = this->Insert(content, this->GetLength() + 1);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	call	edx
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR _content$[esp+28]
	push	eax
	lea	ecx, DWORD PTR $T45048[esp+36]
	push	ecx
	mov	ecx, esi
	call	?Insert@ncString2@@QAE?AV1@ABV1@I@Z	; ncString2::Insert
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	edi, DWORD PTR [eax+4]
	mov	DWORD PTR __$EHRec$[esp+36], 0
	je	SHORT $LN6@operator@7
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN6@operator@7:
	mov	DWORD PTR [esi+4], edi
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, edi
	call	eax
	mov	ecx, DWORD PTR $T45048[esp+32]
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T45048[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN15@operator@7
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN15@operator@7:

; 243  : 	return *this;
; 244  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??YncString2@@QAEAAV0@ABV0@@Z$0:
	lea	ecx, DWORD PTR $T45048[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$??YncString2@@QAEAAV0@ABV0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??YncString2@@QAEAAV0@ABV0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??YncString2@@QAEAAV0@ABV0@@Z ENDP			; ncString2::operator+=
PUBLIC	?Append@ncString2@@QAE?AV1@ABV1@@Z		; ncString2::Append
; Function compile flags: /Ogtpy
;	COMDAT ?Append@ncString2@@QAE?AV1@ABV1@@Z
_TEXT	SEGMENT
$T45084 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_content$ = 12						; size = 4
?Append@ncString2@@QAE?AV1@ABV1@@Z PROC			; ncString2::Append, COMDAT
; _this$ = ecx

; 251  : {

	push	ecx
	push	esi
	mov	esi, ecx

; 252  : 	return this->Insert(content, this->GetLength() + 1);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	mov	DWORD PTR $T45084[esp+12], 0
	call	edx
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+8]
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR _content$[esp+12]
	push	eax
	push	edi
	mov	ecx, esi
	call	?Insert@ncString2@@QAE?AV1@ABV1@I@Z	; ncString2::Insert
	mov	eax, edi
	pop	edi
	pop	esi

; 253  : }

	pop	ecx
	ret	8
?Append@ncString2@@QAE?AV1@ABV1@@Z ENDP			; ncString2::Append
_TEXT	ENDS
PUBLIC	?Left@ncString2@@QAE?AV1@I@Z			; ncString2::Left
; Function compile flags: /Ogtpy
;	COMDAT ?Left@ncString2@@QAE?AV1@I@Z
_TEXT	SEGMENT
$T45090 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_nPos$ = 12						; size = 4
?Left@ncString2@@QAE?AV1@I@Z PROC			; ncString2::Left, COMDAT
; _this$ = ecx

; 428  : {

	push	ecx

; 429  : 	ncString2 ret = this->Mid(0, nPos);

	mov	eax, DWORD PTR _nPos$[esp]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	push	0
	push	esi
	mov	DWORD PTR $T45090[esp+20], 0
	call	?Mid@ncString2@@QAE?AV1@II@Z		; ncString2::Mid

; 430  : 	return ret;

	mov	eax, esi
	pop	esi

; 431  : }

	pop	ecx
	ret	8
?Left@ncString2@@QAE?AV1@I@Z ENDP			; ncString2::Left
_TEXT	ENDS
PUBLIC	?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z		; ncString2::Replace
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$3
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$9
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$4
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z
_TEXT	SEGMENT
_i$38323 = -36						; size = 4
_count$ = -36						; size = 4
$T45102 = -32						; size = 4
$T45100 = -28						; size = 8
$T45096 = -28						; size = 8
$T45099 = -20						; size = 8
$T45097 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
tv271 = 12						; size = 4
$T45211 = 12						; size = 1
$T45098 = 12						; size = 1
$T45095 = 12						; size = 1
_remStr$ = 12						; size = 4
_repStr$ = 16						; size = 4
_case_sensitive$ = 20					; size = 1
?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z PROC		; ncString2::Replace, COMDAT
; _this$ = ecx

; 453  : {

	push	-1
	push	__ehhandler$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
	xor	ebx, ebx
	mov	DWORD PTR $T45102[esp+44], ebx

; 454  : 	ncString2 ret = *this;

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+40]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [ebp], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR [ebp+4], ecx
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	edi
	push	1
	mov	DWORD PTR __$EHRec$[esp+64], ebx
	call	edx
	mov	DWORD PTR [ebp], OFFSET ??_7ncString2@@6B@

; 480  : 		}
; 481  : 	}
; 482  : 	return ret;

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+60], ebx
	mov	DWORD PTR $T45102[esp+52], 1
	mov	DWORD PTR _count$[esp+52], ebx
	xor	edi, edi
	call	edx
	test	eax, eax
	jbe	$LN77@Replace

; 455  : 	int count = 0;
; 456  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	ebp, DWORD PTR _remStr$[esp+48]
	npad	1
$LL12@Replace:

; 457  : 	{
; 458  : 		if (remStr.Compare(this->GetString() + i, remStr.GetLength(), case_sensitive))

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	add	eax, edi
	push	eax
	lea	ecx, DWORD PTR $T45096[esp+56]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	mov	eax, DWORD PTR _case_sensitive$[esp+48]
	mov	edx, DWORD PTR [ebp]
	push	eax
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+64], 1
	call	eax
	push	eax
	lea	ecx, DWORD PTR $T45096[esp+60]
	push	ecx
	mov	ecx, ebp
	call	?Compare@ncString2@@QBE_NABV1@H_N@Z	; ncString2::Compare
	mov	ecx, DWORD PTR $T45096[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR $T45095[esp+48], al
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45096[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN29@Replace
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	mov	DWORD PTR $T45096[esp+56], ebx
$LN29@Replace:
	cmp	BYTE PTR $T45095[esp+48], bl
	je	SHORT $LN11@Replace

; 459  : 			count++;

	add	DWORD PTR _count$[esp+52], 1
$LN11@Replace:

; 455  : 	int count = 0;
; 456  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	add	edi, 1
	call	eax
	cmp	edi, eax
	jb	SHORT $LL12@Replace

; 460  : 	}
; 461  : 
; 462  : 	if (count > 0)

	cmp	DWORD PTR _count$[esp+52], ebx
	jle	$LN75@Replace

; 463  : 	{
; 464  : 		ret = ncString2::m_EmptyString;

	mov	ecx, DWORD PTR ?m_EmptyString@ncString2@@2PBDB ; ncString2::m_EmptyString
	push	ecx
	lea	ecx, DWORD PTR $T45097[esp+56]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	mov	edx, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	ecx, DWORD PTR [edx+4]
	cmp	ecx, ebx
	mov	edi, DWORD PTR $T45097[esp+56]
	mov	DWORD PTR __$EHRec$[esp+60], 2
	je	SHORT $LN81@Replace
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN81@Replace:
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	DWORD PTR [eax+4], edi
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, edi
	call	eax
	mov	ecx, DWORD PTR $T45097[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45097[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN40@Replace
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN40@Replace:

; 465  : 		ret.Resize(this->GetLength() + (remStr.GetLength() - repStr.GetLength() * count));

	mov	ecx, DWORD PTR _repStr$[esp+48]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	call	eax
	mov	edx, DWORD PTR [esi]
	mov	edi, eax
	mov	eax, DWORD PTR [edx+4]
	imul	edi, DWORD PTR _count$[esp+52]
	mov	ecx, esi
	call	eax
	mov	edx, DWORD PTR [ebp]
	sub	eax, edi
	mov	DWORD PTR tv271[esp+48], eax
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, ebp
	call	eax
	add	eax, DWORD PTR tv271[esp+48]
	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+48]
	push	eax
	call	?Resize@ncString2@@UAEXI@Z		; ncString2::Resize

; 466  : 		for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	xor	edi, edi
	mov	ecx, esi
	mov	DWORD PTR _i$38323[esp+52], edi
	call	eax
	test	eax, eax
	jbe	$LN75@Replace
	jmp	SHORT $LN7@Replace
$LL78@Replace:
	mov	edi, DWORD PTR _i$38323[esp+52]
$LN7@Replace:

; 467  : 		{
; 468  : 			if (remStr.Compare(this->GetString() + i, remStr.GetLength(), case_sensitive))

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	add	eax, edi
	push	eax
	lea	ecx, DWORD PTR $T45099[esp+56]
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	mov	ecx, DWORD PTR _case_sensitive$[esp+48]
	mov	edx, DWORD PTR [ebp]
	mov	eax, DWORD PTR [edx+4]
	push	ecx
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+64], 3
	call	eax
	push	eax
	lea	ecx, DWORD PTR $T45099[esp+60]
	push	ecx
	mov	ecx, ebp
	call	?Compare@ncString2@@QBE_NABV1@H_N@Z	; ncString2::Compare
	mov	ecx, DWORD PTR $T45099[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR $T45098[esp+48], al
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45099[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN46@Replace
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	mov	DWORD PTR $T45099[esp+56], ebx
$LN46@Replace:
	cmp	BYTE PTR $T45098[esp+48], bl
	je	SHORT $LN4@Replace

; 469  : 			{
; 470  : 				if (repStr.GetLength() > 0)

	mov	ecx, DWORD PTR _repStr$[esp+48]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	call	eax
	test	eax, eax
	jbe	SHORT $LN3@Replace

; 471  : 				{
; 472  : 					ret += repStr;

	mov	ecx, DWORD PTR _repStr$[esp+48]
	push	ecx
	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+52]
	call	??YncString2@@QAEAAV0@ABV0@@Z		; ncString2::operator+=

; 473  : 					i += repStr.GetLength() - 1;

	mov	ecx, DWORD PTR _repStr$[esp+48]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	call	eax
	lea	ecx, DWORD PTR [edi+eax-1]
	mov	DWORD PTR _i$38323[esp+52], ecx

; 474  : 				}
; 475  : 				else

	jmp	$LN6@Replace
$LN3@Replace:

; 476  : 					i += remStr.GetLength() - 1;

	mov	edx, DWORD PTR [ebp]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, ebp
	call	eax
	lea	ecx, DWORD PTR [edi+eax-1]
	mov	DWORD PTR _i$38323[esp+52], ecx

; 477  : 			}
; 478  : 			else

	jmp	$LN6@Replace
$LN4@Replace:

; 479  : 				ret += this->GetString()[i];

	mov	ecx, esi
	call	?GetString@ncString2@@QBEPBDXZ		; ncString2::GetString
	mov	dl, BYTE PTR [eax+edi]
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	67					; 00000043H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	BYTE PTR $T45211[esp+60], dl
	mov	DWORD PTR $T45100[esp+64], OFFSET ??_7ncStringBase@@6B@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, ebx
	je	SHORT $LN54@Replace
	mov	DWORD PTR [eax+4], ebx
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	DWORD PTR [eax+8], ebx
	mov	DWORD PTR [eax+12], ebx
	mov	DWORD PTR [eax+16], ebx
	jmp	SHORT $LN55@Replace
$LN54@Replace:
	xor	eax, eax
$LN55@Replace:
	mov	DWORD PTR $T45100[esp+56], eax
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
	mov	ecx, DWORD PTR $T45100[esp+56]
	push	1
	push	1
	mov	DWORD PTR __$EHRec$[esp+68], 4
	mov	DWORD PTR $T45100[esp+60], OFFSET ??_7ncString2@@6B@
	mov	edi, ecx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR [edi+8]
	mov	dl, BYTE PTR $T45211[esp+48]
	mov	BYTE PTR [ecx], dl
	mov	DWORD PTR [edi+12], 1
	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+48]
	lea	eax, DWORD PTR $T45100[esp+52]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+64], 5
	call	??YncString2@@QAEAAV0@ABV0@@Z		; ncString2::operator+=
	mov	ecx, DWORD PTR $T45100[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45100[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN6@Replace
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	mov	DWORD PTR $T45100[esp+56], ebx
$LN6@Replace:
	mov	edi, DWORD PTR _i$38323[esp+52]
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	add	edi, 1
	mov	ecx, esi
	mov	DWORD PTR _i$38323[esp+52], edi
	call	eax
	cmp	edi, eax
	jb	$LL78@Replace
$LN75@Replace:

; 480  : 		}
; 481  : 	}
; 482  : 	return ret;

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+48]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 483  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN77@Replace:
	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	pop	edi
	pop	esi
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$0:
	mov	eax, DWORD PTR $T45102[ebp]
	and	eax, 1
	je	$LN16@Replace
	and	DWORD PTR $T45102[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN16@Replace:
	ret	0
__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$1:
	lea	ecx, DWORD PTR $T45096[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$2:
	lea	ecx, DWORD PTR $T45097[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$3:
	lea	ecx, DWORD PTR $T45099[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$9:
	lea	ecx, DWORD PTR $T45100[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__unwindfunclet$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z$4:
	lea	ecx, DWORD PTR $T45100[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__ehhandler$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z ENDP		; ncString2::Replace
PUBLIC	??H@YA?AVncString2@@ABV0@0@Z			; operator+
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??H@YA?AVncString2@@ABV0@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??H@YA?AVncString2@@ABV0@0@Z$0
__ehfuncinfo$??H@YA?AVncString2@@ABV0@0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??H@YA?AVncString2@@ABV0@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??H@YA?AVncString2@@ABV0@0@Z
_TEXT	SEGMENT
$T45244 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_str1$ = 12						; size = 4
_str2$ = 16						; size = 4
??H@YA?AVncString2@@ABV0@0@Z PROC			; operator+, COMDAT

; 578  : {

	push	-1
	push	__ehhandler$??H@YA?AVncString2@@ABV0@0@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx

; 579  : 	ncString2 ret = str1;

	mov	eax, DWORD PTR _str1$[esp+12]
	mov	DWORD PTR $T45244[esp+16], 0
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+4], ecx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	eax
	mov	DWORD PTR [esi], OFFSET ??_7ncString2@@6B@

; 580  : 	ret += str2;
; 581  : 	return ret;

	mov	ecx, DWORD PTR _str2$[esp+16]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR $T45244[esp+24], 1
	call	??YncString2@@QAEAAV0@ABV0@@Z		; ncString2::operator+=

; 582  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??H@YA?AVncString2@@ABV0@0@Z$0:
	mov	eax, DWORD PTR $T45244[ebp]
	and	eax, 1
	je	$LN4@operator@8
	and	DWORD PTR $T45244[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN4@operator@8:
	ret	0
__ehhandler$??H@YA?AVncString2@@ABV0@0@Z:
	mov	eax, OFFSET __ehfuncinfo$??H@YA?AVncString2@@ABV0@0@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??H@YA?AVncString2@@ABV0@0@Z ENDP			; operator+
PUBLIC	??YncWideString2@@QAEAAV0@ABV0@@Z		; ncWideString2::operator+=
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??YncWideString2@@QAEAAV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??YncWideString2@@QAEAAV0@ABV0@@Z$0
__ehfuncinfo$??YncWideString2@@QAEAAV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??YncWideString2@@QAEAAV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??YncWideString2@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
$T45264 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 4
??YncWideString2@@QAEAAV0@ABV0@@Z PROC			; ncWideString2::operator+=, COMDAT
; _this$ = ecx

; 726  : {

	push	-1
	push	__ehhandler$??YncWideString2@@QAEAAV0@ABV0@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx

; 727  : 	*this = this->Insert(content, this->GetLength());

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	call	edx
	push	eax
	mov	eax, DWORD PTR _content$[esp+28]
	push	eax
	lea	ecx, DWORD PTR $T45264[esp+36]
	push	ecx
	mov	ecx, esi
	call	?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z	; ncWideString2::Insert
	mov	ecx, DWORD PTR [esi+4]
	test	ecx, ecx
	mov	edi, DWORD PTR [eax+4]
	mov	DWORD PTR __$EHRec$[esp+36], 0
	je	SHORT $LN6@operator@9
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN6@operator@9:
	mov	DWORD PTR [esi+4], edi
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	ecx, edi
	call	eax
	mov	ecx, DWORD PTR $T45264[esp+32]
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	mov	DWORD PTR $T45264[esp+28], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN15@operator@9
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN15@operator@9:

; 728  : 	return *this;
; 729  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??YncWideString2@@QAEAAV0@ABV0@@Z$0:
	lea	ecx, DWORD PTR $T45264[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$??YncWideString2@@QAEAAV0@ABV0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??YncWideString2@@QAEAAV0@ABV0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??YncWideString2@@QAEAAV0@ABV0@@Z ENDP			; ncWideString2::operator+=
PUBLIC	?Append@ncWideString2@@QAE?AV1@ABV1@@Z		; ncWideString2::Append
; Function compile flags: /Ogtpy
;	COMDAT ?Append@ncWideString2@@QAE?AV1@ABV1@@Z
_TEXT	SEGMENT
$T45300 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_content$ = 12						; size = 4
?Append@ncWideString2@@QAE?AV1@ABV1@@Z PROC		; ncWideString2::Append, COMDAT
; _this$ = ecx

; 736  : {

	push	ecx
	push	esi
	mov	esi, ecx

; 737  : 	return this->Insert(content, this->GetLength());

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	edi
	mov	DWORD PTR $T45300[esp+12], 0
	call	edx
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+8]
	push	eax
	mov	eax, DWORD PTR _content$[esp+12]
	push	eax
	push	edi
	mov	ecx, esi
	call	?Insert@ncWideString2@@QAE?AV1@ABV1@I@Z	; ncWideString2::Insert
	mov	eax, edi
	pop	edi
	pop	esi

; 738  : }

	pop	ecx
	ret	8
?Append@ncWideString2@@QAE?AV1@ABV1@@Z ENDP		; ncWideString2::Append
_TEXT	ENDS
PUBLIC	?Left@ncWideString2@@QAE?AV1@I@Z		; ncWideString2::Left
; Function compile flags: /Ogtpy
;	COMDAT ?Left@ncWideString2@@QAE?AV1@I@Z
_TEXT	SEGMENT
$T45306 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_nPos$ = 12						; size = 4
?Left@ncWideString2@@QAE?AV1@I@Z PROC			; ncWideString2::Left, COMDAT
; _this$ = ecx

; 913  : {

	push	ecx

; 914  : 	ncWideString2 ret = this->Mid(0, nPos);

	mov	eax, DWORD PTR _nPos$[esp]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	push	0
	push	esi
	mov	DWORD PTR $T45306[esp+20], 0
	call	?Mid@ncWideString2@@QAE?AV1@II@Z	; ncWideString2::Mid

; 915  : 	return ret;

	mov	eax, esi
	pop	esi

; 916  : }

	pop	ecx
	ret	8
?Left@ncWideString2@@QAE?AV1@I@Z ENDP			; ncWideString2::Left
_TEXT	ENDS
PUBLIC	??_C@_11LOCGONAA@?$AA?$AA@			; `string'
PUBLIC	?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z	; ncWideString2::Replace
;	COMDAT ??_C@_11LOCGONAA@?$AA?$AA@
CONST	SEGMENT
??_C@_11LOCGONAA@?$AA?$AA@ DB 00H, 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$6
	DD	00H
	DD	FLAT:__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$3
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z
_TEXT	SEGMENT
_i$38767 = -36						; size = 4
_count$ = -36						; size = 4
$T45317 = -32						; size = 4
$T45315 = -28						; size = 8
$T45312 = -28						; size = 8
$T45314 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
tv223 = 12						; size = 4
$T45407 = 12						; size = 2
$T45313 = 12						; size = 1
$T45311 = 12						; size = 1
_remStr$ = 12						; size = 4
_repStr$ = 16						; size = 4
_case_sensitive$ = 20					; size = 1
?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z PROC		; ncWideString2::Replace, COMDAT
; _this$ = ecx

; 938  : {

	push	-1
	push	__ehhandler$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
	xor	ebx, ebx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR $T45317[esp+48], ebx

; 939  : 	ncWideString2 ret = this->GetString();

	mov	eax, DWORD PTR [esi+4]
	cmp	eax, ebx
	push	edi
	mov	DWORD PTR __$EHRec$[esp+60], ebx
	je	SHORT $LN22@Replace@2
	mov	eax, DWORD PTR [eax+8]
	jmp	SHORT $LN23@Replace@2
$LN22@Replace@2:
	xor	eax, eax
$LN23@Replace@2:
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+48]
	push	eax
	mov	ecx, edi
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2

; 965  : 		}
; 966  : 	}
; 967  : 	return ret;

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+60], ebx
	mov	DWORD PTR $T45317[esp+52], 1
	mov	DWORD PTR _count$[esp+52], ebx
	xor	ebp, ebp
	call	edx
	test	eax, eax
	jbe	$LN66@Replace@2

; 940  : 	int count = 0;
; 941  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	edi, DWORD PTR _remStr$[esp+48]
	npad	7
$LL12@Replace@2:

; 942  : 	{
; 943  : 		if (remStr.Compare(this->GetString() + i, remStr.GetLength(), case_sensitive))

	mov	ecx, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	lea	eax, DWORD PTR [eax+ebp*2]
	push	eax
	lea	ecx, DWORD PTR $T45312[esp+56]
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2
	mov	ecx, DWORD PTR _case_sensitive$[esp+48]
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	push	ecx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 1
	call	eax
	push	eax
	lea	ecx, DWORD PTR $T45312[esp+60]
	push	ecx
	mov	ecx, edi
	call	?Compare@ncWideString2@@QBE_NABV1@H_N@Z	; ncWideString2::Compare
	mov	ecx, DWORD PTR $T45312[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR $T45311[esp+48], al
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45312[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN29@Replace@2
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	mov	DWORD PTR $T45312[esp+56], ebx
$LN29@Replace@2:
	cmp	BYTE PTR $T45311[esp+48], bl
	je	SHORT $LN11@Replace@2

; 944  : 			count++;

	add	DWORD PTR _count$[esp+52], 1
$LN11@Replace@2:

; 940  : 	int count = 0;
; 941  : 	for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	add	ebp, 1
	call	eax
	cmp	ebp, eax
	jb	SHORT $LL12@Replace@2

; 945  : 	}
; 946  : 
; 947  : 	if (count > 0)

	cmp	DWORD PTR _count$[esp+52], ebx
	jle	$LN65@Replace@2

; 948  : 	{
; 949  : 		ret.SetString(L"");

	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+48]
	push	OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
	call	?SetString@ncWideString2@@QAEXPB_W@Z	; ncWideString2::SetString

; 950  : 		ret.Resize(this->GetLength() + (remStr.GetLength() - repStr.GetLength() * count));

	mov	ecx, DWORD PTR _repStr$[esp+48]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	call	eax
	mov	edx, DWORD PTR [esi]
	mov	ebp, eax
	mov	eax, DWORD PTR [edx+4]
	imul	ebp, DWORD PTR _count$[esp+52]
	mov	ecx, esi
	call	eax
	mov	edx, DWORD PTR [edi]
	sub	eax, ebp
	mov	DWORD PTR tv223[esp+48], eax
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, edi
	call	eax
	add	eax, DWORD PTR tv223[esp+48]
	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+48]
	push	eax
	mov	ecx, ebp
	call	?Resize@ncWideString2@@UAEXI@Z		; ncWideString2::Resize

; 951  : 		for (unsigned int i = 0; i < this->GetLength(); i++)

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, esi
	mov	DWORD PTR _i$38767[esp+52], ebx
	call	eax
	test	eax, eax
	jbe	$LN64@Replace@2
	npad	2
$LL67@Replace@2:

; 952  : 		{
; 953  : 			if (remStr.Compare(this->GetString() + i, remStr.GetLength(), case_sensitive))

	mov	ebp, DWORD PTR _i$38767[esp+52]
	mov	ecx, esi
	add	ebp, ebp
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	add	eax, ebp
	push	eax
	lea	ecx, DWORD PTR $T45314[esp+56]
	call	??0ncWideString2@@QAE@PB_W@Z		; ncWideString2::ncWideString2
	mov	ecx, DWORD PTR _case_sensitive$[esp+48]
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	push	ecx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 2
	call	eax
	push	eax
	lea	ecx, DWORD PTR $T45314[esp+60]
	push	ecx
	mov	ecx, edi
	call	?Compare@ncWideString2@@QBE_NABV1@H_N@Z	; ncWideString2::Compare
	mov	ecx, DWORD PTR $T45314[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR $T45313[esp+48], al
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45314[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN35@Replace@2
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	mov	DWORD PTR $T45314[esp+56], ebx
$LN35@Replace@2:
	cmp	BYTE PTR $T45313[esp+48], bl
	je	SHORT $LN4@Replace@2

; 954  : 			{
; 955  : 				if (repStr.GetLength() > 0)

	mov	ebp, DWORD PTR _repStr$[esp+48]
	mov	edx, DWORD PTR [ebp]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, ebp
	call	eax
	test	eax, eax
	jbe	SHORT $LN3@Replace@2

; 956  : 				{
; 957  : 					ret += repStr;

	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+48]
	push	ebp
	call	??YncWideString2@@QAEAAV0@ABV0@@Z	; ncWideString2::operator+=

; 958  : 					i += repStr.GetLength() - 1;

	mov	edx, DWORD PTR [ebp]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, ebp
	call	eax
	mov	ecx, DWORD PTR _i$38767[esp+52]
	lea	edx, DWORD PTR [ecx+eax-1]
	mov	DWORD PTR _i$38767[esp+52], edx

; 959  : 				}
; 960  : 				else

	jmp	$LN6@Replace@2
$LN3@Replace@2:

; 961  : 					i += remStr.GetLength() - 1;

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, edi
	call	edx
	mov	ecx, DWORD PTR _i$38767[esp+52]
	lea	edx, DWORD PTR [ecx+eax-1]
	mov	DWORD PTR _i$38767[esp+52], edx

; 962  : 			}
; 963  : 			else

	jmp	$LN6@Replace@2
$LN4@Replace@2:

; 964  : 				ret += this->GetString()[i];

	mov	ecx, esi
	call	?GetString@ncWideString2@@QBEPB_WXZ	; ncWideString2::GetString
	movzx	eax, WORD PTR [eax+ebp]
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	67					; 00000043H
	push	OFFSET ??_C@_0BI@LDHBAALP@?4?4?2NC?5lib?2ncString2?4cpp?$AA@
	mov	DWORD PTR $T45407[esp+60], eax
	mov	DWORD PTR $T45315[esp+64], OFFSET ??_7ncStringBase@@6B@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	20					; 00000014H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, ebx
	je	SHORT $LN43@Replace@2
	mov	DWORD PTR [eax+4], ebx
	mov	DWORD PTR [eax], OFFSET ??_7ncStringData@@6B@
	mov	DWORD PTR [eax+8], ebx
	mov	DWORD PTR [eax+12], ebx
	mov	DWORD PTR [eax+16], ebx
	mov	ecx, eax
	jmp	SHORT $LN44@Replace@2
$LN43@Replace@2:
	xor	ecx, ecx
$LN44@Replace@2:
	mov	DWORD PTR $T45315[esp+56], ecx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
	mov	ecx, DWORD PTR $T45315[esp+56]
	push	2
	push	2
	mov	DWORD PTR __$EHRec$[esp+68], 3
	mov	DWORD PTR $T45315[esp+60], OFFSET ??_7ncWideString2@@6B@
	mov	ebp, ecx
	call	?Resize@ncStringData@@QAEXIE@Z		; ncStringData::Resize
	mov	ecx, DWORD PTR [ebp+8]
	mov	dx, WORD PTR $T45407[esp+48]
	mov	WORD PTR [ecx], dx
	mov	DWORD PTR [ebp+12], 2
	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+48]
	lea	eax, DWORD PTR $T45315[esp+52]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+64], 4
	call	??YncWideString2@@QAEAAV0@ABV0@@Z	; ncWideString2::operator+=
	mov	ecx, DWORD PTR $T45315[esp+56]
	cmp	ecx, ebx
	mov	BYTE PTR __$EHRec$[esp+60], bl
	mov	DWORD PTR $T45315[esp+52], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN6@Replace@2
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
	mov	DWORD PTR $T45315[esp+56], ebx
$LN6@Replace@2:
	mov	ebp, DWORD PTR _i$38767[esp+52]
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	add	ebp, 1
	mov	ecx, esi
	mov	DWORD PTR _i$38767[esp+52], ebp
	call	eax
	cmp	ebp, eax
	jb	$LL67@Replace@2
$LN65@Replace@2:

; 965  : 		}
; 966  : 	}
; 967  : 	return ret;

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+48]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 968  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN64@Replace@2:
	pop	edi
	pop	esi

; 965  : 		}
; 966  : 	}
; 967  : 	return ret;

	mov	eax, ebp
	pop	ebp
	pop	ebx

; 968  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN66@Replace@2:
	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$0:
	mov	eax, DWORD PTR $T45317[ebp]
	and	eax, 1
	je	$LN16@Replace@2
	and	DWORD PTR $T45317[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN16@Replace@2:
	ret	0
__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$1:
	lea	ecx, DWORD PTR $T45312[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$2:
	lea	ecx, DWORD PTR $T45314[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$6:
	lea	ecx, DWORD PTR $T45315[ebp]
	jmp	??1ncStringBase@@UAE@XZ			; ncStringBase::~ncStringBase
__unwindfunclet$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z$3:
	lea	ecx, DWORD PTR $T45315[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__ehhandler$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z ENDP		; ncWideString2::Replace
PUBLIC	??H@YA?AVncWideString2@@ABV0@0@Z		; operator+
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??H@YA?AVncWideString2@@ABV0@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??H@YA?AVncWideString2@@ABV0@0@Z$0
__ehfuncinfo$??H@YA?AVncWideString2@@ABV0@0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??H@YA?AVncWideString2@@ABV0@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??H@YA?AVncWideString2@@ABV0@0@Z
_TEXT	SEGMENT
$T45439 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_str1$ = 12						; size = 4
_str2$ = 16						; size = 4
??H@YA?AVncWideString2@@ABV0@0@Z PROC			; operator+, COMDAT

; 1062 : {

	push	-1
	push	__ehhandler$??H@YA?AVncWideString2@@ABV0@0@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx

; 1063 : 	ncWideString2 ret = str1;

	mov	eax, DWORD PTR _str1$[esp+12]
	mov	DWORD PTR $T45439[esp+16], 0
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	mov	DWORD PTR [esi], OFFSET ??_7ncStringBase@@6B@
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+4], ecx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	eax
	mov	DWORD PTR [esi], OFFSET ??_7ncWideString2@@6B@

; 1064 : 	ret += str2;
; 1065 : 	return ret;

	mov	ecx, DWORD PTR _str2$[esp+16]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR $T45439[esp+24], 1
	call	??YncWideString2@@QAEAAV0@ABV0@@Z	; ncWideString2::operator+=

; 1066 : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??H@YA?AVncWideString2@@ABV0@0@Z$0:
	mov	eax, DWORD PTR $T45439[ebp]
	and	eax, 1
	je	$LN4@operator@10
	and	DWORD PTR $T45439[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN4@operator@10:
	ret	0
__ehhandler$??H@YA?AVncWideString2@@ABV0@0@Z:
	mov	eax, OFFSET __ehfuncinfo$??H@YA?AVncWideString2@@ABV0@0@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??H@YA?AVncWideString2@@ABV0@0@Z ENDP			; operator+
PUBLIC	?Remove@ncString2@@QAE?AV1@ABV1@_N@Z		; ncString2::Remove
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z$0
__ehfuncinfo$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Remove@ncString2@@QAE?AV1@ABV1@_N@Z
_TEXT	SEGMENT
$T45462 = -24						; size = 4
$T45459 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_string$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?Remove@ncString2@@QAE?AV1@ABV1@_N@Z PROC		; ncString2::Remove, COMDAT
; _this$ = ecx

; 449  : {

	push	-1
	push	__ehhandler$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	esi
	push	edi
	mov	esi, ecx

; 450  : 	return this->Replace(string, "", case_sensitive);

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	lea	ecx, DWORD PTR $T45459[esp+36]
	mov	DWORD PTR $T45462[esp+36], 0
	call	??0ncString2@@QAE@PBD@Z			; ncString2::ncString2
	mov	eax, DWORD PTR _case_sensitive$[esp+28]
	mov	edx, DWORD PTR _string$[esp+28]
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+28]
	push	eax
	lea	ecx, DWORD PTR $T45459[esp+36]
	push	ecx
	push	edx
	push	edi
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+56], 1
	call	?Replace@ncString2@@QAE?AV1@ABV1@0_N@Z	; ncString2::Replace
	mov	ecx, DWORD PTR $T45459[esp+36]
	test	ecx, ecx
	mov	DWORD PTR $T45462[esp+32], 1
	mov	BYTE PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR $T45459[esp+32], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN12@Remove
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN12@Remove:

; 451  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z$0:
	lea	ecx, DWORD PTR $T45459[ebp]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
__unwindfunclet$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z$1:
	mov	eax, DWORD PTR $T45462[ebp]
	and	eax, 1
	je	$LN5@Remove
	and	DWORD PTR $T45462[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncString2@@UAE@XZ			; ncString2::~ncString2
$LN5@Remove:
	ret	0
__ehhandler$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?Remove@ncString2@@QAE?AV1@ABV1@_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Remove@ncString2@@QAE?AV1@ABV1@_N@Z ENDP		; ncString2::Remove
PUBLIC	?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z	; ncWideString2::Remove
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z$0
__ehfuncinfo$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z
_TEXT	SEGMENT
$T45488 = -24						; size = 4
$T45485 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_string$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z PROC		; ncWideString2::Remove, COMDAT
; _this$ = ecx

; 934  : {

	push	-1
	push	__ehhandler$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	esi
	push	edi
	mov	esi, ecx

; 935  : 	return this->Replace(string, "", case_sensitive);

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	lea	ecx, DWORD PTR $T45485[esp+36]
	mov	DWORD PTR $T45488[esp+36], 0
	call	??0ncWideString2@@QAE@PBD@Z		; ncWideString2::ncWideString2
	mov	eax, DWORD PTR _case_sensitive$[esp+28]
	mov	edx, DWORD PTR _string$[esp+28]
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+28]
	push	eax
	lea	ecx, DWORD PTR $T45485[esp+36]
	push	ecx
	push	edx
	push	edi
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+56], 1
	call	?Replace@ncWideString2@@QAE?AV1@ABV1@0_N@Z ; ncWideString2::Replace
	mov	ecx, DWORD PTR $T45485[esp+36]
	test	ecx, ecx
	mov	DWORD PTR $T45488[esp+32], 1
	mov	BYTE PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR $T45485[esp+32], OFFSET ??_7ncStringBase@@6B@
	je	SHORT $LN12@Remove@2
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	push	1
	call	edx
$LN12@Remove@2:

; 936  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z$0:
	lea	ecx, DWORD PTR $T45485[ebp]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
__unwindfunclet$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z$1:
	mov	eax, DWORD PTR $T45488[ebp]
	and	eax, 1
	je	$LN5@Remove@2
	and	DWORD PTR $T45488[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncWideString2@@UAE@XZ		; ncWideString2::~ncWideString2
$LN5@Remove@2:
	ret	0
__ehhandler$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Remove@ncWideString2@@QAE?AV1@ABV1@_N@Z ENDP		; ncWideString2::Remove
END
