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

	TITLE	d:\Source Code\NC lib\ncThread.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
;	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@
_DATA	ENDS
;	COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
CONST	SEGMENT
??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string'
CONST	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	?IsRunning@ncThread2@@QAE_NXZ			; ncThread2::IsRunning
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncthread.h
;	COMDAT ?IsRunning@ncThread2@@QAE_NXZ
_TEXT	SEGMENT
?IsRunning@ncThread2@@QAE_NXZ PROC			; ncThread2::IsRunning, COMDAT
; _this$ = ecx

; 126  : 	bool IsRunning() { return this->m_active; };

	mov	al, BYTE PTR [ecx+12]
	ret	0
?IsRunning@ncThread2@@QAE_NXZ ENDP			; ncThread2::IsRunning
_TEXT	ENDS
PUBLIC	?Execute@ncThread2@@CGIPAX@Z			; ncThread2::Execute
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncthread.cpp
;	COMDAT ?Execute@ncThread2@@CGIPAX@Z
_TEXT	SEGMENT
_thread$ = 8						; size = 4
?Execute@ncThread2@@CGIPAX@Z PROC			; ncThread2::Execute, COMDAT

; 13   : {

	push	esi

; 14   : 	ncThread2* t = (ncThread2 *)thread;
; 15   : 	t->OnExit((t->m_ret = t->Entry(t->m_param)));

	mov	esi, DWORD PTR _thread$[esp]
	mov	ecx, DWORD PTR [esi+8]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	ecx
	mov	ecx, esi
	call	edx
	mov	edx, DWORD PTR [esi]
	mov	DWORD PTR [esi+16], eax
	push	eax
	mov	eax, DWORD PTR [edx+8]
	mov	ecx, esi
	call	eax

; 16   : 	t->m_active = false;

	mov	BYTE PTR [esi+12], 0

; 17   : 	return 0;

	xor	eax, eax
	pop	esi

; 18   : }

	ret	4
?Execute@ncThread2@@CGIPAX@Z ENDP			; ncThread2::Execute
_TEXT	ENDS
PUBLIC	??_7ncThread2@@6B@				; ncThread2::`vftable'
PUBLIC	??0ncThread2@@QAE@XZ				; ncThread2::ncThread2
PUBLIC	??_R4ncThread2@@6B@				; ncThread2::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVncThread2@@@8				; ncThread2 `RTTI Type Descriptor'
PUBLIC	??_R3ncThread2@@8				; ncThread2::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ncThread2@@8				; ncThread2::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ncThread2@@8			; ncThread2::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?OnExit@ncThread2@@UAEXH@Z			; ncThread2::OnExit
EXTRN	??_EncThread2@@UAEPAXI@Z:PROC			; ncThread2::`vector deleting destructor'
EXTRN	__purecall:PROC
;	COMDAT ??_R1A@?0A@EA@ncThread2@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ncThread2@@8 DD FLAT:??_R0?AVncThread2@@@8 ; ncThread2::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ncThread2@@8
rdata$r	ENDS
;	COMDAT ??_R2ncThread2@@8
rdata$r	SEGMENT
??_R2ncThread2@@8 DD FLAT:??_R1A@?0A@EA@ncThread2@@8	; ncThread2::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3ncThread2@@8
rdata$r	SEGMENT
??_R3ncThread2@@8 DD 00H				; ncThread2::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2ncThread2@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVncThread2@@@8
_DATA	SEGMENT
??_R0?AVncThread2@@@8 DD FLAT:??_7type_info@@6B@	; ncThread2 `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVncThread2@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ncThread2@@6B@
rdata$r	SEGMENT
??_R4ncThread2@@6B@ DD 00H				; ncThread2::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVncThread2@@@8
	DD	FLAT:??_R3ncThread2@@8
