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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

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_SortType@ncToken@@2HA			; ncToken::m_SortType
;	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_SortType@ncToken@@2HA DD 04H				; ncToken::m_SortType
_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	??_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	??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@ ; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	?clearString@ncToken@@AAEXXZ			; ncToken::clearString
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
;	COMDAT ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
; File d:\source code\nc lib\nctoken.cpp
CONST	SEGMENT
??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@ DB '..\NC lib\ncToken'
	DB	'.cpp', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?clearString@ncToken@@AAEXXZ
_TEXT	SEGMENT
?clearString@ncToken@@AAEXXZ PROC			; ncToken::clearString, COMDAT
; _this$ = ecx

; 23   : {

	push	esi
	mov	esi, ecx

; 24   : 	if (this->m_wString)

	cmp	DWORD PTR [esi+4], 0
	je	SHORT $LN2@clearStrin

; 25   : 	{
; 26   : 		delete [] this->m_wString;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	26					; 0000001aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 27   : 		this->m_wString = NULL;

	mov	DWORD PTR [esi+4], 0
$LN2@clearStrin:

; 28   : 	}
; 29   : 	if (this->m_String)

	cmp	DWORD PTR [esi], 0
	je	SHORT $LN1@clearStrin

; 30   : 	{
; 31   : 		delete [] this->m_String;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	31					; 0000001fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 32   : 		this->m_String = NULL;

	mov	DWORD PTR [esi], 0
$LN1@clearStrin:
	pop	esi

; 33   : 	}
; 34   : }

	ret	0
?clearString@ncToken@@AAEXXZ ENDP			; ncToken::clearString
_TEXT	ENDS
PUBLIC	?setString@ncToken@@AAEXPBD@Z			; ncToken::setString
EXTRN	_mbstowcs:PROC
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
; Function compile flags: /Ogtpy
;	COMDAT ?setString@ncToken@@AAEXPBD@Z
_TEXT	SEGMENT
_cString$ = 8						; size = 4
?setString@ncToken@@AAEXPBD@Z PROC			; ncToken::setString, COMDAT
; _this$ = ecx

; 36   : {

	push	esi
	push	edi
	mov	edi, ecx

; 37   : 	this->clearString();

	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString

; 38   : 	if (cString && *cString)

	mov	esi, DWORD PTR _cString$[esp+4]
	test	esi, esi
	je	$LN2@setString
	cmp	BYTE PTR [esi], 0
	je	$LN2@setString

; 39   : 	{
; 40   : 		this->m_String = new char[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	40					; 00000028H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, esi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
$LL15@setString:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL15@setString
	sub	eax, edx
	add	eax, 1
	push	eax
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 4
	mov	DWORD PTR [edi], eax

; 41   : 		strcpy(this->m_String,cString);

	mov	ecx, esi
	mov	edx, eax
$LL7@setString:
	mov	al, BYTE PTR [ecx]
	mov	BYTE PTR [edx], al
	add	ecx, 1
	add	edx, 1
	test	al, al
	jne	SHORT $LL7@setString

; 42   : 		this->m_wString = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	42					; 0000002aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, esi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
	npad	5
$LL16@setString:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL16@setString
	sub	eax, edx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 43   : 		mbstowcs(this->m_wString,cString,strlen(cString));

	mov	ecx, esi
	mov	DWORD PTR [edi+4], eax
	add	esp, 4
	lea	edi, DWORD PTR [ecx+1]
	npad	1
$LL17@setString:
	mov	dl, BYTE PTR [ecx]
	add	ecx, 1
	test	dl, dl
	jne	SHORT $LL17@setString
	sub	ecx, edi
	push	ecx
	push	esi
	push	eax
	call	_mbstowcs
	add	esp, 12					; 0000000cH
	pop	edi
	pop	esi

; 51   : 	}
; 52   : }

	ret	4
$LN2@setString:

; 44   : 	}
; 45   : 	else
; 46   : 	{
; 47   : 		this->m_String = new char[1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	47					; 0000002fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	1
	call	??_U@YAPAXI@Z				; operator new[]

; 48   : 		this->m_String[0] = '\0';
; 49   : 		this->m_wString = new wchar_t[1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	49					; 00000031H
	mov	DWORD PTR [edi], eax
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	BYTE PTR [eax], 0
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	2
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 32					; 00000020H
	mov	DWORD PTR [edi+4], eax
	pop	edi

; 50   : 		this->m_wString[0] = '\0';

	mov	WORD PTR [eax], 0
	pop	esi

; 51   : 	}
; 52   : }

	ret	4
?setString@ncToken@@AAEXPBD@Z ENDP			; ncToken::setString
_TEXT	ENDS
PUBLIC	?setString@ncToken@@AAEXPB_W@Z			; ncToken::setString
EXTRN	_wcstombs:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?setString@ncToken@@AAEXPB_W@Z
_TEXT	SEGMENT
_wString$ = 8						; size = 4
?setString@ncToken@@AAEXPB_W@Z PROC			; ncToken::setString, COMDAT
; _this$ = ecx

; 54   : {

	push	esi
	push	edi
	mov	edi, ecx

; 55   : 	this->clearString();

	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString

; 56   : 	if (wString && *wString)

	mov	esi, DWORD PTR _wString$[esp+4]
	test	esi, esi
	je	$LN2@setString@2
	cmp	WORD PTR [esi], 0
	je	$LN2@setString@2

; 57   : 	{
; 58   : 		this->m_String = new char[wcslen(wString) *2 +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	58					; 0000003aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, esi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
	npad	8
$LL15@setString@2:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL15@setString@2
	sub	eax, edx
	sar	eax, 1
	lea	eax, DWORD PTR [eax+eax+1]
	push	ebx
	push	eax
	call	??_U@YAPAXI@Z				; operator new[]

; 59   : 		wcstombs(this->m_String,wString,wcslen(wString) *2);

	mov	ecx, esi
	add	esp, 4
	mov	DWORD PTR [edi], eax
	lea	ebx, DWORD PTR [ecx+2]
$LL16@setString@2:
	mov	dx, WORD PTR [ecx]
	add	ecx, 2
	test	dx, dx
	jne	SHORT $LL16@setString@2
	sub	ecx, ebx
	sar	ecx, 1
	add	ecx, ecx
	push	ecx
	push	esi
	push	eax
	call	_wcstombs

; 60   : 		this->m_wString = new wchar_t[wcslen(wString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	60					; 0000003cH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	add	esp, 24					; 00000018H
	mov	eax, esi
	lea	edx, DWORD PTR [eax+2]
	pop	ebx
$LL17@setString@2:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL17@setString@2
	sub	eax, edx
	sar	eax, 1
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 4
	mov	DWORD PTR [edi+4], eax

; 61   : 		wcscpy(this->m_wString,wString);

	mov	ecx, eax
$LL9@setString@2:
	movzx	eax, WORD PTR [esi]
	mov	WORD PTR [ecx], ax
	add	esi, 2
	add	ecx, 2
	test	ax, ax
	jne	SHORT $LL9@setString@2
	pop	edi
	pop	esi

; 69   : 	}
; 70   : }

	ret	4
$LN2@setString@2:

; 62   : 	}
; 63   : 	else
; 64   : 	{
; 65   : 		this->m_String = new char[1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	65					; 00000041H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	1
	call	??_U@YAPAXI@Z				; operator new[]

; 66   : 		this->m_String[0] = '\0';
; 67   : 		this->m_wString = new wchar_t[1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	67					; 00000043H
	mov	DWORD PTR [edi], eax
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	BYTE PTR [eax], 0
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	2
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 32					; 00000020H
	mov	DWORD PTR [edi+4], eax
	pop	edi

; 68   : 		this->m_wString[0] = '\0';

	mov	WORD PTR [eax], 0
	pop	esi

; 69   : 	}
; 70   : }

	ret	4
?setString@ncToken@@AAEXPB_W@Z ENDP			; ncToken::setString
_TEXT	ENDS
PUBLIC	?_sort@ncToken@@CAHPBX0@Z			; ncToken::_sort
EXTRN	__wtof:PROC
EXTRN	_isdigit:PROC
EXTRN	__fltused:DWORD
EXTRN	__ftol2_sse:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?_sort@ncToken@@CAHPBX0@Z
_TEXT	SEGMENT
_str$ = -16						; size = 8
_n$36557 = -8						; size = 8
tv70 = 8						; size = 4
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
?_sort@ncToken@@CAHPBX0@Z PROC				; ncToken::_sort, COMDAT

; 154  : {

	sub	esp, 16					; 00000010H

; 155  : 	wchar_t *str[] = {
; 156  : 		*(wchar_t **)a1,
; 157  : 		*(wchar_t **)a2,
; 158  : 	};
; 159  : 	if ((ncToken::m_SortType & TSORT_NUMERIC) == TSORT_NUMERIC)

	test	BYTE PTR ?m_SortType@ncToken@@2HA, 1
	mov	eax, DWORD PTR _a1$[esp+12]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR _a2$[esp+12]
	mov	eax, DWORD PTR [edx]
	mov	DWORD PTR _str$[esp+16], ecx
	mov	DWORD PTR _str$[esp+20], eax
	je	$LL3@sort
	push	ebx
	push	ebp
	push	esi
	push	edi

; 160  : 	{
; 161  : 		bool isNum = true;

	mov	bl, 1

; 162  : 		float n[2];
; 163  : 		for (int i = 0; i < 2; i++)

	xor	ebp, ebp
	npad	5
$LL40@sort:

; 164  : 		{
; 165  : 			for (unsigned int j = 0; j < wcslen(str[i]); j++)

	mov	edi, DWORD PTR _str$[esp+ebp+32]
	mov	eax, edi
	xor	esi, esi
	lea	edx, DWORD PTR [eax+2]
	npad	5
$LL36@sort:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL36@sort
	sub	eax, edx
	sar	eax, 1
	je	SHORT $LN7@sort
$LL9@sort:

; 166  : 			{
; 167  : 				if (!isdigit(str[i][j]) && str[i][j] != '.' && str[i][j] != '-')

	movzx	ecx, WORD PTR [edi+esi*2]
	push	ecx
	call	_isdigit
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN8@sort
	movzx	eax, WORD PTR [edi+esi*2]
	cmp	ax, 46					; 0000002eH
	je	SHORT $LN8@sort
	cmp	ax, 45					; 0000002dH
	jne	SHORT $LN31@sort
$LN8@sort:

; 164  : 		{
; 165  : 			for (unsigned int j = 0; j < wcslen(str[i]); j++)

	mov	eax, edi
	add	esi, 1
	lea	edx, DWORD PTR [eax+2]
	npad	6
$LL37@sort:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL37@sort
	sub	eax, edx
	sar	eax, 1
	cmp	esi, eax
	jb	SHORT $LL9@sort

; 166  : 			{
; 167  : 				if (!isdigit(str[i][j]) && str[i][j] != '.' && str[i][j] != '-')

	jmp	SHORT $LN7@sort
$LN31@sort:

; 168  : 				{
; 169  : 					isNum = false;

	xor	bl, bl
$LN7@sort:

; 170  : 					break;
; 171  : 				}
; 172  : 			}
; 173  : 			n[i] = (float)_wtof(str[i]);

	push	edi
	call	__wtof
	fstp	DWORD PTR _n$36557[esp+ebp+36]
	add	ebp, 4
	add	esp, 4
	cmp	ebp, 8
	jl	SHORT $LL40@sort
	pop	edi
	pop	esi
	pop	ebp

; 174  : 		}
; 175  : 		if (isNum == true)

	cmp	bl, 1
	pop	ebx
	jne	SHORT $LL3@sort

; 176  : 		{
; 177  : 			if ((ncToken::m_SortType & TSORT_REVERSE) == TSORT_REVERSE)

	test	BYTE PTR ?m_SortType@ncToken@@2HA, 2
	je	SHORT $LN4@sort

; 178  : 				return (int)(n[1] - n[0]);

	fld	DWORD PTR _n$36557[esp+20]
	fsub	DWORD PTR _n$36557[esp+16]

; 190  : }

	add	esp, 16					; 00000010H

; 178  : 				return (int)(n[1] - n[0]);

	jmp	__ftol2_sse
$LN4@sort:

; 179  : 			return (int)(n[0] - n[1]);

	fld	DWORD PTR _n$36557[esp+16]
	fsub	DWORD PTR _n$36557[esp+20]

; 190  : }

	add	esp, 16					; 00000010H

; 179  : 			return (int)(n[0] - n[1]);

	jmp	__ftol2_sse
	npad	2
$LL3@sort:

; 180  : 		}
; 181  : 	}
; 182  : 	while (LOWER(*str[0]) == LOWER(*str[1]))

	mov	edx, DWORD PTR _str$[esp+16]
	movzx	eax, WORD PTR [edx]
	cmp	ax, 65					; 00000041H
	jb	SHORT $LN16@sort
	cmp	ax, 90					; 0000005aH
	ja	SHORT $LN16@sort
	movzx	ecx, ax
	add	ecx, 32					; 00000020H
	jmp	SHORT $LN17@sort
$LN16@sort:
	movzx	ecx, ax
$LN17@sort:
	mov	edx, DWORD PTR _str$[esp+20]
	movzx	eax, WORD PTR [edx]
	cmp	ax, 65					; 00000041H
	jb	SHORT $LN18@sort
	cmp	ax, 90					; 0000005aH
	ja	SHORT $LN18@sort
	movzx	eax, ax
	add	eax, 32					; 00000020H
	jmp	SHORT $LN19@sort
$LN18@sort:
	movzx	eax, ax
$LN19@sort:
	cmp	ecx, eax
	jne	SHORT $LN2@sort

; 183  : 	{
; 184  : 		*str[0]++;

	add	DWORD PTR _str$[esp+16], 2

; 185  : 		*str[1]++;

	add	edx, 2
	mov	DWORD PTR _str$[esp+20], edx

; 186  : 	}

	jmp	SHORT $LL3@sort
$LN2@sort:

; 187  : 	if ((ncToken::m_SortType & TSORT_REVERSE) == TSORT_REVERSE)

	test	BYTE PTR ?m_SortType@ncToken@@2HA, 2
	je	SHORT $LN1@sort

; 188  : 		return LOWER(*str[1]) - LOWER(*str[0]);

	movzx	eax, WORD PTR [edx]
	cmp	ax, 65					; 00000041H
	jb	SHORT $LN20@sort
	cmp	ax, 90					; 0000005aH
	ja	SHORT $LN20@sort
	movzx	eax, ax
	add	eax, 32					; 00000020H
	jmp	SHORT $LN21@sort
$LN20@sort:
	movzx	eax, ax
$LN21@sort:
	mov	ecx, DWORD PTR _str$[esp+16]
	movzx	ecx, WORD PTR [ecx]
	cmp	cx, 65					; 00000041H
	jb	SHORT $LN26@sort
	cmp	cx, 90					; 0000005aH
	ja	SHORT $LN26@sort
	movzx	ecx, cx
	add	ecx, 32					; 00000020H

; 189  : 	return (LOWER(*str[0]) - LOWER(*str[1]));

	sub	eax, ecx

; 190  : }

	add	esp, 16					; 00000010H
	ret	0
$LN1@sort:

; 189  : 	return (LOWER(*str[0]) - LOWER(*str[1]));

	mov	eax, DWORD PTR _str$[esp+16]
	movzx	eax, WORD PTR [eax]
	cmp	ax, 65					; 00000041H
	jb	SHORT $LN24@sort
	cmp	ax, 90					; 0000005aH
	ja	SHORT $LN24@sort
	movzx	eax, ax
	add	eax, 32					; 00000020H
	jmp	SHORT $LN25@sort
$LN24@sort:
	movzx	eax, ax
$LN25@sort:
	movzx	ecx, WORD PTR [edx]
	cmp	cx, 65					; 00000041H
	jb	SHORT $LN26@sort
	cmp	cx, 90					; 0000005aH
	ja	SHORT $LN26@sort
	movzx	ecx, cx
	add	ecx, 32					; 00000020H
	sub	eax, ecx

; 190  : }

	add	esp, 16					; 00000010H
	ret	0
$LN26@sort:

; 189  : 	return (LOWER(*str[0]) - LOWER(*str[1]));

	movzx	ecx, cx
	sub	eax, ecx

; 190  : }

	add	esp, 16					; 00000010H
	ret	0
?_sort@ncToken@@CAHPBX0@Z ENDP				; ncToken::_sort
_TEXT	ENDS
PUBLIC	??0ncToken@@QAE@XZ				; ncToken::ncToken
; Function compile flags: /Ogtpy
;	COMDAT ??0ncToken@@QAE@XZ
_TEXT	SEGMENT
??0ncToken@@QAE@XZ PROC					; ncToken::ncToken, COMDAT
; _this$ = ecx

; 193  : {

	push	esi
	mov	esi, ecx

; 194  : 	this->m_String = NULL;
; 195  : 	this->m_wString = NULL;
; 196  : 	this->setString("");

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	?setString@ncToken@@AAEXPBD@Z		; ncToken::setString

; 197  : }

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

; 199  : {

	push	esi
	push	edi

; 200  : 	if (!cString || !*cString)

	mov	edi, DWORD PTR _cString$[esp+4]
	test	edi, edi
	mov	esi, ecx
	je	$LN2@ncToken
	cmp	BYTE PTR [edi], 0
	je	$LN2@ncToken

; 206  : 	}
; 207  : 	else
; 208  : 	{
; 209  : 		this->m_String = new char[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	209					; 000000d1H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, edi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
$LL16@ncToken:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL16@ncToken
	sub	eax, edx
	add	eax, 1
	push	eax
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 4
	mov	DWORD PTR [esi], eax

; 210  : 		strcpy(this->m_String,cString);

	mov	ecx, edi
	mov	edx, eax
$LL12@ncToken:
	mov	al, BYTE PTR [ecx]
	mov	BYTE PTR [edx], al
	add	ecx, 1
	add	edx, 1
	test	al, al
	jne	SHORT $LL12@ncToken

; 211  : 		this->m_wString = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	211					; 000000d3H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, edi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
	npad	4
$LL17@ncToken:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL17@ncToken
	sub	eax, edx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	push	ebx
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 212  : 		mbstowcs(this->m_wString,cString,strlen(cString) *2);

	mov	ecx, edi
	add	esp, 4
	mov	DWORD PTR [esi+4], eax
	lea	ebx, DWORD PTR [ecx+1]
$LL18@ncToken:
	mov	dl, BYTE PTR [ecx]
	add	ecx, 1
	test	dl, dl
	jne	SHORT $LL18@ncToken
	sub	ecx, ebx
	add	ecx, ecx
	push	ecx
	push	edi
	push	eax
	call	_mbstowcs
	add	esp, 12					; 0000000cH
	pop	ebx
	pop	edi

; 213  : 	}
; 214  : }

	mov	eax, esi
	pop	esi
	ret	4
$LN2@ncToken:

; 201  : 	{
; 202  : 		this->m_String = new char[1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	202					; 000000caH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	1
	call	??_U@YAPAXI@Z				; operator new[]

; 203  : 		this->m_String[0] = '\0';
; 204  : 		this->m_wString = new wchar_t[1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	204					; 000000ccH
	mov	DWORD PTR [esi], eax
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	BYTE PTR [eax], 0
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	2
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 32					; 00000020H
	mov	DWORD PTR [esi+4], eax

; 205  : 		this->m_wString[0] = '\0';

	mov	WORD PTR [eax], 0
	pop	edi

; 213  : 	}
; 214  : }

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

; 217  : 	this->m_String = NULL;
; 218  : 	this->m_wString = NULL;
; 219  : 	this->setString(wString);

	mov	eax, DWORD PTR _wString$[esp-4]
	push	esi
	mov	esi, ecx
	push	eax
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 220  : }

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

; 223  : 	this->m_String = NULL;
; 224  : 	this->m_wString = NULL;
; 225  : 	this->setString(sToken.m_wString);

	mov	eax, DWORD PTR _sToken$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	mov	ecx, DWORD PTR [eax+4]
	push	ecx
	mov	ecx, esi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 226  : }

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

; 229  : 	this->clearString();

	jmp	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
??1ncToken@@QAE@XZ ENDP					; ncToken::~ncToken
_TEXT	ENDS
PUBLIC	??4ncToken@@QAEXABV0@@Z				; ncToken::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4ncToken@@QAEXABV0@@Z
_TEXT	SEGMENT
_sToken$ = 8						; size = 4
??4ncToken@@QAEXABV0@@Z PROC				; ncToken::operator=, COMDAT
; _this$ = ecx

; 233  : 	this->setString(sToken.m_wString);

	mov	eax, DWORD PTR _sToken$[esp-4]
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _sToken$[esp-4], edx
	jmp	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
??4ncToken@@QAEXABV0@@Z ENDP				; ncToken::operator=
_TEXT	ENDS
PUBLIC	??4ncToken@@QAEXPBD@Z				; ncToken::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4ncToken@@QAEXPBD@Z
_TEXT	SEGMENT
_cString$ = 8						; size = 4
??4ncToken@@QAEXPBD@Z PROC				; ncToken::operator=, COMDAT
; _this$ = ecx

; 237  : 	this->setString(cString);

	jmp	?setString@ncToken@@AAEXPBD@Z		; ncToken::setString
??4ncToken@@QAEXPBD@Z ENDP				; ncToken::operator=
_TEXT	ENDS
PUBLIC	??4ncToken@@QAEXPB_W@Z				; ncToken::operator=
; Function compile flags: /Ogtpy
;	COMDAT ??4ncToken@@QAEXPB_W@Z
_TEXT	SEGMENT
_wString$ = 8						; size = 4
??4ncToken@@QAEXPB_W@Z PROC				; ncToken::operator=, COMDAT
; _this$ = ecx

; 241  : 	this->setString(wString);

	jmp	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
??4ncToken@@QAEXPB_W@Z ENDP				; ncToken::operator=
_TEXT	ENDS
PUBLIC	??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@		; `string'
PUBLIC	??4ncToken@@QAEXH@Z				; ncToken::operator=
;	COMDAT ??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@ DB '%', 00H, 'd', 00H, 00H, 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??4ncToken@@QAEXH@Z
_TEXT	SEGMENT
_i$ = 8							; size = 4
??4ncToken@@QAEXH@Z PROC				; ncToken::operator=, COMDAT
; _this$ = ecx

; 244  : {

	push	esi
	mov	esi, ecx

; 245  : 	this->clearString();

	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString

; 246  : 	this->m_wString = new wchar_t[12];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	246					; 000000f6H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	24					; 00000018H
	call	??_U@YAPAXI@Z				; operator new[]

; 247  : 	swprintf(this->m_wString,11,L"%d",i);

	mov	ecx, DWORD PTR _i$[esp+16]
	push	ecx
	push	OFFSET ??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@
	push	eax
	mov	edx, 11					; 0000000bH
	mov	DWORD PTR [esi+4], eax
	call	_swprintf
	add	esp, 28					; 0000001cH
	pop	esi

; 248  : }

	ret	4
??4ncToken@@QAEXH@Z ENDP				; ncToken::operator=
_TEXT	ENDS
PUBLIC	??8ncToken@@QAE_NABV0@@Z			; ncToken::operator==
EXTRN	_wcsicmp:PROC
; Function compile flags: /Ogtpy
;	COMDAT ??8ncToken@@QAE_NABV0@@Z
_TEXT	SEGMENT
_sToken$ = 8						; size = 4
??8ncToken@@QAE_NABV0@@Z PROC				; ncToken::operator==, COMDAT
; _this$ = ecx

; 251  : 	if (this->m_wString && sToken.m_wString)

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN1@operator
	mov	ecx, DWORD PTR _sToken$[esp-4]
	mov	ecx, DWORD PTR [ecx+4]
	test	ecx, ecx
	je	SHORT $LN1@operator

; 252  : 		return (!wcsicmp(this->m_wString,sToken.m_wString)) ? true : false;

	push	ecx
	push	eax
	call	_wcsicmp
	add	esp, 8
	test	eax, eax
	sete	al

; 254  : }

	ret	4
$LN1@operator:

; 253  : 	return false;

	xor	al, al

; 254  : }

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

; 256  : {

	push	ebp
	mov	ebp, ecx

; 257  : 	bool Result = false;

	xor	al, al

; 258  : 	if (this->m_wString && cString)

	cmp	DWORD PTR [ebp+4], 0
	je	$LN7@operator@2
	push	edi
	mov	edi, DWORD PTR _cString$[esp+4]
	test	edi, edi
	je	$LN12@operator@2

; 259  : 	{
; 260  : 		wchar_t *wStr = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	260					; 00000104H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, edi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
$LL8@operator@2:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL8@operator@2
	sub	eax, edx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	push	ebx
	push	esi
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	esi, eax

; 261  : 		mbstowcs(wStr,cString,strlen(cString) *2);

	mov	eax, edi
	add	esp, 4
	lea	ecx, DWORD PTR [eax+1]
$LL9@operator@2:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL9@operator@2
	sub	eax, ecx
	add	eax, eax
	push	eax
	push	edi
	push	esi
	call	_mbstowcs

; 262  : 		Result = (wcsicmp(this->m_wString,wStr) == 0) ? true : false;

	mov	ecx, DWORD PTR [ebp+4]
	push	esi
	push	ecx
	call	_wcsicmp

; 263  : 		delete [] wStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	test	eax, eax
	push	263					; 00000107H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	sete	bl
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 36					; 00000024H
	pop	esi

; 264  : 	}
; 265  : 	return Result;

	mov	al, bl
	pop	ebx
$LN12@operator@2:
	pop	edi
$LN7@operator@2:
	pop	ebp

; 266  : }

	ret	4
??8ncToken@@QAE_NPBD@Z ENDP				; ncToken::operator==
_TEXT	ENDS
PUBLIC	??9ncToken@@QAE_NABV0@@Z			; ncToken::operator!=
; Function compile flags: /Ogtpy
;	COMDAT ??9ncToken@@QAE_NABV0@@Z
_TEXT	SEGMENT
_sToken$ = 8						; size = 4
??9ncToken@@QAE_NABV0@@Z PROC				; ncToken::operator!=, COMDAT
; _this$ = ecx

; 269  : 	if (this->m_wString && sToken.m_wString)

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN1@operator@3
	mov	ecx, DWORD PTR _sToken$[esp-4]
	mov	ecx, DWORD PTR [ecx+4]
	test	ecx, ecx
	je	SHORT $LN1@operator@3

; 270  : 		return (!wcsicmp(this->m_wString,sToken.m_wString)) ? false : true;

	push	ecx
	push	eax
	call	_wcsicmp
	add	esp, 8
	test	eax, eax
	setne	al

; 272  : }

	ret	4
$LN1@operator@3:

; 271  : 	return false;

	xor	al, al

; 272  : }

	ret	4
??9ncToken@@QAE_NABV0@@Z ENDP				; ncToken::operator!=
_TEXT	ENDS
PUBLIC	??9ncToken@@QAE_NPBD@Z				; ncToken::operator!=
; Function compile flags: /Ogtpy
;	COMDAT ??9ncToken@@QAE_NPBD@Z
_TEXT	SEGMENT
_cString$ = 8						; size = 4
??9ncToken@@QAE_NPBD@Z PROC				; ncToken::operator!=, COMDAT
; _this$ = ecx

; 274  : {

	push	ebp
	mov	ebp, ecx

; 275  : 	bool Result = false;

	xor	al, al

; 276  : 	if (this->m_wString && cString)

	cmp	DWORD PTR [ebp+4], 0
	je	$LN7@operator@4
	push	edi
	mov	edi, DWORD PTR _cString$[esp+4]
	test	edi, edi
	je	$LN12@operator@4

; 277  : 	{
; 278  : 		wchar_t *wStr = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	278					; 00000116H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, edi
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+1]
$LL8@operator@4:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL8@operator@4
	sub	eax, edx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	push	ebx
	push	esi
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	esi, eax

; 279  : 		mbstowcs(wStr,cString,strlen(cString) *2);

	mov	eax, edi
	add	esp, 4
	lea	ecx, DWORD PTR [eax+1]
$LL9@operator@4:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL9@operator@4
	sub	eax, ecx
	add	eax, eax
	push	eax
	push	edi
	push	esi
	call	_mbstowcs

; 280  : 		Result = wcsicmp(this->m_wString,wStr) ? false : true;

	mov	ecx, DWORD PTR [ebp+4]
	push	esi
	push	ecx
	call	_wcsicmp

; 281  : 		delete [] wStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	test	eax, eax
	push	281					; 00000119H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	sete	bl
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 36					; 00000024H
	pop	esi

; 282  : 	}
; 283  : 	return Result;

	mov	al, bl
	pop	ebx
$LN12@operator@4:
	pop	edi
$LN7@operator@4:
	pop	ebp

; 284  : }

	ret	4
??9ncToken@@QAE_NPBD@Z ENDP				; ncToken::operator!=
_TEXT	ENDS
PUBLIC	??YncToken@@QAE?AV0@ABV0@@Z			; ncToken::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??YncToken@@QAE?AV0@ABV0@@Z
_TEXT	SEGMENT
$T40153 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_sToken$ = 12						; size = 4
??YncToken@@QAE?AV0@ABV0@@Z PROC			; ncToken::operator+=, COMDAT
; _this$ = ecx

; 286  : {

	push	ecx
	push	ebp
	push	esi
	push	edi

; 287  : 	if (sToken.m_wString)

	mov	edi, DWORD PTR _sToken$[esp+12]
	cmp	DWORD PTR [edi+4], 0
	mov	ebp, ecx
	mov	DWORD PTR $T40153[esp+16], 0
	je	$LN1@operator@5

; 288  : 	{
; 289  : 		wchar_t *NewStr = new wchar_t[wcslen(this->m_wString) + wcslen(sToken.m_wString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	289					; 00000121H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [ebp+4]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
	npad	7
$LL14@operator@5:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL14@operator@5
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR [edi+4]
	lea	esi, DWORD PTR [eax+2]
$LL15@operator@5:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL15@operator@5
	sub	eax, esi
	sar	eax, 1
	lea	eax, DWORD PTR [eax+edx+1]
	xor	ecx, ecx
	mov	edx, 2
	mul	edx
	seto	cl
	push	ebx
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 290  : 		NewStr[wcslen(this->m_wString) + wcslen(sToken.m_wString)] = '\0';

	mov	eax, DWORD PTR [ebp+4]
	add	esp, 4
	lea	edx, DWORD PTR [eax+2]
	npad	4
$LL16@operator@5:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL16@operator@5
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR [edi+4]
	lea	esi, DWORD PTR [eax+2]
$LL17@operator@5:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL17@operator@5
	sub	eax, esi
	sar	eax, 1
	add	eax, edx
	mov	WORD PTR [ebx+eax*2], cx

; 291  : 		wcscpy(NewStr,this->m_wString);

	mov	ecx, DWORD PTR [ebp+4]
	mov	edx, ebx
$LL6@operator@5:
	movzx	eax, WORD PTR [ecx]
	mov	WORD PTR [edx], ax
	add	ecx, 2
	add	edx, 2
	test	ax, ax
	jne	SHORT $LL6@operator@5

; 292  : 		wcscat(NewStr,sToken.m_wString);

	mov	eax, DWORD PTR [edi+4]
	mov	edx, eax
$LL18@operator@5:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL18@operator@5
	mov	edi, ebx
	sub	eax, edx
	add	edi, -2					; fffffffeH
	npad	7
$LL19@operator@5:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL19@operator@5
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd

; 293  : 		delete [] this->m_wString;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	ecx, eax
	and	ecx, 3
	push	293					; 00000125H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	rep movsb
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [ebp+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 294  : 		this->m_wString = NewStr;

	mov	DWORD PTR [ebp+4], ebx
	pop	ebx
$LN1@operator@5:

; 295  : 	}
; 296  : 	return *this;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+12]
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	mov	ecx, DWORD PTR [ebp+4]
	push	ecx
	mov	ecx, esi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp

; 297  : }

	pop	ecx
	ret	8
??YncToken@@QAE?AV0@ABV0@@Z ENDP			; ncToken::operator+=
_TEXT	ENDS
PUBLIC	??YncToken@@QAE?AV0@PBD@Z			; ncToken::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??YncToken@@QAE?AV0@PBD@Z
_TEXT	SEGMENT
$T40176 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_cString$ = 12						; size = 4
??YncToken@@QAE?AV0@PBD@Z PROC				; ncToken::operator+=, COMDAT
; _this$ = ecx

; 299  : {

	push	ecx
	push	ebx

; 300  : 	if (cString)

	mov	ebx, DWORD PTR _cString$[esp+4]
	test	ebx, ebx
	push	esi
	push	edi
	mov	esi, ecx
	mov	DWORD PTR $T40176[esp+16], 0
	je	$LN1@operator@6

; 301  : 	{
; 302  : 		wchar_t *NewStr = new wchar_t[wcslen(this->m_wString) + strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	302					; 0000012eH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
$LL14@operator@6:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL14@operator@6
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax
	mov	eax, ebx
	lea	edi, DWORD PTR [eax+1]
	npad	3
$LL15@operator@6:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL15@operator@6
	sub	eax, edi
	lea	eax, DWORD PTR [eax+edx+1]
	xor	ecx, ecx
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	edi, eax

; 303  : 		NewStr[wcslen(this->m_wString) + strlen(cString)] = '\0';

	mov	eax, DWORD PTR [esi+4]
	add	esp, 4
	lea	edx, DWORD PTR [eax+2]
$LL16@operator@6:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL16@operator@6
	sub	eax, edx
	mov	ecx, ebx
	push	ebp
	sar	eax, 1
	lea	ebp, DWORD PTR [ecx+1]
$LL17@operator@6:
	mov	dl, BYTE PTR [ecx]
	add	ecx, 1
	test	dl, dl
	jne	SHORT $LL17@operator@6
	sub	ecx, ebp
	add	ecx, eax
	mov	WORD PTR [edi+ecx*2], 0

; 304  : 		wcscpy(NewStr,this->m_wString);

	mov	ecx, DWORD PTR [esi+4]
	mov	edx, edi
	npad	3
$LL6@operator@6:
	movzx	eax, WORD PTR [ecx]
	mov	WORD PTR [edx], ax
	add	ecx, 2
	add	edx, 2
	test	ax, ax
	jne	SHORT $LL6@operator@6

; 305  : 		mbstowcs(NewStr + wcslen(this->m_wString),cString,strlen(cString));

	mov	eax, ebx
	lea	edx, DWORD PTR [eax+1]
$LL18@operator@6:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL18@operator@6
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR [esi+4]
	lea	ebp, DWORD PTR [eax+2]
	npad	7
$LL19@operator@6:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL19@operator@6
	sub	eax, ebp
	push	edx
	sar	eax, 1
	lea	eax, DWORD PTR [edi+eax*2]
	push	ebx
	push	eax
	call	_mbstowcs

; 306  : 		delete [] this->m_wString;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	306					; 00000132H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+4]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH

; 307  : 		this->m_wString = NewStr;

	mov	DWORD PTR [esi+4], edi
	pop	ebp
$LN1@operator@6:

; 308  : 	}
; 309  : 	return *this;

	mov	edi, DWORD PTR ___$ReturnUdt$[esp+12]
	mov	DWORD PTR [edi], 0
	mov	DWORD PTR [edi+4], 0
	mov	edx, DWORD PTR [esi+4]
	push	edx
	mov	ecx, edi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebx

; 310  : }

	pop	ecx
	ret	8
??YncToken@@QAE?AV0@PBD@Z ENDP				; ncToken::operator+=
_TEXT	ENDS
PUBLIC	??YncToken@@QAE?AV0@PB_W@Z			; ncToken::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??YncToken@@QAE?AV0@PB_W@Z
_TEXT	SEGMENT
$T40199 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_wString$ = 12						; size = 4
??YncToken@@QAE?AV0@PB_W@Z PROC				; ncToken::operator+=, COMDAT
; _this$ = ecx

; 312  : {

	push	ecx
	push	ebp
	push	esi
	push	edi

; 313  : 	if (wString)

	mov	edi, DWORD PTR _wString$[esp+12]
	test	edi, edi
	mov	ebp, ecx
	mov	DWORD PTR $T40199[esp+16], 0
	je	$LN1@operator@7

; 314  : 	{
; 315  : 		wchar_t *newStr = new wchar_t[wcslen(this->m_wString) + wcslen(wString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	315					; 0000013bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [ebp+4]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
$LL14@operator@7:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL14@operator@7
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax
	mov	eax, edi
	lea	esi, DWORD PTR [eax+2]
	npad	3
$LL15@operator@7:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL15@operator@7
	sub	eax, esi
	sar	eax, 1
	lea	eax, DWORD PTR [eax+edx+1]
	xor	ecx, ecx
	mov	edx, 2
	mul	edx
	seto	cl
	push	ebx
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 316  : 		newStr[wcslen(this->m_wString) + wcslen(wString)] = '\0';

	mov	eax, DWORD PTR [ebp+4]
	add	esp, 4
	lea	edx, DWORD PTR [eax+2]
$LL16@operator@7:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL16@operator@7
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax
	mov	eax, edi
	lea	esi, DWORD PTR [eax+2]
	npad	5
$LL17@operator@7:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL17@operator@7
	sub	eax, esi
	sar	eax, 1
	add	eax, edx
	mov	WORD PTR [ebx+eax*2], cx

; 317  : 		wcscpy(newStr,this->m_wString);

	mov	ecx, DWORD PTR [ebp+4]
	mov	edx, ebx
	npad	6
$LL6@operator@7:
	movzx	eax, WORD PTR [ecx]
	mov	WORD PTR [edx], ax
	add	ecx, 2
	add	edx, 2
	test	ax, ax
	jne	SHORT $LL6@operator@7

; 318  : 		wcscat(newStr,wString);

	mov	eax, edi
	mov	edx, edi
$LL18@operator@7:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL18@operator@7
	mov	edi, ebx
	sub	eax, edx
	add	edi, -2					; fffffffeH
	npad	9
$LL19@operator@7:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL19@operator@7
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd

; 319  : 		delete [] this->m_wString;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	ecx, eax
	and	ecx, 3
	push	319					; 0000013fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	rep movsb
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [ebp+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 320  : 		this->m_wString = newStr;

	mov	DWORD PTR [ebp+4], ebx
	pop	ebx
$LN1@operator@7:

; 321  : 	}
; 322  : 	return *this;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+12]
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	mov	ecx, DWORD PTR [ebp+4]
	push	ecx
	mov	ecx, esi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp

; 323  : }

	pop	ecx
	ret	8
??YncToken@@QAE?AV0@PB_W@Z ENDP				; ncToken::operator+=
_TEXT	ENDS
PUBLIC	??AncToken@@QAEAA_WH@Z				; ncToken::operator[]
;	COMDAT ?m_EmptyChar@?1???AncToken@@QAEAA_WH@Z@4_WA
_BSS	SEGMENT
?m_EmptyChar@?1???AncToken@@QAEAA_WH@Z@4_WA DW 01H DUP (?) ; `ncToken::operator[]'::`2'::m_EmptyChar
; Function compile flags: /Ogtpy
_BSS	ENDS
;	COMDAT ??AncToken@@QAEAA_WH@Z
_TEXT	SEGMENT
_Position$ = 8						; size = 4
??AncToken@@QAEAA_WH@Z PROC				; ncToken::operator[], COMDAT
; _this$ = ecx

; 325  : {

	push	edi

; 326  : 	static wchar_t m_EmptyChar = 0;
; 327  : 	if (Position < 0 || (size_t)Position >= wcslen(this->m_wString))

	mov	edi, DWORD PTR _Position$[esp]
	test	edi, edi
	jl	SHORT $LN1@operator@8
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, edx
	push	esi
	lea	esi, DWORD PTR [eax+2]
$LL5@operator@8:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL5@operator@8
	sub	eax, esi
	sar	eax, 1
	cmp	edi, eax
	pop	esi

; 329  : 	return this->m_wString[Position];

	lea	eax, DWORD PTR [edx+edi*2]
	jb	SHORT $LN3@operator@8
$LN1@operator@8:

; 328  : 		return m_EmptyChar;

	mov	eax, OFFSET ?m_EmptyChar@?1???AncToken@@QAEAA_WH@Z@4_WA
$LN3@operator@8:
	pop	edi

; 330  : }

	ret	4
??AncToken@@QAEAA_WH@Z ENDP				; ncToken::operator[]
_TEXT	ENDS
PUBLIC	?to_chr@ncToken@@QAEPADXZ			; ncToken::to_chr
; Function compile flags: /Ogtpy
;	COMDAT ?to_chr@ncToken@@QAEPADXZ
_TEXT	SEGMENT
?to_chr@ncToken@@QAEPADXZ PROC				; ncToken::to_chr, COMDAT
; _this$ = ecx

; 333  : 	return this->m_String;

	mov	eax, DWORD PTR [ecx]

; 334  : }

	ret	0
?to_chr@ncToken@@QAEPADXZ ENDP				; ncToken::to_chr
_TEXT	ENDS
PUBLIC	?to_double@ncToken@@QAENXZ			; ncToken::to_double
; Function compile flags: /Ogtpy
;	COMDAT ?to_double@ncToken@@QAENXZ
_TEXT	SEGMENT
?to_double@ncToken@@QAENXZ PROC				; ncToken::to_double, COMDAT
; _this$ = ecx

; 337  : 	return _wtof(this->m_wString);

	mov	eax, DWORD PTR [ecx+4]
	push	eax
	call	__wtof
	add	esp, 4

; 338  : }

	ret	0
?to_double@ncToken@@QAENXZ ENDP				; ncToken::to_double
_TEXT	ENDS
PUBLIC	?to_float@ncToken@@QAEMXZ			; ncToken::to_float
; Function compile flags: /Ogtpy
;	COMDAT ?to_float@ncToken@@QAEMXZ
_TEXT	SEGMENT
?to_float@ncToken@@QAEMXZ PROC				; ncToken::to_float, COMDAT
; _this$ = ecx

; 341  : 	return (float)_wtof(this->m_wString);

	mov	eax, DWORD PTR [ecx+4]
	push	eax
	call	__wtof
	add	esp, 4

; 342  : }

	ret	0
?to_float@ncToken@@QAEMXZ ENDP				; ncToken::to_float
_TEXT	ENDS
PUBLIC	?to_int@ncToken@@QAEHXZ				; ncToken::to_int
EXTRN	__wtoi:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?to_int@ncToken@@QAEHXZ
_TEXT	SEGMENT
?to_int@ncToken@@QAEHXZ PROC				; ncToken::to_int, COMDAT
; _this$ = ecx

; 345  : 	return _wtoi(this->m_wString);

	mov	eax, DWORD PTR [ecx+4]
	push	eax
	call	__wtoi
	add	esp, 4

; 346  : }

	ret	0
?to_int@ncToken@@QAEHXZ ENDP				; ncToken::to_int
_TEXT	ENDS
PUBLIC	?to_long@ncToken@@QAEJXZ			; ncToken::to_long
EXTRN	__wtol:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?to_long@ncToken@@QAEJXZ
_TEXT	SEGMENT
?to_long@ncToken@@QAEJXZ PROC				; ncToken::to_long, COMDAT
; _this$ = ecx

; 349  : 	return _wtol(this->m_wString);

	mov	eax, DWORD PTR [ecx+4]
	push	eax
	call	__wtol
	add	esp, 4

; 350  : }

	ret	0
?to_long@ncToken@@QAEJXZ ENDP				; ncToken::to_long
_TEXT	ENDS
PUBLIC	?to_wchr@ncToken@@QAEPA_WXZ			; ncToken::to_wchr
; Function compile flags: /Ogtpy
;	COMDAT ?to_wchr@ncToken@@QAEPA_WXZ
_TEXT	SEGMENT
?to_wchr@ncToken@@QAEPA_WXZ PROC			; ncToken::to_wchr, COMDAT
; _this$ = ecx

; 353  : 	return this->m_wString;

	mov	eax, DWORD PTR [ecx+4]

; 354  : }

	ret	0