rdata$r	ENDS
;	COMDAT ??_7ncThread2@@6B@
CONST	SEGMENT
??_7ncThread2@@6B@ DD FLAT:??_R4ncThread2@@6B@		; ncThread2::`vftable'
	DD	FLAT:??_EncThread2@@UAEPAXI@Z
	DD	FLAT:__purecall
	DD	FLAT:?OnExit@ncThread2@@UAEXH@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0ncThread2@@QAE@XZ
_TEXT	SEGMENT
??0ncThread2@@QAE@XZ PROC				; ncThread2::ncThread2, COMDAT
; _this$ = ecx

; 20   : {

	mov	eax, ecx

; 21   : 	this->m_thread  = 0;

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

; 22   : 	this->m_active  = false;

	mov	BYTE PTR [eax+12], cl

; 23   : 	this->m_canExit = false;

	mov	BYTE PTR [eax+13], cl

; 24   : }

	ret	0
??0ncThread2@@QAE@XZ ENDP				; ncThread2::ncThread2
_TEXT	ENDS
PUBLIC	??1ncThread2@@UAE@XZ				; ncThread2::~ncThread2
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncthread.h
;	COMDAT ??1ncThread2@@UAE@XZ
_TEXT	SEGMENT
??1ncThread2@@UAE@XZ PROC				; ncThread2::~ncThread2, COMDAT
; _this$ = ecx

; 123  : 	virtual ~ncThread2() { };

	mov	DWORD PTR [ecx], OFFSET ??_7ncThread2@@6B@
	ret	0
??1ncThread2@@UAE@XZ ENDP				; ncThread2::~ncThread2
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?OnExit@ncThread2@@UAEXH@Z
_TEXT	SEGMENT
_ExitCode$ = 8						; size = 4
?OnExit@ncThread2@@UAEXH@Z PROC				; ncThread2::OnExit, COMDAT
; _this$ = ecx

; 134  : 	virtual void OnExit(int ExitCode) { };

	ret	4
?OnExit@ncThread2@@UAEXH@Z ENDP				; ncThread2::OnExit
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GncThread2@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GncThread2@@UAEPAXI@Z PROC				; ncThread2::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7ncThread2@@6B@
	je	SHORT $LN6@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_GncThread2@@UAEPAXI@Z ENDP				; ncThread2::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Create@ncThread2@@QAEXPAX@Z			; ncThread2::Create
EXTRN	__beginthreadex:PROC
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncthread.cpp
;	COMDAT ?Create@ncThread2@@QAEXPAX@Z
_TEXT	SEGMENT
_param$ = 8						; size = 4
?Create@ncThread2@@QAEXPAX@Z PROC			; ncThread2::Create, COMDAT
; _this$ = ecx

; 26   : {

	push	esi
	mov	esi, ecx

; 27   : 	if (!this->IsRunning())

	xor	ecx, ecx
	cmp	BYTE PTR [esi+12], cl
	jne	SHORT $LN1@Create

; 28   : 	{
; 29   : 		this->m_param     = param;

	mov	eax, DWORD PTR _param$[esp]

; 30   : 		this->m_active    = true;
; 31   : 		this->m_canExit   = false;
; 32   : 		this->m_suspended = true;
; 33   : 		this->m_ret       = 0;
; 34   : 		this->m_thread    = (HANDLE)_beginthreadex(NULL, 4, &ncThread2::Execute, this, CREATE_SUSPENDED, NULL);

	push	ecx
	push	4
	push	esi
	push	OFFSET ?Execute@ncThread2@@CGIPAX@Z	; ncThread2::Execute
	mov	DWORD PTR [esi+8], eax
	mov	al, 1
	push	4
	push	ecx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR [esi+14], al
	mov	DWORD PTR [esi+16], ecx
	call	__beginthreadex
	add	esp, 24					; 00000018H
	mov	DWORD PTR [esi+4], eax
$LN1@Create:
	pop	esi

; 35   : 	}
; 36   : }

	ret	4
?Create@ncThread2@@QAEXPAX@Z ENDP			; ncThread2::Create
_TEXT	ENDS
PUBLIC	?Exit@ncThread2@@QAEXH@Z			; ncThread2::Exit
EXTRN	__imp__GetCurrentThread@0:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Exit@ncThread2@@QAEXH@Z
_TEXT	SEGMENT
_exitCode$ = 8						; size = 4
?Exit@ncThread2@@QAEXH@Z PROC				; ncThread2::Exit, COMDAT
; _this$ = ecx

; 43   : {

	push	esi
	mov	esi, ecx

; 44   : 	if (this->m_thread != 0 && GetCurrentThread() == this->m_thread)

	cmp	DWORD PTR [esi+4], 0
	je	SHORT $LN1@Exit
	call	DWORD PTR __imp__GetCurrentThread@0
	cmp	eax, DWORD PTR [esi+4]
	jne	SHORT $LN1@Exit

; 45   : 		this->m_canExit = true;

	mov	BYTE PTR [esi+13], 1
$LN1@Exit:
	pop	esi

; 46   : }

	ret	4
?Exit@ncThread2@@QAEXH@Z ENDP				; ncThread2::Exit
_TEXT	ENDS
PUBLIC	?Pause@ncThread2@@QAE_NXZ			; ncThread2::Pause
EXTRN	__imp__SuspendThread@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Pause@ncThread2@@QAE_NXZ
_TEXT	SEGMENT
?Pause@ncThread2@@QAE_NXZ PROC				; ncThread2::Pause, COMDAT
; _this$ = ecx

; 48   : {

	push	esi
	mov	esi, ecx

; 49   : 	if (this->m_thread != 0 && GetCurrentThread() != this->m_thread && !this->m_suspended)

	cmp	DWORD PTR [esi+4], 0
	push	edi
	je	SHORT $LN2@Pause
	mov	edi, DWORD PTR [esi+4]
	call	DWORD PTR __imp__GetCurrentThread@0
	cmp	eax, edi
	je	SHORT $LN2@Pause
	cmp	BYTE PTR [esi+14], 0
	jne	SHORT $LN2@Pause

; 50   : 	{
; 51   : 		if (SuspendThread(this->m_thread) == -1)

	push	edi
	call	DWORD PTR __imp__SuspendThread@4
	cmp	eax, -1

; 52   : 			return false;

	je	SHORT $LN2@Pause

; 53   : 		this->m_suspended = true;

	mov	al, 1
	pop	edi
	mov	BYTE PTR [esi+14], al
	pop	esi

; 57   : }

	ret	0
$LN2@Pause:
	pop	edi

; 54   : 		return true;
; 55   : 	}
; 56   : 	return false;

	xor	al, al
	pop	esi

; 57   : }

	ret	0
?Pause@ncThread2@@QAE_NXZ ENDP				; ncThread2::Pause
_TEXT	ENDS
PUBLIC	?Resume@ncThread2@@QAE_NXZ			; ncThread2::Resume
EXTRN	__imp__ResumeThread@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resume@ncThread2@@QAE_NXZ
_TEXT	SEGMENT
?Resume@ncThread2@@QAE_NXZ PROC				; ncThread2::Resume, COMDAT
; _this$ = ecx

; 59   : {

	push	esi
	mov	esi, ecx

; 60   : 	if (this->m_thread != 0 && GetCurrentThread != this->m_thread && this->m_suspended)

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	je	SHORT $LN2@Resume
	cmp	DWORD PTR __imp__GetCurrentThread@0, eax
	je	SHORT $LN2@Resume
	cmp	BYTE PTR [esi+14], 0
	je	SHORT $LN2@Resume

; 61   : 	{
; 62   : 		int ret = ResumeThread(this->m_thread);

	push	eax
	call	DWORD PTR __imp__ResumeThread@4

; 63   : 		if (ret == 1)

	cmp	eax, 1
	jne	SHORT $LN2@Resume

; 64   : 		{
; 65   : 			this->m_suspended = false;

	mov	BYTE PTR [esi+14], 0

; 66   : 			return true;

	mov	al, al
	pop	esi

; 71   : }

	ret	0
$LN2@Resume:

; 67   : 		}
; 68   : 		return false;
; 69   : 	}
; 70   : 	return false;

	xor	al, al
	pop	esi

; 71   : }

	ret	0
?Resume@ncThread2@@QAE_NXZ ENDP				; ncThread2::Resume
_TEXT	ENDS
PUBLIC	?Kill@ncThread2@@QAEXXZ				; ncThread2::Kill
EXTRN	__imp__TerminateThread@8:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Kill@ncThread2@@QAEXXZ
_TEXT	SEGMENT
?Kill@ncThread2@@QAEXXZ PROC				; ncThread2::Kill, COMDAT
; _this$ = ecx

; 74   : 	if (this->m_thread)

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

; 75   : 		TerminateThread(this->m_thread, 0);

	push	0
	push	eax
	call	DWORD PTR __imp__TerminateThread@8
$LN1@Kill:

; 76   : }

	ret	0
?Kill@ncThread2@@QAEXXZ ENDP				; ncThread2::Kill
_TEXT	ENDS
PUBLIC	?Wait@ncThread2@@QAEHXZ				; ncThread2::Wait
EXTRN	__imp__WaitForSingleObject@8:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Wait@ncThread2@@QAEHXZ
_TEXT	SEGMENT
?Wait@ncThread2@@QAEHXZ PROC				; ncThread2::Wait, COMDAT
; _this$ = ecx

; 78   : {

	push	esi
	mov	esi, ecx

; 79   : 	WaitForSingleObject(this->m_thread, INFINITE);

	mov	eax, DWORD PTR [esi+4]
	push	-1
	push	eax
	call	DWORD PTR __imp__WaitForSingleObject@8

; 80   : 	return this->m_ret;

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

; 81   : }

	ret	0
?Wait@ncThread2@@QAEHXZ ENDP				; ncThread2::Wait
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ; std::_DebugHeapAllocator<char>::allocate
PUBLIC	__CTA2?AVbad_alloc@std@@
PUBLIC	__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
PUBLIC	??0bad_alloc@std@@QAE@ABV01@@Z			; std::bad_alloc::bad_alloc
PUBLIC	__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
EXTRN	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z:PROC	; operator new[]
EXTRN	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ:PROC ; std::_DebugHeapTag_func
EXTRN	__CxxThrowException@8:PROC
EXTRN	??0exception@std@@QAE@ABV01@@Z:PROC		; std::exception::exception
;	COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
; File c:\program files\microsoft visual studio 8\vc\include\exception
xdata$x	SEGMENT
__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVexception@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0exception@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_alloc@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_alloc@std@@
xdata$x	SEGMENT
__CTA2?AVbad_alloc@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVbad_alloc@std@@
xdata$x	SEGMENT
__TI2?AVbad_alloc@std@@ DD 00H
	DD	FLAT:??1bad_alloc@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_alloc@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xdebug', 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T40959 = -12						; size = 12
_this$ = 8						; size = 4
$T40965 = 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 $T40965[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T40959[esp+20]
	mov	DWORD PTR $T40965[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T40959[esp+20]
	push	ecx
	mov	DWORD PTR $T40959[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
$T40971 = -12						; size = 12
$T40976 = 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 $T40976[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T40971[esp+20]
	mov	DWORD PTR $T40976[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T40971[esp+20]
	push	ecx
	mov	DWORD PTR $T40971[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
_TEXT	ENDS
PUBLIC	??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@ ; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	?Clear@?$ncVector@PAVncThread@@@@UAEXXZ		; ncVector<ncThread *>::Clear
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
;	COMDAT ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
; File d:\source code\nc lib\ncvector.h
CONST	SEGMENT
??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@ DB 'd:\source'
	DB	' code\nc lib\ncVector.h', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Clear@?$ncVector@PAVncThread@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$ncVector@PAVncThread@@@@UAEXXZ PROC		; ncVector<ncThread *>::Clear, COMDAT
; _this$ = ecx

; 52   : 	{

	push	esi
	mov	esi, ecx

; 53   : 		if (this->m_Vector)

	cmp	DWORD PTR [esi+4], 0
	je	SHORT $LN6@Clear

; 54   : 		{
; 55   : 			delete [] this->m_Vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	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

; 56   : 			this->m_Vector = NULL;

	mov	DWORD PTR [esi+4], 0
$LN6@Clear:

; 57   : 		}
; 58   : 		this->m_Length = 0;

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

; 59   : 	}

	ret	0
?Clear@?$ncVector@PAVncThread@@@@UAEXXZ ENDP		; ncVector<ncThread *>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??_H@YGXPAXIHP6EPAX0@Z@Z			; `vector constructor iterator'
; Function compile flags: /Ogtpy
;	COMDAT ??_H@YGXPAXIHP6EPAX0@Z@Z
_TEXT	SEGMENT
___t$ = 8						; size = 4
___s$ = 12						; size = 4
___n$ = 16						; size = 4
___f$ = 20						; size = 4
??_H@YGXPAXIHP6EPAX0@Z@Z PROC				; `vector constructor iterator', COMDAT
	push	edi
	mov	edi, DWORD PTR ___n$[esp]
	sub	edi, 1
	js	SHORT $LN1@vector
	push	ebx
	mov	ebx, DWORD PTR ___f$[esp+4]
	push	ebp
	mov	ebp, DWORD PTR ___s$[esp+8]
	push	esi
	mov	esi, DWORD PTR ___t$[esp+12]
	npad	7
$LL2@vector:
	mov	ecx, esi
	call	ebx
	add	esi, ebp
	sub	edi, 1
	jns	SHORT $LL2@vector
	pop	esi
	pop	ebp
	pop	ebx
$LN1@vector:
	pop	edi
	ret	16					; 00000010H
??_H@YGXPAXIHP6EPAX0@Z@Z ENDP				; `vector constructor iterator'
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

	ret	0
??0?$allocator@D@std@@QAE@XZ ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	??_7?$ncVector@PAVncThread@@@@6B@		; ncVector<ncThread *>::`vftable'
PUBLIC	??0?$ncVector@PAVncThread@@@@QAE@XZ		; ncVector<ncThread *>::ncVector<ncThread *>
PUBLIC	??_R4?$ncVector@PAVncThread@@@@6B@		; ncVector<ncThread *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ncVector@PAVncThread@@@@@8		; ncVector<ncThread *> `RTTI Type Descriptor'
PUBLIC	??_R3?$ncVector@PAVncThread@@@@8		; ncVector<ncThread *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ncVector@PAVncThread@@@@8		; ncVector<ncThread *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ncVector@PAVncThread@@@@8	; ncVector<ncThread *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Resize@?$ncVector@PAVncThread@@@@UAE_NH@Z	; ncVector<ncThread *>::Resize
EXTRN	??_E?$ncVector@PAVncThread@@@@UAEPAXI@Z:PROC	; ncVector<ncThread *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ncVector@PAVncThread@@@@8
; File d:\source code\nc lib\ncvector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ncVector@PAVncThread@@@@8 DD FLAT:??_R0?AV?$ncVector@PAVncThread@@@@@8 ; ncVector<ncThread *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ncVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ncVector@PAVncThread@@@@8
rdata$r	SEGMENT
??_R2?$ncVector@PAVncThread@@@@8 DD FLAT:??_R1A@?0A@EA@?$ncVector@PAVncThread@@@@8 ; ncVector<ncThread *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$ncVector@PAVncThread@@@@8
rdata$r	SEGMENT
??_R3?$ncVector@PAVncThread@@@@8 DD 00H			; ncVector<ncThread *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$ncVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ncVector@PAVncThread@@@@@8
_DATA	SEGMENT
??_R0?AV?$ncVector@PAVncThread@@@@@8 DD FLAT:??_7type_info@@6B@ ; ncVector<ncThread *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ncVector@PAVncThread@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ncVector@PAVncThread@@@@6B@
rdata$r	SEGMENT
??_R4?$ncVector@PAVncThread@@@@6B@ DD 00H		; ncVector<ncThread *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ncVector@PAVncThread@@@@@8
	DD	FLAT:??_R3?$ncVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ncVector@PAVncThread@@@@6B@