?to_wchr@ncToken@@QAEPA_WXZ ENDP			; ncToken::to_wchr
_TEXT	ENDS
PUBLIC	?_wildcmp@ncToken@@AAEHPB_W0_N@Z		; ncToken::_wildcmp
; Function compile flags: /Ogtpy
;	COMDAT ?_wildcmp@ncToken@@AAEHPB_W0_N@Z
_TEXT	SEGMENT
_wString$ = 8						; size = 4
_cString$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?_wildcmp@ncToken@@AAEHPB_W0_N@Z PROC			; ncToken::_wildcmp, COMDAT
; _this$ = ecx

; 357  : {

	push	ebx
	push	ebp
	push	esi

; 358  : 	register const wchar_t *cp = NULL, *mp = NULL;
; 359  : 	while ((*cString) && (*wString != '*')) {

	mov	esi, DWORD PTR _wString$[esp+8]
	push	edi
	mov	edi, DWORD PTR _cString$[esp+12]
	movzx	eax, WORD PTR [edi]
	xor	ebp, ebp
	xor	ebx, ebx
	test	ax, ax
	je	SHORT $LN30@wildcmp
	npad	8
$LL17@wildcmp:
	movzx	ecx, WORD PTR [esi]
	cmp	cx, 42					; 0000002aH
	je	SHORT $LN29@wildcmp

; 360  : 		if (((case_sensitive && *wString != *cString) || (!case_sensitive && LOWER(*wString) != LOWER(*cString))) && (*wString != '?')) return 0;

	cmp	BYTE PTR _case_sensitive$[esp+12], bl
	je	SHORT $LN36@wildcmp
	cmp	cx, ax
	jne	SHORT $LN14@wildcmp
	jmp	SHORT $LN15@wildcmp
$LN36@wildcmp:
	cmp	cx, 65					; 00000041H
	jb	SHORT $LN20@wildcmp
	cmp	cx, 90					; 0000005aH
	ja	SHORT $LN20@wildcmp
	movzx	edx, cx
	add	edx, 32					; 00000020H
	jmp	SHORT $LN21@wildcmp
$LN20@wildcmp:
	movzx	edx, cx
$LN21@wildcmp:
	cmp	ax, 65					; 00000041H
	jb	SHORT $LN22@wildcmp
	cmp	ax, 90					; 0000005aH
	ja	SHORT $LN22@wildcmp
	movzx	eax, ax
	add	eax, 32					; 00000020H
	jmp	SHORT $LN23@wildcmp
$LN22@wildcmp:
	movzx	eax, ax
$LN23@wildcmp:
	cmp	edx, eax
	je	SHORT $LN15@wildcmp
$LN14@wildcmp:
	cmp	cx, 63					; 0000003fH
	jne	SHORT $LN31@wildcmp
$LN15@wildcmp:

; 358  : 	register const wchar_t *cp = NULL, *mp = NULL;
; 359  : 	while ((*cString) && (*wString != '*')) {

	movzx	eax, WORD PTR [edi+2]

; 361  : 		wString++;
; 362  : 		cString++;

	add	edi, 2
	add	esi, 2
	test	ax, ax
	jne	SHORT $LL17@wildcmp
$LN30@wildcmp:

; 377  : 		}
; 378  : 	}
; 379  : 	while (*wString == '*') wString++;

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

; 380  : 	return !*wString;

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

; 381  : }

	ret	12					; 0000000cH
$LN31@wildcmp:
	pop	edi
	pop	esi
	pop	ebp

; 360  : 		if (((case_sensitive && *wString != *cString) || (!case_sensitive && LOWER(*wString) != LOWER(*cString))) && (*wString != '?')) return 0;

	xor	eax, eax
	pop	ebx

; 381  : }

	ret	12					; 0000000cH
$LN29@wildcmp:

; 363  : 	}
; 364  : 	while (*cString) {

	movzx	eax, WORD PTR [edi]
	test	ax, ax
	je	SHORT $LN30@wildcmp
	npad	4
$LL12@wildcmp:

; 365  : 		if (*wString == '*') {

	movzx	ecx, WORD PTR [esi]
	cmp	cx, 42					; 0000002aH
	jne	SHORT $LN10@wildcmp

; 366  : 			if (!*++wString) return 1;

	add	esi, 2
	cmp	WORD PTR [esi], 0
	je	SHORT $LN32@wildcmp

; 367  : 			mp = wString;

	mov	ebx, esi

; 368  : 			cp = cString+1;

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

; 369  : 		}
; 370  : 		else if (((case_sensitive && *wString == *cString) || (!case_sensitive && LOWER(*wString) == LOWER(*cString))) || (*wString == '?')) {

	cmp	BYTE PTR _case_sensitive$[esp+12], 0
	je	SHORT $LN35@wildcmp
	cmp	cx, ax
	jmp	SHORT $LN40@wildcmp
$LN35@wildcmp:
	cmp	cx, 65					; 00000041H
	jb	SHORT $LN24@wildcmp
	cmp	cx, 90					; 0000005aH
	ja	SHORT $LN24@wildcmp
	movzx	edx, cx
	add	edx, 32					; 00000020H
	jmp	SHORT $LN25@wildcmp
$LN24@wildcmp:
	movzx	edx, cx
$LN25@wildcmp:
	cmp	ax, 65					; 00000041H
	jb	SHORT $LN26@wildcmp
	cmp	ax, 90					; 0000005aH
	ja	SHORT $LN26@wildcmp
	movzx	eax, ax
	add	eax, 32					; 00000020H
	jmp	SHORT $LN27@wildcmp
$LN26@wildcmp:
	movzx	eax, ax
$LN27@wildcmp:
	cmp	edx, eax
$LN40@wildcmp:
	je	SHORT $LN6@wildcmp
	cmp	cx, 63					; 0000003fH
	jne	SHORT $LN7@wildcmp
$LN6@wildcmp:

; 371  : 			wString++;

	add	esi, 2

; 372  : 			cString++;

	add	edi, 2

; 373  : 		}
; 374  : 		else {

	jmp	SHORT $LN3@wildcmp
$LN7@wildcmp:

; 375  : 			wString = mp;
; 376  : 			cString = cp++;

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

; 366  : 			if (!*++wString) return 1;

	jmp	$LN30@wildcmp
$LN32@wildcmp:
	pop	edi
	pop	esi
	pop	ebp
	mov	eax, 1
	pop	ebx

; 381  : }

	ret	12					; 0000000cH
?_wildcmp@ncToken@@AAEHPB_W0_N@Z ENDP			; ncToken::_wildcmp
_TEXT	ENDS
PUBLIC	?_wcsstr@ncToken@@AAEPA_WPB_W0_N@Z		; ncToken::_wcsstr
; Function compile flags: /Ogtpy
;	COMDAT ?_wcsstr@ncToken@@AAEPA_WPB_W0_N@Z
_TEXT	SEGMENT
_m_pStr1$ = 8						; size = 4
_m_pStr2$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?_wcsstr@ncToken@@AAEPA_WPB_W0_N@Z PROC			; ncToken::_wcsstr, COMDAT
; _this$ = ecx

; 385  : 	register wchar_t *m_pCP = (wchar_t *)m_pStr1;

	mov	edx, DWORD PTR _m_pStr1$[esp-4]

; 386  : 	register wchar_t *m_pS1, *m_pS2;
; 387  : 	while (*m_pCP)

	movzx	ecx, WORD PTR [edx]
	test	cx, cx
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	ebp, edx
	je	$LN6@wcsstr
	mov	eax, DWORD PTR _m_pStr2$[esp+12]
	sub	edx, eax
	movzx	ecx, cx
	mov	ebx, edx
$LL7@wcsstr:

; 388  : 	{
; 389  : 		m_pS1 = m_pCP;
; 390  : 		m_pS2 = (wchar_t *) m_pStr2;
; 391  : 		while (*m_pS1 && *m_pS2 && ((case_sensitive && !(*m_pS1 - *m_pS2)) || (!case_sensitive && !(LOWER(*m_pS1) - LOWER(*m_pS2)))))

	test	cx, cx
	mov	edi, eax
	je	SHORT $LN21@wcsstr
$LL5@wcsstr:
	movzx	esi, WORD PTR [edi]
	test	si, si
	je	SHORT $LN16@wcsstr
	cmp	BYTE PTR _case_sensitive$[esp+12], 0
	movzx	ecx, WORD PTR [ebx+edi]
	je	SHORT $LN19@wcsstr
	movzx	edx, si
	sub	ecx, edx
	jmp	SHORT $LN22@wcsstr
$LN19@wcsstr:
	cmp	cx, 65					; 00000041H
	jb	SHORT $LN10@wcsstr
	cmp	cx, 90					; 0000005aH
	ja	SHORT $LN10@wcsstr
	movzx	edx, cx
	add	edx, 32					; 00000020H
	jmp	SHORT $LN11@wcsstr
$LN10@wcsstr:
	movzx	edx, cx
$LN11@wcsstr:
	cmp	si, 65					; 00000041H
	jb	SHORT $LN12@wcsstr
	cmp	si, 90					; 0000005aH
	ja	SHORT $LN12@wcsstr
	movzx	ecx, si
	add	ecx, 32					; 00000020H
	jmp	SHORT $LN13@wcsstr
$LN12@wcsstr:
	movzx	ecx, si
$LN13@wcsstr:
	sub	edx, ecx
$LN22@wcsstr:
	jne	SHORT $LN21@wcsstr

; 392  : 			m_pS1++, m_pS2++;

	add	edi, 2
	cmp	WORD PTR [ebx+edi], 0
	jne	SHORT $LL5@wcsstr
$LN21@wcsstr:

; 393  : 		if (!*m_pS2)

	cmp	WORD PTR [edi], 0
	je	SHORT $LN16@wcsstr
	movzx	ecx, WORD PTR [ebp+2]

; 395  : 		m_pCP++;

	add	ebp, 2
	add	ebx, 2
	test	cx, cx
	jne	SHORT $LL7@wcsstr
$LN6@wcsstr:
	pop	edi
	pop	esi
	pop	ebp

; 396  : 	}
; 397  : 	return NULL;

	xor	eax, eax
	pop	ebx

; 398  : }

	ret	12					; 0000000cH
$LN16@wcsstr:
	pop	edi
	pop	esi

; 394  : 			return m_pCP;

	mov	eax, ebp
	pop	ebp
	pop	ebx

; 398  : }

	ret	12					; 0000000cH
?_wcsstr@ncToken@@AAEPA_WPB_W0_N@Z ENDP			; ncToken::_wcsstr
_TEXT	ENDS
PUBLIC	?addtok@ncToken@@QAE?AV1@PBDD@Z			; ncToken::addtok
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?addtok@ncToken@@QAE?AV1@PBDD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?addtok@ncToken@@QAE?AV1@PBDD@Z$0
__ehfuncinfo$?addtok@ncToken@@QAE?AV1@PBDD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?addtok@ncToken@@QAE?AV1@PBDD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?addtok@ncToken@@QAE?AV1@PBDD@Z
_TEXT	SEGMENT
$T40285 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_cString$ = 12						; size = 4
_tmp$36768 = 16						; size = 4
_Token$ = 16						; size = 1
?addtok@ncToken@@QAE?AV1@PBDD@Z PROC			; ncToken::addtok, COMDAT
; _this$ = ecx

; 401  : {

	push	-1
	push	__ehhandler$?addtok@ncToken@@QAE?AV1@PBDD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	esi
	xor	esi, esi
	mov	DWORD PTR $T40285[esp+24], esi

; 402  : 	ncToken sToken(*this);

	mov	ebx, DWORD PTR ___$ReturnUdt$[esp+20]
	mov	DWORD PTR [ebx], esi
	mov	DWORD PTR [ebx+4], esi
	mov	eax, DWORD PTR [ecx+4]
	push	edi
	push	eax
	mov	ecx, ebx
	mov	DWORD PTR __$EHRec$[esp+40], esi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 403  : 	if (cString)
; 404  : 	{
; 405  : 		wchar_t tmp[2];
; 406  : 		tmp[0] = Token;
; 407  : 		tmp[1] = '\0';
; 408  : 		wchar_t *newStr = new wchar_t[wcslen(sToken.m_wString) + strlen(cString) +2];
; 409  : 		newStr[wcslen(sToken.m_wString) + strlen(cString) +1] = '\0';
; 410  : 		wcscpy(newStr,sToken.m_wString);
; 411  : 		wcscat(newStr,tmp);
; 412  : 		mbstowcs(newStr + wcslen(newStr),cString,strlen(cString));
; 413  : 		sToken.setString(newStr);
; 414  : 		delete [] newStr;
; 415  : 	}
; 416  : 	return sToken;

	mov	edi, DWORD PTR _cString$[esp+24]
	cmp	edi, esi
	mov	DWORD PTR __$EHRec$[esp+36], esi
	mov	DWORD PTR $T40285[esp+28], 1
	je	$LN22@addtok
	movsx	cx, BYTE PTR _Token$[esp+24]
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	408					; 00000198H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	WORD PTR _tmp$36768[esp+36], cx
	mov	WORD PTR _tmp$36768[esp+38], si
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [ebx+4]
	add	esp, 12					; 0000000cH
	lea	edx, DWORD PTR [eax+2]
	npad	4
$LL14@addtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, si
	jne	SHORT $LL14@addtok
	sub	eax, edx
	mov	ecx, edi
	sar	eax, 1
	lea	esi, DWORD PTR [ecx+1]
$LL15@addtok:
	mov	dl, BYTE PTR [ecx]
	add	ecx, 1
	test	dl, dl
	jne	SHORT $LL15@addtok
	sub	ecx, esi
	lea	eax, DWORD PTR [ecx+eax+2]
	xor	ecx, ecx
	mov	edx, 2
	mul	edx
	seto	cl
	push	ebp
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebp, eax
	mov	eax, DWORD PTR [ebx+4]
	add	esp, 4
	lea	edx, DWORD PTR [eax+2]
$LL16@addtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL16@addtok
	sub	eax, edx
	mov	ecx, edi
	sar	eax, 1
	lea	esi, DWORD PTR [ecx+1]
	npad	7
$LL17@addtok:
	mov	dl, BYTE PTR [ecx]
	add	ecx, 1
	test	dl, dl
	jne	SHORT $LL17@addtok
	sub	ecx, esi
	add	ecx, eax
	mov	WORD PTR [ebp+ecx*2+2], 0
	mov	ecx, DWORD PTR [ebx+4]
	mov	edx, ebp
	npad	7
$LL6@addtok:
	movzx	eax, WORD PTR [ecx]
	mov	WORD PTR [edx], ax
	add	ecx, 2
	add	edx, 2
	test	ax, ax
	jne	SHORT $LL6@addtok
	lea	eax, DWORD PTR _tmp$36768[esp+28]
	mov	edx, eax
$LL18@addtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL18@addtok
	mov	edi, ebp
	sub	eax, edx
	add	edi, -2					; fffffffeH
	npad	7
$LL19@addtok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL19@addtok
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	mov	edi, DWORD PTR _cString$[esp+28]
	mov	eax, edi
	lea	edx, DWORD PTR [eax+1]
$LL20@addtok:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL20@addtok
	sub	eax, edx
	mov	edx, eax
	mov	eax, ebp
	lea	esi, DWORD PTR [eax+2]
$LL21@addtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL21@addtok
	sub	eax, esi
	push	edx
	sar	eax, 1
	lea	eax, DWORD PTR [ebp+eax*2]
	push	edi
	push	eax
	call	_mbstowcs
	add	esp, 12					; 0000000cH
	push	ebp
	mov	ecx, ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	414					; 0000019eH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	pop	ebp
$LN22@addtok:

; 417  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	pop	esi
	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$?addtok@ncToken@@QAE?AV1@PBDD@Z$0:
	mov	eax, DWORD PTR $T40285[ebp]
	and	eax, 1
	je	$LN10@addtok
	and	DWORD PTR $T40285[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN10@addtok:
	ret	0
__ehhandler$?addtok@ncToken@@QAE?AV1@PBDD@Z:
	mov	eax, OFFSET __ehfuncinfo$?addtok@ncToken@@QAE?AV1@PBDD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?addtok@ncToken@@QAE?AV1@PBDD@Z ENDP			; ncToken::addtok
PUBLIC	?findtok@ncToken@@QAEHPBDHD@Z			; ncToken::findtok
EXTRN	_wcsncpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?findtok@ncToken@@QAEHPBDHD@Z
_TEXT	SEGMENT
_tCount$36816 = -20					; size = 4
_firstPos$36817 = -16					; size = 4
_mCount$36818 = -12					; size = 4
_this$ = -8						; size = 4
_strLength$36815 = -4					; size = 4
_cString$ = 8						; size = 4
_N$ = 12						; size = 4
_Token$ = 16						; size = 1
?findtok@ncToken@@QAEHPBDHD@Z PROC			; ncToken::findtok, COMDAT
; _this$ = ecx

; 459  : {

	sub	esp, 20					; 00000014H
	push	ebx
	push	ebp
	push	esi
	push	edi

; 460  : 	if (cString)

	xor	edi, edi
	cmp	DWORD PTR _cString$[esp+32], edi
	mov	DWORD PTR _this$[esp+36], ecx
	je	$LN1@findtok

; 461  : 	{
; 462  : 		int strLength = wcslen(this->m_wString);

	mov	edx, DWORD PTR [ecx+4]
	mov	eax, edx
	lea	esi, DWORD PTR [eax+2]
	npad	1
$LL30@findtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, di
	jne	SHORT $LL30@findtok
	sub	eax, esi
	sar	eax, 1

; 463  : 		int tCount = 1;

	mov	ebp, 1

; 464  : 		int firstPos = 0;
; 465  : 		int mCount = 0;
; 466  : 		for (int i = 1; i < strLength; i++)

	cmp	eax, ebp
	mov	DWORD PTR _strLength$36815[esp+36], eax
	mov	DWORD PTR _tCount$36816[esp+36], ebp
	mov	DWORD PTR _firstPos$36817[esp+36], edi
	mov	DWORD PTR _mCount$36818[esp+36], edi
	jle	$LN7@findtok
	npad	4
$LL33@findtok:

; 467  : 		{
; 468  : 			if (this->m_wString[i] == Token)

	movzx	esi, WORD PTR [edx+ebp*2]
	movsx	ecx, BYTE PTR _Token$[esp+32]
	cmp	esi, ecx
	jne	$LN8@findtok

; 469  : 			{
; 470  : 				wchar_t *tmpBuf = new wchar_t[i - firstPos +1],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	470					; 000001d6H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	esi, ebp
	sub	esi, DWORD PTR _firstPos$36817[esp+48]
	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[]

; 471  : 						*cStr = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	471					; 000001d7H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	edi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR _cString$[esp+60]
	add	esp, 28					; 0000001cH
	lea	ecx, DWORD PTR [eax+1]
$LL31@findtok:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL31@findtok
	sub	eax, ecx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 472  : 				tmpBuf[i - firstPos] = '\0';
; 473  : 				wcsncpy(tmpBuf,this->m_wString + firstPos,i - firstPos);

	mov	ecx, DWORD PTR _firstPos$36817[esp+40]
	mov	WORD PTR [edi+esi*2], 0
	push	esi
	mov	esi, DWORD PTR _this$[esp+44]
	mov	ebx, eax
	mov	eax, DWORD PTR [esi+4]
	lea	edx, DWORD PTR [eax+ecx*2]
	push	edx
	push	edi
	call	_wcsncpy

; 474  : 				if (!wcsicmp(tmpBuf,cStr))

	push	ebx
	push	edi
	call	_wcsicmp
	add	esp, 24					; 00000018H
	test	eax, eax
	jne	SHORT $LN32@findtok

; 475  : 				{
; 476  : 					mCount++;
; 477  : 					if (tCount == N)

	mov	eax, DWORD PTR _tCount$36816[esp+36]
	add	DWORD PTR _mCount$36818[esp+36], 1
	cmp	eax, DWORD PTR _N$[esp+32]
	je	$LN27@findtok
$LN32@findtok:

; 482  : 					}
; 483  : 				}
; 484  : 				delete [] tmpBuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	484					; 000001e4H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 485  : 				delete [] cStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	485					; 000001e5H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]

; 486  : 				tCount++;
; 487  : 				while (this->m_wString[i] == Token)

	mov	edx, DWORD PTR [esi+4]
	movzx	esi, WORD PTR [edx+ebp*2]
	movsx	eax, BYTE PTR _Token$[esp+64]
	add	DWORD PTR _tCount$36816[esp+68], 1
	lea	ecx, DWORD PTR [edx+ebp*2]
	add	esp, 32					; 00000020H
	cmp	esi, eax
	jne	SHORT $LN2@findtok
$LL3@findtok:
	movzx	esi, WORD PTR [ecx+2]

; 488  : 					i++;

	add	ecx, 2
	add	ebp, 1
	cmp	esi, eax
	je	SHORT $LL3@findtok
$LN2@findtok:

; 489  : 				firstPos = i;

	mov	eax, DWORD PTR _strLength$36815[esp+36]
	mov	DWORD PTR _firstPos$36817[esp+36], ebp
$LN8@findtok:
	add	ebp, 1
	cmp	ebp, eax
	jl	$LL33@findtok
$LN7@findtok:

; 490  : 			}
; 491  : 		}
; 492  : 		if (N == 0)

	cmp	DWORD PTR _N$[esp+32], 0
	jne	SHORT $LN1@findtok

; 493  : 			return mCount;

	mov	eax, DWORD PTR _mCount$36818[esp+36]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 496  : }

	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
$LN27@findtok:

; 478  : 					{
; 479  : 						delete [] tmpBuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	479					; 000001dfH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 480  : 						delete [] cStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	480					; 000001e0H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]

; 481  : 						return tCount;

	mov	eax, DWORD PTR _tCount$36816[esp+68]
	add	esp, 32					; 00000020H
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 496  : }

	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
$LN1@findtok:
	pop	edi
	pop	esi
	pop	ebp

; 494  : 	}
; 495  : 	return -1;

	or	eax, -1
	pop	ebx

; 496  : }

	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
?findtok@ncToken@@QAEHPBDHD@Z ENDP			; ncToken::findtok
_TEXT	ENDS
PUBLIC	?istok@ncToken@@QAE_NPBDD@Z			; ncToken::istok
; Function compile flags: /Ogtpy
;	COMDAT ?istok@ncToken@@QAE_NPBDD@Z
_TEXT	SEGMENT
_firstPos$36911 = -12					; size = 4
_this$ = -8						; size = 4
_strLength$36910 = -4					; size = 4
_cString$ = 8						; size = 4
_Token$ = 12						; size = 1
?istok@ncToken@@QAE_NPBDD@Z PROC			; ncToken::istok, COMDAT
; _this$ = ecx