CONST	SEGMENT
??_7?$ncVector@PAVncThread@@@@6B@ DD FLAT:??_R4?$ncVector@PAVncThread@@@@6B@ ; ncVector<ncThread *>::`vftable'
	DD	FLAT:??_E?$ncVector@PAVncThread@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$ncVector@PAVncThread@@@@UAEXXZ
	DD	FLAT:?Resize@?$ncVector@PAVncThread@@@@UAE_NH@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ncVector@PAVncThread@@@@QAE@XZ
_TEXT	SEGMENT
??0?$ncVector@PAVncThread@@@@QAE@XZ PROC		; ncVector<ncThread *>::ncVector<ncThread *>, COMDAT
; _this$ = ecx

; 19   : 	ncVector()

	mov	eax, ecx

; 20   : 	{
; 21   : 		this->m_Length = 0;

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$ncVector@PAVncThread@@@@6B@
	mov	DWORD PTR [eax+8], ecx

; 22   : 		this->m_Vector = NULL;

	mov	DWORD PTR [eax+4], ecx

; 23   : 	}

	ret	0
??0?$ncVector@PAVncThread@@@@QAE@XZ ENDP		; ncVector<ncThread *>::ncVector<ncThread *>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Resize@?$ncVector@PAVncThread@@@@UAE_NH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Resize@?$ncVector@PAVncThread@@@@UAE_NH@Z PROC		; ncVector<ncThread *>::Resize, COMDAT
; _this$ = ecx

; 66   : 		return false;

	xor	al, al

; 67   : 	}

	ret	4
?Resize@?$ncVector@PAVncThread@@@@UAE_NH@Z ENDP		; ncVector<ncThread *>::Resize
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@ABV01@@Z		; 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@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	?Run@ncThread2@@QAEXXZ				; ncThread2::Run
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncthread.cpp
;	COMDAT ?Run@ncThread2@@QAEXXZ
_TEXT	SEGMENT
?Run@ncThread2@@QAEXXZ PROC				; ncThread2::Run, COMDAT
; _this$ = ecx

; 38   : {

	push	esi
	mov	esi, ecx

; 39   : 	if (this->IsRunning() && this->m_suspended)

	cmp	BYTE PTR [esi+12], 0
	je	SHORT $LN6@Run
	cmp	BYTE PTR [esi+14], 0
	je	SHORT $LN6@Run

; 40   : 		this->Resume();

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	je	SHORT $LN6@Run
	cmp	DWORD PTR __imp__GetCurrentThread@0, eax
	je	SHORT $LN6@Run
	push	eax
	call	DWORD PTR __imp__ResumeThread@4
	cmp	eax, 1
	jne	SHORT $LN6@Run
	mov	BYTE PTR [esi+14], 0
$LN6@Run:
	pop	esi

; 41   : }

	ret	0
?Run@ncThread2@@QAEXXZ ENDP				; ncThread2::Run
_TEXT	ENDS
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	??1?$ncVector@PAVncThread@@@@UAE@XZ		; ncVector<ncThread *>::~ncVector<ncThread *>
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncvector.h
;	COMDAT ??1?$ncVector@PAVncThread@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ncVector@PAVncThread@@@@UAE@XZ PROC		; ncVector<ncThread *>::~ncVector<ncThread *>, COMDAT
; _this$ = ecx

; 35   : 	{

	push	esi
	mov	esi, ecx

; 36   : 		this->Clear();

	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$ncVector@PAVncThread@@@@6B@
	je	SHORT $LN8@ncVector
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	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
	mov	DWORD PTR [esi+4], 0
$LN8@ncVector:
	mov	DWORD PTR [esi+8], 0
	pop	esi

; 37   : 	}

	ret	0
??1?$ncVector@PAVncThread@@@@UAE@XZ ENDP		; ncVector<ncThread *>::~ncVector<ncThread *>
_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>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ncVector@PAVncThread@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ncVector@PAVncThread@@@@UAEPAXI@Z PROC		; ncVector<ncThread *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$ncVector@PAVncThread@@@@6B@
	je	SHORT $LN6@scalar@3
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	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
	mov	DWORD PTR [esi+4], 0
$LN6@scalar@3:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	je	SHORT $LN11@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ncVector@PAVncThread@@@@UAEPAXI@Z ENDP		; ncVector<ncThread *>::`scalar deleting destructor'
_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	??_7?$ncDynamicVector@PAVncThread@@@@6B@	; ncDynamicVector<ncThread *>::`vftable'
PUBLIC	??0?$ncDynamicVector@PAVncThread@@@@QAE@XZ	; ncDynamicVector<ncThread *>::ncDynamicVector<ncThread *>
PUBLIC	??_R4?$ncDynamicVector@PAVncThread@@@@6B@	; ncDynamicVector<ncThread *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ncDynamicVector@PAVncThread@@@@@8	; ncDynamicVector<ncThread *> `RTTI Type Descriptor'
PUBLIC	??_R3?$ncDynamicVector@PAVncThread@@@@8		; ncDynamicVector<ncThread *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ncDynamicVector@PAVncThread@@@@8		; ncDynamicVector<ncThread *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ncDynamicVector@PAVncThread@@@@8 ; ncDynamicVector<ncThread *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$ncDynamicVector@PAVncThread@@@@UAEXXZ	; ncDynamicVector<ncThread *>::Clear
PUBLIC	?Resize@?$ncDynamicVector@PAVncThread@@@@UAE_NI@Z ; ncDynamicVector<ncThread *>::Resize
PUBLIC	?Add@?$ncDynamicVector@PAVncThread@@@@UAEXABQAVncThread@@@Z ; ncDynamicVector<ncThread *>::Add
PUBLIC	?Insert@?$ncDynamicVector@PAVncThread@@@@UAEXIABQAVncThread@@@Z ; ncDynamicVector<ncThread *>::Insert
PUBLIC	?Delete@?$ncDynamicVector@PAVncThread@@@@UAEXI@Z ; ncDynamicVector<ncThread *>::Delete
EXTRN	??_E?$ncDynamicVector@PAVncThread@@@@UAEPAXI@Z:PROC ; ncDynamicVector<ncThread *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ncDynamicVector@PAVncThread@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ncDynamicVector@PAVncThread@@@@8 DD FLAT:??_R0?AV?$ncDynamicVector@PAVncThread@@@@@8 ; ncDynamicVector<ncThread *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ncDynamicVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ncDynamicVector@PAVncThread@@@@8
rdata$r	SEGMENT
??_R2?$ncDynamicVector@PAVncThread@@@@8 DD FLAT:??_R1A@?0A@EA@?$ncDynamicVector@PAVncThread@@@@8 ; ncDynamicVector<ncThread *>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$ncVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ncDynamicVector@PAVncThread@@@@8
rdata$r	SEGMENT
??_R3?$ncDynamicVector@PAVncThread@@@@8 DD 00H		; ncDynamicVector<ncThread *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ncDynamicVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ncDynamicVector@PAVncThread@@@@@8
_DATA	SEGMENT
??_R0?AV?$ncDynamicVector@PAVncThread@@@@@8 DD FLAT:??_7type_info@@6B@ ; ncDynamicVector<ncThread *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ncDynamicVector@PAVncThread@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ncDynamicVector@PAVncThread@@@@6B@
rdata$r	SEGMENT
??_R4?$ncDynamicVector@PAVncThread@@@@6B@ DD 00H	; ncDynamicVector<ncThread *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ncDynamicVector@PAVncThread@@@@@8
	DD	FLAT:??_R3?$ncDynamicVector@PAVncThread@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ncDynamicVector@PAVncThread@@@@6B@