; 590  : {

	sub	esp, 12					; 0000000cH
	push	ebx
	push	ebp

; 591  : 	if (cString)

	xor	ebp, ebp
	cmp	DWORD PTR _cString$[esp+16], ebp
	push	esi
	push	edi
	mov	DWORD PTR _this$[esp+28], ecx
	je	$LN5@istok

; 592  : 	{
; 593  : 		int strLength = wcslen(this->m_wString);

	mov	edx, DWORD PTR [ecx+4]
	mov	eax, edx
	lea	esi, DWORD PTR [eax+2]
	npad	1
$LL28@istok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bp
	jne	SHORT $LL28@istok
	sub	eax, esi
	sar	eax, 1

; 594  : 		int firstPos = 0;
; 595  : 		for (int i = 0; i < strLength; i++)

	cmp	eax, ebp
	mov	DWORD PTR _strLength$36910[esp+28], eax
	mov	DWORD PTR _firstPos$36911[esp+28], ebp
	jle	$LN5@istok
	npad	1
$LL31@istok:

; 596  : 		{
; 597  : 			if (this->m_wString[i] == Token)

	movzx	esi, WORD PTR [edx+ebp*2]
	movsx	ecx, BYTE PTR _Token$[esp+24]
	cmp	esi, ecx
	jne	$LN6@istok

; 598  : 			{
; 599  : 				wchar_t *tmpBuf = new wchar_t[i - firstPos +1],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	599					; 00000257H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	esi, ebp
	sub	esi, DWORD PTR _firstPos$36911[esp+40]
	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[]

; 600  : 						*cStr = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	600					; 00000258H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	edi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR _cString$[esp+52]
	add	esp, 28					; 0000001cH
	lea	ecx, DWORD PTR [eax+1]
$LL29@istok:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL29@istok
	sub	eax, ecx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 601  : 				tmpBuf[i - firstPos] = '\0';
; 602  : 				wcsncpy(tmpBuf,this->m_wString + firstPos,i - firstPos);

	mov	edx, DWORD PTR _firstPos$36911[esp+32]
	mov	ebx, eax
	mov	eax, DWORD PTR _this$[esp+32]
	mov	WORD PTR [edi+esi*2], 0
	mov	ecx, DWORD PTR [eax+4]
	push	esi
	lea	eax, DWORD PTR [ecx+edx*2]
	push	eax
	push	edi
	call	_wcsncpy

; 603  : 				mbstowcs(cStr,cString,strlen(cString) *2);

	mov	ecx, DWORD PTR _cString$[esp+40]
	mov	eax, ecx
	add	esp, 16					; 00000010H
	lea	esi, DWORD PTR [eax+1]
$LL30@istok:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL30@istok
	sub	eax, esi
	lea	edx, DWORD PTR [eax+eax]
	push	edx
	push	ecx
	push	ebx
	call	_mbstowcs

; 604  : 				if (!wcsicmp(tmpBuf,cStr))

	push	ebx
	push	edi
	call	_wcsicmp
	add	esp, 20					; 00000014H
	test	eax, eax

; 609  : 				}
; 610  : 				delete [] tmpBuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	je	SHORT $LN25@istok
	push	610					; 00000262H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 611  : 				delete [] cStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	611					; 00000263H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]

; 612  : 				while (this->m_wString[i] == Token)

	mov	eax, DWORD PTR _this$[esp+60]
	mov	edx, DWORD PTR [eax+4]
	movzx	esi, WORD PTR [edx+ebp*2]
	movsx	ecx, BYTE PTR _Token$[esp+56]
	lea	eax, DWORD PTR [edx+ebp*2]
	add	esp, 32					; 00000020H
	cmp	esi, ecx
	jne	SHORT $LN1@istok
$LL2@istok:
	movzx	esi, WORD PTR [eax+2]

; 613  : 					i++;

	add	eax, 2
	add	ebp, 1
	cmp	esi, ecx
	je	SHORT $LL2@istok
$LN1@istok:

; 614  : 				firstPos = i;

	mov	eax, DWORD PTR _strLength$36910[esp+28]
	mov	DWORD PTR _firstPos$36911[esp+28], ebp
$LN6@istok:
	add	ebp, 1
	cmp	ebp, eax
	jl	$LL31@istok
$LN5@istok:
	pop	edi
	pop	esi
	pop	ebp

; 615  : 			}
; 616  : 		}
; 617  : 	}
; 618  : 	return false;

	xor	al, al
	pop	ebx

; 619  : }

	add	esp, 12					; 0000000cH
	ret	8
$LN25@istok:

; 605  : 				{
; 606  : 					delete [] tmpBuf;

	push	606					; 0000025eH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 607  : 					delete [] cStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	607					; 0000025fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 32					; 00000020H
	pop	edi
	pop	esi
	pop	ebp

; 608  : 					return true;

	mov	al, 1
	pop	ebx

; 619  : }

	add	esp, 12					; 0000000cH
	ret	8
?istok@ncToken@@QAE_NPBDD@Z ENDP			; ncToken::istok
_TEXT	ENDS
PUBLIC	?matchtok@ncToken@@QAE?AV1@PBDHD@Z		; ncToken::matchtok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?matchtok@ncToken@@QAE?AV1@PBDHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?matchtok@ncToken@@QAE?AV1@PBDHD@Z$0
__ehfuncinfo$?matchtok@ncToken@@QAE?AV1@PBDHD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?matchtok@ncToken@@QAE?AV1@PBDHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?matchtok@ncToken@@QAE?AV1@PBDHD@Z
_TEXT	SEGMENT
_i$36943 = -32						; size = 4
_tCount$36941 = -28					; size = 4
$T40390 = -24						; size = 4
_this$ = -20						; size = 4
_strLength$36940 = -16					; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_mString$ = 12						; size = 4
_N$ = 16						; size = 4
_Token$ = 20						; size = 1
?matchtok@ncToken@@QAE?AV1@PBDHD@Z PROC			; ncToken::matchtok, COMDAT
; _this$ = ecx

; 622  : {

	push	-1
	push	__ehhandler$?matchtok@ncToken@@QAE?AV1@PBDHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	ebx
	xor	ebx, ebx
	mov	DWORD PTR $T40390[esp+36], ebx
	push	edi

; 623  : 	ncToken sToken(*this);

	mov	edi, DWORD PTR ___$ReturnUdt$[esp+36]
	mov	DWORD PTR [edi], ebx
	mov	DWORD PTR [edi+4], ebx
	mov	eax, DWORD PTR [ecx+4]
	mov	DWORD PTR _this$[esp+40], ecx
	push	eax
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+52], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 657  : 	}
; 658  : 	return sToken;

	cmp	DWORD PTR _mString$[esp+36], ebx
	mov	DWORD PTR __$EHRec$[esp+48], ebx
	mov	DWORD PTR $T40390[esp+40], 1
	je	$LN41@matchtok

; 624  : 	if (mString && N >= 0)

	cmp	DWORD PTR _N$[esp+36], ebx
	jl	$LN41@matchtok

; 625  : 	{
; 626  : 		int strLength = wcslen(sToken.m_wString);

	mov	eax, DWORD PTR [edi+4]
	lea	edx, DWORD PTR [eax+2]
$LL36@matchtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL36@matchtok
	push	ebp
	sub	eax, edx
	sar	eax, 1
	push	esi

; 627  : 		int tCount = 0;
; 628  : 		int firstPos = 0;
; 629  : 		for (int i = 0; i < strLength; i++)

	xor	esi, esi
	xor	ebp, ebp
	cmp	eax, ebx
	mov	DWORD PTR _strLength$36940[esp+48], eax
	mov	DWORD PTR _tCount$36941[esp+48], ebx
	mov	DWORD PTR _i$36943[esp+48], esi
	jle	$LN43@matchtok
	npad	5
$LL44@matchtok:

; 630  : 		{
; 631  : 			if (sToken.m_wString[i] == Token)

	mov	ecx, DWORD PTR [edi+4]
	movzx	edx, WORD PTR [ecx+esi*2]
	movsx	ecx, BYTE PTR _Token$[esp+44]
	cmp	edx, ecx
	jne	$LN8@matchtok

; 632  : 			{
; 633  : 				wchar_t *rSbuf = new wchar_t[i - firstPos +1],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	633					; 00000279H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	sub	esi, ebp
	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[]

; 634  : 						*mStr = new wchar_t[strlen(mString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	634					; 0000027aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	edi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR _mString$[esp+72]
	add	esp, 28					; 0000001cH
	lea	ecx, DWORD PTR [eax+1]
$LL37@matchtok:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL37@matchtok
	sub	eax, ecx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 635  : 				rSbuf[i - firstPos] = '\0';
; 636  : 				wcsncpy(rSbuf,sToken.m_wString + firstPos,i - firstPos);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	WORD PTR [edi+esi*2], 0
	mov	ecx, DWORD PTR [eax+4]
	push	esi
	lea	edx, DWORD PTR [ecx+ebp*2]
	push	edx
	push	edi
	call	_wcsncpy

; 637  : 				mbstowcs(mStr,mString,strlen(mString));

	mov	esi, DWORD PTR _mString$[esp+60]
	mov	eax, esi
	add	esp, 16					; 00000010H
	lea	ebp, DWORD PTR [eax+1]
	npad	3
$LL38@matchtok:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL38@matchtok
	sub	eax, ebp
	push	eax
	push	esi
	push	ebx
	call	_mbstowcs

; 638  : 				if (this->_wcsstr(rSbuf,mStr,false))

	mov	ecx, DWORD PTR _this$[esp+60]
	add	esp, 12					; 0000000cH
	push	0
	push	ebx
	push	edi
	call	?_wcsstr@ncToken@@AAEPA_WPB_W0_N@Z	; ncToken::_wcsstr
	test	eax, eax
	je	SHORT $LN42@matchtok

; 639  : 				{
; 640  : 					tCount++;

	mov	eax, DWORD PTR _tCount$36941[esp+48]
	add	eax, 1

; 641  : 					if (tCount == N)

	cmp	eax, DWORD PTR _N$[esp+44]
	mov	DWORD PTR _tCount$36941[esp+48], eax
	je	$LN33@matchtok
$LN42@matchtok:

; 645  : 						break;
; 646  : 					}
; 647  : 				}
; 648  : 				while (sToken.m_wString[i] == Token)

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+44]
	mov	edx, DWORD PTR _i$36943[esp+48]
	mov	ecx, DWORD PTR [eax+4]
	add	edx, edx
	movzx	esi, WORD PTR [edx+ecx]
	movsx	ecx, BYTE PTR _Token$[esp+44]
	cmp	esi, ecx
	jne	SHORT $LN2@matchtok
	mov	eax, DWORD PTR [eax+4]
	add	eax, edx
	mov	edx, 1
$LL3@matchtok:
	movzx	esi, WORD PTR [eax+2]

; 649  : 					i++;

	add	DWORD PTR _i$36943[esp+48], edx
	add	eax, 2
	cmp	esi, ecx
	je	SHORT $LL3@matchtok
$LN2@matchtok:

; 650  : 				firstPos = i;

	mov	ebp, DWORD PTR _i$36943[esp+48]

; 651  : 				delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	651					; 0000028bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 652  : 				delete [] mStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	652					; 0000028cH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]
	mov	eax, DWORD PTR _strLength$36940[esp+80]
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+76]
	add	esp, 32					; 00000020H
	xor	ebx, ebx
	mov	esi, ebp
$LN8@matchtok:
	add	esi, 1
	cmp	esi, eax
	mov	DWORD PTR _i$36943[esp+48], esi
	jl	$LL44@matchtok

; 641  : 					if (tCount == N)

	jmp	SHORT $LN43@matchtok
$LN33@matchtok:

; 642  : 					{
; 643  : 						sToken.setString(rSbuf);

	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+44]
	push	edi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 644  : 						delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	644					; 00000284H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+60]
	add	esp, 16					; 00000010H
	xor	ebx, ebx
$LN43@matchtok:

; 653  : 			}
; 654  : 		}
; 655  : 		if (N == 0)

	cmp	DWORD PTR _N$[esp+44], ebx
	pop	esi
	pop	ebp
	jne	SHORT $LN41@matchtok

; 656  : 			sToken = tCount;

	mov	ecx, edi
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	246					; 000000f6H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	24					; 00000018H
	call	??_U@YAPAXI@Z				; operator new[]
	mov	edx, DWORD PTR _tCount$36941[esp+56]
	push	edx
	push	OFFSET ??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@
	push	eax
	mov	edx, 11					; 0000000bH
	mov	DWORD PTR [edi+4], eax
	call	_swprintf
	add	esp, 28					; 0000001cH
$LN41@matchtok:

; 659  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	eax, edi
	pop	edi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?matchtok@ncToken@@QAE?AV1@PBDHD@Z$0:
	mov	eax, DWORD PTR $T40390[ebp]
	and	eax, 1
	je	$LN24@matchtok
	and	DWORD PTR $T40390[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN24@matchtok:
	ret	0
__ehhandler$?matchtok@ncToken@@QAE?AV1@PBDHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?matchtok@ncToken@@QAE?AV1@PBDHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?matchtok@ncToken@@QAE?AV1@PBDHD@Z ENDP			; ncToken::matchtok
PUBLIC	?numtok@ncToken@@QAEHD@Z			; ncToken::numtok
; Function compile flags: /Ogtpy
;	COMDAT ?numtok@ncToken@@QAEHD@Z
_TEXT	SEGMENT
_Token$ = 8						; size = 1
?numtok@ncToken@@QAEHD@Z PROC				; ncToken::numtok, COMDAT
; _this$ = ecx

; 662  : {

	push	esi

; 663  : 	if (!*this->m_wString)

	mov	esi, DWORD PTR [ecx+4]
	cmp	WORD PTR [esi], 0
	jne	SHORT $LN5@numtok

; 664  : 		return 0;

	xor	eax, eax
	pop	esi

; 671  : 	}
; 672  : 	return count;
; 673  : }

	ret	4
$LN5@numtok:

; 665  : 	int count = 1;
; 666  : 	int strLength = wcslen(this->m_wString);

	mov	ecx, esi
	push	edi
	mov	eax, 1
	lea	edi, DWORD PTR [ecx+2]
	npad	5
$LL10@numtok:
	mov	dx, WORD PTR [ecx]
	add	ecx, 2
	test	dx, dx
	jne	SHORT $LL10@numtok
	sub	ecx, edi
	sar	ecx, 1

; 667  : 	for (int i = 0; i < strLength; i++)

	xor	edx, edx
	test	ecx, ecx
	jle	SHORT $LN2@numtok
	movsx	edi, BYTE PTR _Token$[esp+4]
	push	ebx
	npad	5
$LL4@numtok:

; 668  : 	{
; 669  : 		if (this->m_wString[i] == Token && i > 0 && this->m_wString[i -1] != Token)

	movzx	ebx, WORD PTR [esi]
	cmp	ebx, edi
	jne	SHORT $LN3@numtok
	test	edx, edx
	jle	SHORT $LN3@numtok
	movzx	ebx, WORD PTR [esi-2]
	cmp	ebx, edi
	je	SHORT $LN3@numtok

; 670  : 			count++;

	add	eax, 1
$LN3@numtok:

; 667  : 	for (int i = 0; i < strLength; i++)

	add	edx, 1
	add	esi, 2
	cmp	edx, ecx
	jl	SHORT $LL4@numtok
	pop	ebx
$LN2@numtok:
	pop	edi
	pop	esi

; 671  : 	}
; 672  : 	return count;
; 673  : }

	ret	4
?numtok@ncToken@@QAEHD@Z ENDP				; ncToken::numtok
_TEXT	ENDS
PUBLIC	?puttok@ncToken@@QAE?AV1@PBDHD@Z		; ncToken::puttok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?puttok@ncToken@@QAE?AV1@PBDHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?puttok@ncToken@@QAE?AV1@PBDHD@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?puttok@ncToken@@QAE?AV1@PBDHD@Z$0
__ehfuncinfo$?puttok@ncToken@@QAE?AV1@PBDHD@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?puttok@ncToken@@QAE?AV1@PBDHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?puttok@ncToken@@QAE?AV1@PBDHD@Z
_TEXT	SEGMENT
_tCount$36989 = -36					; size = 4
$T40442 = -32						; size = 4
_sToken$ = -28						; size = 8
_strLength$36986 = -20					; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_pString$ = 12						; size = 4
_N$ = 16						; size = 4
_Token$ = 20						; size = 1
?puttok@ncToken@@QAE?AV1@PBDHD@Z PROC			; ncToken::puttok, COMDAT
; _this$ = ecx

; 676  : {

	push	-1
	push	__ehhandler$?puttok@ncToken@@QAE?AV1@PBDHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
	push	esi
	xor	ebp, ebp
	mov	esi, ecx
	mov	DWORD PTR $T40442[esp+48], ebp

; 677  : 	ncToken sToken(*this);

	mov	eax, DWORD PTR [esi+4]
	push	edi
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+56]
	mov	DWORD PTR _sToken$[esp+56], ebp
	mov	DWORD PTR _sToken$[esp+60], ebp
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 678  : 	if (pString && N != 0)

	mov	ebx, DWORD PTR _pString$[esp+48]
	cmp	ebx, ebp
	mov	DWORD PTR __$EHRec$[esp+60], 1
	je	$LN53@puttok
	mov	edi, DWORD PTR _N$[esp+48]
	cmp	edi, ebp
	je	$LN53@puttok

; 679  : 	{
; 680  : 		if (N < 0)

	jge	SHORT $LN54@puttok

; 681  : 			N = this->numtok(Token) + N +1;

	mov	ecx, DWORD PTR _Token$[esp+48]
	push	ecx
	mov	ecx, esi
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok
	lea	edx, DWORD PTR [edi+eax+1]
	mov	DWORD PTR _N$[esp+48], edx
	mov	edi, edx
$LN54@puttok:

; 682  : 		if (N > sToken.numtok(Token))

	mov	eax, DWORD PTR _Token$[esp+48]
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+56]
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok
	cmp	edi, eax
	jle	SHORT $LN10@puttok

; 683  : 			return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	ecx, DWORD PTR _sToken$[esp+56]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [esi], ebp
	mov	DWORD PTR [esi+4], ebp
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	lea	ecx, DWORD PTR _sToken$[esp+52]
	mov	DWORD PTR $T40442[esp+52], 1
	mov	BYTE PTR __$EHRec$[esp+60], 0
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	jmp	$LN33@puttok
$LN10@puttok:

; 684  : 		int strLength[] = {
; 685  : 			strlen(pString),

	mov	eax, ebx
	lea	edx, DWORD PTR [eax+1]
$LL49@puttok:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL49@puttok

; 686  : 			wcslen(sToken.m_wString),

	mov	edi, DWORD PTR _sToken$[esp+56]
	sub	eax, edx
	mov	DWORD PTR _strLength$36986[esp+52], eax
	mov	eax, edi
	lea	edx, DWORD PTR [eax+2]
$LL50@puttok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bp
	jne	SHORT $LL50@puttok
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax

; 687  : 		};
; 688  : 		int endPos = 0;

	xor	ebx, ebx

; 689  : 		int firstPos = 0;
; 690  : 		int tCount = 1;
; 691  : 		for (int i = 0; i < strLength[1]; i++)

	xor	eax, eax
	test	edx, edx
	mov	DWORD PTR _strLength$36986[esp+56], edx
	mov	DWORD PTR _tCount$36989[esp+52], 1
	jle	SHORT $LN7@puttok
	movsx	ecx, BYTE PTR _Token$[esp+48]
	npad	6
$LL9@puttok:

; 692  : 		{
; 693  : 			if (sToken.m_wString[i] == Token && i > 0 && sToken.m_wString[i -1] != Token)

	movzx	esi, WORD PTR [edi+eax*2]
	cmp	esi, ecx
	jne	SHORT $LN8@puttok
	test	eax, eax
	jle	SHORT $LN8@puttok
	movzx	esi, WORD PTR [edi+eax*2-2]
	cmp	esi, ecx
	je	SHORT $LN8@puttok

; 694  : 			{
; 695  : 				tCount++;

	mov	edx, DWORD PTR _tCount$36989[esp+52]

; 696  : 				if (tCount == N +1)

	mov	esi, DWORD PTR _N$[esp+48]
	add	edx, 1
	add	esi, 1
	cmp	edx, esi
	mov	DWORD PTR _tCount$36989[esp+52], edx
	je	SHORT $LN44@puttok

; 699  : 					break;
; 700  : 				}
; 701  : 				if (tCount == N)

	cmp	edx, DWORD PTR _N$[esp+48]
	jne	SHORT $LL3@puttok

; 702  : 					firstPos = i +1;

	lea	ebp, DWORD PTR [eax+1]
$LL3@puttok:

; 703  : 				while (sToken.m_wString[i] == Token)

	movzx	edx, WORD PTR [edi+eax*2+2]

; 704  : 					i++;

	add	eax, 1
	cmp	edx, ecx
	je	SHORT $LL3@puttok

; 703  : 				while (sToken.m_wString[i] == Token)

	mov	edx, DWORD PTR _strLength$36986[esp+56]
$LN8@puttok:

; 689  : 		int firstPos = 0;
; 690  : 		int tCount = 1;
; 691  : 		for (int i = 0; i < strLength[1]; i++)

	add	eax, 1
	cmp	eax, edx
	jl	SHORT $LL9@puttok

; 696  : 				if (tCount == N +1)

	jmp	SHORT $LN7@puttok
$LN44@puttok:

; 697  : 				{
; 698  : 					endPos = i;

	mov	edx, DWORD PTR _strLength$36986[esp+56]
	mov	ebx, eax
$LN7@puttok:

; 705  : 			}
; 706  : 		}
; 707  : 		if ((endPos - firstPos) > 0)

	mov	eax, ebx
	sub	eax, ebp
	test	eax, eax
	jle	$LN55@puttok