CONST	SEGMENT
??_7?$ncDynamicVector@PAVncThread@@@@6B@ DD FLAT:??_R4?$ncDynamicVector@PAVncThread@@@@6B@ ; ncDynamicVector<ncThread *>::`vftable'
	DD	FLAT:??_E?$ncDynamicVector@PAVncThread@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$ncDynamicVector@PAVncThread@@@@UAEXXZ
	DD	FLAT:?Resize@?$ncVector@PAVncThread@@@@UAE_NH@Z
	DD	FLAT:?Resize@?$ncDynamicVector@PAVncThread@@@@UAE_NI@Z
	DD	FLAT:?Add@?$ncDynamicVector@PAVncThread@@@@UAEXABQAVncThread@@@Z
	DD	FLAT:?Insert@?$ncDynamicVector@PAVncThread@@@@UAEXIABQAVncThread@@@Z
	DD	FLAT:?Delete@?$ncDynamicVector@PAVncThread@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ncDynamicVector@PAVncThread@@@@QAE@XZ
_TEXT	SEGMENT
??0?$ncDynamicVector@PAVncThread@@@@QAE@XZ PROC		; ncDynamicVector<ncThread *>::ncDynamicVector<ncThread *>, COMDAT
; _this$ = ecx

; 101  : 	{

	mov	eax, ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$ncDynamicVector@PAVncThread@@@@6B@

; 102  : 		this->m_Items = 0;

	mov	DWORD PTR [eax+12], ecx

; 103  : 	}

	ret	0
??0?$ncDynamicVector@PAVncThread@@@@QAE@XZ ENDP		; ncDynamicVector<ncThread *>::ncDynamicVector<ncThread *>
_TEXT	ENDS
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	_memcpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@?$ncDynamicVector@PAVncThread@@@@UAE_NI@Z
_TEXT	SEGMENT
_newSize$ = 8						; size = 4
?Resize@?$ncDynamicVector@PAVncThread@@@@UAE_NI@Z PROC	; ncDynamicVector<ncThread *>::Resize, COMDAT
; _this$ = ecx

; 130  : 	{

	push	esi
	push	edi

; 131  : 		if (newSize > 0)

	mov	edi, DWORD PTR _newSize$[esp+4]
	test	edi, edi
	mov	esi, ecx
	jbe	$LN3@Resize
	push	ebx

; 132  : 		{
; 133  : 			T *newVec = new T[newSize];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	133					; 00000085H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, edi
	mov	edx, 4
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 134  : 			if (this->m_Vector != NULL)

	mov	eax, DWORD PTR [esi+4]
	add	esp, 16					; 00000010H
	test	eax, eax
	je	SHORT $LN11@Resize

; 135  : 			{
; 136  : 				int allocCount = (this->m_Length > newSize) ? newSize : this->m_Length;

	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jbe	SHORT $LN8@Resize
	mov	ecx, edi
$LN8@Resize:

; 137  : 				memcpy(newVec, this->m_Vector, allocCount * sizeof(T));

	add	ecx, ecx
	add	ecx, ecx
	push	ecx
	push	eax
	push	ebx
	call	_memcpy

; 138  : 				delete [] this->m_Vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	138					; 0000008aH
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [esi+4]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH
$LN11@Resize:

; 139  : 			}
; 140  : 			if (this->m_Items > newSize)

	cmp	DWORD PTR [esi+12], edi
	jbe	SHORT $LN1@Resize

; 141  : 				this->m_Items = newSize;

	mov	DWORD PTR [esi+12], edi
$LN1@Resize:

; 142  : 			this->m_Length = newSize;
; 143  : 			this->m_Vector = newVec;

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

; 144  : 			return true;

	mov	al, 1
	pop	esi

; 147  : 	}

	ret	4
$LN3@Resize:
	pop	edi

; 145  : 		}
; 146  : 		return false;

	xor	al, al
	pop	esi

; 147  : 	}

	ret	4
?Resize@?$ncDynamicVector@PAVncThread@@@@UAE_NI@Z ENDP	; ncDynamicVector<ncThread *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$ncDynamicVector@PAVncThread@@@@UAEXABQAVncThread@@@Z
_TEXT	SEGMENT
_object$ = 8						; size = 4
?Add@?$ncDynamicVector@PAVncThread@@@@UAEXABQAVncThread@@@Z PROC ; ncDynamicVector<ncThread *>::Add, COMDAT
; _this$ = ecx

; 149  : 	{

	push	esi
	mov	esi, ecx

; 150  : 		if (this->Resize(this->m_Length +1))

	mov	ecx, DWORD PTR [esi+8]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+12]
	add	ecx, 1
	push	ecx
	mov	ecx, esi
	call	edx
	test	al, al
	je	SHORT $LN1@Add

; 151  : 		{
; 152  : 			this->m_Vector[this->m_Length -1] = object;

	mov	edx, DWORD PTR _object$[esp]
	mov	edx, DWORD PTR [edx]
	mov	eax, DWORD PTR [esi+8]
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR [ecx+eax*4-4], edx

; 153  : 			this->m_Items++;

	add	DWORD PTR [esi+12], 1
$LN1@Add:
	pop	esi

; 154  : 		}
; 155  : 	}

	ret	4
?Add@?$ncDynamicVector@PAVncThread@@@@UAEXABQAVncThread@@@Z ENDP ; ncDynamicVector<ncThread *>::Add
_TEXT	ENDS
EXTRN	_memmove:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Insert@?$ncDynamicVector@PAVncThread@@@@UAEXIABQAVncThread@@@Z
_TEXT	SEGMENT
_Index$ = 8						; size = 4
_object$ = 12						; size = 4
?Insert@?$ncDynamicVector@PAVncThread@@@@UAEXIABQAVncThread@@@Z PROC ; ncDynamicVector<ncThread *>::Insert, COMDAT
; _this$ = ecx

; 157  : 	{

	push	esi
	mov	esi, ecx

; 158  : 		if (Index > this->m_Length)

	mov	eax, DWORD PTR [esi+8]
	push	edi
	mov	edi, DWORD PTR _Index$[esp+4]
	cmp	edi, eax
	jbe	SHORT $LN3@Insert

; 159  : 			this->Add(object);

	mov	ecx, DWORD PTR _object$[esp+4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+16]
	push	ecx
	mov	ecx, esi
	call	edx
	pop	edi
	pop	esi

; 165  : 		}
; 166  : 	}

	ret	8
$LN3@Insert:

; 160  : 		else if (this->Resize(this->m_Length + 1))

	mov	edx, DWORD PTR [esi]
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR [edx+12]
	call	eax
	test	al, al
	je	SHORT $LN1@Insert

; 161  : 		{
; 162  : 			memmove(&this->m_Vector[Index + 1], &this->m_Vector[Index], (this->m_Length - Index -1) * sizeof(T));

	mov	ecx, DWORD PTR [esi+4]
	mov	edx, DWORD PTR [esi+8]
	lea	eax, DWORD PTR [ecx+edi*4]
	sub	edx, edi
	lea	ecx, DWORD PTR [edx*4-4]
	push	ecx
	push	eax
	add	eax, 4
	push	eax
	call	_memmove

; 163  : 			this->m_Vector[Index] = object;

	mov	eax, DWORD PTR _object$[esp+16]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [esi+4]
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edx+edi*4], ecx

; 164  : 			this->m_Items++;

	add	DWORD PTR [esi+12], 1
$LN1@Insert:
	pop	edi
	pop	esi

; 165  : 		}
; 166  : 	}

	ret	8
?Insert@?$ncDynamicVector@PAVncThread@@@@UAEXIABQAVncThread@@@Z ENDP ; ncDynamicVector<ncThread *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$ncDynamicVector@PAVncThread@@@@UAEXI@Z
_TEXT	SEGMENT
_Index$ = 8						; size = 4
?Delete@?$ncDynamicVector@PAVncThread@@@@UAEXI@Z PROC	; ncDynamicVector<ncThread *>::Delete, COMDAT
; _this$ = ecx

; 169  : 		if (Index < 0 || Index >= this->m_Length)

	mov	edx, DWORD PTR _Index$[esp-4]
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+8]
	cmp	edx, eax
	jae	SHORT $LN4@Delete

; 170  : 			return;
; 171  : 		this->m_Items--;

	add	DWORD PTR [esi+12], -1

; 172  : 		if (this->m_Items == 0)

	jne	SHORT $LN3@Delete

; 173  : 			this->Clear();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	call	edx
	pop	esi

; 179  : 		}
; 180  : 	}

	ret	4
$LN3@Delete:

; 174  : 		else
; 175  : 		{
; 176  : 			if (Index < this->m_Length)
; 177  : 				memmove(&this->m_Vector[Index], &this->m_Vector[Index +1], (this->m_Length - Index -1) * sizeof(T));

	mov	ecx, DWORD PTR [esi+4]
	lea	ecx, DWORD PTR [ecx+edx*4]
	sub	eax, edx
	lea	edx, DWORD PTR [eax*4-4]
	push	edx
	lea	eax, DWORD PTR [ecx+4]
	push	eax
	push	ecx
	call	_memmove

; 178  : 			this->Resize(this->m_Items);

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [edx+12]
	add	esp, 12					; 0000000cH
	push	eax
	mov	ecx, esi
	call	edx
$LN4@Delete:
	pop	esi

; 179  : 		}
; 180  : 	}

	ret	4
?Delete@?$ncDynamicVector@PAVncThread@@@@UAEXI@Z ENDP	; ncDynamicVector<ncThread *>::Delete
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Clear@?$ncDynamicVector@PAVncThread@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$ncDynamicVector@PAVncThread@@@@UAEXXZ PROC	; ncDynamicVector<ncThread *>::Clear, COMDAT
; _this$ = ecx

; 121  : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 122  : 		this->ncVector<T>::Clear();

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	je	SHORT $LN8@Clear@2
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	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
	mov	DWORD PTR [esi+4], edi
$LN8@Clear@2:

; 123  : 		this->m_Items = 0;

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

; 124  : 	}

	ret	0
?Clear@?$ncDynamicVector@PAVncThread@@@@UAEXXZ ENDP	; ncDynamicVector<ncThread *>::Clear
_TEXT	ENDS
PUBLIC	??1?$ncDynamicVector@PAVncThread@@@@UAE@XZ	; ncDynamicVector<ncThread *>::~ncDynamicVector<ncThread *>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ncDynamicVector@PAVncThread@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ncDynamicVector@PAVncThread@@@@UAE@XZ PROC		; ncDynamicVector<ncThread *>::~ncDynamicVector<ncThread *>, COMDAT
; _this$ = ecx

; 117  : 	{

	push	esi
	mov	esi, ecx
	push	edi

; 118  : 		this->m_Items = 0;

	xor	edi, edi

; 119  : 	}

	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi], OFFSET ??_7?$ncVector@PAVncThread@@@@6B@
	je	SHORT $LN11@ncDynamicV
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	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
	mov	DWORD PTR [esi+4], edi
$LN11@ncDynamicV:
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi
	ret	0
??1?$ncDynamicVector@PAVncThread@@@@UAE@XZ ENDP		; ncDynamicVector<ncThread *>::~ncDynamicVector<ncThread *>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ncDynamicVector@PAVncThread@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ncDynamicVector@PAVncThread@@@@UAEPAXI@Z PROC	; ncDynamicVector<ncThread *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi+12], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$ncVector@PAVncThread@@@@6B@
	je	SHORT $LN9@scalar@4
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	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
	mov	DWORD PTR [esi+4], 0
$LN9@scalar@4:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	je	SHORT $LN14@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN14@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ncDynamicVector@PAVncThread@@@@UAEPAXI@Z ENDP	; ncDynamicVector<ncThread *>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A ; ThreadList
EXTRN	_atexit:PROC
_DATA	SEGMENT
?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A DD FLAT:??_7?$ncDynamicVector@PAVncThread@@@@6B@ ; ThreadList
	DB	8 DUP(00H)
	DD	00H
; Function compile flags: /Ogtpy
; File d:\source code\nc lib\ncthread.cpp
_DATA	ENDS
;	COMDAT ??__EThreadList@@YAXXZ
text$yc	SEGMENT
??__EThreadList@@YAXXZ PROC				; `dynamic initializer for 'ThreadList'', COMDAT