; 708  : 		{
; 709  : 			int newLength = strLength[1] - (endPos - firstPos) + strLength[0];

	mov	esi, ebp

; 710  : 			wchar_t *newStr = new wchar_t[newLength +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	sub	esi, ebx
	add	esi, edx
	add	esi, DWORD PTR _strLength$36986[esp+56]
	push	710					; 000002c6H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?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[]

; 711  : 			wcsncpy(newStr,sToken.m_wString,firstPos);

	push	ebp
	mov	esi, eax
	push	edi
	push	esi
	call	_wcsncpy

; 712  : 			mbstowcs(newStr + firstPos,pString,strLength[0]);

	mov	eax, DWORD PTR _strLength$36986[esp+80]
	mov	ecx, DWORD PTR _pString$[esp+76]
	push	eax
	push	ecx
	lea	edx, DWORD PTR [esi+ebp*2]
	push	edx
	call	_mbstowcs

; 713  : 			wcscpy(newStr + firstPos + strLength[0],sToken.m_wString + endPos);

	mov	ecx, DWORD PTR _strLength$36986[esp+92]
	add	ebp, ecx
	lea	eax, DWORD PTR [edi+ebx*2]
	add	ebp, ebp
	add	esp, 40					; 00000028H
	sub	ebp, eax
	lea	edx, DWORD PTR [esi+ebp]
$LL17@puttok:
	movzx	ecx, WORD PTR [eax]
	mov	WORD PTR [edx+eax], cx
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL17@puttok

; 714  : 			sToken.setString(newStr);

	push	esi
	lea	ecx, DWORD PTR _sToken$[esp+56]
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 715  : 			delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	715					; 000002cbH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	mov	edi, DWORD PTR _sToken$[esp+72]
	add	esp, 16					; 00000010H
$LN55@puttok:
	xor	ebp, ebp
$LN19@puttok:

; 716  : 		}
; 717  : 	}
; 718  : 	return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+48]
	push	edi
	mov	ecx, esi
	mov	DWORD PTR [esi], ebp
	mov	DWORD PTR [esi+4], ebp
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	cmp	edi, ebp
	mov	DWORD PTR $T40442[esp+52], 1
	mov	BYTE PTR __$EHRec$[esp+60], 0
	je	SHORT $LN57@puttok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	26					; 0000001aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN57@puttok:
	mov	edi, DWORD PTR _sToken$[esp+52]
	cmp	edi, ebp
	je	SHORT $LN33@puttok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	31					; 0000001fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN33@puttok:

; 719  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN53@puttok:

; 715  : 			delete [] newStr;

	mov	edi, DWORD PTR _sToken$[esp+56]
	jmp	SHORT $LN19@puttok
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?puttok@ncToken@@QAE?AV1@PBDHD@Z$0:
	lea	ecx, DWORD PTR _sToken$[ebp]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
__unwindfunclet$?puttok@ncToken@@QAE?AV1@PBDHD@Z$1:
	mov	eax, DWORD PTR $T40442[ebp]
	and	eax, 1
	je	$LN22@puttok
	and	DWORD PTR $T40442[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN22@puttok:
	ret	0
__ehhandler$?puttok@ncToken@@QAE?AV1@PBDHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?puttok@ncToken@@QAE?AV1@PBDHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?puttok@ncToken@@QAE?AV1@PBDHD@Z ENDP			; ncToken::puttok
PUBLIC	?remtok@ncToken@@QAE?AV1@PBDHHD@Z		; ncToken::remtok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?remtok@ncToken@@QAE?AV1@PBDHHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?remtok@ncToken@@QAE?AV1@PBDHHD@Z$0
__ehfuncinfo$?remtok@ncToken@@QAE?AV1@PBDHHD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?remtok@ncToken@@QAE?AV1@PBDHHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?remtok@ncToken@@QAE?AV1@PBDHHD@Z
_TEXT	SEGMENT
_i$37021 = -48						; size = 4
_newStr$37018 = -44					; size = 4
_tCount$37017 = -40					; size = 4
_tmp$37035 = -36					; size = 4
_tmp$37037 = -32					; size = 4
_tmp$37041 = -28					; size = 4
$T40533 = -24						; size = 4
_strLength$37016 = -20					; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_rString$ = 12						; size = 4
_First$ = 16						; size = 4
_Total$ = 20						; size = 4
_Token$ = 24						; size = 1
?remtok@ncToken@@QAE?AV1@PBDHHD@Z PROC			; ncToken::remtok, COMDAT
; _this$ = ecx

; 722  : {

	push	-1
	push	__ehhandler$?remtok@ncToken@@QAE?AV1@PBDHHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 36					; 00000024H
	push	ebx
	xor	ebx, ebx
	mov	DWORD PTR $T40533[esp+52], ebx
	push	ebp

; 723  : 	ncToken sToken(*this);

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+52]
	mov	DWORD PTR [ebp], ebx
	mov	DWORD PTR [ebp+4], ebx
	mov	eax, DWORD PTR [ecx+4]
	push	eax
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+68], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 775  : 	}
; 776  : 	return sToken;

	mov	eax, DWORD PTR _rString$[esp+52]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+64], ebx
	mov	DWORD PTR $T40533[esp+56], 1
	je	$LN40@remtok

; 724  : 	if (rString && First > 0)

	cmp	DWORD PTR _First$[esp+52], ebx
	jle	$LN40@remtok

; 725  : 	{
; 726  : 		int strLength[] = {
; 727  : 			strlen(rString),

	lea	edx, DWORD PTR [eax+1]
	npad	2
$LL31@remtok:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL31@remtok
	sub	eax, edx
	push	esi
	push	edi
	mov	edi, eax

; 728  : 			wcslen(sToken.m_wString),

	mov	eax, DWORD PTR [ebp+4]
	mov	DWORD PTR _strLength$37016[esp+64], edi
	lea	edx, DWORD PTR [eax+2]
	npad	7
$LL32@remtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL32@remtok
	sub	eax, edx

; 729  : 		};
; 730  : 		int tCount = 0;
; 731  : 		wchar_t *newStr = new wchar_t[strLength[1] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	sar	eax, 1
	mov	esi, eax
	push	731					; 000002dbH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	DWORD PTR _strLength$37016[esp+80], esi
	mov	DWORD PTR _tCount$37017[esp+76], ebx
	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[]
	mov	ebx, eax
	add	esp, 16					; 00000010H

; 732  : 		newStr[0] = '\0';
; 733  : 		for (int i = 0; i < strLength[1]; i++)

	test	esi, esi
	mov	DWORD PTR _newStr$37018[esp+64], ebx
	mov	WORD PTR [ebx], 0
	mov	DWORD PTR _i$37021[esp+64], 0
	jle	$LN7@remtok
$LL9@remtok:

; 734  : 		{
; 735  : 			if (sToken.m_wString[i] == Token)

	mov	ecx, DWORD PTR _i$37021[esp+64]
	mov	eax, DWORD PTR [ebp+4]
	movzx	eax, WORD PTR [eax+ecx*2]
	movsx	ecx, BYTE PTR _Token$[esp+60]
	movzx	edx, ax
	cmp	edx, ecx
	jne	$LN6@remtok

; 736  : 			{
; 737  : 				wchar_t *rSbuf = new wchar_t[strLength[0] +1],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	737					; 000002e1H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	esi, DWORD PTR [edi+1]
	mov	eax, esi
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 738  : 						*rStr = new wchar_t[strLength[0] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	738					; 000002e2H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	ebp, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	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[]

; 739  : 				rSbuf[strLength[0]] = '\0';
; 740  : 				wcsncpy(rSbuf,sToken.m_wString + i +1,strLength[0]);

	mov	esi, DWORD PTR _i$37021[esp+96]
	mov	ebx, eax
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+92]
	mov	WORD PTR [ebp+edi*2], 0
	mov	ecx, DWORD PTR [eax+4]
	push	edi
	lea	edx, DWORD PTR [ecx+esi*2+2]
	push	edx
	push	ebp
	call	_wcsncpy

; 741  : 				mbstowcs(rStr,rString,strLength[0]);

	mov	eax, DWORD PTR _rString$[esp+104]
	push	edi
	push	eax
	push	ebx
	call	_mbstowcs

; 742  : 				if (!wcsicmp(rSbuf,rStr))

	push	ebx
	push	ebp
	call	_wcsicmp
	add	esp, 64					; 00000040H
	test	eax, eax
	jne	SHORT $LN5@remtok

; 743  : 				{
; 744  : 					tCount++;

	mov	eax, DWORD PTR _tCount$37017[esp+64]

; 745  : 					if (tCount >= First && tCount < (First + Total))

	mov	ecx, DWORD PTR _First$[esp+60]
	add	eax, 1
	cmp	eax, ecx
	mov	DWORD PTR _tCount$37017[esp+64], eax
	jl	SHORT $LN4@remtok
	mov	edx, DWORD PTR _Total$[esp+60]
	add	ecx, edx
	cmp	eax, ecx
	jge	SHORT $LN4@remtok

; 746  : 						i += strLength[0];

	add	esi, edi

; 747  : 					else

	jmp	$LN2@remtok
$LN4@remtok:

; 748  : 					{
; 749  : 						wchar_t tmp[2];
; 750  : 						tmp[0] = sToken.m_wString[i];

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	ecx, DWORD PTR [eax+4]
	mov	dx, WORD PTR [ecx+esi*2]

; 751  : 						tmp[1] = '\0';
; 752  : 						wcscat(newStr,tmp);

	lea	eax, DWORD PTR _tmp$37035[esp+64]
	mov	WORD PTR _tmp$37035[esp+64], dx
	mov	WORD PTR _tmp$37035[esp+66], 0
	mov	edx, eax
$LL33@remtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL33@remtok
	mov	edi, DWORD PTR _newStr$37018[esp+64]
	sub	eax, edx
	add	edi, -2					; fffffffeH
	npad	5
$LL34@remtok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL34@remtok

; 753  : 					}
; 754  : 				}
; 755  : 				else

	jmp	SHORT $LN43@remtok
$LN5@remtok:

; 756  : 				{
; 757  : 					wchar_t tmp[2];
; 758  : 					tmp[0] = sToken.m_wString[i];

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	ecx, DWORD PTR [eax+4]
	mov	dx, WORD PTR [ecx+esi*2]

; 759  : 					tmp[1] = '\0';
; 760  : 					wcscat(newStr,tmp);

	lea	eax, DWORD PTR _tmp$37037[esp+64]
	mov	WORD PTR _tmp$37037[esp+64], dx
	mov	WORD PTR _tmp$37037[esp+66], 0
	mov	edx, eax
	npad	5
$LL35@remtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL35@remtok
	mov	edi, DWORD PTR _newStr$37018[esp+64]
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL36@remtok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL36@remtok
$LN43@remtok:
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	mov	esi, DWORD PTR _i$37021[esp+64]
	mov	edi, DWORD PTR _strLength$37016[esp+64]
$LN2@remtok:

; 761  : 				}
; 762  : 				delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	762					; 000002faH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]

; 763  : 				delete [] rStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	763					; 000002fbH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 32					; 00000020H

; 764  : 			}
; 765  : 			else

	jmp	SHORT $LN8@remtok
$LN6@remtok:

; 766  : 			{
; 767  : 				wchar_t tmp[2];
; 768  : 				tmp[0] = sToken.m_wString[i];

	mov	WORD PTR _tmp$37041[esp+64], ax

; 769  : 				tmp[1] = '\0';
; 770  : 				wcscat(newStr,tmp);

	lea	eax, DWORD PTR _tmp$37041[esp+64]
	mov	WORD PTR _tmp$37041[esp+66], 0
	mov	edx, eax
$LL37@remtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL37@remtok
	mov	edi, ebx
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL38@remtok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL38@remtok
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	mov	edi, DWORD PTR _strLength$37016[esp+64]
	mov	esi, DWORD PTR _i$37021[esp+64]
$LN8@remtok:
	mov	ebx, DWORD PTR _newStr$37018[esp+64]
	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+60]
	add	esi, 1
	cmp	esi, DWORD PTR _strLength$37016[esp+68]
	mov	DWORD PTR _i$37021[esp+64], esi
	jl	$LL9@remtok
$LN7@remtok:

; 771  : 			}
; 772  : 		}
; 773  : 		sToken.setString(newStr);

	push	ebx
	mov	ecx, ebp
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 774  : 		delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	774					; 00000306H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	pop	edi
	pop	esi
$LN40@remtok:

; 777  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+56]
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 48					; 00000030H
	ret	20					; 00000014H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?remtok@ncToken@@QAE?AV1@PBDHHD@Z$0:
	mov	eax, DWORD PTR $T40533[ebp]
	and	eax, 1
	je	$LN26@remtok
	and	DWORD PTR $T40533[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN26@remtok:
	ret	0
__ehhandler$?remtok@ncToken@@QAE?AV1@PBDHHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?remtok@ncToken@@QAE?AV1@PBDHHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?remtok@ncToken@@QAE?AV1@PBDHHD@Z ENDP			; ncToken::remtok
PUBLIC	?reptok@ncToken@@QAE?AV1@PBD0HD@Z		; ncToken::reptok
EXTRN	_wcsnicmp:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?reptok@ncToken@@QAE?AV1@PBD0HD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?reptok@ncToken@@QAE?AV1@PBD0HD@Z$0
__ehfuncinfo$?reptok@ncToken@@QAE?AV1@PBD0HD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?reptok@ncToken@@QAE?AV1@PBD0HD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?reptok@ncToken@@QAE?AV1@PBD0HD@Z
_TEXT	SEGMENT
_tCount$37055 = -40					; size = 4
$T40587 = -36						; size = 4
tv363 = -32						; size = 4
_firstPos$37054 = -28					; size = 4
_strLength$37053 = -24					; size = 12
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_rString$ = 12						; size = 4
_nString$ = 16						; size = 4
_N$ = 20						; size = 4
_Token$ = 24						; size = 1
?reptok@ncToken@@QAE?AV1@PBD0HD@Z PROC			; ncToken::reptok, COMDAT
; _this$ = ecx

; 780  : {

	push	-1
	push	__ehhandler$?reptok@ncToken@@QAE?AV1@PBD0HD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 28					; 0000001cH
	push	ebx
	push	esi
	push	edi
	xor	edi, edi
	mov	DWORD PTR $T40587[esp+52], edi

; 781  : 	ncToken sToken(*this);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	DWORD PTR [esi], edi
	mov	DWORD PTR [esi+4], edi
	mov	eax, DWORD PTR [ecx+4]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+64], edi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 823  : 		}
; 824  : 	}
; 825  : 	return sToken;

	mov	ebx, DWORD PTR _rString$[esp+48]
	cmp	ebx, edi
	mov	DWORD PTR __$EHRec$[esp+60], edi
	mov	DWORD PTR $T40587[esp+52], 1
	je	$LN45@reptok
	mov	eax, DWORD PTR _nString$[esp+48]
	cmp	eax, edi
	je	$LN45@reptok

; 782  : 	if (rString && nString && N > 0)

	cmp	DWORD PTR _N$[esp+48], edi
	jle	$LN45@reptok

; 783  : 	{
; 784  : 		int strLength[] = {
; 785  : 			strlen(rString),

	lea	edx, DWORD PTR [ebx+1]
	npad	6
$LL40@reptok:
	mov	cl, BYTE PTR [ebx]
	add	ebx, 1
	test	cl, cl
	jne	SHORT $LL40@reptok
	sub	ebx, edx

; 786  : 			strlen(nString),

	lea	edx, DWORD PTR [eax+1]
	npad	2
$LL41@reptok:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL41@reptok
	sub	eax, edx
	mov	DWORD PTR _strLength$37053[esp+56], eax

; 787  : 			wcslen(sToken.m_wString),

	mov	eax, DWORD PTR [esi+4]
	lea	edx, DWORD PTR [eax+2]
$LL42@reptok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, di
	jne	SHORT $LL42@reptok
	sub	eax, edx
	sar	eax, 1
	mov	DWORD PTR _strLength$37053[esp+60], eax

; 788  : 		};
; 789  : 		int firstPos = 0;
; 790  : 		int tCount = 0;
; 791  : 		for (int i = 0; i < strLength[2] - strLength[0]; i++)

	sub	eax, ebx
	cmp	eax, edi
	mov	DWORD PTR _firstPos$37054[esp+52], edi
	mov	DWORD PTR _tCount$37055[esp+52], edi
	mov	DWORD PTR tv363[esp+52], eax
	jle	$LN45@reptok
	push	ebp
	jmp	SHORT $LN9@reptok
$LL49@reptok:
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+52]
$LN9@reptok:

; 792  : 		{
; 793  : 			while (sToken.m_wString[i] == Token)

	mov	ecx, DWORD PTR [esi+4]
	lea	edx, DWORD PTR [edi+edi]
	movzx	eax, WORD PTR [edx+ecx]
	movsx	ecx, BYTE PTR _Token$[esp+52]
	cmp	eax, ecx
	jne	SHORT $LN5@reptok
	mov	eax, DWORD PTR [esi+4]
	add	eax, edx
	npad	3
$LL6@reptok:
	movzx	edx, WORD PTR [eax+2]

; 794  : 				i++;

	add	eax, 2
	add	edi, 1
	cmp	edx, ecx
	je	SHORT $LL6@reptok
$LN5@reptok:

; 795  : 			wchar_t *rSbuf = new wchar_t[strLength[0] +2],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	795					; 0000031bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	esi, DWORD PTR [ebx+2]
	mov	eax, esi
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 796  : 					*rStr = new wchar_t[strLength[0] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	796					; 0000031cH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	esi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	ebp, DWORD PTR [ebx+1]
	mov	eax, ebp
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebp, eax

; 797  : 			rSbuf[strLength[0] +1] = '\0';
; 798  : 			wcsncpy(rSbuf,sToken.m_wString + i,strLength[0] +1);

	lea	eax, DWORD PTR [ebx+1]
	push	eax
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+88]
	mov	WORD PTR [esi+ebx*2+2], 0
	mov	ecx, DWORD PTR [eax+4]
	lea	edx, DWORD PTR [ecx+edi*2]
	push	edx
	push	esi
	call	_wcsncpy

; 799  : 			mbstowcs(rStr,rString,strLength[0]);

	mov	eax, DWORD PTR _rString$[esp+96]
	push	ebx
	push	eax
	push	ebp
	call	_mbstowcs

; 800  : 			if ((rSbuf[strLength[0]] == Token || rSbuf[strLength[0]] == '\0') && !wcsnicmp(rStr,rSbuf,strLength[0]))

	movzx	eax, WORD PTR [esi+ebx*2]
	movsx	ecx, BYTE PTR _Token$[esp+108]
	movzx	edx, ax
	add	esp, 56					; 00000038H
	cmp	edx, ecx
	je	SHORT $LN3@reptok
	test	ax, ax
	jne	SHORT $LN2@reptok
$LN3@reptok:
	push	ebx
	push	esi
	push	ebp
	call	_wcsnicmp
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $LN2@reptok

; 801  : 			{
; 802  : 				tCount++;

	mov	eax, DWORD PTR _tCount$37055[esp+56]
	add	eax, 1

; 803  : 				if (tCount == N)

	cmp	eax, DWORD PTR _N$[esp+52]
	mov	DWORD PTR _tCount$37055[esp+56], eax
	je	SHORT $LN37@reptok
$LN2@reptok:

; 808  : 					break;
; 809  : 				}
; 810  : 			}
; 811  : 			delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	811					; 0000032bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]

; 812  : 			delete [] rStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	812					; 0000032cH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]
	add	edi, 1
	add	esp, 32					; 00000020H
	cmp	edi, DWORD PTR tv363[esp+56]
	jl	$LL49@reptok

; 803  : 				if (tCount == N)

	mov	edi, DWORD PTR _firstPos$37054[esp+56]
	jmp	SHORT $LN20@reptok
$LN37@reptok:

; 804  : 				{
; 805  : 					firstPos = i;
; 806  : 					delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	806					; 00000326H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]

; 807  : 					delete [] rStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	807					; 00000327H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 32					; 00000020H
$LN20@reptok:

; 813  : 		}
; 814  : 		if (tCount > 0 && tCount >= N)

	mov	eax, DWORD PTR _tCount$37055[esp+56]
	test	eax, eax
	jle	$LN44@reptok
	cmp	eax, DWORD PTR _N$[esp+52]
	jl	$LN44@reptok

; 815  : 		{
; 816  : 			int newLength = strLength[2] + ((strLength[1] - strLength[0]) * tCount);

	mov	ebp, DWORD PTR _strLength$37053[esp+60]
	mov	esi, ebp
	sub	esi, ebx
	imul	esi, eax
	add	esi, DWORD PTR _strLength$37053[esp+64]

; 817  : 			wchar_t *newStr = new wchar_t[newLength +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	817					; 00000331H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?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[]

; 818  : 			wcsncpy(newStr,sToken.m_wString,firstPos);

	mov	ebx, DWORD PTR ___$ReturnUdt$[esp+68]
	mov	esi, eax
	mov	eax, DWORD PTR [ebx+4]
	push	edi
	push	eax
	push	esi
	call	_wcsncpy

; 819  : 			mbstowcs(newStr + firstPos,nString,strLength[1]);

	mov	ecx, DWORD PTR _nString$[esp+80]
	push	ebp
	push	ecx
	lea	edx, DWORD PTR [esi+edi*2]
	push	edx
	call	_mbstowcs

; 820  : 			wcscpy(newStr + firstPos + strLength[1],sToken.m_wString + firstPos + strLength[1]);

	mov	ecx, DWORD PTR [ebx+4]
	lea	eax, DWORD PTR [edi+ebp]
	add	eax, eax
	add	esp, 40					; 00000028H
	add	ecx, eax
	add	eax, esi
$LL27@reptok:
	movzx	edx, WORD PTR [ecx]
	mov	WORD PTR [eax], dx
	add	ecx, 2
	add	eax, 2
	test	dx, dx
	jne	SHORT $LL27@reptok

; 821  : 			sToken.setString(newStr);

	push	esi
	mov	ecx, ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 822  : 			delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	822					; 00000336H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	pop	ebp
	pop	edi
	pop	esi

; 823  : 		}
; 824  : 	}
; 825  : 	return sToken;

	mov	eax, ebx
	pop	ebx

; 826  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	DWORD PTR fs:0, ecx
	add	esp, 40					; 00000028H
	ret	20					; 00000014H
$LN44@reptok:

; 823  : 		}
; 824  : 	}
; 825  : 	return sToken;

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+52]
	pop	ebp
	pop	edi
	pop	esi
	pop	ebx

; 826  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	DWORD PTR fs:0, ecx
	add	esp, 40					; 00000028H
	ret	20					; 00000014H
$LN45@reptok:
	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 40					; 00000028H
	ret	20					; 00000014H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?reptok@ncToken@@QAE?AV1@PBD0HD@Z$0:
	mov	eax, DWORD PTR $T40587[ebp]
	and	eax, 1
	je	$LN31@reptok
	and	DWORD PTR $T40587[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN31@reptok:
	ret	0
__ehhandler$?reptok@ncToken@@QAE?AV1@PBD0HD@Z:
	mov	eax, OFFSET __ehfuncinfo$?reptok@ncToken@@QAE?AV1@PBD0HD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?reptok@ncToken@@QAE?AV1@PBD0HD@Z ENDP			; ncToken::reptok
PUBLIC	?wildtok@ncToken@@QAE?AV1@PBDHD@Z		; ncToken::wildtok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?wildtok@ncToken@@QAE?AV1@PBDHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?wildtok@ncToken@@QAE?AV1@PBDHD@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?wildtok@ncToken@@QAE?AV1@PBDHD@Z$0
__ehfuncinfo$?wildtok@ncToken@@QAE?AV1@PBDHD@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?wildtok@ncToken@@QAE?AV1@PBDHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?wildtok@ncToken@@QAE?AV1@PBDHD@Z
_TEXT	SEGMENT
_tCount$37126 = -40					; size = 4
tv455 = -36						; size = 4
$T40639 = -32						; size = 4
_this$ = -28						; size = 4
_strLength$37125 = -24					; size = 4
_sToken$ = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_cString$ = 12						; size = 4
_N$ = 16						; size = 4
_Token$ = 20						; size = 1
?wildtok@ncToken@@QAE?AV1@PBDHD@Z PROC			; ncToken::wildtok, COMDAT
; _this$ = ecx

; 862  : {

	push	-1
	push	__ehhandler$?wildtok@ncToken@@QAE?AV1@PBDHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 28					; 0000001cH
	push	ebx
	push	ebp
	xor	ebx, ebx
	push	esi
	mov	DWORD PTR $T40639[esp+52], ebx

; 863  : 	ncToken sToken(*this);

	mov	eax, DWORD PTR [ecx+4]
	push	edi
	mov	DWORD PTR _this$[esp+56], ecx
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+60]
	mov	DWORD PTR _sToken$[esp+60], ebx
	mov	DWORD PTR _sToken$[esp+64], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 864  : 	if (cString && N >= 0)

	cmp	DWORD PTR _cString$[esp+52], ebx
	mov	DWORD PTR __$EHRec$[esp+64], 1
	je	$LN62@wildtok
	cmp	DWORD PTR _N$[esp+52], ebx
	jl	$LN62@wildtok

; 865  : 	{
; 866  : 		int firstPos = 0;
; 867  : 		int strLength = wcslen(sToken.m_wString);

	mov	ebp, DWORD PTR _sToken$[esp+60]
	mov	eax, ebp
	xor	edi, edi
	lea	edx, DWORD PTR [eax+2]
$LL59@wildtok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL59@wildtok
	sub	eax, edx
	sar	eax, 1
	mov	esi, eax

; 868  : 		int tCount = 0;
; 869  : 		for (int i = 0; i < strLength; i++)

	test	esi, esi
	mov	DWORD PTR _strLength$37125[esp+56], esi
	mov	DWORD PTR _tCount$37126[esp+56], ebx
	jle	$LN9@wildtok
	mov	eax, ebp
	mov	DWORD PTR tv455[esp+56], ebp
	npad	7
$LL64@wildtok:

; 870  : 		{
; 871  : 			if (sToken.m_wString[i] == Token)

	movzx	edx, WORD PTR [eax]
	movsx	ecx, BYTE PTR _Token$[esp+52]
	cmp	edx, ecx
	jne	$LN10@wildtok

; 872  : 			{
; 873  : 				if (i > 0 && sToken.m_wString[i -1] != Token)

	test	ebx, ebx
	jle	$LN10@wildtok
	movzx	edx, WORD PTR [eax-2]
	cmp	edx, ecx
	je	$LN10@wildtok

; 874  : 				{
; 875  : 					wchar_t *rSbuf = new wchar_t[strLength +1],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	875					; 0000036bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?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[]

; 876  : 							*wStr = new wchar_t[strlen(cString) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	876					; 0000036cH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	esi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR _cString$[esp+80]
	add	esp, 28					; 0000001cH
	lea	ecx, DWORD PTR [eax+1]
$LL60@wildtok:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL60@wildtok
	sub	eax, ecx
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebp, eax

; 877  : 					rSbuf[i - firstPos] = '\0';

	mov	eax, ebx
	sub	eax, edi

; 878  : 					wcsncpy(rSbuf,sToken.m_wString + firstPos,i - firstPos);

	push	eax
	mov	WORD PTR [esi+eax*2], 0
	mov	eax, DWORD PTR _sToken$[esp+68]
	lea	ecx, DWORD PTR [eax+edi*2]
	push	ecx
	push	esi
	call	_wcsncpy

; 879  : 					mbstowcs(wStr,cString,strlen(cString) *2);

	mov	edi, DWORD PTR _cString$[esp+68]
	mov	eax, edi
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR [eax+1]
	npad	4
$LL61@wildtok:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL61@wildtok
	sub	eax, ecx
	lea	edx, DWORD PTR [eax+eax]
	push	edx
	push	edi
	push	ebp
	call	_mbstowcs

; 880  : 					while (*rSbuf == Token)

	movzx	ecx, WORD PTR [esi]
	movsx	eax, BYTE PTR _Token$[esp+64]
	add	esp, 12					; 0000000cH
	cmp	ecx, eax
	jne	SHORT $LN5@wildtok
	lea	edi, DWORD PTR [esi+2]
	mov	edx, esi
	sub	edx, edi
	npad	4
$LL6@wildtok:

; 881  : 						wcscpy(rSbuf,rSbuf +1);

	mov	eax, edi
$LL19@wildtok:
	movzx	ecx, WORD PTR [eax]
	mov	WORD PTR [edx+eax], cx
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL19@wildtok
	movzx	ecx, WORD PTR [esi]
	movsx	eax, BYTE PTR _Token$[esp+52]
	cmp	ecx, eax
	je	SHORT $LL6@wildtok
$LN5@wildtok:

; 882  : 					if (this->_wildcmp(wStr,rSbuf,false))

	mov	ecx, DWORD PTR _this$[esp+56]
	push	0
	push	esi
	push	ebp
	call	?_wildcmp@ncToken@@AAEHPB_W0_N@Z	; ncToken::_wildcmp
	test	eax, eax
	je	SHORT $LN63@wildtok

; 883  : 						tCount++;

	add	DWORD PTR _tCount$37126[esp+56], 1
$LN63@wildtok:

; 884  : 					if (N > 0 && tCount == N)

	mov	eax, DWORD PTR _N$[esp+52]
	test	eax, eax
	jle	SHORT $LN3@wildtok
	cmp	DWORD PTR _tCount$37126[esp+56], eax
	je	$LN56@wildtok
$LN3@wildtok:

; 890  : 					}
; 891  : 					delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	891					; 0000037bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]

; 892  : 					delete [] wStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	892					; 0000037cH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]

; 893  : 					firstPos = i +1;

	mov	esi, DWORD PTR _strLength$37125[esp+88]
	mov	eax, DWORD PTR tv455[esp+88]
	add	esp, 32					; 00000020H
	lea	edi, DWORD PTR [ebx+1]
$LN10@wildtok:
	add	ebx, 1
	add	eax, 2
	cmp	ebx, esi
	mov	DWORD PTR tv455[esp+56], eax
	jl	$LL64@wildtok
$LN9@wildtok:

; 894  : 				}
; 895  : 			}
; 896  : 		}
; 897  : 		if (N == 0)

	cmp	DWORD PTR _N$[esp+52], 0

; 898  : 			sToken = tCount;

	lea	ecx, DWORD PTR _sToken$[esp+56]
	jne	$LN2@wildtok
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	246					; 000000f6H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	24					; 00000018H
	call	??_U@YAPAXI@Z				; operator new[]
	mov	esi, eax
	mov	eax, DWORD PTR _tCount$37126[esp+72]
	push	eax
	push	OFFSET ??_C@_15KNBIKKIN@?$AA?$CF?$AAd?$AA?$AA@
	push	esi
	mov	edx, 11					; 0000000bH
	mov	DWORD PTR _sToken$[esp+88], esi
	call	_swprintf
	add	esp, 28					; 0000001cH

; 899  : 		else

	xor	ebx, ebx
	jmp	$LN39@wildtok
$LN56@wildtok:

; 885  : 					{
; 886  : 						sToken.setString(rSbuf);

	push	esi
	lea	ecx, DWORD PTR _sToken$[esp+60]
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 887  : 						delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	887					; 00000377H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]

; 888  : 						delete [] wStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	888					; 00000378H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]

; 889  : 						return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+84]
	add	esp, 32					; 00000020H
	lea	edx, DWORD PTR _sToken$[esp+56]
	push	edx
	mov	ecx, esi
	call	??0ncToken@@QAE@ABV0@@Z			; ncToken::ncToken
	lea	ecx, DWORD PTR _sToken$[esp+56]
	mov	DWORD PTR $T40639[esp+56], 1
	mov	BYTE PTR __$EHRec$[esp+64], 0
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 903  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	DWORD PTR fs:0, ecx
	add	esp, 40					; 00000028H
	ret	16					; 00000010H
$LN2@wildtok:

; 900  : 			sToken = "";

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	call	?setString@ncToken@@AAEXPBD@Z		; ncToken::setString
	xor	ebx, ebx
$LN62@wildtok:
	mov	esi, DWORD PTR _sToken$[esp+60]
$LN39@wildtok:

; 901  : 	}
; 902  : 	return sToken;

	mov	edi, DWORD PTR ___$ReturnUdt$[esp+52]
	push	esi
	mov	ecx, edi
	mov	DWORD PTR [edi], ebx
	mov	DWORD PTR [edi+4], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	cmp	esi, ebx
	mov	DWORD PTR $T40639[esp+56], 1
	mov	BYTE PTR __$EHRec$[esp+64], 0
	je	SHORT $LN65@wildtok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	26					; 0000001aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN65@wildtok:
	mov	esi, DWORD PTR _sToken$[esp+56]
	cmp	esi, ebx
	je	SHORT $LN45@wildtok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	31					; 0000001fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN45@wildtok:

; 903  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+56]
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 40					; 00000028H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?wildtok@ncToken@@QAE?AV1@PBDHD@Z$0:
	lea	ecx, DWORD PTR _sToken$[ebp]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
__unwindfunclet$?wildtok@ncToken@@QAE?AV1@PBDHD@Z$1:
	mov	eax, DWORD PTR $T40639[ebp]
	and	eax, 1
	je	$LN30@wildtok
	and	DWORD PTR $T40639[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN30@wildtok:
	ret	0
__ehhandler$?wildtok@ncToken@@QAE?AV1@PBDHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?wildtok@ncToken@@QAE?AV1@PBDHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?wildtok@ncToken@@QAE?AV1@PBDHD@Z ENDP			; ncToken::wildtok
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
$T40714 = -12						; size = 12
_this$ = 8						; size = 4
$T40720 = 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 $T40720[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T40714[esp+20]
	mov	DWORD PTR $T40720[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T40714[esp+20]
	push	ecx
	mov	DWORD PTR $T40714[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
$T40726 = -12						; size = 12
$T40731 = 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 $T40731[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T40726[esp+20]
	mov	DWORD PTR $T40731[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T40726[esp+20]
	push	ecx
	mov	DWORD PTR $T40726[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	??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	?_remove@ncToken@@AAE?AV1@PB_W_N@Z		; ncToken::_remove
;	COMDAT xdata$x
; File d:\source code\nc lib\nctoken.cpp
xdata$x	SEGMENT
__unwindtable$?_remove@ncToken@@AAE?AV1@PB_W_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_remove@ncToken@@AAE?AV1@PB_W_N@Z$0
__ehfuncinfo$?_remove@ncToken@@AAE?AV1@PB_W_N@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_remove@ncToken@@AAE?AV1@PB_W_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?_remove@ncToken@@AAE?AV1@PB_W_N@Z
_TEXT	SEGMENT
_tmp$36506 = -32					; size = 4
_newStr$36492 = -28					; size = 4
$T40764 = -24						; size = 4
_strLength$36491 = -20					; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_rString$ = 12						; size = 4
_case_sensitive$ = 16					; size = 1
?_remove@ncToken@@AAE?AV1@PB_W_N@Z PROC			; ncToken::_remove, COMDAT
; _this$ = ecx

; 72   : {

	push	-1
	push	__ehhandler$?_remove@ncToken@@AAE?AV1@PB_W_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	ebx
	xor	ebx, ebx
	mov	DWORD PTR $T40764[esp+36], ebx
	push	ebp

; 73   : 	ncToken sToken(*this);

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+36]
	mov	DWORD PTR [ebp], ebx
	mov	DWORD PTR [ebp+4], ebx
	mov	eax, DWORD PTR [ecx+4]
	push	eax
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+52], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 100  : 	}
; 101  : 	return sToken;

	mov	eax, DWORD PTR _rString$[esp+36]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+48], ebx
	mov	DWORD PTR $T40764[esp+40], 1
	je	$LN33@remove

; 74   : 	if (rString)
; 75   : 	{
; 76   : 		int strLength[] = {
; 77   : 			wcslen(rString),

	lea	edx, DWORD PTR [eax+2]
$LL25@remove:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL25@remove
	sub	eax, edx
	sar	eax, 1
	mov	DWORD PTR _strLength$36491[esp+40], eax

; 78   : 			wcslen(sToken.m_wString),

	mov	eax, DWORD PTR [ebp+4]
	lea	edx, DWORD PTR [eax+2]
	npad	3
$LL26@remove:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL26@remove
	push	esi
	push	edi
	sub	eax, edx

; 79   : 		};
; 80   : 		wchar_t *newStr = new wchar_t[strLength[1] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	sar	eax, 1
	mov	esi, eax
	push	80					; 00000050H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	DWORD PTR _strLength$36491[esp+64], esi
	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[]
	mov	edi, eax
	add	esp, 16					; 00000010H

; 81   : 		newStr[0] = '\0';
; 82   : 		for (int i = 0; i < strLength[1]; i++)

	cmp	esi, ebx
	mov	DWORD PTR _newStr$36492[esp+48], edi
	mov	WORD PTR [edi], bx
	jle	$LN5@remove
	npad	11
$LL34@remove:

; 83   : 		{
; 84   : 			wchar_t *rSbuf = new wchar_t[strLength[0] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	84					; 00000054H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	esi, DWORD PTR _strLength$36491[esp+60]
	xor	ecx, ecx
	add	esi, 1
	mov	eax, esi
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 85   : 			rSbuf[strLength[0]] = '\0';

	mov	edi, DWORD PTR _strLength$36491[esp+64]
	mov	ebp, eax

; 86   : 			wcsncpy(rSbuf,sToken.m_wString +i,strLength[0]);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	WORD PTR [ebp+edi*2], 0
	mov	ecx, DWORD PTR [eax+4]
	lea	esi, DWORD PTR [ebx+ebx]
	push	edi
	add	ecx, esi
	push	ecx
	push	ebp
	call	_wcsncpy

; 87   : 			if ((case_sensitive == true && !wcscmp(rSbuf,rString)) || (case_sensitive == false && !wcsicmp(rSbuf,rString)))

	mov	al, BYTE PTR _case_sensitive$[esp+72]
	add	esp, 28					; 0000001cH
	cmp	al, 1
	jne	$LN2@remove
	mov	ecx, DWORD PTR _rString$[esp+44]
	mov	eax, ebp
$LL27@remove:
	mov	dx, WORD PTR [eax]
	cmp	dx, WORD PTR [ecx]
	jne	SHORT $LN28@remove
	test	dx, dx
	je	SHORT $LN29@remove
	mov	dx, WORD PTR [eax+2]
	cmp	dx, WORD PTR [ecx+2]
	jne	SHORT $LN28@remove
	add	eax, 4
	add	ecx, 4
	test	dx, dx
	jne	SHORT $LL27@remove
$LN29@remove:
	xor	eax, eax
	jmp	SHORT $LN30@remove
$LN28@remove:
	sbb	eax, eax
	sbb	eax, -1
$LN30@remove:
	test	eax, eax
	je	$LN3@remove
$LN35@remove:

; 90   : 			{
; 91   : 				wchar_t tmp[2];
; 92   : 				tmp[0] = sToken.m_wString[i];

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+44]
	mov	ecx, DWORD PTR [eax+4]
	mov	dx, WORD PTR [esi+ecx]

; 93   : 				tmp[1] = '\0';
; 94   : 				wcscat(newStr,tmp);

	lea	eax, DWORD PTR _tmp$36506[esp+48]
	mov	WORD PTR _tmp$36506[esp+48], dx
	mov	WORD PTR _tmp$36506[esp+50], 0
	mov	edx, eax
$LL31@remove:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL31@remove
	mov	edi, DWORD PTR _newStr$36492[esp+48]
	sub	eax, edx
	add	edi, -2					; fffffffeH
	npad	6
$LL32@remove:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL32@remove
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
$LN1@remove:

; 95   : 			}
; 96   : 			delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	96					; 00000060H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]
	add	ebx, 1
	add	esp, 16					; 00000010H
	cmp	ebx, DWORD PTR _strLength$36491[esp+52]
	jl	$LL34@remove
	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+44]
	mov	edi, DWORD PTR _newStr$36492[esp+48]
$LN5@remove:

; 97   : 		}
; 98   : 		sToken.setString(newStr);

	push	edi
	mov	ecx, ebp
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 99   : 		delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	99					; 00000063H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	pop	edi
	pop	esi
$LN33@remove:

; 102  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	12					; 0000000cH
$LN2@remove:

; 87   : 			if ((case_sensitive == true && !wcscmp(rSbuf,rString)) || (case_sensitive == false && !wcsicmp(rSbuf,rString)))

	test	al, al
	jne	$LN35@remove
	mov	edx, DWORD PTR _rString$[esp+44]
	push	edx
	push	ebp
	call	_wcsicmp
	add	esp, 8
	test	eax, eax
	jne	$LN35@remove
$LN3@remove:

; 88   : 				i += strLength[0] -1;

	lea	ebx, DWORD PTR [ebx+edi-1]

; 89   : 			else

	jmp	$LN1@remove
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_remove@ncToken@@AAE?AV1@PB_W_N@Z$0:
	mov	eax, DWORD PTR $T40764[ebp]
	and	eax, 1
	je	$LN20@remove
	and	DWORD PTR $T40764[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN20@remove:
	ret	0
__ehhandler$?_remove@ncToken@@AAE?AV1@PB_W_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?_remove@ncToken@@AAE?AV1@PB_W_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_remove@ncToken@@AAE?AV1@PB_W_N@Z ENDP			; ncToken::_remove
PUBLIC	?_replace@ncToken@@AAE?AV1@PB_W0_N@Z		; ncToken::_replace
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z$0
__ehfuncinfo$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?_replace@ncToken@@AAE?AV1@PB_W0_N@Z
_TEXT	SEGMENT
_tmp$36545 = -36					; size = 4
_tCount$36519 = -36					; size = 4
$T40810 = -32						; size = 4
tv330 = -28						; size = 4
_strLength$36518 = -24					; size = 12
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_rString$ = 12						; size = 4
_nString$ = 16						; size = 4
_newStr$36533 = 20					; size = 4
_case_sensitive$ = 20					; size = 1
?_replace@ncToken@@AAE?AV1@PB_W0_N@Z PROC		; ncToken::_replace, COMDAT
; _this$ = ecx

; 104  : {

	push	-1
	push	__ehhandler$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	xor	ebx, ebx
	mov	DWORD PTR $T40810[esp+40], ebx
	push	ebp

; 105  : 	ncToken sToken(*this);

	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+40]
	mov	DWORD PTR [ebp], ebx
	mov	DWORD PTR [ebp+4], ebx
	mov	eax, DWORD PTR [ecx+4]
	push	eax
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+56], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 149  : 		}
; 150  : 	}
; 151  : 	return sToken;

	mov	eax, DWORD PTR _rString$[esp+40]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+52], ebx
	mov	DWORD PTR $T40810[esp+44], 1
	je	$LN48@replace
	push	esi
	mov	esi, DWORD PTR _nString$[esp+44]
	cmp	esi, ebx
	je	$LN49@replace

; 106  : 	if (rString && nString)
; 107  : 	{
; 108  : 		int strLength[] = {
; 109  : 			wcslen(rString),

	lea	edx, DWORD PTR [eax+2]
$LL36@replace:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL36@replace
	sub	eax, edx
	sar	eax, 1
	push	edi
	mov	edi, eax

; 110  : 			wcslen(nString),

	mov	eax, esi
	mov	DWORD PTR _strLength$36518[esp+52], edi
	lea	edx, DWORD PTR [eax+2]
	npad	4
$LL37@replace:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL37@replace
	sub	eax, edx
	sar	eax, 1
	mov	ebx, eax

; 111  : 			wcslen(sToken.m_wString),

	mov	eax, DWORD PTR [ebp+4]
	lea	edx, DWORD PTR [eax+2]
$LL38@replace:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL38@replace
	sub	eax, edx
	sar	eax, 1
	mov	DWORD PTR _strLength$36518[esp+60], eax

; 112  : 		};
; 113  : 		int tCount = 0;
; 114  : 		for (int i = 0; i < strLength[2] - strLength[0]; i++)

	sub	eax, edi
	xor	ebp, ebp
	test	eax, eax
	mov	DWORD PTR _tCount$36519[esp+52], ebp
	mov	DWORD PTR tv330[esp+52], eax
	jle	$LN50@replace
	npad	2
$LL12@replace:

; 115  : 		{
; 116  : 			wchar_t *rSbuf = new wchar_t[strLength[0] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	116					; 00000074H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	eax, DWORD PTR [edi+1]
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	esi, eax
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+64]

; 117  : 			rSbuf[strLength[0]] = '\0';

	mov	WORD PTR [esi+edi*2], 0
	mov	ecx, DWORD PTR [eax+4]

; 118  : 			wcsncpy(rSbuf,sToken.m_wString + i,strLength[0]);

	push	edi
	lea	edx, DWORD PTR [ecx+ebp*2]
	push	edx
	push	esi
	call	_wcsncpy

; 119  : 			if ((case_sensitive == true && !wcscmp(rSbuf,rString)) || (case_sensitive == false && !wcsicmp(rSbuf,rString)))

	mov	al, BYTE PTR _case_sensitive$[esp+76]
	add	esp, 28					; 0000001cH
	cmp	al, 1
	jne	SHORT $LN7@replace
	mov	ecx, DWORD PTR _rString$[esp+48]
	mov	eax, esi
$LL39@replace:
	mov	dx, WORD PTR [eax]
	cmp	dx, WORD PTR [ecx]
	jne	SHORT $LN40@replace
	test	dx, dx
	je	SHORT $LN41@replace
	mov	dx, WORD PTR [eax+2]
	cmp	dx, WORD PTR [ecx+2]
	jne	SHORT $LN40@replace
	add	eax, 4
	add	ecx, 4
	test	dx, dx
	jne	SHORT $LL39@replace
$LN41@replace:
	xor	eax, eax
	jmp	SHORT $LN42@replace
$LN40@replace:
	sbb	eax, eax
	sbb	eax, -1
$LN42@replace:
	test	eax, eax
	je	SHORT $LN8@replace
	jmp	SHORT $LN9@replace
$LN7@replace:
	test	al, al
	jne	SHORT $LN9@replace
	mov	eax, DWORD PTR _rString$[esp+48]
	push	eax
	push	esi
	call	_wcsicmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN9@replace
$LN8@replace:

; 120  : 				tCount++;

	add	DWORD PTR _tCount$36519[esp+52], 1
$LN9@replace:

; 121  : 			delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	121					; 00000079H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	ebp, 1
	add	esp, 16					; 00000010H
	cmp	ebp, DWORD PTR tv330[esp+52]
	jl	$LL12@replace

; 122  : 		}
; 123  : 		if (tCount > 0)

	mov	eax, DWORD PTR _tCount$36519[esp+52]
	test	eax, eax
	jle	$LN50@replace

; 124  : 		{
; 125  : 			int bufLength = strLength[2] + ((strLength[1] - strLength[0]) * tCount);

	sub	ebx, edi
	imul	ebx, eax
	add	ebx, DWORD PTR _strLength$36518[esp+60]

; 126  : 			wchar_t *newStr = new wchar_t[bufLength +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	126					; 0000007eH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	esi, ebx
	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[]
	mov	esi, eax

; 127  : 			newStr[0] = '\0';
; 128  : 			for (int i = 0; i < strLength[2]; i++)

	xor	ebx, ebx
	add	esp, 16					; 00000010H
	cmp	DWORD PTR _strLength$36518[esp+60], ebx
	mov	DWORD PTR _newStr$36533[esp+48], esi
	mov	WORD PTR [esi], 0
	jle	$LN3@replace
	jmp	SHORT $LN5@replace
	npad	11
$LL51@replace:
	mov	edi, DWORD PTR _strLength$36518[esp+52]
$LN5@replace:

; 129  : 			{
; 130  : 				wchar_t *rSbuf = new wchar_t[strLength[0] +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	130					; 00000082H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	esi, DWORD PTR [edi+1]
	mov	eax, esi
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 131  : 				rSbuf[strLength[0]] = '\0';

	mov	edi, DWORD PTR _strLength$36518[esp+68]
	mov	ebp, eax

; 132  : 				wcsncpy(rSbuf,sToken.m_wString +i,strLength[0]);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+64]
	mov	WORD PTR [ebp+edi*2], 0
	mov	ecx, DWORD PTR [eax+4]
	lea	esi, DWORD PTR [ebx+ebx]
	push	edi
	add	ecx, esi
	push	ecx
	push	ebp
	call	_wcsncpy

; 133  : 				if (!wcsicmp(rSbuf,rString))

	mov	edx, DWORD PTR _rString$[esp+76]
	push	edx
	push	ebp
	call	_wcsicmp
	add	esp, 36					; 00000024H
	test	eax, eax
	jne	SHORT $LN2@replace

; 134  : 				{
; 135  : 					i += strLength[0] -1;
; 136  : 					wcscat(newStr,nString);

	mov	eax, DWORD PTR _nString$[esp+48]
	lea	ebx, DWORD PTR [ebx+edi-1]
	mov	edx, eax
$LL43@replace:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL43@replace
	mov	edi, DWORD PTR _newStr$36533[esp+48]
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL44@replace:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL44@replace

; 137  : 				}
; 138  : 				else

	jmp	SHORT $LN55@replace
$LN2@replace:

; 139  : 				{
; 140  : 					wchar_t tmp[2];
; 141  : 					tmp[0] = sToken.m_wString[i];

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	ecx, DWORD PTR [eax+4]
	mov	dx, WORD PTR [esi+ecx]

; 142  : 					tmp[1] = '\0';
; 143  : 					wcscat(newStr,tmp);

	lea	eax, DWORD PTR _tmp$36545[esp+52]
	mov	WORD PTR _tmp$36545[esp+52], dx
	mov	WORD PTR _tmp$36545[esp+54], 0
	mov	edx, eax
	npad	1
$LL45@replace:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL45@replace
	mov	edi, DWORD PTR _newStr$36533[esp+48]
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL46@replace:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL46@replace
$LN55@replace:
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd

; 144  : 				}
; 145  : 				delete [] rSbuf;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	ecx, eax
	and	ecx, 3
	push	145					; 00000091H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	rep movsb
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]
	add	ebx, 1
	add	esp, 16					; 00000010H
	cmp	ebx, DWORD PTR _strLength$36518[esp+60]
	jl	$LL51@replace

; 127  : 			newStr[0] = '\0';
; 128  : 			for (int i = 0; i < strLength[2]; i++)

	mov	esi, DWORD PTR _newStr$36533[esp+48]
$LN3@replace:

; 146  : 			}
; 147  : 			sToken.setString(newStr);

	mov	edi, DWORD PTR ___$ReturnUdt$[esp+48]
	push	esi
	mov	ecx, edi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 148  : 			delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	148					; 00000094H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 149  : 		}
; 150  : 	}
; 151  : 	return sToken;

	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 152  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN48@replace:

; 149  : 		}
; 150  : 	}
; 151  : 	return sToken;

	mov	eax, ebp
	pop	ebp
	pop	ebx