; 9    : ncDynamicVector<ncThread *> ThreadList;

	push	OFFSET ??__FThreadList@@YAXXZ		; `dynamic atexit destructor for 'ThreadList''
	call	_atexit
	pop	ecx
	ret	0
??__EThreadList@@YAXXZ ENDP				; `dynamic initializer for 'ThreadList''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FThreadList@@YAXXZ
text$yd	SEGMENT
??__FThreadList@@YAXXZ PROC				; `dynamic atexit destructor for 'ThreadList'', COMDAT
	push	esi
	xor	esi, esi
	cmp	DWORD PTR ?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A+4, esi
	mov	DWORD PTR ?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A+12, esi
	mov	DWORD PTR ?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A, OFFSET ??_7?$ncVector@PAVncThread@@@@6B@
	je	SHORT $LN13@dynamic
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0CB@BOFIHJED@d?3?2source?5code?2nc?5lib?2ncVector?4h@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR ?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A+4
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR ?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A+4, esi
$LN13@dynamic:
	mov	DWORD PTR ?ThreadList@@3V?$ncDynamicVector@PAVncThread@@@@A+8, esi
	pop	esi
	ret	0
??__FThreadList@@YAXXZ ENDP				; `dynamic atexit destructor for 'ThreadList''
text$yd	ENDS
CRT$XCU	SEGMENT
_ThreadList$initializer$ DD FLAT:??__EThreadList@@YAXXZ
CRT$XCU	ENDS
END