; 152  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN49@replace:
	pop	esi

; 149  : 		}
; 150  : 	}
; 151  : 	return sToken;

	mov	eax, ebp
	pop	ebp
	pop	ebx

; 152  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	16					; 00000010H
$LN50@replace:
	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+48]
	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@ncToken@@AAE?AV1@PB_W0_N@Z$0:
	mov	eax, DWORD PTR $T40810[ebp]
	and	eax, 1
	je	$LN29@replace
	and	DWORD PTR $T40810[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN29@replace:
	ret	0
__ehhandler$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?_replace@ncToken@@AAE?AV1@PB_W0_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_replace@ncToken@@AAE?AV1@PB_W0_N@Z ENDP		; ncToken::_replace
PUBLIC	?deltok@ncToken@@QAE?AV1@HHD@Z			; ncToken::deltok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?deltok@ncToken@@QAE?AV1@HHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?deltok@ncToken@@QAE?AV1@HHD@Z$0
__ehfuncinfo$?deltok@ncToken@@QAE?AV1@HHD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?deltok@ncToken@@QAE?AV1@HHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?deltok@ncToken@@QAE?AV1@HHD@Z
_TEXT	SEGMENT
_tCount$36791 = -32					; size = 4
_tmp$36803 = -28					; size = 4
$T40855 = -24						; size = 4
_strLength$36790 = -20					; size = 4
tv244 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_First$ = 12						; size = 4
_Total$ = 16						; size = 4
_Token$ = 20						; size = 1
?deltok@ncToken@@QAE?AV1@HHD@Z PROC			; ncToken::deltok, COMDAT
; _this$ = ecx

; 424  : {

	push	-1
	push	__ehhandler$?deltok@ncToken@@QAE?AV1@HHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	mov	DWORD PTR $T40855[esp+44], ebx
	push	edi

; 425  : 	ncToken sToken(*this);

	mov	edi, DWORD PTR ___$ReturnUdt$[esp+44]
	mov	esi, ecx
	mov	DWORD PTR [edi], ebx
	mov	DWORD PTR [edi+4], ebx
	mov	eax, DWORD PTR [esi+4]
	push	eax
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+60], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 454  : 	}
; 455  : 	return sToken;

	mov	ebp, DWORD PTR _First$[esp+44]
	cmp	ebp, ebx
	mov	DWORD PTR __$EHRec$[esp+56], ebx
	mov	DWORD PTR $T40855[esp+48], 1
	je	$LN31@deltok

; 426  : 	if (First != 0)
; 427  : 	{
; 428  : 		if (First < 0)

	jge	SHORT $LN10@deltok

; 429  : 			First = this->numtok(Token) + First +1;

	mov	ecx, DWORD PTR _Token$[esp+44]
	push	ecx
	mov	ecx, esi
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok
	lea	edx, DWORD PTR [eax+ebp+1]
	mov	DWORD PTR _First$[esp+44], edx
$LN10@deltok:

; 430  : 		int strLength = wcslen(sToken.m_wString);

	mov	eax, DWORD PTR [edi+4]
	lea	edx, DWORD PTR [eax+2]
$LL28@deltok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL28@deltok
	sub	eax, edx

; 431  : 		int tCount = 1;
; 432  : 		wchar_t *newStr = new wchar_t[strLength +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	sar	eax, 1
	mov	esi, eax
	push	432					; 000001b0H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	DWORD PTR _strLength$36790[esp+60], esi
	mov	DWORD PTR _tCount$36791[esp+60], 1
	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[]
	add	esp, 16					; 00000010H

; 433  : 		//memset(tmpBuf,0,strLength +1);
; 434  : 		newStr[0] = '\0';
; 435  : 		for (int i = 0; i < strLength; i++)

	cmp	esi, ebx
	mov	ebp, eax
	mov	WORD PTR [ebp], bx
	jle	$LN32@deltok
	movsx	edx, BYTE PTR _Token$[esp+44]
	mov	DWORD PTR tv244[esp+48], edx
$LL9@deltok:
	mov	eax, DWORD PTR [edi+4]

; 436  : 		{
; 437  : 			if (sToken.m_wString[i] == Token)

	movzx	ecx, WORD PTR [eax+ebx*2]
	lea	eax, DWORD PTR [eax+ebx*2]
	movzx	edi, cx
	cmp	edi, edx
	jne	SHORT $LN33@deltok

; 438  : 			{
; 439  : 				if (i > 0 && sToken.m_wString[i -1] != Token)

	test	ebx, ebx
	jle	SHORT $LN33@deltok
	movzx	eax, WORD PTR [eax-2]
	cmp	eax, edx
	je	SHORT $LN33@deltok

; 440  : 					tCount++;

	add	DWORD PTR _tCount$36791[esp+48], 1
$LN33@deltok:

; 441  : 			}
; 442  : 			if (tCount < First || tCount > (First + Total -1))

	mov	eax, DWORD PTR _First$[esp+44]
	cmp	DWORD PTR _tCount$36791[esp+48], eax
	jl	SHORT $LN3@deltok
	mov	edi, DWORD PTR _Total$[esp+44]
	lea	eax, DWORD PTR [eax+edi-1]
	cmp	DWORD PTR _tCount$36791[esp+48], eax
	jle	SHORT $LN35@deltok
$LN3@deltok:

; 443  : 			{
; 444  : 				wchar_t tmp[2];
; 445  : 				tmp[0] = sToken.m_wString[i];
; 446  : 				tmp[1] = '\0';
; 447  : 				wcscat(newStr,tmp);

	lea	eax, DWORD PTR _tmp$36803[esp+48]
	mov	WORD PTR _tmp$36803[esp+48], cx
	mov	WORD PTR _tmp$36803[esp+50], 0
	mov	edx, eax
$LL29@deltok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL29@deltok
	mov	edi, ebp
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL30@deltok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL30@deltok
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	mov	edx, DWORD PTR tv244[esp+48]
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	mov	esi, DWORD PTR _strLength$36790[esp+48]
$LN35@deltok:
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+44]
	add	ebx, 1
	cmp	ebx, esi
	jl	$LL9@deltok
$LN32@deltok:

; 448  : 			}
; 449  : 		}
; 450  : 		while (*newStr == Token)

	movsx	edi, BYTE PTR _Token$[esp+44]
	movzx	ecx, WORD PTR [ebp]
	cmp	ecx, edi
	jne	SHORT $LN1@deltok
	lea	esi, DWORD PTR [ebp+2]
	mov	edx, ebp
	sub	edx, esi
	npad	7
$LL2@deltok:

; 451  : 			wcscpy(newStr,newStr +1);

	mov	eax, esi
$LL16@deltok:
	movzx	ecx, WORD PTR [eax]
	mov	WORD PTR [edx+eax], cx
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL16@deltok
	movzx	eax, WORD PTR [ebp]
	cmp	eax, edi
	je	SHORT $LL2@deltok
$LN1@deltok:

; 452  : 		sToken.setString(newStr);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+44]
	push	ebp
	mov	ecx, esi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 453  : 		delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	453					; 000001c5H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebp
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	pop	edi

; 454  : 	}
; 455  : 	return sToken;

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 456  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	16					; 00000010H
$LN31@deltok:
	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?deltok@ncToken@@QAE?AV1@HHD@Z$0:
	mov	eax, DWORD PTR $T40855[ebp]
	and	eax, 1
	je	$LN20@deltok
	and	DWORD PTR $T40855[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN20@deltok:
	ret	0
__ehhandler$?deltok@ncToken@@QAE?AV1@HHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?deltok@ncToken@@QAE?AV1@HHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?deltok@ncToken@@QAE?AV1@HHD@Z ENDP			; ncToken::deltok
PUBLIC	?gettok@ncToken@@QAE?AV1@HHD@Z			; ncToken::gettok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?gettok@ncToken@@QAE?AV1@HHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?gettok@ncToken@@QAE?AV1@HHD@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?gettok@ncToken@@QAE?AV1@HHD@Z$0
__ehfuncinfo$?gettok@ncToken@@QAE?AV1@HHD@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?gettok@ncToken@@QAE?AV1@HHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?gettok@ncToken@@QAE?AV1@HHD@Z
_TEXT	SEGMENT
_tCount$ = -32						; size = 4
$T40890 = -28						; size = 4
_endPos$ = -24						; size = 4
_sToken$ = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_F$ = 12						; size = 4
_T$ = 16						; size = 4
_Token$ = 20						; size = 1
?gettok@ncToken@@QAE?AV1@HHD@Z PROC			; ncToken::gettok, COMDAT
; _this$ = ecx

; 503  : {

	push	-1
	push	__ehhandler$?gettok@ncToken@@QAE?AV1@HHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	ebx
	xor	ebx, ebx
	push	esi
	mov	DWORD PTR $T40890[esp+40], ebx

; 504  : 	ncToken sToken(*this);

	mov	eax, DWORD PTR [ecx+4]
	push	edi
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+48]
	mov	DWORD PTR _sToken$[esp+48], ebx
	mov	DWORD PTR _sToken$[esp+52], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 505  : 	if (F == 0)

	mov	esi, DWORD PTR _F$[esp+40]
	cmp	esi, ebx
	mov	edi, 1
	mov	DWORD PTR __$EHRec$[esp+52], edi

; 506  : 	{
; 507  : 		sToken = "";

	lea	ecx, DWORD PTR _sToken$[esp+44]
	jne	SHORT $LN12@gettok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	call	?setString@ncToken@@AAEXPBD@Z		; ncToken::setString

; 508  : 		return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+40]
	mov	ecx, DWORD PTR _sToken$[esp+48]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	jmp	$LN49@gettok
$LN12@gettok:

; 509  : 	}
; 510  : 	if (F > sToken.numtok(Token) || T < 1)

	mov	edx, DWORD PTR _Token$[esp+40]
	push	edx
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok
	cmp	esi, eax
	jg	$LN10@gettok
	cmp	DWORD PTR _T$[esp+40], edi
	jl	$LN10@gettok

; 514  : 	}
; 515  : 	if (F < 0)

	cmp	esi, ebx
	jge	SHORT $LN9@gettok

; 516  : 		F = sToken.numtok(Token) + F +1;

	lea	esi, DWORD PTR [esi+eax+1]
	mov	DWORD PTR _F$[esp+40], esi
$LN9@gettok:
	push	ebp

; 517  : 	int tCount = 1;
; 518  : 	int strLength = wcslen(sToken.m_wString);

	mov	ebp, DWORD PTR _sToken$[esp+52]
	mov	eax, ebp
	mov	DWORD PTR _tCount$[esp+48], edi
	lea	edx, DWORD PTR [eax+2]
$LL45@gettok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	cmp	cx, bx
	jne	SHORT $LL45@gettok
	sub	eax, edx
	sar	eax, 1
	mov	edx, eax

; 519  : 	int firstPos = 0;
; 520  : 	int endPos = strLength;

	mov	edi, edx

; 521  : 	for (int i = 0; i < strLength; i++)

	xor	eax, eax
	cmp	edx, ebx
	mov	DWORD PTR _endPos$[esp+48], edi
	jle	SHORT $LN6@gettok
	movsx	ecx, BYTE PTR _Token$[esp+44]
$LL8@gettok:

; 522  : 	{
; 523  : 		if (sToken.m_wString[i] == Token)

	movzx	edi, WORD PTR [ebp+eax*2]
	cmp	edi, ecx
	jne	SHORT $LN7@gettok

; 524  : 		{
; 525  : 			tCount++;
; 526  : 			if (tCount == (F + T))

	mov	edi, DWORD PTR _T$[esp+44]
	add	DWORD PTR _tCount$[esp+48], 1
	add	esi, edi
	mov	edi, DWORD PTR _tCount$[esp+48]
	cmp	edi, esi
	je	SHORT $LN42@gettok
$LL3@gettok:

; 529  : 				break;
; 530  : 			}
; 531  : 			while (sToken.m_wString[i] == Token)

	movzx	esi, WORD PTR [ebp+eax*2+2]

; 532  : 				i++;

	add	eax, 1
	cmp	esi, ecx
	je	SHORT $LL3@gettok

; 533  : 			if (tCount == F)

	mov	esi, DWORD PTR _F$[esp+44]
	cmp	edi, esi
	jne	SHORT $LN7@gettok

; 534  : 				firstPos = i;

	mov	ebx, eax
$LN7@gettok:

; 521  : 	for (int i = 0; i < strLength; i++)

	add	eax, 1
	cmp	eax, edx
	jl	SHORT $LL8@gettok

; 524  : 		{
; 525  : 			tCount++;
; 526  : 			if (tCount == (F + T))

	mov	edi, DWORD PTR _endPos$[esp+48]
	jmp	SHORT $LN6@gettok
$LN42@gettok:

; 527  : 			{
; 528  : 				endPos = i;

	mov	edi, eax
$LN6@gettok:

; 535  : 		}
; 536  : 	}
; 537  : 	wchar_t *newStr = new wchar_t[endPos - firstPos +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	537					; 00000219H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	esi, edi
	sub	esi, ebx
	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[]
	mov	edi, eax

; 538  : 	newStr[endPos - firstPos] = '\0';
; 539  : 	wcsncpy(newStr,sToken.m_wString + firstPos,endPos - firstPos);

	push	esi
	lea	eax, DWORD PTR [ebp+ebx*2]
	push	eax
	push	edi
	mov	WORD PTR [edi+esi*2], 0
	call	_wcsncpy
	add	esp, 28					; 0000001cH

; 540  : 	sToken.setString(newStr);

	push	edi
	lea	ecx, DWORD PTR _sToken$[esp+52]
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 541  : 	delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	541					; 0000021dH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 542  : 	return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	ecx, DWORD PTR _sToken$[esp+68]
	add	esp, 16					; 00000010H
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	lea	ecx, DWORD PTR _sToken$[esp+48]
	mov	DWORD PTR $T40890[esp+48], 1
	mov	BYTE PTR __$EHRec$[esp+56], 0
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	pop	ebp
	jmp	SHORT $LN50@gettok
$LN10@gettok:

; 511  : 	{
; 512  : 		sToken = "";

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	lea	ecx, DWORD PTR _sToken$[esp+48]
	call	?setString@ncToken@@AAEXPBD@Z		; ncToken::setString

; 513  : 		return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+40]
	mov	edx, DWORD PTR _sToken$[esp+48]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
$LN49@gettok:
	lea	ecx, DWORD PTR _sToken$[esp+44]
	mov	DWORD PTR $T40890[esp+44], edi
	mov	BYTE PTR __$EHRec$[esp+52], 0
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
$LN50@gettok:

; 543  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?gettok@ncToken@@QAE?AV1@HHD@Z$0:
	lea	ecx, DWORD PTR _sToken$[ebp]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
__unwindfunclet$?gettok@ncToken@@QAE?AV1@HHD@Z$1:
	mov	eax, DWORD PTR $T40890[ebp]
	and	eax, 1
	je	$LN21@gettok
	and	DWORD PTR $T40890[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN21@gettok:
	ret	0
__ehhandler$?gettok@ncToken@@QAE?AV1@HHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?gettok@ncToken@@QAE?AV1@HHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?gettok@ncToken@@QAE?AV1@HHD@Z ENDP			; ncToken::gettok
PUBLIC	?instok@ncToken@@QAE?AV1@PBDHD@Z		; ncToken::instok
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?instok@ncToken@@QAE?AV1@PBDHD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?instok@ncToken@@QAE?AV1@PBDHD@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?instok@ncToken@@QAE?AV1@PBDHD@Z$0
__ehfuncinfo$?instok@ncToken@@QAE?AV1@PBDHD@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?instok@ncToken@@QAE?AV1@PBDHD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?instok@ncToken@@QAE?AV1@PBDHD@Z
_TEXT	SEGMENT
$T40948 = -32						; size = 4
_sToken$ = -28						; size = 8
_strLength$36889 = -20					; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_iString$ = 12						; size = 4
_tmp$36902 = 16						; size = 4
_N$ = 16						; size = 4
_Token$ = 20						; size = 1
?instok@ncToken@@QAE?AV1@PBDHD@Z PROC			; ncToken::instok, COMDAT
; _this$ = ecx

; 546  : {

	push	-1
	push	__ehhandler$?instok@ncToken@@QAE?AV1@PBDHD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	ebx
	push	ebp
	push	esi
	xor	esi, esi
	mov	DWORD PTR $T40948[esp+44], esi

; 547  : 	ncToken sToken(*this);

	mov	eax, DWORD PTR [ecx+4]
	push	edi
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+52]
	mov	DWORD PTR _sToken$[esp+52], esi
	mov	DWORD PTR _sToken$[esp+56], esi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 548  : 	if (iString && N != 0)

	mov	edi, DWORD PTR _iString$[esp+44]
	cmp	edi, esi
	mov	ebp, 1
	mov	DWORD PTR __$EHRec$[esp+56], ebp
	je	$LN44@instok
	mov	ebx, DWORD PTR _N$[esp+44]
	cmp	ebx, esi
	je	$LN44@instok

; 551  : 			N = sToken.numtok(Token) + N +1;

	mov	esi, DWORD PTR _Token$[esp+44]

; 549  : 	{
; 550  : 		if (N < 0)

	jge	SHORT $LN8@instok

; 551  : 			N = sToken.numtok(Token) + N +1;

	push	esi
	lea	ecx, DWORD PTR _sToken$[esp+52]
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok
	lea	ecx, DWORD PTR [ebx+eax+1]
	mov	DWORD PTR _N$[esp+44], ecx
	mov	ebx, ecx
$LN8@instok:

; 552  : 		if (N >= sToken.numtok(Token))

	push	esi
	lea	ecx, DWORD PTR _sToken$[esp+52]
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok
	cmp	ebx, eax
	jl	SHORT $LN7@instok

; 553  : 			return sToken.addtok(iString,Token);

	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+48]
	push	edi
	push	esi
	lea	ecx, DWORD PTR _sToken$[esp+60]
	call	?addtok@ncToken@@QAE?AV1@PBDD@Z		; ncToken::addtok
	lea	ecx, DWORD PTR _sToken$[esp+48]
	mov	DWORD PTR $T40948[esp+48], ebp
	mov	BYTE PTR __$EHRec$[esp+56], 0
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	jmp	$LN29@instok
$LN7@instok:

; 554  : 		int strLength[] = {
; 555  : 			strlen(iString),

	mov	eax, edi
	lea	edx, DWORD PTR [eax+1]
	npad	4
$LL42@instok:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL42@instok

; 556  : 			wcslen(sToken.m_wString),

	mov	ebx, DWORD PTR _sToken$[esp+52]
	sub	eax, edx
	mov	ebp, eax
	mov	eax, ebx
	mov	DWORD PTR _strLength$36889[esp+48], ebp
	lea	edx, DWORD PTR [eax+2]
	npad	6
$LL43@instok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL43@instok
	sub	eax, edx
	sar	eax, 1
	mov	edi, eax

; 557  : 		};
; 558  : 		int tCount = 1;
; 559  : 		int firstPos = -1;
; 560  : 		for (int i = 0; i < strLength[1]; i++)

	xor	esi, esi
	test	edi, edi
	mov	eax, 1
	jle	$LN46@instok
	movsx	ecx, BYTE PTR _Token$[esp+44]
$LL6@instok:

; 561  : 		{
; 562  : 			if (sToken.m_wString[i] == Token)

	movzx	edx, WORD PTR [ebx+esi*2]
	cmp	edx, ecx
	jne	SHORT $LN5@instok

; 563  : 			{
; 564  : 				tCount++;

	add	eax, 1

; 565  : 				if (tCount == N)

	cmp	eax, DWORD PTR _N$[esp+44]
	je	SHORT $LN40@instok
$LN5@instok:

; 557  : 		};
; 558  : 		int tCount = 1;
; 559  : 		int firstPos = -1;
; 560  : 		for (int i = 0; i < strLength[1]; i++)

	add	esi, 1
	cmp	esi, edi
	jl	SHORT $LL6@instok

; 565  : 				if (tCount == N)

	jmp	$LN46@instok
$LN40@instok:

; 566  : 				{
; 567  : 					firstPos = i;
; 568  : 					break;
; 569  : 				}
; 570  : 			}
; 571  : 		}
; 572  : 		if (firstPos > -1)

	cmp	esi, -1
	jle	$LN46@instok

; 573  : 		{
; 574  : 			wchar_t *newStr = new wchar_t[strLength[1] + strLength[0] +3];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	574					; 0000023eH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	lea	eax, DWORD PTR [edi+ebp+3]
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	edi, eax

; 575  : 			wchar_t tmp[2];
; 576  : 			tmp[0] = Token;

	movsx	ax, BYTE PTR _Token$[esp+60]

; 577  : 			tmp[1] = '\0';
; 578  : 			wcsncpy(newStr,sToken.m_wString,firstPos);

	push	esi
	push	ebx
	push	edi
	mov	WORD PTR _tmp$36902[esp+72], ax
	mov	WORD PTR _tmp$36902[esp+74], 0
	call	_wcsncpy

; 579  : 			wcscpy(newStr + firstPos,tmp);

	lea	eax, DWORD PTR _tmp$36902[esp+72]
	lea	ebp, DWORD PTR [edi+esi*2]
	mov	ecx, ebp
	mov	edx, eax
	add	esp, 28					; 0000001cH
	sub	ecx, edx
$LL14@instok:
	movzx	edx, WORD PTR [eax]
	mov	WORD PTR [ecx+eax], dx
	add	eax, 2
	test	dx, dx
	jne	SHORT $LL14@instok

; 580  : 			mbstowcs(newStr + firstPos +1,iString,strLength[0]);

	mov	eax, DWORD PTR _strLength$36889[esp+48]
	mov	ecx, DWORD PTR _iString$[esp+44]
	push	eax
	push	ecx
	add	ebp, 2
	push	ebp
	call	_mbstowcs

; 581  : 			wcscpy(newStr + firstPos + strLength[0] +1,sToken.m_wString + firstPos);

	mov	edx, DWORD PTR _strLength$36889[esp+60]
	lea	eax, DWORD PTR [ebx+esi*2]
	add	esi, edx
	lea	edx, DWORD PTR [edi+esi*2+2]
	add	esp, 12					; 0000000cH
	sub	edx, eax
	npad	7
$LL15@instok:
	movzx	ecx, WORD PTR [eax]
	mov	WORD PTR [edx+eax], cx
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL15@instok

; 582  : 			sToken.setString(newStr);

	push	edi
	lea	ecx, DWORD PTR _sToken$[esp+52]
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 583  : 			delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	583					; 00000247H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN44@instok:
	mov	ebx, DWORD PTR _sToken$[esp+52]
$LN46@instok:

; 584  : 		}
; 585  : 	}
; 586  : 	return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+44]
	push	ebx
	mov	ecx, esi
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	test	ebx, ebx
	mov	DWORD PTR $T40948[esp+48], 1
	mov	BYTE PTR __$EHRec$[esp+56], 0
	je	SHORT $LN47@instok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	26					; 0000001aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	ebx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN47@instok:
	mov	edi, DWORD PTR _sToken$[esp+48]
	test	edi, edi
	je	SHORT $LN29@instok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	31					; 0000001fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN29@instok:

; 587  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?instok@ncToken@@QAE?AV1@PBDHD@Z$0:
	lea	ecx, DWORD PTR _sToken$[ebp]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
__unwindfunclet$?instok@ncToken@@QAE?AV1@PBDHD@Z$1:
	mov	eax, DWORD PTR $T40948[ebp]
	and	eax, 1
	je	$LN20@instok
	and	DWORD PTR $T40948[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN20@instok:
	ret	0
__ehhandler$?instok@ncToken@@QAE?AV1@PBDHD@Z:
	mov	eax, OFFSET __ehfuncinfo$?instok@ncToken@@QAE?AV1@PBDHD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?instok@ncToken@@QAE?AV1@PBDHD@Z ENDP			; ncToken::instok
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	?deltok@ncToken@@QAE?AV1@HD@Z			; ncToken::deltok
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\nctoken.cpp
;	COMDAT ?deltok@ncToken@@QAE?AV1@HD@Z
_TEXT	SEGMENT
$T41029 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_First$ = 12						; size = 4
_Token$ = 16						; size = 1
?deltok@ncToken@@QAE?AV1@HD@Z PROC			; ncToken::deltok, COMDAT
; _this$ = ecx

; 420  : {

	push	ecx

; 421  : 	return this->deltok(First,1,Token);

	mov	eax, DWORD PTR _Token$[esp]
	mov	edx, DWORD PTR _First$[esp]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	push	1
	push	edx
	push	esi
	mov	DWORD PTR $T41029[esp+24], 0
	call	?deltok@ncToken@@QAE?AV1@HHD@Z		; ncToken::deltok
	mov	eax, esi
	pop	esi

; 422  : }

	pop	ecx
	ret	12					; 0000000cH
?deltok@ncToken@@QAE?AV1@HD@Z ENDP			; ncToken::deltok
_TEXT	ENDS
PUBLIC	?gettok@ncToken@@QAE?AV1@HD@Z			; ncToken::gettok
; Function compile flags: /Ogtpy
;	COMDAT ?gettok@ncToken@@QAE?AV1@HD@Z
_TEXT	SEGMENT
$T41035 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
_First$ = 12						; size = 4
_Token$ = 16						; size = 1
?gettok@ncToken@@QAE?AV1@HD@Z PROC			; ncToken::gettok, COMDAT
; _this$ = ecx

; 499  : {

	push	ecx

; 500  : 	return this->gettok(First,1,Token);

	mov	eax, DWORD PTR _Token$[esp]
	mov	edx, DWORD PTR _First$[esp]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	push	1
	push	edx
	push	esi
	mov	DWORD PTR $T41035[esp+24], 0
	call	?gettok@ncToken@@QAE?AV1@HHD@Z		; ncToken::gettok
	mov	eax, esi
	pop	esi

; 501  : }

	pop	ecx
	ret	12					; 0000000cH
?gettok@ncToken@@QAE?AV1@HD@Z ENDP			; ncToken::gettok
_TEXT	ENDS
PUBLIC	?sorttok@ncToken@@QAE?AV1@DH@Z			; ncToken::sorttok
EXTRN	_qsort:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?sorttok@ncToken@@QAE?AV1@DH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?sorttok@ncToken@@QAE?AV1@DH@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?sorttok@ncToken@@QAE?AV1@DH@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?sorttok@ncToken@@QAE?AV1@DH@Z$2
__ehfuncinfo$?sorttok@ncToken@@QAE?AV1@DH@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?sorttok@ncToken@@QAE?AV1@DH@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?sorttok@ncToken@@QAE?AV1@DH@Z
_TEXT	SEGMENT
$T41063 = -48						; size = 4
tv464 = -44						; size = 4
_newStr$ = -44						; size = 4
tv258 = -40						; size = 4
_tokenStr$ = -40					; size = 4
_sToken$ = -36						; size = 8
$T41047 = -28						; size = 8
$T41044 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_Token$ = 12						; size = 1
_Array$ = 12						; size = 4
_numTok$ = 16						; size = 4
_Type$ = 16						; size = 4
?sorttok@ncToken@@QAE?AV1@DH@Z PROC			; ncToken::sorttok, COMDAT
; _this$ = ecx

; 829  : {

	push	-1
	push	__ehhandler$?sorttok@ncToken@@QAE?AV1@DH@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 36					; 00000024H
	push	ebx
	push	esi
	push	edi
	xor	edi, edi
	mov	DWORD PTR $T41063[esp+60], edi

; 830  : 	ncToken sToken(*this);

	mov	eax, DWORD PTR [ecx+4]
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+64]
	mov	DWORD PTR _sToken$[esp+64], edi
	mov	DWORD PTR _sToken$[esp+68], edi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 831  : 	if (Type == TSORT_NONE)

	mov	eax, DWORD PTR _Type$[esp+56]
	cmp	eax, edi
	mov	ebx, 1
	mov	DWORD PTR __$EHRec$[esp+68], ebx
	jne	SHORT $LN8@sorttok

; 832  : 		return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+56]
	mov	ecx, DWORD PTR _sToken$[esp+64]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [esi], edi
	mov	DWORD PTR [esi+4], edi
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	lea	ecx, DWORD PTR _sToken$[esp+60]
	mov	DWORD PTR $T41063[esp+60], ebx
	mov	BYTE PTR __$EHRec$[esp+68], 0
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
	jmp	$LN57@sorttok
$LN8@sorttok:

; 833  : 	ncToken::m_SortType = Type;
; 834  : 	int numTok = sToken.numtok(Token);

	mov	ebx, DWORD PTR _Token$[esp+56]
	push	ebp
	push	ebx
	lea	ecx, DWORD PTR _sToken$[esp+68]
	mov	DWORD PTR ?m_SortType@ncToken@@2HA, eax	; ncToken::m_SortType
	call	?numtok@ncToken@@QAEHD@Z		; ncToken::numtok

; 835  : 	wchar_t **Array = new wchar_t*[numTok];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	mov	esi, eax
	push	835					; 00000343H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	mov	DWORD PTR _numTok$[esp+72], esi
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, esi
	mov	edx, 4
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]

; 836  : 	for (int i = 0; i < numTok; i++)

	mov	ecx, esi
	add	esp, 16					; 00000010H
	test	ecx, ecx
	mov	DWORD PTR _Array$[esp+60], eax
	jle	$LN76@sorttok
	mov	edi, 1
	mov	DWORD PTR tv464[esp+64], eax
	mov	DWORD PTR tv258[esp+64], ecx
	npad	9
$LL78@sorttok:

; 837  : 	{
; 838  : 		wchar_t *tmpBuf = new wchar_t[wcslen(sToken.gettok(i +1,Token).to_wchr()) +1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	838					; 00000346H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	add	esp, 12					; 0000000cH
	push	ebx
	push	edi
	lea	eax, DWORD PTR $T41044[esp+72]
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+76]
	call	?gettok@ncToken@@QAE?AV1@HD@Z		; ncToken::gettok
	mov	eax, DWORD PTR [eax+4]
	or	DWORD PTR $T41063[esp+64], 2
	mov	BYTE PTR __$EHRec$[esp+72], 2
	lea	edx, DWORD PTR [eax+2]
$LL70@sorttok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL70@sorttok
	sub	eax, edx
	sar	eax, 1
	xor	ecx, ecx
	add	eax, 1
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 4
	test	BYTE PTR $T41063[esp+64], 2
	mov	esi, eax
	mov	DWORD PTR __$EHRec$[esp+72], 1
	je	SHORT $LN39@sorttok
	and	DWORD PTR $T41063[esp+64], -3		; fffffffdH
	lea	ecx, DWORD PTR $T41044[esp+64]
	call	?clearString@ncToken@@AAEXXZ		; ncToken::clearString
$LN39@sorttok:

; 839  : 		wcscpy(tmpBuf,sToken.gettok(i +1,Token).to_wchr());

	push	ebx
	push	edi
	lea	eax, DWORD PTR $T41047[esp+72]
	push	eax
	lea	ecx, DWORD PTR _sToken$[esp+76]
	call	?gettok@ncToken@@QAE?AV1@HD@Z		; ncToken::gettok
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, esi
$LL15@sorttok:
	movzx	eax, WORD PTR [ecx]
	mov	WORD PTR [edx], ax
	add	ecx, 2
	add	edx, 2
	test	ax, ax
	jne	SHORT $LL15@sorttok
	xor	ebp, ebp
	cmp	DWORD PTR $T41047[esp+68], ebp
	je	SHORT $LN79@sorttok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	26					; 0000001aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR $T41047[esp+80]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T41047[esp+68], ebp
$LN79@sorttok:
	cmp	DWORD PTR $T41047[esp+64], ebp
	je	SHORT $LN45@sorttok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	31					; 0000001fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR $T41047[esp+76]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T41047[esp+64], ebp
$LN45@sorttok:

; 840  : 		Array[i] = tmpBuf;

	mov	eax, DWORD PTR tv464[esp+64]
	mov	DWORD PTR [eax], esi
	add	eax, 4
	add	edi, 1
	sub	DWORD PTR tv258[esp+64], 1
	mov	DWORD PTR tv464[esp+64], eax
	jne	$LL78@sorttok
	mov	ecx, DWORD PTR _numTok$[esp+60]
	mov	eax, DWORD PTR _Array$[esp+60]
$LN76@sorttok:

; 841  : 	}
; 842  : 	qsort(Array,numTok,4,ncToken::_sort);

	push	OFFSET ?_sort@ncToken@@CAHPBX0@Z	; ncToken::_sort
	push	4
	push	ecx
	push	eax
	call	_qsort

; 843  : 	wchar_t *newStr = new wchar_t[wcslen(sToken.m_wString) +2],

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	843					; 0000034bH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR _sToken$[esp+96]
	add	esp, 28					; 0000001cH
	lea	edx, DWORD PTR [eax+2]
	npad	8
$LL71@sorttok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL71@sorttok
	sub	eax, edx
	sar	eax, 1
	xor	ecx, ecx
	add	eax, 2
	mov	edx, 2
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	edi, eax

; 844  : 			tokenStr[2];
; 845  : 	newStr[0] = '\0';

	xor	ebp, ebp

; 846  : 	tokenStr[0] = Token;

	movsx	ax, bl
	add	esp, 4

; 847  : 	tokenStr[1] = '\0';
; 848  : 	for (int i = 0; i < numTok; i++)

	cmp	DWORD PTR _numTok$[esp+60], ebp
	mov	DWORD PTR _newStr$[esp+64], edi
	mov	WORD PTR [edi], bp
	mov	WORD PTR _tokenStr$[esp+64], ax
	mov	WORD PTR _tokenStr$[esp+66], bp
	jle	$LN2@sorttok
	npad	2
$LL4@sorttok:

; 849  : 	{
; 850  : 		wcscat(newStr,Array[i]);

	mov	ecx, DWORD PTR _Array$[esp+60]
	mov	eax, DWORD PTR [ecx+ebp*4]
	mov	edx, eax
	npad	7
$LL72@sorttok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL72@sorttok
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL73@sorttok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL73@sorttok
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3

; 851  : 		if ((i +1) < numTok)

	lea	ebx, DWORD PTR [ebp+1]
	cmp	ebx, DWORD PTR _numTok$[esp+60]
	rep movsb
	jge	SHORT $LN1@sorttok

; 852  : 			wcscat(newStr,tokenStr);

	lea	eax, DWORD PTR _tokenStr$[esp+64]
	mov	edx, eax
	npad	5
$LL74@sorttok:
	mov	cx, WORD PTR [eax]
	add	eax, 2
	test	cx, cx
	jne	SHORT $LL74@sorttok
	mov	edi, DWORD PTR _newStr$[esp+64]
	sub	eax, edx
	add	edi, -2					; fffffffeH
$LL75@sorttok:
	mov	cx, WORD PTR [edi+2]
	add	edi, 2
	test	cx, cx
	jne	SHORT $LL75@sorttok
	mov	ecx, eax
	shr	ecx, 2
	mov	esi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
$LN1@sorttok:

; 853  : 		delete [] Array[i];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	853					; 00000355H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR _Array$[esp+72]
	mov	eax, DWORD PTR [edx+ebp*4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	mov	edi, DWORD PTR _newStr$[esp+80]
	mov	ebp, ebx
	add	esp, 16					; 00000010H
	cmp	ebp, DWORD PTR _numTok$[esp+60]
	jl	$LL4@sorttok
$LN2@sorttok:

; 854  : 	}
; 855  : 	sToken.setString(newStr);

	push	edi
	lea	ecx, DWORD PTR _sToken$[esp+68]
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString

; 856  : 	delete [] Array;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	856					; 00000358H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR _Array$[esp+72]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]

; 857  : 	delete [] newStr;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	857					; 00000359H
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]

; 858  : 	return sToken;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+92]
	mov	edi, DWORD PTR _sToken$[esp+100]
	add	esp, 32					; 00000020H
	push	edi
	mov	ecx, esi
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	?setString@ncToken@@AAEXPB_W@Z		; ncToken::setString
	or	DWORD PTR $T41063[esp+64], 1
	test	edi, edi
	mov	BYTE PTR __$EHRec$[esp+72], 0
	pop	ebp
	je	SHORT $LN58@sorttok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	26					; 0000001aH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN58@sorttok:
	mov	edi, DWORD PTR _sToken$[esp+60]
	test	edi, edi
	je	SHORT $LN57@sorttok
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	31					; 0000001fH
	push	OFFSET ??_C@_0BG@NEKIFNKE@?4?4?2NC?5lib?2ncToken?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN57@sorttok:

; 859  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 48					; 00000030H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?sorttok@ncToken@@QAE?AV1@DH@Z$0:
	lea	ecx, DWORD PTR _sToken$[ebp]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
__unwindfunclet$?sorttok@ncToken@@QAE?AV1@DH@Z$1:
	mov	eax, DWORD PTR $T41063[ebp]
	and	eax, 1
	je	$LN26@sorttok
	and	DWORD PTR $T41063[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN26@sorttok:
	ret	0
__unwindfunclet$?sorttok@ncToken@@QAE?AV1@DH@Z$2:
	mov	eax, DWORD PTR $T41063[ebp]
	and	eax, 2
	je	$LN28@sorttok
	and	DWORD PTR $T41063[ebp], -3		; fffffffdH
	lea	ecx, DWORD PTR $T41044[ebp]
	jmp	??1ncToken@@QAE@XZ			; ncToken::~ncToken
$LN28@sorttok:
	ret	0
__ehhandler$?sorttok@ncToken@@QAE?AV1@DH@Z:
	mov	eax, OFFSET __ehfuncinfo$?sorttok@ncToken@@QAE?AV1@DH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?sorttok@ncToken@@QAE?AV1@DH@Z ENDP			; ncToken::sorttok
END
