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

	TITLE	d:\Source Code\STGM\nhp.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	?assign@?$char_traits@D@std@@SAXAADABD@Z	; std::char_traits<char>::assign
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
;	COMDAT ?assign@?$char_traits@D@std@@SAXAADABD@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
?assign@?$char_traits@D@std@@SAXAADABD@Z PROC		; std::char_traits<char>::assign, COMDAT

; 418  : 		_Left = _Right;

	mov	eax, DWORD PTR __Right$[esp-4]
	mov	cl, BYTE PTR [eax]
	mov	edx, DWORD PTR __Left$[esp-4]
	mov	BYTE PTR [edx], cl

; 419  : 		}

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

; 441  : //		_DEBUG_POINTER(_First);
; 442  : 		return (::strlen(_First));

	mov	eax, DWORD PTR __First$[esp-4]
	lea	edx, DWORD PTR [eax+1]
$LL3@length:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL3@length
	sub	eax, edx

; 443  : 		}

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

; 456  : //		_DEBUG_POINTER(_First1);
; 457  : //		_DEBUG_POINTER(_First2);
; 458  : 		_CRT_SECURE_MEMCPY(_First1, _Size_in_bytes, _First2, _Count);

	mov	eax, DWORD PTR __Count$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	edx, DWORD PTR __Size_in_bytes$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First1$[esp]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	_memcpy_s
	add	esp, 16					; 00000010H

; 459  : 		return _First1;

	mov	eax, esi
	pop	esi

; 460  : 		}

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

; 480  : //		_DEBUG_POINTER(_First1);
; 481  : //		_DEBUG_POINTER(_First2);
; 482  : 		_CRT_SECURE_MEMMOVE(_First1, _Size_in_bytes, _First2, _Count);

	mov	eax, DWORD PTR __Count$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	edx, DWORD PTR __Size_in_bytes$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First1$[esp]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	_memmove_s
	add	esp, 16					; 00000010H

; 483  : 		return _First1;

	mov	eax, esi
	pop	esi

; 484  : 		}

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

; 488  : //		_DEBUG_POINTER(_First);
; 489  : 		return ((_Elem *)::memset(_First, _Ch, _Count));

	mov	eax, DWORD PTR __Count$[esp-4]
	movsx	ecx, BYTE PTR __Ch$[esp-4]
	mov	edx, DWORD PTR __First$[esp-4]
	push	eax
	push	ecx
	push	edx
	call	_memset
	add	esp, 12					; 0000000cH

; 490  : 		}

	ret	0
?assign@?$char_traits@D@std@@SAPADPADID@Z ENDP		; std::char_traits<char>::assign
_TEXT	ENDS
PUBLIC	?to_char_type@?$char_traits@D@std@@SADABH@Z	; std::char_traits<char>::to_char_type
; Function compile flags: /Ogtpy
;	COMDAT ?to_char_type@?$char_traits@D@std@@SADABH@Z
_TEXT	SEGMENT
__Meta$ = 8						; size = 4
?to_char_type@?$char_traits@D@std@@SADABH@Z PROC	; std::char_traits<char>::to_char_type, COMDAT

; 494  : 		return ((_Elem)_Meta);

	mov	eax, DWORD PTR __Meta$[esp-4]
	mov	al, BYTE PTR [eax]

; 495  : 		}

	ret	0
?to_char_type@?$char_traits@D@std@@SADABH@Z ENDP	; std::char_traits<char>::to_char_type
_TEXT	ENDS
PUBLIC	?to_int_type@?$char_traits@D@std@@SAHABD@Z	; std::char_traits<char>::to_int_type
; Function compile flags: /Ogtpy
;	COMDAT ?to_int_type@?$char_traits@D@std@@SAHABD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 4
?to_int_type@?$char_traits@D@std@@SAHABD@Z PROC		; std::char_traits<char>::to_int_type, COMDAT

; 499  : 		return ((unsigned char)_Ch);

	mov	eax, DWORD PTR __Ch$[esp-4]
	movzx	eax, BYTE PTR [eax]

; 500  : 		}

	ret	0
?to_int_type@?$char_traits@D@std@@SAHABD@Z ENDP		; std::char_traits<char>::to_int_type
_TEXT	ENDS
PUBLIC	?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z	; std::char_traits<char>::eq_int_type
; Function compile flags: /Ogtpy
;	COMDAT ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z PROC	; std::char_traits<char>::eq_int_type, COMDAT

; 505  : 		return (_Left == _Right);

	mov	eax, DWORD PTR __Left$[esp-4]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR __Right$[esp-4]
	xor	eax, eax
	cmp	ecx, DWORD PTR [edx]
	sete	al

; 506  : 		}

	ret	0
?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z ENDP	; std::char_traits<char>::eq_int_type
_TEXT	ENDS
PUBLIC	?eof@?$char_traits@D@std@@SAHXZ			; std::char_traits<char>::eof
; Function compile flags: /Ogtpy
;	COMDAT ?eof@?$char_traits@D@std@@SAHXZ
_TEXT	SEGMENT
?eof@?$char_traits@D@std@@SAHXZ PROC			; std::char_traits<char>::eof, COMDAT

; 510  : 		return (EOF);

	or	eax, -1

; 511  : 		}

	ret	0
?eof@?$char_traits@D@std@@SAHXZ ENDP			; std::char_traits<char>::eof
_TEXT	ENDS
PUBLIC	??0_Container_base@std@@QAE@XZ			; std::_Container_base::_Container_base
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??0_Container_base@std@@QAE@XZ
_TEXT	SEGMENT
??0_Container_base@std@@QAE@XZ PROC			; std::_Container_base::_Container_base, COMDAT
; _this$ = ecx

; 91   : 		{	// construct childless container

	mov	eax, ecx
	mov	DWORD PTR [eax], 0

; 92   : 		}

	ret	0
??0_Container_base@std@@QAE@XZ ENDP			; std::_Container_base::_Container_base
_TEXT	ENDS
PUBLIC	??0_Iterator_base@std@@QAE@XZ			; std::_Iterator_base::_Iterator_base
; Function compile flags: /Ogtpy
;	COMDAT ??0_Iterator_base@std@@QAE@XZ
_TEXT	SEGMENT
??0_Iterator_base@std@@QAE@XZ PROC			; std::_Iterator_base::_Iterator_base, COMDAT
; _this$ = ecx

; 127  : 		{	// construct orphaned iterator

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

; 128  : 		}

	ret	0
??0_Iterator_base@std@@QAE@XZ ENDP			; std::_Iterator_base::_Iterator_base
_TEXT	ENDS
PUBLIC	??_C@_1DC@POOIKBAO@?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5?$AAC?$AAO?$AAR?$AAR?$AAU?$AAP?$AAT?$AAE?$AAD?$AA?$CB?$AA?$AA@ ; `string'
PUBLIC	??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ ; `string'
PUBLIC	?_Orphan_me@_Iterator_base@std@@QAEXXZ		; std::_Iterator_base::_Orphan_me
EXTRN	?_Debug_message@std@@YAXPB_W0I@Z:PROC		; std::_Debug_message
;	COMDAT ??_C@_1DC@POOIKBAO@?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5?$AAC?$AAO?$AAR?$AAR?$AAU?$AAP?$AAT?$AAE?$AAD?$AA?$CB?$AA?$AA@
CONST	SEGMENT
??_C@_1DC@POOIKBAO@?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5?$AAC?$AAO?$AAR?$AAR?$AAU?$AAP?$AAT?$AAE?$AAD?$AA?$CB?$AA?$AA@ DB 'I'
	DB	00H, 'T', 00H, 'E', 00H, 'R', 00H, 'A', 00H, 'T', 00H, 'O', 00H
	DB	'R', 00H, ' ', 00H, 'L', 00H, 'I', 00H, 'S', 00H, 'T', 00H, ' '
	DB	00H, 'C', 00H, 'O', 00H, 'R', 00H, 'R', 00H, 'U', 00H, 'P', 00H
	DB	'T', 00H, 'E', 00H, 'D', 00H, '!', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
CONST	SEGMENT
??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ DB 'C'
	DB	00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H
	DB	'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l'
	DB	00H, 'e', 00H, 's', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H
	DB	'r', 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' '
	DB	00H, 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H
	DB	' ', 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o'
	DB	00H, ' ', 00H, '8', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H
	DB	'i', 00H, 'n', 00H, 'c', 00H, 'l', 00H, 'u', 00H, 'd', 00H, 'e'
	DB	00H, '\', 00H, 'x', 00H, 'u', 00H, 't', 00H, 'i', 00H, 'l', 00H
	DB	'i', 00H, 't', 00H, 'y', 00H, 00H, 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?_Orphan_me@_Iterator_base@std@@QAEXXZ
_TEXT	SEGMENT
?_Orphan_me@_Iterator_base@std@@QAEXXZ PROC		; std::_Iterator_base::_Orphan_me, COMDAT
; _this$ = ecx

; 169  : 		{	// cut ties with parent

	push	esi
	push	edi
	mov	edi, ecx

; 170  : 		if (_Mycont != 0 && _Mycont->_Myfirstiter != _IGNORE_MYITERLIST)

	mov	esi, DWORD PTR [edi]
	test	esi, esi
	je	SHORT $LN4@Orphan_me
	cmp	DWORD PTR [esi], -3			; fffffffdH
	je	SHORT $LN4@Orphan_me

; 171  : 			{	// adopted, remove self from list
; 172  : 			_Iterator_base **_Pnext =
; 173  : 				(_Iterator_base **)&_Mycont->_Myfirstiter;
; 174  : 			while (*_Pnext != 0 && *_Pnext != this)

	cmp	DWORD PTR [esi], 0
	je	SHORT $LN9@Orphan_me
$LL3@Orphan_me:
	mov	eax, DWORD PTR [esi]
	cmp	eax, edi
	je	SHORT $LN2@Orphan_me
	cmp	DWORD PTR [eax+4], 0

; 175  : 				_Pnext = &(*_Pnext)->_Mynextiter;

	lea	esi, DWORD PTR [eax+4]
	jne	SHORT $LL3@Orphan_me
$LN2@Orphan_me:

; 176  : 
; 177  : 			if (*_Pnext == 0)

	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN1@Orphan_me
$LN9@Orphan_me:

; 178  : 				_DEBUG_ERROR("ITERATOR LIST CORRUPTED!");

	push	178					; 000000b2H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1DC@POOIKBAO@?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5?$AAC?$AAO?$AAR?$AAR?$AAU?$AAP?$AAT?$AAE?$AAD?$AA?$CB?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN1@Orphan_me:

; 179  : 			*_Pnext = _Mynextiter;

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

; 180  : 			_Mycont = 0;

	mov	DWORD PTR [edi], 0
$LN4@Orphan_me:
	pop	edi
	pop	esi

; 181  : 			}
; 182  : 		}

	ret	0
?_Orphan_me@_Iterator_base@std@@QAEXXZ ENDP		; std::_Iterator_base::_Orphan_me
_TEXT	ENDS
PUBLIC	?_Orphan_all@_Container_base@std@@QBEXXZ	; std::_Container_base::_Orphan_all
EXTRN	??1_Lockit@std@@QAE@XZ:PROC			; std::_Lockit::~_Lockit
EXTRN	??0_Lockit@std@@QAE@H@Z:PROC			; std::_Lockit::_Lockit
; Function compile flags: /Ogtpy
;	COMDAT ?_Orphan_all@_Container_base@std@@QBEXXZ
_TEXT	SEGMENT
__Lock$ = -4						; size = 4
?_Orphan_all@_Container_base@std@@QBEXXZ PROC		; std::_Container_base::_Orphan_all, COMDAT
; _this$ = ecx

; 191  : 	{	// orphan all iterators

	push	ecx
	push	esi
	mov	esi, ecx

; 192  : 	_Lockit _Lock(_LOCK_DEBUG);

	push	3
	lea	ecx, DWORD PTR __Lock$[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 193  : 	if (_Myfirstiter != _IGNORE_MYITERLIST)

	mov	eax, DWORD PTR [esi]
	cmp	eax, -3					; fffffffdH
	je	SHORT $LN4@Orphan_all

; 194  : 		{
; 195  : 		for (_Iterator_base **_Pnext = (_Iterator_base **)&_Myfirstiter;
; 196  : 			*_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter)

	test	eax, eax
	je	SHORT $LN1@Orphan_all
	npad	6
$LL3@Orphan_all:

; 197  : 			(*_Pnext)->_Mycont = 0;

	mov	eax, DWORD PTR [esi]
	mov	DWORD PTR [eax], 0
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	test	edx, edx
	mov	DWORD PTR [esi], edx
	jne	SHORT $LL3@Orphan_all
$LN1@Orphan_all:

; 198  : 		*(_Iterator_base **)&_Myfirstiter = 0;

	mov	DWORD PTR [esi], 0
$LN4@Orphan_all:

; 199  : 		}
; 200  : 	}

	lea	ecx, DWORD PTR __Lock$[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	pop	esi
	pop	ecx
	ret	0
?_Orphan_all@_Container_base@std@@QBEXXZ ENDP		; std::_Container_base::_Orphan_all
_TEXT	ENDS
PUBLIC	?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ	; std::_Locinfo::_Getctype
EXTRN	__Getctype:PROC
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocinfo
;	COMDAT ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ
_TEXT	SEGMENT
$T26091 = -16						; size = 16
___$ReturnUdt$ = 8					; size = 4
?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ PROC	; std::_Locinfo::_Getctype, COMDAT
; _this$ = ecx

; 114  : 		{	// return ctype stuff

	sub	esp, 16					; 00000010H

; 115  : 		return (::_Getctype());

	lea	eax, DWORD PTR $T26091[esp+16]
	push	eax
	call	__Getctype
	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+16]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [ecx], edx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+4], edx
	mov	edx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [eax+12]
	mov	DWORD PTR [ecx+8], edx
	mov	DWORD PTR [ecx+12], eax
	mov	eax, ecx

; 116  : 		}

	add	esp, 20					; 00000014H
	ret	4
?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ ENDP	; std::_Locinfo::_Getctype
_TEXT	ENDS
PUBLIC	?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ	; std::_Locinfo::_Getcvt
EXTRN	__Getcvt:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ PROC		; std::_Locinfo::_Getcvt, COMDAT
; _this$ = ecx

; 120  : 		return (::_Getcvt());

	call	__Getcvt
	mov	ecx, eax
	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [eax+4], edx

; 121  : 		}

	ret	4
?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ ENDP		; std::_Locinfo::_Getcvt
_TEXT	ENDS
PUBLIC	??0id@locale@std@@QAE@I@Z			; std::locale::id::id
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ??0id@locale@std@@QAE@I@Z
_TEXT	SEGMENT
__Val$ = 8						; size = 4
??0id@locale@std@@QAE@I@Z PROC				; std::locale::id::id, COMDAT
; _this$ = ecx

; 73   : 			{	// construct with specified stamp value

	mov	eax, ecx
	mov	ecx, DWORD PTR __Val$[esp-4]
	mov	DWORD PTR [eax], ecx

; 74   : 			}

	ret	4
??0id@locale@std@@QAE@I@Z ENDP				; std::locale::id::id
_TEXT	ENDS
PUBLIC	??Bid@locale@std@@QAEIXZ			; std::locale::id::operator unsigned int
EXTRN	?_Id_cnt@id@locale@std@@0HA:DWORD		; std::locale::id::_Id_cnt
; Function compile flags: /Ogtpy
;	COMDAT ??Bid@locale@std@@QAEIXZ
_TEXT	SEGMENT
__Lock$12925 = -4					; size = 4
??Bid@locale@std@@QAEIXZ PROC				; std::locale::id::operator unsigned int, COMDAT
; _this$ = ecx

; 77   : 			{	// get stamp, with lazy allocation

	push	ecx
	push	esi
	mov	esi, ecx

; 78   : 			if (_Id == 0)

	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN6@operator

; 79   : 				{	// still zero, allocate stamp
; 80   : 				_BEGIN_LOCK(_LOCK_LOCALE)

	push	0
	lea	ecx, DWORD PTR __Lock$12925[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 81   : 					if (_Id == 0)

	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN1@operator

; 82   : 						_Id = ++_Id_cnt;

	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	add	eax, 1
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR [esi], eax
$LN1@operator:

; 83   : 				_END_LOCK()

	lea	ecx, DWORD PTR __Lock$12925[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN6@operator:

; 84   : 				}
; 85   : 			return (_Id);

	mov	eax, DWORD PTR [esi]
	pop	esi

; 86   : 			}

	pop	ecx
	ret	0
??Bid@locale@std@@QAEIXZ ENDP				; std::locale::id::operator unsigned int
_TEXT	ENDS
PUBLIC	?_Incref@facet@locale@std@@QAEXXZ		; std::locale::facet::_Incref
; Function compile flags: /Ogtpy
;	COMDAT ?_Incref@facet@locale@std@@QAEXXZ
_TEXT	SEGMENT
__Lock$12931 = -4					; size = 4
?_Incref@facet@locale@std@@QAEXXZ PROC			; std::locale::facet::_Incref, COMDAT
; _this$ = ecx

; 116  : 			{	// safely increment the reference count

	push	ecx
	push	esi
	mov	esi, ecx

; 117  : 			_BEGIN_LOCK(_LOCK_LOCALE)

	push	0
	lea	ecx, DWORD PTR __Lock$12931[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 118  : 				if (_Refs < (size_t)(-1))

	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $LN1@Incref

; 119  : 					++_Refs;

	add	eax, 1
	mov	DWORD PTR [esi+4], eax
$LN1@Incref:

; 120  : 			_END_LOCK()

	lea	ecx, DWORD PTR __Lock$12931[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	pop	esi

; 121  : 			}

	pop	ecx
	ret	0
?_Incref@facet@locale@std@@QAEXXZ ENDP			; std::locale::facet::_Incref
_TEXT	ENDS
PUBLIC	?_Decref@facet@locale@std@@QAEPAV123@XZ		; std::locale::facet::_Decref
; Function compile flags: /Ogtpy
;	COMDAT ?_Decref@facet@locale@std@@QAEPAV123@XZ
_TEXT	SEGMENT
__Lock$12936 = -4					; size = 4
?_Decref@facet@locale@std@@QAEPAV123@XZ PROC		; std::locale::facet::_Decref, COMDAT
; _this$ = ecx

; 124  : 			{	// safely decrement the reference count, return this when dead

	push	ecx
	push	esi
	push	edi
	mov	edi, ecx

; 125  : 			_BEGIN_LOCK(_LOCK_LOCALE)

	push	0
	lea	ecx, DWORD PTR __Lock$12936[esp+16]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 126  : 				if (0 < _Refs && _Refs < (size_t)(-1))

	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $LN1@Decref
	cmp	eax, -1
	jae	SHORT $LN1@Decref

; 127  : 					--_Refs;

	add	eax, -1
	mov	DWORD PTR [edi+4], eax
$LN1@Decref:

; 128  : 				return (_Refs == 0 ? this : 0);

	mov	esi, DWORD PTR [edi+4]
	neg	esi
	sbb	esi, esi
	not	esi
	lea	ecx, DWORD PTR __Lock$12936[esp+12]
	and	esi, edi
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	pop	edi
	mov	eax, esi
	pop	esi

; 129  : 			_END_LOCK()
; 130  : 			}

	pop	ecx
	ret	0
?_Decref@facet@locale@std@@QAEPAV123@XZ ENDP		; std::locale::facet::_Decref
_TEXT	ENDS
PUBLIC	?_Register@facet@locale@std@@QAEXXZ		; std::locale::facet::_Register
EXTRN	?facet_Register@facet@locale@std@@CAXPAV123@@Z:PROC ; std::locale::facet::facet_Register
; Function compile flags: /Ogtpy
;	COMDAT ?_Register@facet@locale@std@@QAEXXZ
_TEXT	SEGMENT
?_Register@facet@locale@std@@QAEXXZ PROC		; std::locale::facet::_Register, COMDAT
; _this$ = ecx

; 134  : 			facet_Register(this);

	push	ecx
	call	?facet_Register@facet@locale@std@@CAXPAV123@@Z ; std::locale::facet::facet_Register
	pop	ecx

; 135  : 			}

	ret	0
?_Register@facet@locale@std@@QAEXXZ ENDP		; std::locale::facet::_Register
_TEXT	ENDS
PUBLIC	??2facet@locale@std@@SAPAXIABU_DebugHeapTag_t@2@PADH@Z ; std::locale::facet::operator new
EXTRN	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z:PROC	; operator new
; Function compile flags: /Ogtpy
;	COMDAT ??2facet@locale@std@@SAPAXIABU_DebugHeapTag_t@2@PADH@Z
_TEXT	SEGMENT
__Size$ = 8						; size = 4
__Tag$ = 12						; size = 4
__File$ = 16						; size = 4
__Line$ = 20						; size = 4
??2facet@locale@std@@SAPAXIABU_DebugHeapTag_t@2@PADH@Z PROC ; std::locale::facet::operator new, COMDAT

; 147  : 			return (::operator new(_Size, _Tag, _File, _Line));

	jmp	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
??2facet@locale@std@@SAPAXIABU_DebugHeapTag_t@2@PADH@Z ENDP ; std::locale::facet::operator new
_TEXT	ENDS
PUBLIC	??_7facet@locale@std@@6B@			; std::locale::facet::`vftable'
PUBLIC	??1facet@locale@std@@UAE@XZ			; std::locale::facet::~facet
PUBLIC	??_R4facet@locale@std@@6B@			; std::locale::facet::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVfacet@locale@std@@@8			; std::locale::facet `RTTI Type Descriptor'
PUBLIC	??_R3facet@locale@std@@8			; std::locale::facet::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2facet@locale@std@@8			; std::locale::facet::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@facet@locale@std@@8		; std::locale::facet::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_Efacet@locale@std@@UAEPAXI@Z:PROC		; std::locale::facet::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@facet@locale@std@@8 DD FLAT:??_R0?AVfacet@locale@std@@@8 ; std::locale::facet::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R2facet@locale@std@@8
rdata$r	SEGMENT
??_R2facet@locale@std@@8 DD FLAT:??_R1A@?0A@EA@facet@locale@std@@8 ; std::locale::facet::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3facet@locale@std@@8
rdata$r	SEGMENT
??_R3facet@locale@std@@8 DD 00H				; std::locale::facet::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVfacet@locale@std@@@8
_DATA	SEGMENT
??_R0?AVfacet@locale@std@@@8 DD FLAT:??_7type_info@@6B@	; std::locale::facet `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVfacet@locale@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4facet@locale@std@@6B@
rdata$r	SEGMENT
??_R4facet@locale@std@@6B@ DD 00H			; std::locale::facet::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVfacet@locale@std@@@8
	DD	FLAT:??_R3facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_7facet@locale@std@@6B@
CONST	SEGMENT
??_7facet@locale@std@@6B@ DD FLAT:??_R4facet@locale@std@@6B@ ; std::locale::facet::`vftable'
	DD	FLAT:??_Efacet@locale@std@@UAEPAXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1facet@locale@std@@UAE@XZ
_TEXT	SEGMENT
??1facet@locale@std@@UAE@XZ PROC			; std::locale::facet::~facet, COMDAT
; _this$ = ecx

; 165  : 			{	// destroy the object

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

; 166  : 			}

	ret	0
??1facet@locale@std@@UAE@XZ ENDP			; std::locale::facet::~facet
_TEXT	ENDS
PUBLIC	??0facet@locale@std@@IAE@I@Z			; std::locale::facet::facet
; Function compile flags: /Ogtpy
;	COMDAT ??0facet@locale@std@@IAE@I@Z
_TEXT	SEGMENT
__Initrefs$ = 8						; size = 4
??0facet@locale@std@@IAE@I@Z PROC			; std::locale::facet::facet, COMDAT
; _this$ = ecx

; 171  : 			{	// construct with initial reference count

	mov	eax, ecx
	mov	ecx, DWORD PTR __Initrefs$[esp-4]
	mov	DWORD PTR [eax], OFFSET ??_7facet@locale@std@@6B@
	mov	DWORD PTR [eax+4], ecx

; 172  : 			}

	ret	4
??0facet@locale@std@@IAE@I@Z ENDP			; std::locale::facet::facet
_TEXT	ENDS
PUBLIC	??0locale@std@@QAE@XZ				; std::locale::locale
EXTRN	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ:PROC ; std::locale::_Getgloballocale
EXTRN	?_Init@locale@std@@CAPAV_Locimp@12@XZ:PROC	; std::locale::_Init
; Function compile flags: /Ogtpy
;	COMDAT ??0locale@std@@QAE@XZ
_TEXT	SEGMENT
__Lock$26133 = -4					; size = 4
??0locale@std@@QAE@XZ PROC				; std::locale::locale, COMDAT
; _this$ = ecx

; 308  : 		{	// construct from current locale

	push	ecx
	push	esi
	push	edi
	mov	edi, ecx
	call	?_Init@locale@std@@CAPAV_Locimp@12@XZ	; std::locale::_Init
	mov	DWORD PTR [edi], eax

; 309  : 		_Getgloballocale()->_Incref();

	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	push	0
	lea	ecx, DWORD PTR __Lock$26133[esp+16]
	mov	esi, eax
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $LN3@locale
	add	eax, 1
	mov	DWORD PTR [esi+4], eax
$LN3@locale:
	lea	ecx, DWORD PTR __Lock$26133[esp+12]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 310  : 		}

	mov	eax, edi
	pop	edi
	pop	esi
	pop	ecx
	ret	0
??0locale@std@@QAE@XZ ENDP				; std::locale::locale
_TEXT	ENDS
PUBLIC	??0locale@std@@QAE@ABV01@@Z			; std::locale::locale
; Function compile flags: /Ogtpy
;	COMDAT ??0locale@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
__Lock$26142 = 8					; size = 4
__Right$ = 8						; size = 4
??0locale@std@@QAE@ABV01@@Z PROC			; std::locale::locale, COMDAT
; _this$ = ecx

; 318  : 		{	// construct by copying

	mov	eax, DWORD PTR __Right$[esp-4]
	push	esi
	mov	esi, DWORD PTR [eax]
	push	edi
	mov	edi, ecx

; 319  : 		_Ptr->_Incref();

	push	0
	lea	ecx, DWORD PTR __Lock$26142[esp+8]
	mov	DWORD PTR [edi], esi
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $LN3@locale@2
	add	eax, 1
	mov	DWORD PTR [esi+4], eax
$LN3@locale@2:
	lea	ecx, DWORD PTR __Lock$26142[esp+4]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 320  : 		}

	mov	eax, edi
	pop	edi
	pop	esi
	ret	4
??0locale@std@@QAE@ABV01@@Z ENDP			; std::locale::locale
_TEXT	ENDS
PUBLIC	?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z	; std::locale::_Getfacet
; Function compile flags: /Ogtpy
;	COMDAT ?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z
_TEXT	SEGMENT
__Id$ = 8						; size = 4
?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z PROC		; std::locale::_Getfacet, COMDAT
; _this$ = ecx

; 397  : 		const facet *_Facptr = _Id < _Ptr->_Facetcount
; 398  : 			? _Ptr->_Facetvec[_Id] : 0;	// null if id off end

	mov	ecx, DWORD PTR [ecx]
	push	esi
	mov	esi, DWORD PTR __Id$[esp]
	cmp	esi, DWORD PTR [ecx+12]
	jae	SHORT $LN6@Getfacet
	mov	eax, DWORD PTR [ecx+8]
	mov	eax, DWORD PTR [eax+esi*4]

; 399  : 		if (_Facptr != 0 || !_Ptr->_Xparent)

	test	eax, eax
	jne	SHORT $LN1@Getfacet
$LN10@Getfacet:
	cmp	BYTE PTR [ecx+20], 0
	je	SHORT $LN1@Getfacet

; 400  : 			return (_Facptr);	// found facet or not transparent, return pointer
; 401  : 		else
; 402  : 			{	// look in current locale
; 403  : 			locale::_Locimp *_Ptr = _Getgloballocale();

	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale

; 404  : 			return (_Id < _Ptr->_Facetcount
; 405  : 				? _Ptr->_Facetvec[_Id]	// get from current locale
; 406  : 				: 0);	// no entry in current locale

	cmp	esi, DWORD PTR [eax+12]
	jae	SHORT $LN8@Getfacet
	mov	ecx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [ecx+esi*4]
	pop	esi

; 407  : 			}
; 408  : 		}

	ret	4
$LN6@Getfacet:

; 397  : 		const facet *_Facptr = _Id < _Ptr->_Facetcount
; 398  : 			? _Ptr->_Facetvec[_Id] : 0;	// null if id off end

	xor	eax, eax

; 399  : 		if (_Facptr != 0 || !_Ptr->_Xparent)

	jmp	SHORT $LN10@Getfacet
$LN8@Getfacet:

; 404  : 			return (_Id < _Ptr->_Facetcount
; 405  : 				? _Ptr->_Facetvec[_Id]	// get from current locale
; 406  : 				: 0);	// no entry in current locale

	xor	eax, eax
$LN1@Getfacet:
	pop	esi

; 407  : 			}
; 408  : 		}

	ret	4
?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z ENDP		; std::locale::_Getfacet
_TEXT	ENDS
PUBLIC	??_7codecvt_base@std@@6B@			; std::codecvt_base::`vftable'
PUBLIC	??0codecvt_base@std@@QAE@I@Z			; std::codecvt_base::codecvt_base
PUBLIC	??_R4codecvt_base@std@@6B@			; std::codecvt_base::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVcodecvt_base@std@@@8			; std::codecvt_base `RTTI Type Descriptor'
PUBLIC	??_R3codecvt_base@std@@8			; std::codecvt_base::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2codecvt_base@std@@8			; std::codecvt_base::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@codecvt_base@std@@8		; std::codecvt_base::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?do_always_noconv@codecvt_base@std@@MBE_NXZ	; std::codecvt_base::do_always_noconv
PUBLIC	?do_max_length@codecvt_base@std@@MBEHXZ		; std::codecvt_base::do_max_length
PUBLIC	?do_encoding@codecvt_base@std@@MBEHXZ		; std::codecvt_base::do_encoding
EXTRN	??_Ecodecvt_base@std@@UAEPAXI@Z:PROC		; std::codecvt_base::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@codecvt_base@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@codecvt_base@std@@8 DD FLAT:??_R0?AVcodecvt_base@std@@@8 ; std::codecvt_base::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3codecvt_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R2codecvt_base@std@@8
rdata$r	SEGMENT
??_R2codecvt_base@std@@8 DD FLAT:??_R1A@?0A@EA@codecvt_base@std@@8 ; std::codecvt_base::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R3codecvt_base@std@@8
rdata$r	SEGMENT
??_R3codecvt_base@std@@8 DD 00H				; std::codecvt_base::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2codecvt_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVcodecvt_base@std@@@8
_DATA	SEGMENT
??_R0?AVcodecvt_base@std@@@8 DD FLAT:??_7type_info@@6B@	; std::codecvt_base `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVcodecvt_base@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4codecvt_base@std@@6B@
rdata$r	SEGMENT
??_R4codecvt_base@std@@6B@ DD 00H			; std::codecvt_base::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVcodecvt_base@std@@@8
	DD	FLAT:??_R3codecvt_base@std@@8
rdata$r	ENDS
;	COMDAT ??_7codecvt_base@std@@6B@
CONST	SEGMENT
??_7codecvt_base@std@@6B@ DD FLAT:??_R4codecvt_base@std@@6B@ ; std::codecvt_base::`vftable'
	DD	FLAT:??_Ecodecvt_base@std@@UAEPAXI@Z
	DD	FLAT:?do_always_noconv@codecvt_base@std@@MBE_NXZ
	DD	FLAT:?do_max_length@codecvt_base@std@@MBEHXZ
	DD	FLAT:?do_encoding@codecvt_base@std@@MBEHXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0codecvt_base@std@@QAE@I@Z
_TEXT	SEGMENT
__Refs$ = 8						; size = 4
??0codecvt_base@std@@QAE@I@Z PROC			; std::codecvt_base::codecvt_base, COMDAT
; _this$ = ecx

; 663  : 		{	// default constructor

	mov	eax, ecx
	mov	ecx, DWORD PTR __Refs$[esp-4]
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax], OFFSET ??_7codecvt_base@std@@6B@

; 664  : 		}

	ret	4
??0codecvt_base@std@@QAE@I@Z ENDP			; std::codecvt_base::codecvt_base
_TEXT	ENDS
PUBLIC	?always_noconv@codecvt_base@std@@QBE_NXZ	; std::codecvt_base::always_noconv
; Function compile flags: /Ogtpy
;	COMDAT ?always_noconv@codecvt_base@std@@QBE_NXZ
_TEXT	SEGMENT
?always_noconv@codecvt_base@std@@QBE_NXZ PROC		; std::codecvt_base::always_noconv, COMDAT
; _this$ = ecx

; 668  : 		return (do_always_noconv());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	jmp	edx
?always_noconv@codecvt_base@std@@QBE_NXZ ENDP		; std::codecvt_base::always_noconv
_TEXT	ENDS
PUBLIC	??1codecvt_base@std@@UAE@XZ			; std::codecvt_base::~codecvt_base
; Function compile flags: /Ogtpy
;	COMDAT ??1codecvt_base@std@@UAE@XZ
_TEXT	SEGMENT
??1codecvt_base@std@@UAE@XZ PROC			; std::codecvt_base::~codecvt_base, COMDAT
; _this$ = ecx

; 683  : 		}

	mov	DWORD PTR [ecx], OFFSET ??_7facet@locale@std@@6B@
	ret	0
??1codecvt_base@std@@UAE@XZ ENDP			; std::codecvt_base::~codecvt_base
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_always_noconv@codecvt_base@std@@MBE_NXZ
_TEXT	SEGMENT
?do_always_noconv@codecvt_base@std@@MBE_NXZ PROC	; std::codecvt_base::do_always_noconv, COMDAT
; _this$ = ecx

; 688  : 		return (true);

	mov	al, 1

; 689  : 		}

	ret	0
?do_always_noconv@codecvt_base@std@@MBE_NXZ ENDP	; std::codecvt_base::do_always_noconv
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_max_length@codecvt_base@std@@MBEHXZ
_TEXT	SEGMENT
?do_max_length@codecvt_base@std@@MBEHXZ PROC		; std::codecvt_base::do_max_length, COMDAT
; _this$ = ecx

; 693  : 		return (1);

	mov	eax, 1

; 694  : 		}

	ret	0
?do_max_length@codecvt_base@std@@MBEHXZ ENDP		; std::codecvt_base::do_max_length
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_encoding@codecvt_base@std@@MBEHXZ
_TEXT	SEGMENT
?do_encoding@codecvt_base@std@@MBEHXZ PROC		; std::codecvt_base::do_encoding, COMDAT
; _this$ = ecx

; 698  : 		return (1);	// -1 ==> state dependent, 0 ==> varying length

	mov	eax, 1

; 699  : 		}

	ret	0
?do_encoding@codecvt_base@std@@MBEHXZ ENDP		; std::codecvt_base::do_encoding
_TEXT	ENDS
PUBLIC	??_7ctype_base@std@@6B@				; std::ctype_base::`vftable'
PUBLIC	??0ctype_base@std@@QAE@I@Z			; std::ctype_base::ctype_base
PUBLIC	??_R4ctype_base@std@@6B@			; std::ctype_base::`RTTI Complete Object Locator'
PUBLIC	??_R0?AUctype_base@std@@@8			; std::ctype_base `RTTI Type Descriptor'
PUBLIC	??_R3ctype_base@std@@8				; std::ctype_base::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ctype_base@std@@8				; std::ctype_base::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ctype_base@std@@8			; std::ctype_base::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_Ectype_base@std@@UAEPAXI@Z:PROC		; std::ctype_base::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@ctype_base@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ctype_base@std@@8 DD FLAT:??_R0?AUctype_base@std@@@8 ; std::ctype_base::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ctype_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R2ctype_base@std@@8
rdata$r	SEGMENT
??_R2ctype_base@std@@8 DD FLAT:??_R1A@?0A@EA@ctype_base@std@@8 ; std::ctype_base::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R3ctype_base@std@@8
rdata$r	SEGMENT
??_R3ctype_base@std@@8 DD 00H				; std::ctype_base::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ctype_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AUctype_base@std@@@8
_DATA	SEGMENT
??_R0?AUctype_base@std@@@8 DD FLAT:??_7type_info@@6B@	; std::ctype_base `RTTI Type Descriptor'
	DD	00H
	DB	'.?AUctype_base@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ctype_base@std@@6B@
rdata$r	SEGMENT
??_R4ctype_base@std@@6B@ DD 00H				; std::ctype_base::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AUctype_base@std@@@8
	DD	FLAT:??_R3ctype_base@std@@8
rdata$r	ENDS
;	COMDAT ??_7ctype_base@std@@6B@
CONST	SEGMENT
??_7ctype_base@std@@6B@ DD FLAT:??_R4ctype_base@std@@6B@ ; std::ctype_base::`vftable'
	DD	FLAT:??_Ectype_base@std@@UAEPAXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0ctype_base@std@@QAE@I@Z
_TEXT	SEGMENT
__Refs$ = 8						; size = 4
??0ctype_base@std@@QAE@I@Z PROC				; std::ctype_base::ctype_base, COMDAT
; _this$ = ecx

; 1330 : 		{	// default constructor

	mov	eax, ecx
	mov	ecx, DWORD PTR __Refs$[esp-4]
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax], OFFSET ??_7ctype_base@std@@6B@

; 1331 : 		}

	ret	4
??0ctype_base@std@@QAE@I@Z ENDP				; std::ctype_base::ctype_base
_TEXT	ENDS
PUBLIC	??1ctype_base@std@@UAE@XZ			; std::ctype_base::~ctype_base
; Function compile flags: /Ogtpy
;	COMDAT ??1ctype_base@std@@UAE@XZ
_TEXT	SEGMENT
??1ctype_base@std@@UAE@XZ PROC				; std::ctype_base::~ctype_base, COMDAT
; _this$ = ecx

; 1335 : 		}

	mov	DWORD PTR [ecx], OFFSET ??_7facet@locale@std@@6B@
	ret	0
??1ctype_base@std@@UAE@XZ ENDP				; std::ctype_base::~ctype_base
_TEXT	ENDS
PUBLIC	?is@?$ctype@D@std@@QBE_NFD@Z			; std::ctype<char>::is
; Function compile flags: /Ogtpy
;	COMDAT ?is@?$ctype@D@std@@QBE_NFD@Z
_TEXT	SEGMENT
__Maskval$ = 8						; size = 2
__Ch$ = 12						; size = 1
?is@?$ctype@D@std@@QBE_NFD@Z PROC			; std::ctype<char>::is, COMDAT
; _this$ = ecx

; 1632 : 		return ((_Ctype._Table[(unsigned char)_Ch] & _Maskval) != 0);

	movzx	eax, BYTE PTR __Ch$[esp-4]
	mov	ecx, DWORD PTR [ecx+16]
	mov	ax, WORD PTR [ecx+eax*2]
	and	ax, WORD PTR __Maskval$[esp-4]
	neg	ax
	sbb	eax, eax
	neg	eax

; 1633 : 		}

	ret	8
?is@?$ctype@D@std@@QBE_NFD@Z ENDP			; std::ctype<char>::is
_TEXT	ENDS
PUBLIC	?widen@?$ctype@D@std@@QBEDD@Z			; std::ctype<char>::widen
; Function compile flags: /Ogtpy
;	COMDAT ?widen@?$ctype@D@std@@QBEDD@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 1
?widen@?$ctype@D@std@@QBEDD@Z PROC			; std::ctype<char>::widen, COMDAT
; _this$ = ecx

; 1685 : 		return (do_widen(_Byte));

	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+24]
	jmp	eax
?widen@?$ctype@D@std@@QBEDD@Z ENDP			; std::ctype<char>::widen
_TEXT	ENDS
PUBLIC	?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z	; std::ctype<char>::_Init
; Function compile flags: /Ogtpy
;	COMDAT ?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
$T26211 = -16						; size = 16
__Lobj$ = 8						; size = 4
?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z PROC		; std::ctype<char>::_Init, COMDAT
; _this$ = ecx

; 1774 : 		{	// initialize from _Lobj

	sub	esp, 16					; 00000010H
	push	esi

; 1775 : 		_Ctype = _Lobj._Getctype();

	lea	eax, DWORD PTR $T26211[esp+20]
	push	eax
	mov	esi, ecx
	call	__Getctype
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR [esi+8], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+12], edx
	mov	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR [esi+16], ecx
	mov	edx, DWORD PTR [eax+12]
	add	esp, 4
	mov	DWORD PTR [esi+20], edx
	pop	esi

; 1776 : 		}

	add	esp, 16					; 00000010H
	ret	4
?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z ENDP		; std::ctype<char>::_Init
_TEXT	ENDS
PUBLIC	?_Tidy@?$ctype@D@std@@IAEXXZ			; std::ctype<char>::_Tidy
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	_free:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?_Tidy@?$ctype@D@std@@IAEXXZ
_TEXT	SEGMENT
?_Tidy@?$ctype@D@std@@IAEXXZ PROC			; std::ctype<char>::_Tidy, COMDAT
; _this$ = ecx

; 1780 : 		if (0 < _Ctype._Delfl)

	mov	eax, DWORD PTR [ecx+20]
	test	eax, eax
	jle	SHORT $LN6@Tidy

; 1781 : 			free((void *)_Ctype._Table);

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

; 1784 : 		}

	ret	0
$LN6@Tidy:

; 1782 : 		else if (_Ctype._Delfl < 0)

	jge	SHORT $LN1@Tidy

; 1783 : 			delete[] (void *)_Ctype._Table;

	mov	ecx, DWORD PTR [ecx+16]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	pop	ecx
$LN1@Tidy:

; 1784 : 		}

	ret	0
?_Tidy@?$ctype@D@std@@IAEXXZ ENDP			; std::ctype<char>::_Tidy
_TEXT	ENDS
PUBLIC	?rdstate@ios_base@std@@QBEHXZ			; std::ios_base::rdstate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
;	COMDAT ?rdstate@ios_base@std@@QBEHXZ
_TEXT	SEGMENT
?rdstate@ios_base@std@@QBEHXZ PROC			; std::ios_base::rdstate, COMDAT
; _this$ = ecx

; 299  : 		return (_Mystate);

	mov	eax, DWORD PTR [ecx+8]

; 300  : 		}

	ret	0
?rdstate@ios_base@std@@QBEHXZ ENDP			; std::ios_base::rdstate
_TEXT	ENDS
PUBLIC	?good@ios_base@std@@QBE_NXZ			; std::ios_base::good
; Function compile flags: /Ogtpy
;	COMDAT ?good@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT
?good@ios_base@std@@QBE_NXZ PROC			; std::ios_base::good, COMDAT
; _this$ = ecx

; 322  : 		return (rdstate() == goodbit);

	xor	eax, eax
	cmp	DWORD PTR [ecx+8], eax
	sete	al

; 323  : 		}

	ret	0
?good@ios_base@std@@QBE_NXZ ENDP			; std::ios_base::good
_TEXT	ENDS
PUBLIC	?fail@ios_base@std@@QBE_NXZ			; std::ios_base::fail
; Function compile flags: /Ogtpy
;	COMDAT ?fail@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT
?fail@ios_base@std@@QBE_NXZ PROC			; std::ios_base::fail, COMDAT
; _this$ = ecx

; 332  : 		return (((int)rdstate()
; 333  : 			& ((int)badbit | (int)failbit)) != 0);

	mov	eax, DWORD PTR [ecx+8]
	and	al, 6
	neg	al
	sbb	eax, eax
	neg	eax

; 334  : 		}

	ret	0
?fail@ios_base@std@@QBE_NXZ ENDP			; std::ios_base::fail
_TEXT	ENDS
PUBLIC	?flags@ios_base@std@@QBEHXZ			; std::ios_base::flags
; Function compile flags: /Ogtpy
;	COMDAT ?flags@ios_base@std@@QBEHXZ
_TEXT	SEGMENT
?flags@ios_base@std@@QBEHXZ PROC			; std::ios_base::flags, COMDAT
; _this$ = ecx

; 362  : 		return (_Fmtfl);

	mov	eax, DWORD PTR [ecx+16]

; 363  : 		}

	ret	0
?flags@ios_base@std@@QBEHXZ ENDP			; std::ios_base::flags
_TEXT	ENDS
PUBLIC	?width@ios_base@std@@QBEHXZ			; std::ios_base::width
; Function compile flags: /Ogtpy
;	COMDAT ?width@ios_base@std@@QBEHXZ
_TEXT	SEGMENT
?width@ios_base@std@@QBEHXZ PROC			; std::ios_base::width, COMDAT
; _this$ = ecx

; 407  : 		return (_Wide);

	mov	eax, DWORD PTR [ecx+24]

; 408  : 		}

	ret	0
?width@ios_base@std@@QBEHXZ ENDP			; std::ios_base::width
_TEXT	ENDS
PUBLIC	?width@ios_base@std@@QAEHH@Z			; std::ios_base::width
; Function compile flags: /Ogtpy
;	COMDAT ?width@ios_base@std@@QAEHH@Z
_TEXT	SEGMENT
__Newwidth$ = 8						; size = 4
?width@ios_base@std@@QAEHH@Z PROC			; std::ios_base::width, COMDAT
; _this$ = ecx

; 412  : 		streamsize _Oldwidth = _Wide;
; 413  : 		_Wide = _Newwidth;

	mov	edx, DWORD PTR __Newwidth$[esp-4]
	mov	eax, DWORD PTR [ecx+24]
	mov	DWORD PTR [ecx+24], edx

; 414  : 		return (_Oldwidth);
; 415  : 		}

	ret	4
?width@ios_base@std@@QAEHH@Z ENDP			; std::ios_base::width
_TEXT	ENDS
PUBLIC	??_7ios_base@std@@6B@				; std::ios_base::`vftable'
PUBLIC	??1ios_base@std@@UAE@XZ				; std::ios_base::~ios_base
PUBLIC	??_R4ios_base@std@@6B@				; std::ios_base::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVios_base@std@@@8			; std::ios_base `RTTI Type Descriptor'
PUBLIC	??_R3ios_base@std@@8				; std::ios_base::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ios_base@std@@8				; std::ios_base::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ios_base@std@@8			; std::ios_base::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R13?0A@EA@?$_Iosb@H@std@@8			; std::_Iosb<int>::`RTTI Base Class Descriptor at (4,-1,0,64)'
PUBLIC	??_R0?AV?$_Iosb@H@std@@@8			; std::_Iosb<int> `RTTI Type Descriptor'
PUBLIC	??_R3?$_Iosb@H@std@@8				; std::_Iosb<int>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$_Iosb@H@std@@8				; std::_Iosb<int>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$_Iosb@H@std@@8			; std::_Iosb<int>::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z:PROC	; std::ios_base::_Ios_base_dtor
EXTRN	??_Eios_base@std@@UAEPAXI@Z:PROC		; std::ios_base::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$_Iosb@H@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$_Iosb@H@std@@8 DD FLAT:??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb<int>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$_Iosb@H@std@@8
rdata$r	SEGMENT
??_R2?$_Iosb@H@std@@8 DD FLAT:??_R1A@?0A@EA@?$_Iosb@H@std@@8 ; std::_Iosb<int>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$_Iosb@H@std@@8
rdata$r	SEGMENT
??_R3?$_Iosb@H@std@@8 DD 00H				; std::_Iosb<int>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$_Iosb@H@std@@@8
_DATA	SEGMENT
??_R0?AV?$_Iosb@H@std@@@8 DD FLAT:??_7type_info@@6B@	; std::_Iosb<int> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$_Iosb@H@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R13?0A@EA@?$_Iosb@H@std@@8
rdata$r	SEGMENT
??_R13?0A@EA@?$_Iosb@H@std@@8 DD FLAT:??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb<int>::`RTTI Base Class Descriptor at (4,-1,0,64)'
	DD	00H
	DD	04H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@ios_base@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ios_base@std@@8 DD FLAT:??_R0?AVios_base@std@@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R2ios_base@std@@8
rdata$r	SEGMENT
??_R2ios_base@std@@8 DD FLAT:??_R1A@?0A@EA@ios_base@std@@8 ; std::ios_base::`RTTI Base Class Array'
	DD	FLAT:??_R13?0A@EA@?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R3ios_base@std@@8
rdata$r	SEGMENT
??_R3ios_base@std@@8 DD 00H				; std::ios_base::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVios_base@std@@@8
_DATA	SEGMENT
??_R0?AVios_base@std@@@8 DD FLAT:??_7type_info@@6B@	; std::ios_base `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVios_base@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4ios_base@std@@6B@
rdata$r	SEGMENT
??_R4ios_base@std@@6B@ DD 00H				; std::ios_base::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVios_base@std@@@8
	DD	FLAT:??_R3ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_7ios_base@std@@6B@
CONST	SEGMENT
??_7ios_base@std@@6B@ DD FLAT:??_R4ios_base@std@@6B@	; std::ios_base::`vftable'
	DD	FLAT:??_Eios_base@std@@UAEPAXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1ios_base@std@@UAE@XZ
_TEXT	SEGMENT
??1ios_base@std@@UAE@XZ PROC				; std::ios_base::~ios_base, COMDAT
; _this$ = ecx

; 482  :         _Ios_base_dtor(this);

	push	ecx
	mov	DWORD PTR [ecx], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	pop	ecx

; 483  :         }

	ret	0
??1ios_base@std@@UAE@XZ ENDP				; std::ios_base::~ios_base
_TEXT	ENDS
PUBLIC	??0ios_base@std@@IAE@XZ				; std::ios_base::ios_base
; Function compile flags: /Ogtpy
;	COMDAT ??0ios_base@std@@IAE@XZ
_TEXT	SEGMENT
??0ios_base@std@@IAE@XZ PROC				; std::ios_base::ios_base, COMDAT
; _this$ = ecx

; 498  : 	__CLR_OR_THIS_CALL ios_base()

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

; 499  : 		{	// default constructor
; 500  : 		}

	ret	0
??0ios_base@std@@IAE@XZ ENDP				; std::ios_base::ios_base
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Gios_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gios_base@std@@UAEPAXI@Z PROC			; std::ios_base::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	push	esi
	mov	DWORD PTR [esi], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	test	BYTE PTR ___flags$[esp], 1
	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
??_Gios_base@std@@UAEPAXI@Z ENDP			; std::ios_base::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?GetID@GameObjObserverClass@@QAEHXZ		; GameObjObserverClass::GetID
; Function compile flags: /Ogtpy
; File d:\source code\stgm\scripts.h
;	COMDAT ?GetID@GameObjObserverClass@@QAEHXZ
_TEXT	SEGMENT
?GetID@GameObjObserverClass@@QAEHXZ PROC		; GameObjObserverClass::GetID, COMDAT
; _this$ = ecx

; 126  : 		return ObserverID;

	mov	eax, DWORD PTR [ecx+4]

; 127  : 	}

	ret	0
?GetID@GameObjObserverClass@@QAEHXZ ENDP		; GameObjObserverClass::GetID
_TEXT	ENDS
PUBLIC	__real@40000000
PUBLIC	__real@41a00000
PUBLIC	__real@447a0000
PUBLIC	__real@3f800000
PUBLIC	__real@00000000
PUBLIC	??0ActionParamsStruct@@QAE@XZ			; ActionParamsStruct::ActionParamsStruct
EXTRN	??0Vector3@@QAE@MMM@Z:PROC			; Vector3::Vector3
EXTRN	__fltused:DWORD
;	COMDAT __real@40000000
CONST	SEGMENT
__real@40000000 DD 040000000r			; 2
CONST	ENDS
;	COMDAT __real@41a00000
CONST	SEGMENT
__real@41a00000 DD 041a00000r			; 20
CONST	ENDS
;	COMDAT __real@447a0000
CONST	SEGMENT
__real@447a0000 DD 0447a0000r			; 1000
CONST	ENDS
;	COMDAT __real@3f800000
CONST	SEGMENT
__real@3f800000 DD 03f800000r			; 1
CONST	ENDS
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0ActionParamsStruct@@QAE@XZ
_TEXT	SEGMENT
??0ActionParamsStruct@@QAE@XZ PROC			; ActionParamsStruct::ActionParamsStruct, COMDAT
; _this$ = ecx

; 236  : 	ActionParamsStruct()

	fldz
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	esi, ecx
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	lea	edi, DWORD PTR [esi+12]
	fst	DWORD PTR [esp+4]
	mov	ecx, edi
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3
	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	lea	ebx, DWORD PTR [esi+32]
	fst	DWORD PTR [esp+4]
	mov	ecx, ebx
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3
	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	lea	ebp, DWORD PTR [esi+48]
	fst	DWORD PTR [esp+4]
	mov	ecx, ebp
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3
	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	fst	DWORD PTR [esp+4]
	lea	ecx, DWORD PTR [esi+96]
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3
	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	fst	DWORD PTR [esp+4]
	lea	ecx, DWORD PTR [esi+116]
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3
	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	fst	DWORD PTR [esp+4]
	lea	ecx, DWORD PTR [esi+172]
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3
	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	fst	DWORD PTR [esp+4]
	lea	ecx, DWORD PTR [esi+184]
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3

; 237  : 	{
; 238  : 		Action_Priority = 0;
; 239  : 		Action_ID = 0;
; 240  : 		Observer_ID = 0;
; 241  : 		varB8.X = 0;

	fldz
	fst	DWORD PTR [edi]
	xor	eax, eax

; 242  : 		varB8.Y = 0;

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

; 243  : 		varB8.Z = 0;

	fst	DWORD PTR [esi+20]
	mov	DWORD PTR [esi+4], eax

; 244  : 		varAC = 0;
; 245  : 		varA8 = 0;

	fst	DWORD PTR [esi+28]
	mov	DWORD PTR [esi+8], eax

; 246  : 		Move_Destination.X = 0;

	fst	DWORD PTR [ebx]
	mov	DWORD PTR [esi+24], eax

; 247  : 		Move_Destination.Y = 0;

	fst	DWORD PTR [esi+36]

; 248  : 		Move_Destination.Z = 0;
; 249  : 		Move_Target = 0;

	mov	DWORD PTR [esi+44], eax
	fst	DWORD PTR [esi+40]

; 250  : 		var94.X = 0;
; 251  : 		var94.Y = 0;
; 252  : 		var94.Z = 0;
; 253  : 		Move_Speed = 1.0;
; 254  : 		Move_Arrive_Distance = 1000;
; 255  : 		Move_Backwards = false;

	mov	BYTE PTR [esi+68], al
	fst	DWORD PTR [ebp]

; 256  : 		Move_Following = false;

	mov	BYTE PTR [esi+69], al
	fst	DWORD PTR [esi+52]

; 257  : 		Move_Crouch = false;

	mov	BYTE PTR [esi+70], al
	fst	DWORD PTR [esi+56]
	fld1
	fstp	DWORD PTR [esi+60]
	fld	DWORD PTR __real@447a0000
	fstp	DWORD PTR [esi+64]

; 258  : 		Move_Pathfind = true;
; 259  : 		var7C = false;
; 260  : 		Attack_Range = 20;

	fld	DWORD PTR __real@41a00000
	mov	cl, 1
	fstp	DWORD PTR [esi+76]
	pop	edi
	mov	BYTE PTR [esi+72], al

; 261  : 		Attack_Deviation = 0;

	fst	DWORD PTR [esi+80]

; 262  : 		var70 = false;

	mov	BYTE PTR [esi+84], al

; 263  : 		Attack_Target = 0;
; 264  : 		Attack_Primary = true;
; 265  : 		Attack_Crouched = false;
; 266  : 		Attack_Location.X = 0;

	fst	DWORD PTR [esi+96]
	mov	DWORD PTR [esi+88], eax

; 267  : 		Attack_Location.Y = 0;

	fst	DWORD PTR [esi+100]
	mov	BYTE PTR [esi+93], al

; 268  : 		Attack_Location.Z = 0;

	fst	DWORD PTR [esi+104]

; 269  : 		Hold_Action = true;
; 270  : 		var57 = true;
; 271  : 		var56 = false;

	mov	BYTE PTR [esi+110], al

; 272  : 		var55 = true;
; 273  : 		var54 = false;
; 274  : 		var53 = false;
; 275  : 		Face_Location.X = 0;

	fst	DWORD PTR [esi+116]
	mov	BYTE PTR [esi+112], al

; 276  : 		Face_Location.Y = 0;

	fst	DWORD PTR [esi+120]
	mov	BYTE PTR [esi+113], al

; 277  : 		Face_Location.Z = 0;

	fst	DWORD PTR [esi+124]

; 278  : 		Face_Time = 2.0;
; 279  : 		var40 = false;

	mov	BYTE PTR [esi+132], al
	fld	DWORD PTR __real@40000000

; 280  : 		Move_Waypath_ID = 0;

	mov	DWORD PTR [esi+136], eax
	fstp	DWORD PTR [esi+128]

; 281  : 		Move_Waypath_Start_ID = 0;

	mov	DWORD PTR [esi+140], eax

; 282  : 		Move_Waypath_End_ID = 0;

	mov	DWORD PTR [esi+144], eax

; 283  : 		Move_Waypath_Splined = false;
; 284  : 		Animation = 0;
; 285  : 		Anim_Loop = false;
; 286  : 		var24 = 0;
; 287  : 		var20 = 0;
; 288  : 		Soldier_AI_State = -1;
; 289  : 		Dock_Location.X = 0;

	fst	DWORD PTR [esi+172]
	mov	BYTE PTR [esi+148], al

; 290  : 		Dock_Location.Y = 0;

	fst	DWORD PTR [esi+176]
	mov	DWORD PTR [esi+152], eax

; 291  : 		Dock_Location.Z = 0;

	fst	DWORD PTR [esi+180]
	mov	BYTE PTR [esi+156], al

; 292  : 		Dock_Entrance.X = 0;

	fst	DWORD PTR [esi+184]
	mov	DWORD PTR [esi+160], eax

; 293  : 		Dock_Entrance.Y = 0;

	fst	DWORD PTR [esi+188]
	mov	DWORD PTR [esi+164], eax

; 294  : 		Dock_Entrance.Z = 0;

	fstp	DWORD PTR [esi+192]
	mov	BYTE PTR [esi+71], cl
	mov	BYTE PTR [esi+92], cl
	mov	BYTE PTR [esi+108], cl
	mov	BYTE PTR [esi+109], cl
	mov	BYTE PTR [esi+111], cl
	mov	DWORD PTR [esi+168], -1

; 295  : 	}

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx
	ret	0
??0ActionParamsStruct@@QAE@XZ ENDP			; ActionParamsStruct::ActionParamsStruct
_TEXT	ENDS
PUBLIC	?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KK@Z ; ActionParamsStruct::Set_Basic
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KK@Z
_TEXT	SEGMENT
_s$ = 8							; size = 4
_priority$ = 12						; size = 4
_ID$ = 16						; size = 4
?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KK@Z PROC ; ActionParamsStruct::Set_Basic, COMDAT
; _this$ = ecx

; 298  : 		ID = s->GetID();

	mov	eax, DWORD PTR _s$[esp-4]
	mov	eax, DWORD PTR [eax+4]

; 299  : 		Action_Priority = priority;

	mov	edx, DWORD PTR _priority$[esp-4]
	mov	DWORD PTR [ecx], edx

; 300  : 		Action_ID = ID;

	mov	DWORD PTR [ecx+4], eax

; 301  : 		Soldier_AI_State = -1;

	mov	DWORD PTR [ecx+168], -1

; 302  : 	}

	ret	12					; 0000000cH
?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KK@Z ENDP ; ActionParamsStruct::Set_Basic
_TEXT	ENDS
PUBLIC	?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z ; ActionParamsStruct::Set_Goto_Following
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z
_TEXT	SEGMENT
_Target$ = 8						; size = 4
_speed$ = 12						; size = 4
_arrivedistance$ = 16					; size = 4
_following$ = 20					; size = 1
?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z PROC ; ActionParamsStruct::Set_Goto_Following, COMDAT
; _this$ = ecx

; 359  : 		Move_Target = Target;
; 360  : 		Move_Speed = speed;

	fld	DWORD PTR _speed$[esp-4]
	mov	eax, DWORD PTR _Target$[esp-4]

; 361  : 		Move_Arrive_Distance = arrivedistance;
; 362  : 		Move_Following = following;

	mov	dl, BYTE PTR _following$[esp-4]
	fstp	DWORD PTR [ecx+60]
	fld	DWORD PTR _arrivedistance$[esp-4]
	mov	DWORD PTR [ecx+44], eax
	fstp	DWORD PTR [ecx+64]
	mov	BYTE PTR [ecx+69], dl

; 363  : 	}

	ret	16					; 00000010H
?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z ENDP ; ActionParamsStruct::Set_Goto_Following
_TEXT	ENDS
PUBLIC	?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z ; ActionParamsStruct::Set_Goto_Waypath
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z
_TEXT	SEGMENT
_waypathID$ = 8						; size = 4
_splined$ = 12						; size = 1
_v57$ = 16						; size = 1
_Hold$ = 20						; size = 1
?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z PROC	; ActionParamsStruct::Set_Goto_Waypath, COMDAT
; _this$ = ecx

; 394  : 		Move_Waypath_ID = waypathID;

	mov	eax, DWORD PTR _waypathID$[esp-4]

; 395  : 		Move_Waypath_Splined = splined;

	mov	dl, BYTE PTR _splined$[esp-4]
	mov	DWORD PTR [ecx+136], eax

; 396  : 		var57 = v57;

	mov	al, BYTE PTR _v57$[esp-4]
	mov	BYTE PTR [ecx+148], dl

; 397  : 		Hold_Action = Hold;

	mov	dl, BYTE PTR _Hold$[esp-4]
	mov	BYTE PTR [ecx+109], al
	mov	BYTE PTR [ecx+108], dl

; 398  : 	}

	ret	16					; 00000010H
?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z ENDP	; ActionParamsStruct::Set_Goto_Waypath
_TEXT	ENDS
PUBLIC	?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z ; ActionParamsStruct::Set_Move_Arrive_Distance
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z
_TEXT	SEGMENT
_distance$ = 8						; size = 4
?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z PROC ; ActionParamsStruct::Set_Move_Arrive_Distance, COMDAT
; _this$ = ecx

; 405  : 		Move_Arrive_Distance = distance;

	fld	DWORD PTR _distance$[esp-4]
	fstp	DWORD PTR [ecx+64]

; 406  : 	}

	ret	4
?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z ENDP ; ActionParamsStruct::Set_Move_Arrive_Distance
_TEXT	ENDS
PUBLIC	?Created@NHP_Smart_Targetting@@EAEXPAE@Z	; NHP_Smart_Targetting::Created
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
;	COMDAT ?Created@NHP_Smart_Targetting@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Smart_Targetting@@EAEXPAE@Z PROC		; NHP_Smart_Targetting::Created, COMDAT
; _this$ = ecx

; 19   : 	Commands->Enable_Enemy_Seen(obj,true);

	mov	eax, DWORD PTR _obj$[esp-4]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+300]
	push	1
	push	eax
	call	edx
	add	esp, 8

; 20   : }

	ret	4
?Created@NHP_Smart_Targetting@@EAEXPAE@Z ENDP		; NHP_Smart_Targetting::Created
_TEXT	ENDS
PUBLIC	??_C@_0N@IGCPDAGK@Preset_Eight?$AA@		; `string'
PUBLIC	??_C@_0N@MGAAGFJP@Preset_Seven?$AA@		; `string'
PUBLIC	??_C@_0L@KAHHEDJI@Preset_Six?$AA@		; `string'
PUBLIC	??_C@_0M@EEGAMGCP@Preset_Five?$AA@		; `string'
PUBLIC	??_C@_0M@GGMOKDDM@Preset_Four?$AA@		; `string'
PUBLIC	??_C@_0N@EPADNPAK@Preset_Three?$AA@		; `string'
PUBLIC	??_C@_0L@COJLHBMN@Preset_Two?$AA@		; `string'
PUBLIC	??_C@_0L@EAJLNBCG@Preset_One?$AA@		; `string'
PUBLIC	??_C@_0N@LGDIIJN@Other_Weapon?$AA@		; `string'
PUBLIC	??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@	; `string'
PUBLIC	??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@	; `string'
PUBLIC	?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z	; NHP_Smart_Targetting::Enemy_Seen
EXTRN	__stricmp:PROC
EXTRN	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z:PROC	; ScriptImpClass::Get_Parameter
;	COMDAT ??_C@_0N@IGCPDAGK@Preset_Eight?$AA@
CONST	SEGMENT
??_C@_0N@IGCPDAGK@Preset_Eight?$AA@ DB 'Preset_Eight', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@MGAAGFJP@Preset_Seven?$AA@
CONST	SEGMENT
??_C@_0N@MGAAGFJP@Preset_Seven?$AA@ DB 'Preset_Seven', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@KAHHEDJI@Preset_Six?$AA@
CONST	SEGMENT
??_C@_0L@KAHHEDJI@Preset_Six?$AA@ DB 'Preset_Six', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@EEGAMGCP@Preset_Five?$AA@
CONST	SEGMENT
??_C@_0M@EEGAMGCP@Preset_Five?$AA@ DB 'Preset_Five', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@GGMOKDDM@Preset_Four?$AA@
CONST	SEGMENT
??_C@_0M@GGMOKDDM@Preset_Four?$AA@ DB 'Preset_Four', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@EPADNPAK@Preset_Three?$AA@
CONST	SEGMENT
??_C@_0N@EPADNPAK@Preset_Three?$AA@ DB 'Preset_Three', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@COJLHBMN@Preset_Two?$AA@
CONST	SEGMENT
??_C@_0L@COJLHBMN@Preset_Two?$AA@ DB 'Preset_Two', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@EAJLNBCG@Preset_One?$AA@
CONST	SEGMENT
??_C@_0L@EAJLNBCG@Preset_One?$AA@ DB 'Preset_One', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@LGDIIJN@Other_Weapon?$AA@
CONST	SEGMENT
??_C@_0N@LGDIIJN@Other_Weapon?$AA@ DB 'Other_Weapon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@
CONST	SEGMENT
??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@ DB 'Presets_5-6_Weapon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@
CONST	SEGMENT
??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@ DB 'Presets_1-4_Weapon', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z
_TEXT	SEGMENT
_d$ = -4						; size = 4
_obj$ = 8						; size = 4
_seen$ = 12						; size = 4
?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z PROC	; NHP_Smart_Targetting::Enemy_Seen, COMDAT
; _this$ = ecx

; 23   : {

	push	ecx
	push	ebx
	push	ebp
	push	esi
	push	edi

; 24   : 
; 25   : 	const char *c;
; 26   : 	const char *b;
; 27   : 	const char *d;
; 28   : 	c = Get_Parameter("Presets_1-4_Weapon");

	push	OFFSET ??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@
	mov	esi, ecx
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 29   : 	b = Get_Parameter("Presets_5-6_Weapon");

	push	OFFSET ??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 30   : 	d = Get_Parameter("Other_Weapon");

	push	OFFSET ??_C@_0N@LGDIIJN@Other_Weapon?$AA@
	mov	ecx, esi
	mov	ebp, eax
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 31   : 
; 32   : 	if ((!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_One"))) || ((!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Two")))) || ((!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Three")))) || ((!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Four")))))

	push	OFFSET ??_C@_0L@EAJLNBCG@Preset_One?$AA@
	mov	ecx, esi
	mov	DWORD PTR _d$[esp+24], eax
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edi, DWORD PTR _seen$[esp+16]
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	push	edi
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	$LN5@Enemy_Seen
	push	OFFSET ??_C@_0L@COJLHBMN@Preset_Two?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	eax, DWORD PTR [edx+116]
	push	edi
	call	eax
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	$LN5@Enemy_Seen
	push	OFFSET ??_C@_0N@EPADNPAK@Preset_Three?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+116]
	push	eax
	push	edi
	call	edx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	$LN5@Enemy_Seen
	push	OFFSET ??_C@_0M@GGMOKDDM@Preset_Four?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	push	edi
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	$LN5@Enemy_Seen

; 35   : 	}
; 36   : 	else if ((!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Five"))) || (!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Six"))) || (!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Seven"))) || (!_stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Eight"))))

	push	OFFSET ??_C@_0M@EEGAMGCP@Preset_Five?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	eax, DWORD PTR [edx+116]
	push	edi
	call	eax
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	$LN2@Enemy_Seen
	push	OFFSET ??_C@_0L@KAHHEDJI@Preset_Six?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+116]
	push	eax
	push	edi
	call	edx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN2@Enemy_Seen
	push	OFFSET ??_C@_0N@MGAAGFJP@Preset_Seven?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	push	edi
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN2@Enemy_Seen
	push	OFFSET ??_C@_0N@IGCPDAGK@Preset_Eight?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	eax, DWORD PTR [edx+116]
	push	edi
	call	eax
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN2@Enemy_Seen

; 41   : 	{
; 42   : 		Commands->Select_Weapon(obj,d);

	mov	ecx, DWORD PTR _d$[esp+20]
	push	ecx
	jmp	SHORT $LN9@Enemy_Seen
$LN2@Enemy_Seen:

; 37   : 	{
; 38   : 		Commands->Select_Weapon(obj,b);

	push	ebp

; 39   : 	}
; 40   : 	else

	jmp	SHORT $LN9@Enemy_Seen
$LN5@Enemy_Seen:

; 33   : 	{
; 34   : 		Commands->Select_Weapon(obj,c);

	push	ebx
$LN9@Enemy_Seen:
	mov	edx, DWORD PTR _obj$[esp+20]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+136]
	push	edx
	call	ecx
	add	esp, 8
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 43   : 	}
; 44   : 
; 45   : }

	pop	ecx
	ret	8
?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z ENDP	; NHP_Smart_Targetting::Enemy_Seen
_TEXT	ENDS
PUBLIC	?Created@NHP_Guard_Bot@@EAEXPAE@Z		; NHP_Guard_Bot::Created
; Function compile flags: /Ogtpy
;	COMDAT ?Created@NHP_Guard_Bot@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Guard_Bot@@EAEXPAE@Z PROC			; NHP_Guard_Bot::Created, COMDAT
; _this$ = ecx

; 49   : 	Commands->Enable_HUD_Pokable_Indicator(obj,1);

	mov	eax, DWORD PTR _obj$[esp-4]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+780]
	push	1
	push	eax
	call	edx
	add	esp, 8

; 50   : }

	ret	4
?Created@NHP_Guard_Bot@@EAEXPAE@Z ENDP			; NHP_Guard_Bot::Created
_TEXT	ENDS
PUBLIC	??_C@_05HOIAGEJD@Speed?$AA@			; `string'
PUBLIC	??_C@_08DFKPLDPN@Distance?$AA@			; `string'
PUBLIC	?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z		; NHP_Guard_Bot::Damaged
EXTRN	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z:PROC ; ScriptImpClass::Get_Float_Parameter
;	COMDAT ??_C@_05HOIAGEJD@Speed?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_05HOIAGEJD@Speed?$AA@ DB 'Speed', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_08DFKPLDPN@Distance?$AA@
CONST	SEGMENT
??_C@_08DFKPLDPN@Distance?$AA@ DB 'Distance', 00H	; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z
_TEXT	SEGMENT
_d$ = -204						; size = 4
_s$ = -200						; size = 4
_actionThingy$ = -196					; size = 196
_obj$ = 8						; size = 4
_damager$ = 12						; size = 4
_damage$ = 16						; size = 4
?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z PROC		; NHP_Guard_Bot::Damaged, COMDAT
; _this$ = ecx

; 53   : {

	sub	esp, 204				; 000000ccH
	push	ebx
	push	esi
	mov	esi, ecx
	push	edi

; 54   : 	ActionParamsStruct actionThingy;

	lea	ecx, DWORD PTR _actionThingy$[esp+216]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 55   : 	float d;
; 56   : 	float s;
; 57   : 	actionThingy.Set_Basic(this,70,1);

	mov	eax, DWORD PTR [esi+4]

; 58   : 	d = Get_Float_Parameter("Distance");

	push	OFFSET ??_C@_08DFKPLDPN@Distance?$AA@
	mov	ecx, esi
	mov	DWORD PTR _actionThingy$[esp+220], 70	; 00000046H
	mov	DWORD PTR _actionThingy$[esp+224], eax
	mov	DWORD PTR _actionThingy$[esp+388], -1
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _d$[esp+216]

; 59   : 	s = Get_Float_Parameter("Speed");

	push	OFFSET ??_C@_05HOIAGEJD@Speed?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _s$[esp+216]

; 60   : 	if (Commands->Get_Player_Type(obj) == Commands->Get_Player_Type(damager))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	esi, DWORD PTR _obj$[esp+212]
	mov	edx, DWORD PTR [ecx+248]
	push	esi
	call	edx
	mov	edi, DWORD PTR _damager$[esp+216]
	mov	ebx, eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	push	edi
	call	ecx
	add	esp, 8
	cmp	ebx, eax
	jne	SHORT $LN1@Damaged

; 61   : 	{
; 62   : 		actionThingy.Set_Goto_Following(damager,s,d,true);

	fld	DWORD PTR _s$[esp+216]

; 63   : 		Commands->Action_Goto(obj,actionThingy);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR _actionThingy$[esp+276]
	lea	edx, DWORD PTR _actionThingy$[esp+216]
	fld	DWORD PTR _d$[esp+216]
	push	edx
	fstp	DWORD PTR _actionThingy$[esp+284]
	mov	DWORD PTR _actionThingy$[esp+264], edi
	mov	BYTE PTR _actionThingy$[esp+289], 1
	mov	ecx, DWORD PTR [eax+16]
	push	esi
	call	ecx
	add	esp, 8
$LN1@Damaged:
	pop	edi
	pop	esi
	pop	ebx

; 64   : 	}
; 65   : }

	add	esp, 204				; 000000ccH
	ret	12					; 0000000cH
?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z ENDP		; NHP_Guard_Bot::Damaged
_TEXT	ENDS
PUBLIC	??_C@_0L@JCFEAFCJ@Time_Delay?$AA@		; `string'
PUBLIC	?Created@NHP_Construction_AI@@EAEXPAE@Z		; NHP_Construction_AI::Created
;	COMDAT ??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
CONST	SEGMENT
??_C@_0L@JCFEAFCJ@Time_Delay?$AA@ DB 'Time_Delay', 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Created@NHP_Construction_AI@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Construction_AI@@EAEXPAE@Z PROC		; NHP_Construction_AI::Created, COMDAT
; _this$ = ecx

; 68   : {

	push	esi

; 69   : 	float timer;
; 70   : 	timer = Get_Float_Parameter("Time_Delay");

	push	OFFSET ??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
	mov	esi, ecx
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter

; 71   : 	Commands->Start_Timer(obj,this,timer,1);

	mov	eax, DWORD PTR _obj$[esp]
	push	1
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+128]
	push	esi
	push	eax
	call	edx

; 72   : 	unitlim1 = 0;

	xor	eax, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+28], eax

; 73   : 	unitlim2 = 0;

	mov	DWORD PTR [esi+32], eax

; 74   : 	unitlim3 = 0;

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

; 75   : }

	ret	4
?Created@NHP_Construction_AI@@EAEXPAE@Z ENDP		; NHP_Construction_AI::Created
_TEXT	ENDS
PUBLIC	??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@		; `string'
PUBLIC	??_C@_0M@NIPPNKMI@Attack_Unit?$AA@		; `string'
PUBLIC	??_C@_0N@NDFBCBJN@Attack_Limit?$AA@		; `string'
PUBLIC	??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@		; `string'
PUBLIC	??_C@_09DEFEEAH@Guard_Inf?$AA@			; `string'
PUBLIC	??_C@_0M@HEJJGPE@Guard_Limit?$AA@		; `string'
PUBLIC	__real@42c80000
PUBLIC	??_C@_0O@GMEIBLGN@Money_Waypath?$AA@		; `string'
PUBLIC	??_C@_09MNMLKPFC@Money_Gen?$AA@			; `string'
PUBLIC	??_C@_0M@HPDDLCBF@Money_Limit?$AA@		; `string'
PUBLIC	__real@40a00000
PUBLIC	?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z	; NHP_Construction_AI::Timer_Expired
EXTRN	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z:PROC ; ScriptImpClass::Get_Int_Parameter
;	COMDAT ??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@ DB 'Attack_Waypath', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@NIPPNKMI@Attack_Unit?$AA@
CONST	SEGMENT
??_C@_0M@NIPPNKMI@Attack_Unit?$AA@ DB 'Attack_Unit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@NDFBCBJN@Attack_Limit?$AA@
CONST	SEGMENT
??_C@_0N@NDFBCBJN@Attack_Limit?$AA@ DB 'Attack_Limit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@
CONST	SEGMENT
??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@ DB 'Guard_Waypath', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09DEFEEAH@Guard_Inf?$AA@
CONST	SEGMENT
??_C@_09DEFEEAH@Guard_Inf?$AA@ DB 'Guard_Inf', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@HEJJGPE@Guard_Limit?$AA@
CONST	SEGMENT
??_C@_0M@HEJJGPE@Guard_Limit?$AA@ DB 'Guard_Limit', 00H	; `string'
CONST	ENDS
;	COMDAT __real@42c80000
CONST	SEGMENT
__real@42c80000 DD 042c80000r			; 100
CONST	ENDS
;	COMDAT ??_C@_0O@GMEIBLGN@Money_Waypath?$AA@
CONST	SEGMENT
??_C@_0O@GMEIBLGN@Money_Waypath?$AA@ DB 'Money_Waypath', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09MNMLKPFC@Money_Gen?$AA@
CONST	SEGMENT
??_C@_09MNMLKPFC@Money_Gen?$AA@ DB 'Money_Gen', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@HPDDLCBF@Money_Limit?$AA@
CONST	SEGMENT
??_C@_0M@HPDDLCBF@Money_Limit?$AA@ DB 'Money_Limit', 00H ; `string'
CONST	ENDS
;	COMDAT __real@40a00000
CONST	SEGMENT
__real@40a00000 DD 040a00000r			; 5
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z
_TEXT	SEGMENT
_timer$ = -224						; size = 4
_spawnPos$ = -220					; size = 12
$T26323 = -208						; size = 12
$T26322 = -208						; size = 12
$T26321 = -208						; size = 12
_params$ = -196						; size = 196
_obj$ = 8						; size = 4
_number$ = 12						; size = 4
?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z PROC	; NHP_Construction_AI::Timer_Expired, COMDAT
; _this$ = ecx

; 78   : {

	sub	esp, 224				; 000000e0H

; 79   : 	Vector3 spawnPos;

	fldz
	push	esi
	push	edi
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	mov	esi, ecx
	fst	DWORD PTR [esp+4]
	lea	ecx, DWORD PTR _spawnPos$[esp+244]
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3

; 80   : 	ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$[esp+232]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 81   : 	float timer;
; 82   : 	int limit;
; 83   : 	int id;
; 84   : 	const char *unit;
; 85   : 	GameObject *object;
; 86   : 	timer = Get_Float_Parameter("Time_Delay");

	push	OFFSET ??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _timer$[esp+232]

; 87   : 	spawnPos.X = Commands->Get_Position(obj).X + 5;

	mov	edi, DWORD PTR _obj$[esp+228]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+64]
	lea	eax, DWORD PTR $T26321[esp+232]
	push	edi
	push	eax
	call	edx
	fld	DWORD PTR [eax]
	fadd	DWORD PTR __real@40a00000

; 88   : 	spawnPos.Y = Commands->Get_Position(obj).Y;

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T26322[esp+240]
	push	edi
	fstp	DWORD PTR _spawnPos$[esp+244]
	mov	edx, DWORD PTR [ecx+64]
	push	eax
	call	edx
	fld	DWORD PTR [eax+4]

; 89   : 	spawnPos.Z = Commands->Get_Position(obj).Z + 2;

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR _spawnPos$[esp+252]
	mov	edx, DWORD PTR [ecx+64]
	lea	eax, DWORD PTR $T26323[esp+248]
	push	edi
	push	eax
	call	edx
	fld	DWORD PTR [eax+8]

; 90   : 	switch (number)

	mov	eax, DWORD PTR _number$[esp+252]
	fadd	DWORD PTR __real@40000000
	add	eax, -1
	add	esp, 24					; 00000018H
	cmp	eax, 4
	fstp	DWORD PTR _spawnPos$[esp+240]
	ja	$LN1@Timer_Expi
	push	ebx
	jmp	DWORD PTR $LN33@Timer_Expi[eax*4]
$LN6@Timer_Expi:

; 91   : 	{
; 92   : 	case 1:
; 93   : 	case 5:
; 94   : 			limit = Get_Int_Parameter("Money_Limit");

	push	OFFSET ??_C@_0M@HPDDLCBF@Money_Limit?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 95   : 			if (unitlim1 < limit)

	mov	ecx, DWORD PTR [esi+28]
	cmp	ecx, eax
	jge	$LN31@Timer_Expi

; 96   : 			{
; 97   : 				unitlim1++;

	add	ecx, 1
	mov	DWORD PTR [esi+28], ecx

; 98   : 				unit = Get_Parameter("Money_Gen");

	push	OFFSET ??_C@_09MNMLKPFC@Money_Gen?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 99   : 				object = Commands->Create_Object(unit,spawnPos);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _spawnPos$[esp+236]
	push	ecx
	push	eax
	mov	eax, DWORD PTR [edx+100]
	call	eax
	add	esp, 8

; 100  : 				id = Get_Int_Parameter("Money_Waypath");

	push	OFFSET ??_C@_0O@GMEIBLGN@Money_Waypath?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 101  : 				params.Set_Move_Arrive_Distance(100);

	fld	DWORD PTR __real@42c80000

; 102  : 				params.Set_Basic(this,100,1);

	mov	ecx, DWORD PTR [esi+4]
	fstp	DWORD PTR _params$[esp+300]

; 103  : 				params.Set_Goto_Waypath(id,true,false,false);

	mov	DWORD PTR _params$[esp+372], eax
	xor	al, al
	mov	BYTE PTR _params$[esp+345], al
	mov	BYTE PTR _params$[esp+344], al

; 104  : 				Commands->Action_Goto(object,params);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR _params$[esp+236]
	push	edx
	mov	DWORD PTR _params$[esp+240], 100	; 00000064H
	mov	DWORD PTR _params$[esp+244], ecx
	mov	DWORD PTR _params$[esp+408], -1
	mov	BYTE PTR _params$[esp+388], 1
	mov	ecx, DWORD PTR [eax+16]
	push	ebx
	call	ecx
	add	esp, 8

; 105  : 				Commands->Start_Timer(obj,this,timer,2);

	push	2

; 106  : 			}
; 107  : 		break;

	jmp	$LN32@Timer_Expi
$LN4@Timer_Expi:

; 108  : 	case 2:
; 109  : 			limit = Get_Int_Parameter("Guard_Limit");

	push	OFFSET ??_C@_0M@HEJJGPE@Guard_Limit?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 110  : 			if (unitlim2 < limit)

	mov	ecx, DWORD PTR [esi+32]
	cmp	ecx, eax
	jge	$LN31@Timer_Expi

; 111  : 			{
; 112  : 				unitlim2++;

	add	ecx, 1
	mov	DWORD PTR [esi+32], ecx

; 113  : 				unit = Get_Parameter("Guard_Inf");

	push	OFFSET ??_C@_09DEFEEAH@Guard_Inf?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 114  : 				object = Commands->Create_Object(unit,spawnPos);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _spawnPos$[esp+236]
	push	ecx
	push	eax
	mov	eax, DWORD PTR [edx+100]
	call	eax
	add	esp, 8

; 115  : 				id = Get_Int_Parameter("Guard_Waypath");

	push	OFFSET ??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 116  : 				params.Set_Basic(this,100,1);

	mov	ecx, DWORD PTR [esi+4]

; 117  : 				params.Set_Goto_Waypath(id,true,false,false);

	mov	DWORD PTR _params$[esp+372], eax
	xor	al, al
	mov	BYTE PTR _params$[esp+345], al
	mov	BYTE PTR _params$[esp+344], al

; 118  : 				Commands->Action_Goto(object,params);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR _params$[esp+236]
	push	edx
	mov	DWORD PTR _params$[esp+240], 100	; 00000064H
	mov	DWORD PTR _params$[esp+244], ecx
	mov	DWORD PTR _params$[esp+408], -1
	mov	BYTE PTR _params$[esp+388], 1
	mov	ecx, DWORD PTR [eax+16]
	push	ebx
	call	ecx
	add	esp, 8

; 119  : 				Commands->Start_Timer(obj,this,timer,3);

	push	3

; 120  : 			}
; 121  : 		break;

	jmp	$LN32@Timer_Expi
$LN2@Timer_Expi:

; 122  : 	case 3:
; 123  : 	case 4:
; 124  : 			limit = Get_Int_Parameter("Attack_Limit");

	push	OFFSET ??_C@_0N@NDFBCBJN@Attack_Limit?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 125  : 			if (unitlim3 < limit)

	mov	ecx, DWORD PTR [esi+36]
	cmp	ecx, eax
	jge	$LN31@Timer_Expi

; 126  : 			{
; 127  : 				unitlim3++;

	add	ecx, 1
	mov	DWORD PTR [esi+36], ecx

; 128  : 				unit = Get_Parameter("Attack_Unit");

	push	OFFSET ??_C@_0M@NIPPNKMI@Attack_Unit?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 129  : 				object = Commands->Create_Object(unit,spawnPos);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _spawnPos$[esp+236]
	push	ecx
	push	eax
	mov	eax, DWORD PTR [edx+100]
	call	eax
	add	esp, 8

; 130  : 				id = Get_Int_Parameter("Attack_Waypath");

	push	OFFSET ??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 131  : 				params.Set_Basic(this,100,1);

	mov	ecx, DWORD PTR [esi+4]

; 132  : 				params.Set_Goto_Waypath(id,true,false,false);

	mov	DWORD PTR _params$[esp+372], eax
	xor	al, al
	mov	BYTE PTR _params$[esp+345], al
	mov	BYTE PTR _params$[esp+344], al

; 133  : 				Commands->Action_Goto(object,params);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR _params$[esp+236]
	push	edx
	mov	DWORD PTR _params$[esp+240], 100	; 00000064H
	mov	DWORD PTR _params$[esp+244], ecx
	mov	DWORD PTR _params$[esp+408], -1
	mov	BYTE PTR _params$[esp+388], 1
	mov	ecx, DWORD PTR [eax+16]
	push	ebx
	call	ecx
	add	esp, 8

; 134  : 				Commands->Start_Timer(obj,this,timer,4);

	push	4
$LN32@Timer_Expi:
	fld	DWORD PTR _timer$[esp+240]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+128]
	push	ecx
	fstp	DWORD PTR [esp]
	push	esi
	push	edi
	call	eax
	add	esp, 16					; 00000010H
$LN31@Timer_Expi:
	pop	ebx
$LN1@Timer_Expi:
	pop	edi
	pop	esi

; 135  : 			}
; 136  : 		break;
; 137  : 	}
; 138  : }

	add	esp, 224				; 000000e0H
	ret	8
	npad	2
$LN33@Timer_Expi:
	DD	$LN6@Timer_Expi
	DD	$LN4@Timer_Expi
	DD	$LN2@Timer_Expi
	DD	$LN2@Timer_Expi
	DD	$LN6@Timer_Expi
?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z ENDP	; NHP_Construction_AI::Timer_Expired
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ ; NHP_Construction_AI::Register_Auto_Save_Variables
EXTRN	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z:PROC ; ScriptImpClass::Auto_Save_Variable
; Function compile flags: /Ogtpy
;	COMDAT ?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ PROC ; NHP_Construction_AI::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 141  : {

	push	esi
	mov	esi, ecx

; 142  : 	Auto_Save_Variable(1,4,&unitlim1);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 143  : 	Auto_Save_Variable(1,4,&unitlim2);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 144  : 	Auto_Save_Variable(1,4,&unitlim3);

	lea	edx, DWORD PTR [esi+36]
	push	edx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 145  : }

	ret	0
?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ ENDP ; NHP_Construction_AI::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	??_C@_0N@JLPHONAA@Sound_Preset?$AA@		; `string'
PUBLIC	??_C@_0P@NIEAFCIF@Sound_Position?$AA@		; `string'
PUBLIC	?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z	; NHP_Sensor_Array_Zone::Created
EXTRN	?Get_Vector3_Parameter@ScriptImpClass@@QAE?AUVector3@@PBD@Z:PROC ; ScriptImpClass::Get_Vector3_Parameter
;	COMDAT ??_C@_0N@JLPHONAA@Sound_Preset?$AA@
CONST	SEGMENT
??_C@_0N@JLPHONAA@Sound_Preset?$AA@ DB 'Sound_Preset', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@NIEAFCIF@Sound_Position?$AA@
CONST	SEGMENT
??_C@_0P@NIEAFCIF@Sound_Position?$AA@ DB 'Sound_Position', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z
_TEXT	SEGMENT
$T26379 = -12						; size = 12
_obj$ = 8						; size = 4
?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z PROC		; NHP_Sensor_Array_Zone::Created, COMDAT
; _this$ = ecx

; 150  : 	count = 0;
; 151  : 	SensorIsAlive = true;
; 152  : 	soundId = Commands->Create_Sound(Get_Parameter("Sound_Preset"),Get_Vector3_Parameter("Sound_Position"),obj);

	mov	eax, DWORD PTR _obj$[esp-4]
	sub	esp, 12					; 0000000cH
	push	esi
	push	edi
	mov	esi, ecx
	push	eax
	push	OFFSET ??_C@_0P@NIEAFCIF@Sound_Position?$AA@
	lea	ecx, DWORD PTR $T26379[esp+28]
	mov	DWORD PTR [esi+32], 0
	mov	BYTE PTR [esi+28], 1
	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	ecx, esi
	add	edi, 172				; 000000acH
	call	?Get_Vector3_Parameter@ScriptImpClass@@QAE?AUVector3@@PBD@Z ; ScriptImpClass::Get_Vector3_Parameter
	push	eax
	push	OFFSET ??_C@_0N@JLPHONAA@Sound_Preset?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edx, DWORD PTR [edi]
	push	eax
	call	edx
	mov	DWORD PTR [esi+36], eax

; 153  : 	Commands->Stop_Sound(soundId,false);

	push	0
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+200]
	call	ecx
	add	esp, 20					; 00000014H
	pop	edi
	pop	esi

; 154  : }

	add	esp, 12					; 0000000cH
	ret	4
?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z ENDP		; NHP_Sensor_Array_Zone::Created
_TEXT	ENDS
PUBLIC	??_C@_0L@HNDGGODA@Check_Team?$AA@		; `string'
PUBLIC	?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z	; NHP_Sensor_Array_Zone::Custom
;	COMDAT ??_C@_0L@HNDGGODA@Check_Team?$AA@
CONST	SEGMENT
??_C@_0L@HNDGGODA@Check_Team?$AA@ DB 'Check_Team', 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_message$ = 12						; size = 4
_param$ = 16						; size = 4
_sender$ = 20						; size = 4
?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z PROC	; NHP_Sensor_Array_Zone::Custom, COMDAT
; _this$ = ecx

; 158  : 	if (message == 901192102)

	mov	eax, DWORD PTR _message$[esp-4]
	cmp	eax, 901192102				; 35b719a6H
	push	esi
	mov	esi, ecx
	jne	SHORT $LN5@Custom

; 159  : 	{
; 160  : 		if (param == 1)

	cmp	DWORD PTR _param$[esp], 1
	sete	al
	mov	BYTE PTR [esi+28], al
	pop	esi

; 174  : 	}
; 175  : }

	ret	16					; 00000010H
$LN5@Custom:

; 161  : 			SensorIsAlive = true;
; 162  : 		else
; 163  : 			SensorIsAlive = false;
; 164  : 	}
; 165  : 	if (message == 20103020)

	cmp	eax, 20103020				; 0132bf6cH
	jne	SHORT $LN1@Custom
	push	edi

; 166  : 	{
; 167  : 		if (Get_Int_Parameter("Check_Team") == Commands->Get_Player_Type(sender))

	push	OFFSET ??_C@_0L@HNDGGODA@Check_Team?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	ecx, DWORD PTR _sender$[esp+4]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edi, eax
	mov	eax, DWORD PTR [edx+248]
	push	ecx
	call	eax
	add	esp, 4
	cmp	edi, eax
	pop	edi
	je	SHORT $LN1@Custom

; 168  : 			return;
; 169  : 		count--;

	add	DWORD PTR [esi+32], -1

; 170  : 		if (count < 0)

	jns	SHORT $LN2@Custom

; 171  : 			count = 0;

	mov	DWORD PTR [esi+32], 0
$LN2@Custom:

; 172  : 		if (!count)

	cmp	DWORD PTR [esi+32], 0
	jne	SHORT $LN1@Custom

; 173  : 			Commands->Stop_Sound(soundId,false);

	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+200]
	push	0
	push	ecx
	call	eax
	add	esp, 8
$LN1@Custom:
	pop	esi

; 174  : 	}
; 175  : }

	ret	16					; 00000010H
?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z ENDP	; NHP_Sensor_Array_Zone::Custom
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ ; NHP_Sensor_Array_Zone::Register_Auto_Save_Variables
; Function compile flags: /Ogtpy
;	COMDAT ?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ PROC ; NHP_Sensor_Array_Zone::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 248  : {

	push	esi
	mov	esi, ecx

; 249  : 	Auto_Save_Variable(1,4,&SensorIsAlive);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 250  : 	Auto_Save_Variable(1,4,&count);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 251  : 	Auto_Save_Variable(1,4,&soundId);

	lea	edx, DWORD PTR [esi+36]
	push	edx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 252  : }

	ret	0
?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ ENDP ; NHP_Sensor_Array_Zone::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	?Created@NHP_Sensorable_Object@@EAEXPAE@Z	; NHP_Sensorable_Object::Created
; Function compile flags: /Ogtpy
;	COMDAT ?Created@NHP_Sensorable_Object@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Sensorable_Object@@EAEXPAE@Z PROC		; NHP_Sensorable_Object::Created, COMDAT
; _this$ = ecx

; 257  : 	sensorZone = 0;

	xor	eax, eax
	mov	DWORD PTR [ecx+32], eax

; 258  : 	insideSensorZone = false;

	mov	BYTE PTR [ecx+28], al

; 259  : }

	ret	4
?Created@NHP_Sensorable_Object@@EAEXPAE@Z ENDP		; NHP_Sensorable_Object::Created
_TEXT	ENDS
PUBLIC	?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z	; NHP_Sensorable_Object::Killed
; Function compile flags: /Ogtpy
;	COMDAT ?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_shooter$ = 12						; size = 4
?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z PROC		; NHP_Sensorable_Object::Killed, COMDAT
; _this$ = ecx

; 263  : 	if (insideSensorZone)

	cmp	BYTE PTR [ecx+28], 0
	je	SHORT $LN1@Killed

; 264  : 		Commands->Send_Custom_Event(obj,Commands->Find_Object(sensorZone),20103020,1,0);

	fldz
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+96]
	push	esi
	push	ecx
	mov	ecx, DWORD PTR [ecx+32]
	fstp	DWORD PTR [esp]
	push	1
	push	20103020				; 0132bf6cH
	push	ecx
	lea	esi, DWORD PTR [eax+140]
	call	edx
	mov	ecx, DWORD PTR [esi]
	add	esp, 4
	push	eax
	mov	eax, DWORD PTR _obj$[esp+16]
	push	eax
	call	ecx
	add	esp, 20					; 00000014H
	pop	esi
$LN1@Killed:

; 265  : }

	ret	8
?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z ENDP		; NHP_Sensorable_Object::Killed
_TEXT	ENDS
PUBLIC	?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z	; NHP_Sensorable_Object::Custom
; Function compile flags: /Ogtpy
;	COMDAT ?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_message$ = 12						; size = 4
_param$ = 16						; size = 4
_sender$ = 20						; size = 4
?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z PROC	; NHP_Sensorable_Object::Custom, COMDAT
; _this$ = ecx

; 269  : 	if (message == 20103020)

	cmp	DWORD PTR _message$[esp-4], 20103020	; 0132bf6cH
	push	esi
	mov	esi, ecx
	jne	SHORT $LN1@Custom@2

; 270  : 	{
; 271  : 		if (!param)

	mov	eax, DWORD PTR _param$[esp]
	test	eax, eax
	jne	SHORT $LN3@Custom@2

; 272  : 		{
; 273  : 			insideSensorZone = true;

	mov	BYTE PTR [esi+28], 1

; 274  : 			sensorZone = Commands->Get_ID(sender);

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

; 275  : 		}
; 276  : 		else if (param == 1)

	cmp	eax, 1
	jne	SHORT $LN1@Custom@2

; 277  : 		{
; 278  : 			insideSensorZone = false;

	mov	BYTE PTR [esi+28], 0
$LN7@Custom@2:

; 279  : 			sensorZone = Commands->Get_ID(sender);

	mov	eax, DWORD PTR _sender$[esp]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	eax
	call	edx
	mov	DWORD PTR [esi+32], eax
	add	esp, 4
$LN1@Custom@2:
	pop	esi

; 280  : 		}
; 281  : 	}
; 282  : }

	ret	16					; 00000010H
?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z ENDP	; NHP_Sensorable_Object::Custom
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ ; NHP_Sensorable_Object::Register_Auto_Save_Variables
; Function compile flags: /Ogtpy
;	COMDAT ?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ PROC ; NHP_Sensorable_Object::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 285  : {

	push	esi
	mov	esi, ecx

; 286  : 	Auto_Save_Variable(1,4,&insideSensorZone);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 287  : 	Auto_Save_Variable(1,4,&sensorZone);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 288  : }

	ret	0
?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ ENDP ; NHP_Sensorable_Object::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ ; ScriptRegistrant<NHP_Construction_AI>::~ScriptRegistrant<NHP_Construction_AI>
EXTRN	??1ScriptFactory@@UAE@XZ:PROC			; ScriptFactory::~ScriptFactory
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ PROC ; ScriptRegistrant<NHP_Construction_AI>::~ScriptRegistrant<NHP_Construction_AI>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Construction_AI>::~ScriptRegistrant<NHP_Construction_AI>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ ; ScriptRegistrant<NHP_Smart_Targetting>::~ScriptRegistrant<NHP_Smart_Targetting>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ PROC ; ScriptRegistrant<NHP_Smart_Targetting>::~ScriptRegistrant<NHP_Smart_Targetting>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::~ScriptRegistrant<NHP_Smart_Targetting>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ	; ScriptRegistrant<NHP_Guard_Bot>::~ScriptRegistrant<NHP_Guard_Bot>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ PROC	; ScriptRegistrant<NHP_Guard_Bot>::~ScriptRegistrant<NHP_Guard_Bot>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ ENDP	; ScriptRegistrant<NHP_Guard_Bot>::~ScriptRegistrant<NHP_Guard_Bot>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::~ScriptRegistrant<NHP_Sensor_Array_Zone>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ PROC ; ScriptRegistrant<NHP_Sensor_Array_Zone>::~ScriptRegistrant<NHP_Sensor_Array_Zone>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::~ScriptRegistrant<NHP_Sensor_Array_Zone>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ ; ScriptRegistrant<NHP_Sensorable_Object>::~ScriptRegistrant<NHP_Sensorable_Object>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ PROC ; ScriptRegistrant<NHP_Sensorable_Object>::~ScriptRegistrant<NHP_Sensorable_Object>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::~ScriptRegistrant<NHP_Sensorable_Object>
_TEXT	ENDS
PUBLIC	?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT
?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size, COMDAT
; _this$ = ecx

; 1637 : 		return (_Mysize);

	mov	eax, DWORD PTR [ecx+24]

; 1638 : 		}

	ret	0
?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size
_TEXT	ENDS
PUBLIC	__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
$T26430 = -12						; size = 12
_this$ = 8						; size = 4
$T26436 = 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 $T26436[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T26430[esp+20]
	mov	DWORD PTR $T26436[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T26430[esp+20]
	push	ecx
	mov	DWORD PTR $T26430[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
$T26442 = -12						; size = 12
$T26447 = 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 $T26447[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T26442[esp+20]
	mov	DWORD PTR $T26447[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T26442[esp+20]
	push	ecx
	mov	DWORD PTR $T26442[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	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
;	COMDAT ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ PROC	; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 39   : 		}

	push	ecx
	mov	DWORD PTR [ecx], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	pop	ecx
	ret	0
??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP	; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char> >::rdbuf
; Function compile flags: /Ogtpy
;	COMDAT ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ
_TEXT	SEGMENT
?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ PROC ; std::basic_ios<char,std::char_traits<char> >::rdbuf, COMDAT
; _this$ = ecx

; 85   : 		return (_Mystrbuf);

	mov	eax, DWORD PTR [ecx+40]

; 86   : 		}

	ret	0
?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ENDP ; std::basic_ios<char,std::char_traits<char> >::rdbuf
_TEXT	ENDS
PUBLIC	??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_istream<char,std::char_traits<char> >::`vftable'
PUBLIC	??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
PUBLIC	??_R4?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_istream<char,std::char_traits<char> >::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$basic_istream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_istream<char,std::char_traits<char> > `RTTI Type Descriptor'
PUBLIC	??_R3?$basic_istream@DU?$char_traits@D@std@@@std@@8 ; std::basic_istream<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$basic_istream@DU?$char_traits@D@std@@@std@@8 ; std::basic_istream<char,std::char_traits<char> >::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$basic_istream@DU?$char_traits@D@std@@@std@@8 ; std::basic_istream<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,0,4,80)'
PUBLIC	??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios<char,std::char_traits<char> > `RTTI Type Descriptor'
PUBLIC	??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8	; std::basic_ios<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8	; std::basic_ios<char,std::char_traits<char> >::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@A@3EA@ios_base@std@@8			; std::ios_base::`RTTI Base Class Descriptor at (0,0,4,64)'
PUBLIC	??_R13A@3EA@?$_Iosb@H@std@@8			; std::_Iosb<int>::`RTTI Base Class Descriptor at (4,0,4,64)'
EXTRN	??_E?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:PROC ; std::basic_istream<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_R13A@3EA@?$_Iosb@H@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\istream
rdata$r	SEGMENT
??_R13A@3EA@?$_Iosb@H@std@@8 DD FLAT:??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb<int>::`RTTI Base Class Descriptor at (4,0,4,64)'
	DD	00H
	DD	04H
	DD	00H
	DD	04H
	DD	040H
	DD	FLAT:??_R3?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R1A@A@3EA@ios_base@std@@8
rdata$r	SEGMENT
??_R1A@A@3EA@ios_base@std@@8 DD FLAT:??_R0?AVios_base@std@@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,0,4,64)'
	DD	01H
	DD	00H
	DD	00H
	DD	04H
	DD	040H
	DD	FLAT:??_R3ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios<char,std::char_traits<char> >::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ios_base@std@@8
	DD	FLAT:??_R13?0A@EA@?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD 00H	; std::basic_ios<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8
_DATA	SEGMENT
??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::basic_ios<char,std::char_traits<char> > `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$basic_ios@DU?$char_traits@D@std@@@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,0,4,80)'
	DD	02H
	DD	00H
	DD	00H
	DD	04H
	DD	050H
	DD	FLAT:??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@?$basic_istream@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$basic_istream@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R0?AV?$basic_istream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_istream<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$basic_istream@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$basic_istream@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R2?$basic_istream@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R1A@?0A@EA@?$basic_istream@DU?$char_traits@D@std@@@std@@8 ; std::basic_istream<char,std::char_traits<char> >::`RTTI Base Class Array'
	DD	FLAT:??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8
	DD	FLAT:??_R1A@A@3EA@ios_base@std@@8
	DD	FLAT:??_R13A@3EA@?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$basic_istream@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R3?$basic_istream@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_istream<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2?$basic_istream@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$basic_istream@DU?$char_traits@D@std@@@std@@@8
_DATA	SEGMENT
??_R0?AV?$basic_istream@DU?$char_traits@D@std@@@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::basic_istream<char,std::char_traits<char> > `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$basic_istream@DU?$char_traits@D@std@@@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
rdata$r	SEGMENT
??_R4?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ DD 00H ; std::basic_istream<char,std::char_traits<char> >::`RTTI Complete Object Locator'
	DD	08H
	DD	00H
	DD	FLAT:??_R0?AV?$basic_istream@DU?$char_traits@D@std@@@std@@@8
	DD	FLAT:??_R3?$basic_istream@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_R4?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_istream<char,std::char_traits<char> >::`vftable'
	DD	FLAT:??_E?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ PROC ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 42   : 		{	// destroy the object

	mov	eax, DWORD PTR [ecx-8]
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [edx+ecx-8], OFFSET ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@

; 43   : 		}

	ret	0
??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_istream<char,std::char_traits<char> >::sentry::operator bool
; Function compile flags: /Ogtpy
;	COMDAT ??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC ; std::basic_istream<char,std::char_traits<char> >::sentry::operator bool, COMDAT
; _this$ = ecx

; 81   : 			return (_Ok);

	mov	al, BYTE PTR [ecx+4]

; 82   : 			}

	ret	0
??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_istream<char,std::char_traits<char> >::sentry::operator bool
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ ; ScriptRegistrant<NHP_Construction_AI>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>
PUBLIC	??_R4?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VNHP_Construction_AI@@@@@8 ; ScriptRegistrant<NHP_Construction_AI> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VNHP_Construction_AI@@@@8 ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VNHP_Construction_AI@@@@8 ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Construction_AI@@@@8 ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@ScriptFactory@@8			; ScriptFactory::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVScriptFactory@@@8			; ScriptFactory `RTTI Type Descriptor'
PUBLIC	??_R3ScriptFactory@@8				; ScriptFactory::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ScriptFactory@@8				; ScriptFactory::`RTTI Base Class Array'
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Construction_AI>::Create
EXTRN	??0ScriptFactory@@QAE@PAD0@Z:PROC		; ScriptFactory::ScriptFactory
EXTRN	??_E?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<NHP_Construction_AI>::`vector deleting destructor'
;	COMDAT ??_R2ScriptFactory@@8
; File d:\source code\stgm\scripts.h
rdata$r	SEGMENT
??_R2ScriptFactory@@8 DD FLAT:??_R1A@?0A@EA@ScriptFactory@@8 ; ScriptFactory::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3ScriptFactory@@8
rdata$r	SEGMENT
??_R3ScriptFactory@@8 DD 00H				; ScriptFactory::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVScriptFactory@@@8
_DATA	SEGMENT
??_R0?AVScriptFactory@@@8 DD FLAT:??_7type_info@@6B@	; ScriptFactory `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVScriptFactory@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ScriptFactory@@8 DD FLAT:??_R0?AVScriptFactory@@@8 ; ScriptFactory::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Construction_AI@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Construction_AI@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Construction_AI@@@@@8 ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Construction_AI@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VNHP_Construction_AI@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VNHP_Construction_AI@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Construction_AI@@@@8 ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VNHP_Construction_AI@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VNHP_Construction_AI@@@@8 DD 00H ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VNHP_Construction_AI@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VNHP_Construction_AI@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VNHP_Construction_AI@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<NHP_Construction_AI> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VNHP_Construction_AI@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ DD 00H ; ScriptRegistrant<NHP_Construction_AI>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Construction_AI@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Construction_AI@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ ; ScriptRegistrant<NHP_Construction_AI>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z PROC ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>
_TEXT	ENDS
PUBLIC	?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z ; ScriptImpClass::SetFactory
; Function compile flags: /Ogtpy
;	COMDAT ?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z PROC ; ScriptImpClass::SetFactory, COMDAT
; _this$ = ecx

; 145  : 		Factory = ptr;

	mov	eax, DWORD PTR _ptr$[esp-4]
	mov	DWORD PTR [ecx+20], eax

; 146  : 	}

	ret	4
?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z ENDP ; ScriptImpClass::SetFactory
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ ; ScriptRegistrant<NHP_Smart_Targetting>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>
PUBLIC	??_R4?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VNHP_Smart_Targetting@@@@@8 ; ScriptRegistrant<NHP_Smart_Targetting> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Smart_Targetting>::Create
EXTRN	??_E?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<NHP_Smart_Targetting>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Smart_Targetting@@@@@8 ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8 DD 00H ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VNHP_Smart_Targetting@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VNHP_Smart_Targetting@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<NHP_Smart_Targetting> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VNHP_Smart_Targetting@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ DD 00H ; ScriptRegistrant<NHP_Smart_Targetting>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Smart_Targetting@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Smart_Targetting@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ ; ScriptRegistrant<NHP_Smart_Targetting>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z PROC ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@	; ScriptRegistrant<NHP_Guard_Bot>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>
PUBLIC	??_R4?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@	; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VNHP_Guard_Bot@@@@@8	; ScriptRegistrant<NHP_Guard_Bot> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VNHP_Guard_Bot@@@@8	; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VNHP_Guard_Bot@@@@8	; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Guard_Bot@@@@8 ; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Guard_Bot>::Create
EXTRN	??_E?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<NHP_Guard_Bot>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Guard_Bot@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Guard_Bot@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Guard_Bot@@@@@8 ; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Guard_Bot@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VNHP_Guard_Bot@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VNHP_Guard_Bot@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Guard_Bot@@@@8 ; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VNHP_Guard_Bot@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VNHP_Guard_Bot@@@@8 DD 00H	; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VNHP_Guard_Bot@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VNHP_Guard_Bot@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VNHP_Guard_Bot@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<NHP_Guard_Bot> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VNHP_Guard_Bot@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@ DD 00H	; ScriptRegistrant<NHP_Guard_Bot>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Guard_Bot@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Guard_Bot@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@ ; ScriptRegistrant<NHP_Guard_Bot>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z PROC	; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z ENDP	; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>
PUBLIC	??_R4?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@@8 ; ScriptRegistrant<NHP_Sensor_Array_Zone> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::Create
EXTRN	??_E?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@@8 ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8 DD 00H ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<NHP_Sensor_Array_Zone> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ DD 00H ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z PROC ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ ; ScriptRegistrant<NHP_Sensorable_Object>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>
PUBLIC	??_R4?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VNHP_Sensorable_Object@@@@@8 ; ScriptRegistrant<NHP_Sensorable_Object> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Sensorable_Object>::Create
EXTRN	??_E?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<NHP_Sensorable_Object>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Sensorable_Object@@@@@8 ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8 DD 00H ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VNHP_Sensorable_Object@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VNHP_Sensorable_Object@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<NHP_Sensorable_Object> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VNHP_Sensorable_Object@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ DD 00H ; ScriptRegistrant<NHP_Sensorable_Object>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VNHP_Sensorable_Object@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VNHP_Sensorable_Object@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ ; ScriptRegistrant<NHP_Sensorable_Object>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z PROC ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>
; 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
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z PROC ; ScriptRegistrant<NHP_Construction_AI>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Construction_AI>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z PROC ; ScriptRegistrant<NHP_Smart_Targetting>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z PROC	; ScriptRegistrant<NHP_Guard_Bot>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z ENDP	; ScriptRegistrant<NHP_Guard_Bot>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z PROC ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@6
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@6:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z PROC ; ScriptRegistrant<NHP_Sensorable_Object>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@7
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@7:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_istream<char,std::char_traits<char> >::`vbase destructor'
; Function compile flags: /Ogtpy
;	COMDAT ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ PROC ; std::basic_istream<char,std::char_traits<char> >::`vbase destructor', COMDAT
; _this$ = ecx
	lea	eax, DWORD PTR [ecx+8]
	mov	ecx, DWORD PTR [eax-8]
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [edx+eax-8], OFFSET ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	push	eax
	mov	DWORD PTR [eax], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	pop	ecx
	ret	0
??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_istream<char,std::char_traits<char> >::`vbase destructor'
_TEXT	ENDS
PUBLIC	?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ
_TEXT	SEGMENT
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr, COMDAT
; _this$ = ecx

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

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	jb	SHORT $LN3@Myptr
	mov	eax, DWORD PTR [ecx+8]

; 2094 : 		}

	ret	0
$LN3@Myptr:

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

	lea	eax, DWORD PTR [ecx+8]

; 2094 : 		}

	ret	0
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\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?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ios<char,std::char_traits<char> >::`vftable'
PUBLIC	??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_ios<char,std::char_traits<char> >::basic_ios<char,std::char_traits<char> >
PUBLIC	??_R4?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ios<char,std::char_traits<char> >::`RTTI Complete Object Locator'
EXTRN	??_E?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:PROC ; std::basic_ios<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_R4?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
rdata$r	SEGMENT
??_R4?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ DD 00H ; std::basic_ios<char,std::char_traits<char> >::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8
	DD	FLAT:??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_R4?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ios<char,std::char_traits<char> >::`vftable'
	DD	FLAT:??_E?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
CONST	ENDS
;	COMDAT ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT
??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ PROC	; std::basic_ios<char,std::char_traits<char> >::basic_ios<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 146  : 	__CLR_OR_THIS_CALL basic_ios()

	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@

; 147  : 		{	// default constructor, do nothing
; 148  : 		}

	ret	0
??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ENDP	; std::basic_ios<char,std::char_traits<char> >::basic_ios<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC ; std::basic_ios<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	push	esi
	mov	DWORD PTR [esi], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN9@scalar@8
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN9@scalar@8:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::pubsync
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::pubsync, COMDAT
; _this$ = ecx

; 101  : 		return (sync());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	jmp	edx
?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pubsync
_TEXT	ENDS
PUBLIC	?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Unlock
EXTRN	?_Unlock@_Mutex@std@@QAEXXZ:PROC		; std::_Mutex::_Unlock
; Function compile flags: /Ogtpy
;	COMDAT ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Unlock, COMDAT
; _this$ = ecx

; 179  : 		_Mylock._Unlock();

	add	ecx, 4
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Unlock
_TEXT	ENDS
PUBLIC	?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::gptr
; Function compile flags: /Ogtpy
;	COMDAT ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::gptr, COMDAT
; _this$ = ecx

; 191  : 		return (*_IGnext);

	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]

; 192  : 		}

	ret	0
?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::gptr
_TEXT	ENDS
PUBLIC	?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z ; std::basic_streambuf<char,std::char_traits<char> >::setg
; Function compile flags: /Ogtpy
;	COMDAT ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Next$ = 12						; size = 4
__Last$ = 16						; size = 4
?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::setg, COMDAT
; _this$ = ecx

; 217  : 		*_IGfirst = _First;

	mov	eax, DWORD PTR [ecx+16]
	mov	edx, DWORD PTR __First$[esp-4]
	mov	DWORD PTR [eax], edx

; 218  : 		*_IGnext = _Next;

	mov	edx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR __Next$[esp-4]
	mov	DWORD PTR [edx], eax

; 219  : 		*_IGcount = (int)(_Last - _Next);

	mov	edx, DWORD PTR __Last$[esp-4]
	sub	edx, eax
	mov	eax, DWORD PTR [ecx+48]
	mov	DWORD PTR [eax], edx

; 220  : 		}

	ret	12					; 0000000cH
?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::setg
_TEXT	ENDS
PUBLIC	?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gninc
; Function compile flags: /Ogtpy
;	COMDAT ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Gninc, COMDAT
; _this$ = ecx

; 235  : 		--*_IGcount;

	mov	eax, DWORD PTR [ecx+48]
	add	DWORD PTR [eax], -1

; 236  : 		return ((*_IGnext)++);

	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx

; 237  : 		}

	ret	0
?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Gninc
_TEXT	ENDS
PUBLIC	?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gnpreinc
; Function compile flags: /Ogtpy
;	COMDAT ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Gnpreinc, COMDAT
; _this$ = ecx

; 241  : 		--*_IGcount;

	mov	eax, DWORD PTR [ecx+48]
	add	DWORD PTR [eax], -1

; 242  : 		return (++(*_IGnext));

	mov	eax, DWORD PTR [ecx+32]
	add	DWORD PTR [eax], 1
	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]

; 243  : 		}

	ret	0
?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Gnpreinc
_TEXT	ENDS
PUBLIC	?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gnavail
; Function compile flags: /Ogtpy
;	COMDAT ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ
_TEXT	SEGMENT
?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Gnavail, COMDAT
; _this$ = ecx

; 247  : 		return (*_IGnext != 0 ? *_IGcount : 0);

	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN3@Gnavail
	mov	ecx, DWORD PTR [ecx+48]
	mov	eax, DWORD PTR [ecx]

; 248  : 		}

	ret	0
$LN3@Gnavail:

; 247  : 		return (*_IGnext != 0 ? *_IGcount : 0);

	xor	eax, eax

; 248  : 		}

	ret	0
?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Gnavail
_TEXT	ENDS
PUBLIC	?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::is_open
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
;	COMDAT ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::is_open, COMDAT
; _this$ = ecx

; 146  : 		return (_Myfile != 0);

	xor	eax, eax
	cmp	DWORD PTR [ecx+76], eax
	setne	al

; 147  : 		}

	ret	0
?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::is_open
_TEXT	ENDS
PUBLIC	?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr, COMDAT
; _this$ = ecx

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

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	jb	SHORT $LN3@Myptr@2
	mov	eax, DWORD PTR [ecx+8]

; 2089 : 		}

	ret	0
$LN3@Myptr@2:

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

	lea	eax, DWORD PTR [ecx+8]

; 2089 : 		}

	ret	0
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
_TEXT	ENDS
PUBLIC	??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	?deallocate@?$allocator@D@std@@QAEXPADI@Z	; std::allocator<char>::deallocate
; Function compile flags: /Ogtpy
;	COMDAT ?deallocate@?$allocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@D@std@@QAEXPADI@Z PROC		; std::allocator<char>::deallocate, COMDAT
; _this$ = ecx

; 141  : 		::operator delete(_Ptr);

	mov	eax, DWORD PTR __Ptr$[esp-4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx

; 142  : 		}

	ret	8
?deallocate@?$allocator@D@std@@QAEXPADI@Z ENDP		; std::allocator<char>::deallocate
_TEXT	ENDS
PUBLIC	?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char> >::tie
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
;	COMDAT ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ
_TEXT	SEGMENT
?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ PROC ; std::basic_ios<char,std::char_traits<char> >::tie, COMDAT
; _this$ = ecx

; 73   : 		return (_Tiestr);

	mov	eax, DWORD PTR [ecx+44]

; 74   : 		}

	ret	0
?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ENDP ; std::basic_ios<char,std::char_traits<char> >::tie
_TEXT	ENDS
PUBLIC	?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Lock
EXTRN	?_Lock@_Mutex@std@@QAEXXZ:PROC			; std::_Mutex::_Lock
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Lock, COMDAT
; _this$ = ecx

; 174  : 		_Mylock._Lock();

	add	ecx, 4
	jmp	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Lock
_TEXT	ENDS
PUBLIC	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z ; std::basic_streambuf<char,std::char_traits<char> >::_Init
; Function compile flags: /Ogtpy
;	COMDAT ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z
_TEXT	SEGMENT
__Gf$ = 8						; size = 4
__Gn$ = 12						; size = 4
__Gc$ = 16						; size = 4
__Pf$ = 20						; size = 4
__Pn$ = 24						; size = 4
__Pc$ = 28						; size = 4
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Init, COMDAT
; _this$ = ecx

; 292  : 		_IGfirst = _Gf, _IPfirst = _Pf;

	mov	eax, DWORD PTR __Gf$[esp-4]
	mov	edx, DWORD PTR __Pf$[esp-4]
	mov	DWORD PTR [ecx+16], eax

; 293  : 		_IGnext = _Gn, _IPnext = _Pn;

	mov	eax, DWORD PTR __Gn$[esp-4]
	mov	DWORD PTR [ecx+20], edx
	mov	edx, DWORD PTR __Pn$[esp-4]
	mov	DWORD PTR [ecx+32], eax

; 294  : 		_IGcount = _Gc, _IPcount = _Pc;

	mov	eax, DWORD PTR __Gc$[esp-4]
	mov	DWORD PTR [ecx+36], edx
	mov	edx, DWORD PTR __Pc$[esp-4]
	mov	DWORD PTR [ecx+48], eax
	mov	DWORD PTR [ecx+52], edx

; 295  : 		}

	ret	24					; 00000018H
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Init
_TEXT	ENDS
PUBLIC	??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@ ; `string'
PUBLIC	??_C@_1NA@ICLOEHKI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@ ; `string'
PUBLIC	??_C@_1FG@CMLDHNON@?$AA?$CI?$AA?$CC?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?5?$AAC?$AA?$CL?$AA?$CL?$AA?5?$AAL?$AAi?$AAb?$AAr?$AAa?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5@ ; `string'
PUBLIC	??_C@_1EG@CNCHLAOB@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf?$AAe?$AAr?$AAe?$AAn?$AAc?$AAa?$AAb@ ; `string'
PUBLIC	??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ ; `string'
PUBLIC	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
EXTRN	__invalid_parameter:PROC
EXTRN	__CrtDbgReportW:PROC
;	COMDAT ??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@
; File c:\program files\microsoft visual studio 8\vc\include\xstring
CONST	SEGMENT
??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@ DB '"'
	DB	00H, 'o', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'o', 00H, 'f', 00H
	DB	' ', 00H, 'r', 00H, 'a', 00H, 'n', 00H, 'g', 00H, 'e', 00H, '"'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1NA@ICLOEHKI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@
CONST	SEGMENT
??_C@_1NA@ICLOEHKI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@ DB 's'
	DB	00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'S', 00H
	DB	't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, '_', 00H, 'c'
	DB	00H, 'o', 00H, 'n', 00H, 's', 00H, 't', 00H, '_', 00H, 'i', 00H
	DB	't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r'
	DB	00H, '<', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, ',', 00H
	DB	's', 00H, 't', 00H, 'r', 00H, 'u', 00H, 'c', 00H, 't', 00H, ' '
	DB	00H, 's', 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'c', 00H
	DB	'h', 00H, 'a', 00H, 'r', 00H, '_', 00H, 't', 00H, 'r', 00H, 'a'
	DB	00H, 'i', 00H, 't', 00H, 's', 00H, '<', 00H, 'c', 00H, 'h', 00H
	DB	'a', 00H, 'r', 00H, '>', 00H, ',', 00H, 'c', 00H, 'l', 00H, 'a'
	DB	00H, 's', 00H, 's', 00H, ' ', 00H, 's', 00H, 't', 00H, 'd', 00H
	DB	':', 00H, ':', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'o', 00H, 'c'
	DB	00H, 'a', 00H, 't', 00H, 'o', 00H, 'r', 00H, '<', 00H, 'c', 00H
	DB	'h', 00H, 'a', 00H, 'r', 00H, '>', 00H, ' ', 00H, '>', 00H, ':'
	DB	00H, ':', 00H, 'o', 00H, 'p', 00H, 'e', 00H, 'r', 00H, 'a', 00H
	DB	't', 00H, 'o', 00H, 'r', 00H, ' ', 00H, '*', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1FG@CMLDHNON@?$AA?$CI?$AA?$CC?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?5?$AAC?$AA?$CL?$AA?$CL?$AA?5?$AAL?$AAi?$AAb?$AAr?$AAa?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5@
CONST	SEGMENT
??_C@_1FG@CMLDHNON@?$AA?$CI?$AA?$CC?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?5?$AAC?$AA?$CL?$AA?$CL?$AA?5?$AAL?$AAi?$AAb?$AAr?$AAa?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5@ DB '('
	DB	00H, '"', 00H, 'S', 00H, 't', 00H, 'a', 00H, 'n', 00H, 'd', 00H
	DB	'a', 00H, 'r', 00H, 'd', 00H, ' ', 00H, 'C', 00H, '+', 00H, '+'
	DB	00H, ' ', 00H, 'L', 00H, 'i', 00H, 'b', 00H, 'r', 00H, 'a', 00H
	DB	'r', 00H, 'i', 00H, 'e', 00H, 's', 00H, ' ', 00H, 'O', 00H, 'u'
	DB	00H, 't', 00H, ' ', 00H, 'o', 00H, 'f', 00H, ' ', 00H, 'R', 00H
	DB	'a', 00H, 'n', 00H, 'g', 00H, 'e', 00H, '"', 00H, ',', 00H, ' '
	DB	00H, '0', 00H, ')', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1EG@CNCHLAOB@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf?$AAe?$AAr?$AAe?$AAn?$AAc?$AAa?$AAb@
CONST	SEGMENT
??_C@_1EG@CNCHLAOB@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf?$AAe?$AAr?$AAe?$AAn?$AAc?$AAa?$AAb@ DB 's'
	DB	00H, 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H
	DB	'i', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o'
	DB	00H, 'r', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' ', 00H
	DB	'd', 00H, 'e', 00H, 'r', 00H, 'e', 00H, 'f', 00H, 'e', 00H, 'r'
	DB	00H, 'e', 00H, 'n', 00H, 'c', 00H, 'a', 00H, 'b', 00H, 'l', 00H
	DB	'e', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
CONST	SEGMENT
??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ DB 'C'
	DB	00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H
	DB	'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l'
	DB	00H, 'e', 00H, 's', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H
	DB	'r', 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' '
	DB	00H, 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H
	DB	' ', 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o'
	DB	00H, ' ', 00H, '8', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H
	DB	'i', 00H, 'n', 00H, 'c', 00H, 'l', 00H, 'u', 00H, 'd', 00H, 'e'
	DB	00H, '\', 00H, 'x', 00H, 's', 00H, 't', 00H, 'r', 00H, 'i', 00H
	DB	'n', 00H, 'g', 00H, 00H, 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ
_TEXT	SEGMENT
??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ PROC ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*, COMDAT
; _this$ = ecx

; 103  : 		{	// return designated object

	push	esi
	mov	esi, ecx

; 104  : 
; 105  :  #if _HAS_ITERATOR_DEBUGGING
; 106  : 		if (this->_Mycont == 0 || _Myptr == 0
; 107  : 			|| _Myptr < ((_Mystring *)this->_Mycont)->_Myptr()
; 108  : 			|| ((_Mystring *)this->_Mycont)->_Myptr()
; 109  : 				+ ((_Mystring *)this->_Mycont)->_Mysize <= _Myptr)

	mov	eax, DWORD PTR [esi]
	test	eax, eax
	je	SHORT $LN1@operator@2
	mov	edx, DWORD PTR [esi+8]
	test	edx, edx
	je	SHORT $LN1@operator@2
	cmp	DWORD PTR [eax+28], 16			; 00000010H
	jb	SHORT $LN8@operator@2
	mov	ecx, DWORD PTR [eax+8]
	jmp	SHORT $LN9@operator@2
$LN8@operator@2:
	lea	ecx, DWORD PTR [eax+8]
$LN9@operator@2:
	cmp	edx, ecx
	jb	SHORT $LN1@operator@2
	cmp	DWORD PTR [eax+28], 16			; 00000010H
	jb	SHORT $LN12@operator@2
	mov	ecx, DWORD PTR [eax+8]
	jmp	SHORT $LN13@operator@2
$LN12@operator@2:
	lea	ecx, DWORD PTR [eax+8]
$LN13@operator@2:
	mov	eax, DWORD PTR [eax+24]
	add	eax, ecx
	cmp	eax, edx
	ja	SHORT $LN14@operator@2
$LN1@operator@2:

; 110  : 			{
; 111  : 			_DEBUG_ERROR("string iterator not dereferencable");

	push	111					; 0000006fH
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1EG@CNCHLAOB@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf?$AAe?$AAr?$AAe?$AAn?$AAc?$AAa?$AAb@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message

; 112  : 			_SCL_SECURE_OUT_OF_RANGE;

	push	OFFSET ??_C@_1FG@CMLDHNON@?$AA?$CI?$AA?$CC?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?5?$AAC?$AA?$CL?$AA?$CL?$AA?5?$AAL?$AAi?$AAb?$AAr?$AAa?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5@
	push	0
	push	112					; 00000070H
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	2
	call	__CrtDbgReportW
	add	esp, 32					; 00000020H
	cmp	eax, 1
	jne	SHORT $LN5@operator@2
	int	3
$LN5@operator@2:
	push	0
	push	112					; 00000070H
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1NA@ICLOEHKI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@
	push	OFFSET ??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@
	call	__invalid_parameter

; 113  : 			}
; 114  : 		__analysis_assume(_Myptr != 0);
; 115  :  #else
; 116  : 		if (this->_Mycont != _IGNORE_MYCONT)
; 117  : 		{
; 118  : 			_SCL_SECURE_VALIDATE(this->_Mycont != NULL);
; 119  : 			_SCL_SECURE_VALIDATE_RANGE(_Myptr < (((_Mystring *)this->_Mycont)->_Myptr() + ((_Mystring *)(this->_Mycont))->_Mysize));
; 120  : 		}
; 121  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 122  : 
; 123  : 		return (*_Myptr);

	mov	eax, DWORD PTR [esi+8]
	add	esp, 20					; 00000014H
	pop	esi

; 124  : 		}

	ret	0
$LN14@operator@2:

; 113  : 			}
; 114  : 		__analysis_assume(_Myptr != 0);
; 115  :  #else
; 116  : 		if (this->_Mycont != _IGNORE_MYCONT)
; 117  : 		{
; 118  : 			_SCL_SECURE_VALIDATE(this->_Mycont != NULL);
; 119  : 			_SCL_SECURE_VALIDATE_RANGE(_Myptr < (((_Mystring *)this->_Mycont)->_Myptr() + ((_Mystring *)(this->_Mycont))->_Mysize));
; 120  : 		}
; 121  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 122  : 
; 123  : 		return (*_Myptr);

	mov	eax, edx
	pop	esi

; 124  : 		}

	ret	0
??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ENDP ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
_TEXT	ENDS
PUBLIC	?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z	; std::codecvt<char,char,int>::unshift
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__First2$ = 12						; size = 4
__Last2$ = 16						; size = 4
__Mid2$ = 20						; size = 4
?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z PROC	; std::codecvt<char,char,int>::unshift, COMDAT
; _this$ = ecx

; 733  : 		return (do_unshift(_State, _First2, _Last2, _Mid2));

	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+24]
	jmp	eax
?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z ENDP	; std::codecvt<char,char,int>::unshift
_TEXT	ENDS
PUBLIC	?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z ; std::basic_streambuf<char,std::char_traits<char> >::setp
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::setp, COMDAT
; _this$ = ecx

; 258  : 		*_IPfirst = _First;

	mov	edx, DWORD PTR [ecx+20]
	mov	eax, DWORD PTR __First$[esp-4]
	mov	DWORD PTR [edx], eax

; 259  : 		*_IPnext = _First;

	mov	edx, DWORD PTR [ecx+36]
	mov	DWORD PTR [edx], eax

; 260  : 		*_IPcount = (int)(_Last - _First);

	mov	edx, DWORD PTR __Last$[esp-4]
	sub	edx, eax
	mov	eax, DWORD PTR [ecx+52]
	mov	DWORD PTR [eax], edx

; 261  : 		}

	ret	8
?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::setp
_TEXT	ENDS
PUBLIC	?max_size@?$allocator@D@std@@QBEIXZ		; std::allocator<char>::max_size
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ?max_size@?$allocator@D@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$allocator@D@std@@QBEIXZ PROC		; std::allocator<char>::max_size, COMDAT
; _this$ = ecx

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

	or	eax, -1

; 168  : 		}

	ret	0
?max_size@?$allocator@D@std@@QBEIXZ ENDP		; std::allocator<char>::max_size
_TEXT	ENDS
PUBLIC	??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@ ; `string'
PUBLIC	??$_Debug_pointer@D@std@@YAXPBDPB_WI@Z		; std::_Debug_pointer<char>
;	COMDAT ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
; File c:\program files\microsoft visual studio 8\vc\include\xutility
CONST	SEGMENT
??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@ DB 'i'
	DB	00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'd', 00H
	DB	' ', 00H, 'n', 00H, 'u', 00H, 'l', 00H, 'l', 00H, ' ', 00H, 'p'
	DB	00H, 'o', 00H, 'i', 00H, 'n', 00H, 't', 00H, 'e', 00H, 'r', 00H
	DB	00H, 00H					; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??$_Debug_pointer@D@std@@YAXPBDPB_WI@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__File$ = 12						; size = 4
__Line$ = 16						; size = 4
??$_Debug_pointer@D@std@@YAXPBDPB_WI@Z PROC		; std::_Debug_pointer<char>, COMDAT

; 1371 : 	if (_First == 0)

	cmp	DWORD PTR __First$[esp-4], 0
	jne	SHORT $LN1@Debug_poin

; 1372 : 		_DEBUG_ERROR2("invalid null pointer", _File, _Line);

	mov	DWORD PTR __First$[esp-4], OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	jmp	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
$LN1@Debug_poin:

; 1373 : 	}

	ret	0
??$_Debug_pointer@D@std@@YAXPBDPB_WI@Z ENDP		; std::_Debug_pointer<char>
_TEXT	ENDS
PUBLIC	??$_Debug_pointer@D@std@@YAXPADPB_WI@Z		; std::_Debug_pointer<char>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Debug_pointer@D@std@@YAXPADPB_WI@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__File$ = 12						; size = 4
__Line$ = 16						; size = 4
??$_Debug_pointer@D@std@@YAXPADPB_WI@Z PROC		; std::_Debug_pointer<char>, COMDAT

; 1378 : 	if (_First == 0)

	cmp	DWORD PTR __First$[esp-4], 0
	jne	SHORT $LN1@Debug_poin@2

; 1379 : 		_DEBUG_ERROR2("invalid null pointer", _File, _Line);

	mov	DWORD PTR __First$[esp-4], OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	jmp	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
$LN1@Debug_poin@2:

; 1380 : 	}

	ret	0
??$_Debug_pointer@D@std@@YAXPADPB_WI@Z ENDP		; std::_Debug_pointer<char>
_TEXT	ENDS
PUBLIC	??$_DebugHeapDelete@Vfacet@locale@std@@@std@@YAXPAVfacet@locale@0@@Z ; std::_DebugHeapDelete<std::locale::facet>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ??$_DebugHeapDelete@Vfacet@locale@std@@@std@@YAXPAVfacet@locale@0@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??$_DebugHeapDelete@Vfacet@locale@std@@@std@@YAXPAVfacet@locale@0@@Z PROC ; std::_DebugHeapDelete<std::locale::facet>, COMDAT

; 55   : 	{	// delete from the debug CRT heap even if operator delete exists

	push	esi

; 56   : 	if (_Ptr != 0)

	mov	esi, DWORD PTR __Ptr$[esp]
	test	esi, esi
	je	SHORT $LN1@DebugHeapD

; 57   : 		{	// worth deleting
; 58   : 		_Ptr->~_Ty();

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

; 59   : 		// delete as _NORMAL_BLOCK, not _CRT_BLOCK, since we might have
; 60   : 		// facets allocated by normal new.
; 61   : 		free(_Ptr);

	push	esi
	call	_free
	add	esp, 4
$LN1@DebugHeapD:
	pop	esi

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@Vfacet@locale@std@@@std@@YAXPAVfacet@locale@0@@Z ENDP ; std::_DebugHeapDelete<std::locale::facet>
_TEXT	ENDS
PUBLIC	??$_DebugHeapDelete@X@std@@YAXPAX@Z		; std::_DebugHeapDelete<void>
; Function compile flags: /Ogtpy
;	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@2

; 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@2:

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
_TEXT	ENDS
PUBLIC	??$_Allocate@D@std@@YAPADIPAD@Z			; std::_Allocate<char>
EXTRN	??2@YAPAXI@Z:PROC				; operator new
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??$_Allocate@D@std@@YAPADIPAD@Z
_TEXT	SEGMENT
$T26678 = -12						; size = 12
$T26682 = 8						; size = 4
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@D@std@@YAPADIPAD@Z PROC			; std::_Allocate<char>, COMDAT

; 38   : 	if (_Count <= 0)

	mov	ecx, DWORD PTR __Count$[esp-4]
	sub	esp, 12					; 0000000cH
	test	ecx, ecx
	ja	SHORT $LN3@Allocate

; 39   : 		_Count = 0;

	xor	ecx, ecx
$LN1@Allocate:

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

	push	ecx
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4

; 45   : 	}

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

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

	or	eax, -1
	xor	edx, edx
	div	ecx
	cmp	eax, 1
	jae	SHORT $LN1@Allocate

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

	lea	eax, DWORD PTR $T26682[esp+8]
	push	eax
	lea	ecx, DWORD PTR $T26678[esp+16]
	mov	DWORD PTR $T26682[esp+12], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T26678[esp+16]
	push	ecx
	mov	DWORD PTR $T26678[esp+20], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@Allocate:
$LN8@Allocate:
	int	3
??$_Allocate@D@std@@YAPADIPAD@Z ENDP			; std::_Allocate<char>
_TEXT	ENDS
PUBLIC	??_7NHP_Construction_AI@@6B@			; NHP_Construction_AI::`vftable'
PUBLIC	??0NHP_Construction_AI@@QAE@XZ			; NHP_Construction_AI::NHP_Construction_AI
PUBLIC	??_R4NHP_Construction_AI@@6B@			; NHP_Construction_AI::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVNHP_Construction_AI@@@8			; NHP_Construction_AI `RTTI Type Descriptor'
PUBLIC	??_R3NHP_Construction_AI@@8			; NHP_Construction_AI::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2NHP_Construction_AI@@8			; NHP_Construction_AI::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@NHP_Construction_AI@@8		; NHP_Construction_AI::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@ScriptImpClass@@8			; ScriptImpClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVScriptImpClass@@@8			; ScriptImpClass `RTTI Type Descriptor'
PUBLIC	??_R3ScriptImpClass@@8				; ScriptImpClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ScriptImpClass@@8				; ScriptImpClass::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ScriptClass@@8			; ScriptClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVScriptClass@@@8				; ScriptClass `RTTI Type Descriptor'
PUBLIC	??_R3ScriptClass@@8				; ScriptClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ScriptClass@@8				; ScriptClass::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@GameObjObserverClass@@8		; GameObjObserverClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVGameObjObserverClass@@@8		; GameObjObserverClass `RTTI Type Descriptor'
PUBLIC	??_R3GameObjObserverClass@@8			; GameObjObserverClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2GameObjObserverClass@@8			; GameObjObserverClass::`RTTI Base Class Array'
EXTRN	??0ScriptImpClass@@QAE@XZ:PROC			; ScriptImpClass::ScriptImpClass
EXTRN	??_ENHP_Construction_AI@@UAEPAXI@Z:PROC		; NHP_Construction_AI::`vector deleting destructor'
EXTRN	?Get_Name@ScriptImpClass@@UAEPADXZ:PROC		; ScriptImpClass::Get_Name
EXTRN	?Attach@ScriptImpClass@@UAEXPAE@Z:PROC		; ScriptImpClass::Attach
EXTRN	?Detach@ScriptImpClass@@UAEXPAE@Z:PROC		; ScriptImpClass::Detach
EXTRN	?Destroyed@ScriptImpClass@@UAEXPAE@Z:PROC	; ScriptImpClass::Destroyed
EXTRN	?Killed@ScriptImpClass@@UAEXPAE0@Z:PROC		; ScriptImpClass::Killed
EXTRN	?Damaged@ScriptImpClass@@UAEXPAE0M@Z:PROC	; ScriptImpClass::Damaged
EXTRN	?Custom@ScriptImpClass@@UAEXPAEHH0@Z:PROC	; ScriptImpClass::Custom
EXTRN	?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z:PROC ; ScriptImpClass::Sound_Heard
EXTRN	?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z:PROC	; ScriptImpClass::Enemy_Seen
EXTRN	?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z:PROC ; ScriptImpClass::Action_Complete
EXTRN	?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z:PROC ; ScriptImpClass::Animation_Complete
EXTRN	?Poked@ScriptImpClass@@UAEXPAE0@Z:PROC		; ScriptImpClass::Poked
EXTRN	?Entered@ScriptImpClass@@UAEXPAE0@Z:PROC	; ScriptImpClass::Entered
EXTRN	?Exited@ScriptImpClass@@UAEXPAE0@Z:PROC		; ScriptImpClass::Exited
EXTRN	?Owner@ScriptImpClass@@UAEPAEXZ:PROC		; ScriptImpClass::Owner
EXTRN	?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ:PROC	; ScriptImpClass::Get_Owner_Ptr
EXTRN	?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z:PROC ; ScriptImpClass::Set_Parameters_String
EXTRN	?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z:PROC ; ScriptImpClass::Get_Parameters_String
EXTRN	?Save@ScriptImpClass@@UAEXAAE@Z:PROC		; ScriptImpClass::Save
EXTRN	?Load@ScriptImpClass@@UAEXAAE@Z:PROC		; ScriptImpClass::Load
EXTRN	?Save_Data@ScriptImpClass@@UAEXAAE@Z:PROC	; ScriptImpClass::Save_Data
EXTRN	?Load_Data@ScriptImpClass@@UAEXAAE@Z:PROC	; ScriptImpClass::Load_Data
;	COMDAT ??_R2GameObjObserverClass@@8
rdata$r	SEGMENT
??_R2GameObjObserverClass@@8 DD FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8 ; GameObjObserverClass::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3GameObjObserverClass@@8
rdata$r	SEGMENT
??_R3GameObjObserverClass@@8 DD 00H			; GameObjObserverClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVGameObjObserverClass@@@8
_DATA	SEGMENT
??_R0?AVGameObjObserverClass@@@8 DD FLAT:??_7type_info@@6B@ ; GameObjObserverClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVGameObjObserverClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@GameObjObserverClass@@8 DD FLAT:??_R0?AVGameObjObserverClass@@@8 ; GameObjObserverClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R2ScriptClass@@8
rdata$r	SEGMENT
??_R2ScriptClass@@8 DD FLAT:??_R1A@?0A@EA@ScriptClass@@8 ; ScriptClass::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3ScriptClass@@8
rdata$r	SEGMENT
??_R3ScriptClass@@8 DD 00H				; ScriptClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ScriptClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVScriptClass@@@8
_DATA	SEGMENT
??_R0?AVScriptClass@@@8 DD FLAT:??_7type_info@@6B@	; ScriptClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVScriptClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@ScriptClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ScriptClass@@8 DD FLAT:??_R0?AVScriptClass@@@8 ; ScriptClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ScriptClass@@8
rdata$r	ENDS
;	COMDAT ??_R2ScriptImpClass@@8
rdata$r	SEGMENT
??_R2ScriptImpClass@@8 DD FLAT:??_R1A@?0A@EA@ScriptImpClass@@8 ; ScriptImpClass::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3ScriptImpClass@@8
rdata$r	SEGMENT
??_R3ScriptImpClass@@8 DD 00H				; ScriptImpClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2ScriptImpClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVScriptImpClass@@@8
_DATA	SEGMENT
??_R0?AVScriptImpClass@@@8 DD FLAT:??_7type_info@@6B@	; ScriptImpClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVScriptImpClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@ScriptImpClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ScriptImpClass@@8 DD FLAT:??_R0?AVScriptImpClass@@@8 ; ScriptImpClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ScriptImpClass@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@NHP_Construction_AI@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@NHP_Construction_AI@@8 DD FLAT:??_R0?AVNHP_Construction_AI@@@8 ; NHP_Construction_AI::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3NHP_Construction_AI@@8
rdata$r	ENDS
;	COMDAT ??_R2NHP_Construction_AI@@8
rdata$r	SEGMENT
??_R2NHP_Construction_AI@@8 DD FLAT:??_R1A@?0A@EA@NHP_Construction_AI@@8 ; NHP_Construction_AI::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3NHP_Construction_AI@@8
rdata$r	SEGMENT
??_R3NHP_Construction_AI@@8 DD 00H			; NHP_Construction_AI::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2NHP_Construction_AI@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVNHP_Construction_AI@@@8
_DATA	SEGMENT
??_R0?AVNHP_Construction_AI@@@8 DD FLAT:??_7type_info@@6B@ ; NHP_Construction_AI `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVNHP_Construction_AI@@', 00H
_DATA	ENDS
;	COMDAT ??_R4NHP_Construction_AI@@6B@
rdata$r	SEGMENT
??_R4NHP_Construction_AI@@6B@ DD 00H			; NHP_Construction_AI::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVNHP_Construction_AI@@@8
	DD	FLAT:??_R3NHP_Construction_AI@@8
rdata$r	ENDS
;	COMDAT ??_7NHP_Construction_AI@@6B@
CONST	SEGMENT
??_7NHP_Construction_AI@@6B@ DD FLAT:??_R4NHP_Construction_AI@@6B@ ; NHP_Construction_AI::`vftable'
	DD	FLAT:??_ENHP_Construction_AI@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Construction_AI@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0NHP_Construction_AI@@QAE@XZ
_TEXT	SEGMENT
??0NHP_Construction_AI@@QAE@XZ PROC			; NHP_Construction_AI::NHP_Construction_AI, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Construction_AI@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0NHP_Construction_AI@@QAE@XZ ENDP			; NHP_Construction_AI::NHP_Construction_AI
_TEXT	ENDS
PUBLIC	??_7NHP_Smart_Targetting@@6B@			; NHP_Smart_Targetting::`vftable'
PUBLIC	??0NHP_Smart_Targetting@@QAE@XZ			; NHP_Smart_Targetting::NHP_Smart_Targetting
PUBLIC	??_R4NHP_Smart_Targetting@@6B@			; NHP_Smart_Targetting::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVNHP_Smart_Targetting@@@8		; NHP_Smart_Targetting `RTTI Type Descriptor'
PUBLIC	??_R3NHP_Smart_Targetting@@8			; NHP_Smart_Targetting::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2NHP_Smart_Targetting@@8			; NHP_Smart_Targetting::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@NHP_Smart_Targetting@@8		; NHP_Smart_Targetting::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_ENHP_Smart_Targetting@@UAEPAXI@Z:PROC	; NHP_Smart_Targetting::`vector deleting destructor'
EXTRN	?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z:PROC	; ScriptImpClass::Timer_Expired
EXTRN	?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ:PROC ; ScriptImpClass::Register_Auto_Save_Variables
;	COMDAT ??_R1A@?0A@EA@NHP_Smart_Targetting@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@NHP_Smart_Targetting@@8 DD FLAT:??_R0?AVNHP_Smart_Targetting@@@8 ; NHP_Smart_Targetting::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3NHP_Smart_Targetting@@8
rdata$r	ENDS
;	COMDAT ??_R2NHP_Smart_Targetting@@8
rdata$r	SEGMENT
??_R2NHP_Smart_Targetting@@8 DD FLAT:??_R1A@?0A@EA@NHP_Smart_Targetting@@8 ; NHP_Smart_Targetting::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3NHP_Smart_Targetting@@8
rdata$r	SEGMENT
??_R3NHP_Smart_Targetting@@8 DD 00H			; NHP_Smart_Targetting::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2NHP_Smart_Targetting@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVNHP_Smart_Targetting@@@8
_DATA	SEGMENT
??_R0?AVNHP_Smart_Targetting@@@8 DD FLAT:??_7type_info@@6B@ ; NHP_Smart_Targetting `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVNHP_Smart_Targetting@@', 00H
_DATA	ENDS
;	COMDAT ??_R4NHP_Smart_Targetting@@6B@
rdata$r	SEGMENT
??_R4NHP_Smart_Targetting@@6B@ DD 00H			; NHP_Smart_Targetting::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVNHP_Smart_Targetting@@@8
	DD	FLAT:??_R3NHP_Smart_Targetting@@8
rdata$r	ENDS
;	COMDAT ??_7NHP_Smart_Targetting@@6B@
CONST	SEGMENT
??_7NHP_Smart_Targetting@@6B@ DD FLAT:??_R4NHP_Smart_Targetting@@6B@ ; NHP_Smart_Targetting::`vftable'
	DD	FLAT:??_ENHP_Smart_Targetting@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Smart_Targetting@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0NHP_Smart_Targetting@@QAE@XZ
_TEXT	SEGMENT
??0NHP_Smart_Targetting@@QAE@XZ PROC			; NHP_Smart_Targetting::NHP_Smart_Targetting, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Smart_Targetting@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0NHP_Smart_Targetting@@QAE@XZ ENDP			; NHP_Smart_Targetting::NHP_Smart_Targetting
_TEXT	ENDS
PUBLIC	??_7NHP_Guard_Bot@@6B@				; NHP_Guard_Bot::`vftable'
PUBLIC	??0NHP_Guard_Bot@@QAE@XZ			; NHP_Guard_Bot::NHP_Guard_Bot
PUBLIC	??_R4NHP_Guard_Bot@@6B@				; NHP_Guard_Bot::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVNHP_Guard_Bot@@@8			; NHP_Guard_Bot `RTTI Type Descriptor'
PUBLIC	??_R3NHP_Guard_Bot@@8				; NHP_Guard_Bot::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2NHP_Guard_Bot@@8				; NHP_Guard_Bot::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@NHP_Guard_Bot@@8			; NHP_Guard_Bot::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_ENHP_Guard_Bot@@UAEPAXI@Z:PROC		; NHP_Guard_Bot::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@NHP_Guard_Bot@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@NHP_Guard_Bot@@8 DD FLAT:??_R0?AVNHP_Guard_Bot@@@8 ; NHP_Guard_Bot::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3NHP_Guard_Bot@@8
rdata$r	ENDS
;	COMDAT ??_R2NHP_Guard_Bot@@8
rdata$r	SEGMENT
??_R2NHP_Guard_Bot@@8 DD FLAT:??_R1A@?0A@EA@NHP_Guard_Bot@@8 ; NHP_Guard_Bot::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3NHP_Guard_Bot@@8
rdata$r	SEGMENT
??_R3NHP_Guard_Bot@@8 DD 00H				; NHP_Guard_Bot::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2NHP_Guard_Bot@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVNHP_Guard_Bot@@@8
_DATA	SEGMENT
??_R0?AVNHP_Guard_Bot@@@8 DD FLAT:??_7type_info@@6B@	; NHP_Guard_Bot `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVNHP_Guard_Bot@@', 00H
_DATA	ENDS
;	COMDAT ??_R4NHP_Guard_Bot@@6B@
rdata$r	SEGMENT
??_R4NHP_Guard_Bot@@6B@ DD 00H				; NHP_Guard_Bot::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVNHP_Guard_Bot@@@8
	DD	FLAT:??_R3NHP_Guard_Bot@@8
rdata$r	ENDS
;	COMDAT ??_7NHP_Guard_Bot@@6B@
CONST	SEGMENT
??_7NHP_Guard_Bot@@6B@ DD FLAT:??_R4NHP_Guard_Bot@@6B@	; NHP_Guard_Bot::`vftable'
	DD	FLAT:??_ENHP_Guard_Bot@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Guard_Bot@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0NHP_Guard_Bot@@QAE@XZ
_TEXT	SEGMENT
??0NHP_Guard_Bot@@QAE@XZ PROC				; NHP_Guard_Bot::NHP_Guard_Bot, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Guard_Bot@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0NHP_Guard_Bot@@QAE@XZ ENDP				; NHP_Guard_Bot::NHP_Guard_Bot
_TEXT	ENDS
PUBLIC	??_7NHP_Sensor_Array_Zone@@6B@			; NHP_Sensor_Array_Zone::`vftable'
PUBLIC	??0NHP_Sensor_Array_Zone@@QAE@XZ		; NHP_Sensor_Array_Zone::NHP_Sensor_Array_Zone
PUBLIC	??_R4NHP_Sensor_Array_Zone@@6B@			; NHP_Sensor_Array_Zone::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVNHP_Sensor_Array_Zone@@@8		; NHP_Sensor_Array_Zone `RTTI Type Descriptor'
PUBLIC	??_R3NHP_Sensor_Array_Zone@@8			; NHP_Sensor_Array_Zone::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2NHP_Sensor_Array_Zone@@8			; NHP_Sensor_Array_Zone::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@NHP_Sensor_Array_Zone@@8		; NHP_Sensor_Array_Zone::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z	; NHP_Sensor_Array_Zone::Entered
PUBLIC	?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z	; NHP_Sensor_Array_Zone::Exited
EXTRN	??_ENHP_Sensor_Array_Zone@@UAEPAXI@Z:PROC	; NHP_Sensor_Array_Zone::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@NHP_Sensor_Array_Zone@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@NHP_Sensor_Array_Zone@@8 DD FLAT:??_R0?AVNHP_Sensor_Array_Zone@@@8 ; NHP_Sensor_Array_Zone::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3NHP_Sensor_Array_Zone@@8
rdata$r	ENDS
;	COMDAT ??_R2NHP_Sensor_Array_Zone@@8
rdata$r	SEGMENT
??_R2NHP_Sensor_Array_Zone@@8 DD FLAT:??_R1A@?0A@EA@NHP_Sensor_Array_Zone@@8 ; NHP_Sensor_Array_Zone::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3NHP_Sensor_Array_Zone@@8
rdata$r	SEGMENT
??_R3NHP_Sensor_Array_Zone@@8 DD 00H			; NHP_Sensor_Array_Zone::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2NHP_Sensor_Array_Zone@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVNHP_Sensor_Array_Zone@@@8
_DATA	SEGMENT
??_R0?AVNHP_Sensor_Array_Zone@@@8 DD FLAT:??_7type_info@@6B@ ; NHP_Sensor_Array_Zone `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVNHP_Sensor_Array_Zone@@', 00H
_DATA	ENDS
;	COMDAT ??_R4NHP_Sensor_Array_Zone@@6B@
rdata$r	SEGMENT
??_R4NHP_Sensor_Array_Zone@@6B@ DD 00H			; NHP_Sensor_Array_Zone::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVNHP_Sensor_Array_Zone@@@8
	DD	FLAT:??_R3NHP_Sensor_Array_Zone@@8
rdata$r	ENDS
;	COMDAT ??_7NHP_Sensor_Array_Zone@@6B@
CONST	SEGMENT
??_7NHP_Sensor_Array_Zone@@6B@ DD FLAT:??_R4NHP_Sensor_Array_Zone@@6B@ ; NHP_Sensor_Array_Zone::`vftable'
	DD	FLAT:??_ENHP_Sensor_Array_Zone@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	DD	FLAT:?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0NHP_Sensor_Array_Zone@@QAE@XZ
_TEXT	SEGMENT
??0NHP_Sensor_Array_Zone@@QAE@XZ PROC			; NHP_Sensor_Array_Zone::NHP_Sensor_Array_Zone, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Sensor_Array_Zone@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0NHP_Sensor_Array_Zone@@QAE@XZ ENDP			; NHP_Sensor_Array_Zone::NHP_Sensor_Array_Zone
_TEXT	ENDS
PUBLIC	??_7NHP_Sensorable_Object@@6B@			; NHP_Sensorable_Object::`vftable'
PUBLIC	??0NHP_Sensorable_Object@@QAE@XZ		; NHP_Sensorable_Object::NHP_Sensorable_Object
PUBLIC	??_R4NHP_Sensorable_Object@@6B@			; NHP_Sensorable_Object::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVNHP_Sensorable_Object@@@8		; NHP_Sensorable_Object `RTTI Type Descriptor'
PUBLIC	??_R3NHP_Sensorable_Object@@8			; NHP_Sensorable_Object::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2NHP_Sensorable_Object@@8			; NHP_Sensorable_Object::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@NHP_Sensorable_Object@@8		; NHP_Sensorable_Object::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_ENHP_Sensorable_Object@@UAEPAXI@Z:PROC	; NHP_Sensorable_Object::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@NHP_Sensorable_Object@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@NHP_Sensorable_Object@@8 DD FLAT:??_R0?AVNHP_Sensorable_Object@@@8 ; NHP_Sensorable_Object::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3NHP_Sensorable_Object@@8
rdata$r	ENDS
;	COMDAT ??_R2NHP_Sensorable_Object@@8
rdata$r	SEGMENT
??_R2NHP_Sensorable_Object@@8 DD FLAT:??_R1A@?0A@EA@NHP_Sensorable_Object@@8 ; NHP_Sensorable_Object::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3NHP_Sensorable_Object@@8
rdata$r	SEGMENT
??_R3NHP_Sensorable_Object@@8 DD 00H			; NHP_Sensorable_Object::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2NHP_Sensorable_Object@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVNHP_Sensorable_Object@@@8
_DATA	SEGMENT
??_R0?AVNHP_Sensorable_Object@@@8 DD FLAT:??_7type_info@@6B@ ; NHP_Sensorable_Object `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVNHP_Sensorable_Object@@', 00H
_DATA	ENDS
;	COMDAT ??_R4NHP_Sensorable_Object@@6B@
rdata$r	SEGMENT
??_R4NHP_Sensorable_Object@@6B@ DD 00H			; NHP_Sensorable_Object::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVNHP_Sensorable_Object@@@8
	DD	FLAT:??_R3NHP_Sensorable_Object@@8
rdata$r	ENDS
;	COMDAT ??_7NHP_Sensorable_Object@@6B@
CONST	SEGMENT
??_7NHP_Sensorable_Object@@6B@ DD FLAT:??_R4NHP_Sensorable_Object@@6B@ ; NHP_Sensorable_Object::`vftable'
	DD	FLAT:??_ENHP_Sensorable_Object@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Sensorable_Object@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0NHP_Sensorable_Object@@QAE@XZ
_TEXT	SEGMENT
??0NHP_Sensorable_Object@@QAE@XZ PROC			; NHP_Sensorable_Object::NHP_Sensorable_Object, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Sensorable_Object@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0NHP_Sensorable_Object@@QAE@XZ ENDP			; NHP_Sensorable_Object::NHP_Sensorable_Object
_TEXT	ENDS
PUBLIC	??1NHP_Construction_AI@@UAE@XZ			; NHP_Construction_AI::~NHP_Construction_AI
EXTRN	??1ScriptImpClass@@UAE@XZ:PROC			; ScriptImpClass::~ScriptImpClass
; Function compile flags: /Ogtpy
;	COMDAT ??1NHP_Construction_AI@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Construction_AI@@UAE@XZ PROC			; NHP_Construction_AI::~NHP_Construction_AI, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Construction_AI@@UAE@XZ ENDP			; NHP_Construction_AI::~NHP_Construction_AI
_TEXT	ENDS
PUBLIC	??1NHP_Smart_Targetting@@UAE@XZ			; NHP_Smart_Targetting::~NHP_Smart_Targetting
; Function compile flags: /Ogtpy
;	COMDAT ??1NHP_Smart_Targetting@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Smart_Targetting@@UAE@XZ PROC			; NHP_Smart_Targetting::~NHP_Smart_Targetting, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Smart_Targetting@@UAE@XZ ENDP			; NHP_Smart_Targetting::~NHP_Smart_Targetting
_TEXT	ENDS
PUBLIC	??1NHP_Guard_Bot@@UAE@XZ			; NHP_Guard_Bot::~NHP_Guard_Bot
; Function compile flags: /Ogtpy
;	COMDAT ??1NHP_Guard_Bot@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Guard_Bot@@UAE@XZ PROC				; NHP_Guard_Bot::~NHP_Guard_Bot, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Guard_Bot@@UAE@XZ ENDP				; NHP_Guard_Bot::~NHP_Guard_Bot
_TEXT	ENDS
PUBLIC	??1NHP_Sensor_Array_Zone@@UAE@XZ		; NHP_Sensor_Array_Zone::~NHP_Sensor_Array_Zone
; Function compile flags: /Ogtpy
;	COMDAT ??1NHP_Sensor_Array_Zone@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Sensor_Array_Zone@@UAE@XZ PROC			; NHP_Sensor_Array_Zone::~NHP_Sensor_Array_Zone, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Sensor_Array_Zone@@UAE@XZ ENDP			; NHP_Sensor_Array_Zone::~NHP_Sensor_Array_Zone
_TEXT	ENDS
PUBLIC	??1NHP_Sensorable_Object@@UAE@XZ		; NHP_Sensorable_Object::~NHP_Sensorable_Object
; Function compile flags: /Ogtpy
;	COMDAT ??1NHP_Sensorable_Object@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Sensorable_Object@@UAE@XZ PROC			; NHP_Sensorable_Object::~NHP_Sensorable_Object, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Sensorable_Object@@UAE@XZ ENDP			; NHP_Sensorable_Object::~NHP_Sensorable_Object
_TEXT	ENDS
PUBLIC	?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Init
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
;	COMDAT ?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
__Lobj$ = 8						; size = 4
?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Init, COMDAT
; _this$ = ecx

; 235  : 		{	// initialize from _Locinfo object

	push	esi
	mov	esi, ecx

; 236  : 		_Cvt = _Lobj._Getcvt();

	call	__Getcvt
	mov	DWORD PTR [esi+8], eax
	mov	DWORD PTR [esi+12], edx
	pop	esi

; 237  : 		}

	ret	4
?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Init
_TEXT	ENDS
PUBLIC	?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z	; std::codecvt<char,char,int>::_Init
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z PROC	; std::codecvt<char,char,int>::_Init, COMDAT
; _this$ = ecx

; 773  : 		}

	ret	4
?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z ENDP	; std::codecvt<char,char,int>::_Init
_TEXT	ENDS
PUBLIC	??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ ; std::_Char_traits_cat<std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
;	COMDAT ??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ
_TEXT	SEGMENT
__Secure$ = -1						; size = 1
??$_Char_traits_cat@U?$char_traits@D@std@@@std@@YA?AU_Secure_char_traits_tag@0@XZ PROC ; std::_Char_traits_cat<std::char_traits<char> >, COMDAT

; 568  : 	{

	push	ecx

; 569  : 		typename _Char_traits_category<_Traits>::_Secure_char_traits _Secure;
; 570  : 		return (_Secure);

	mov	al, BYTE PTR __Secure$[esp+4]

; 571  : 	}

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

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

	mov	eax, DWORD PTR __Count$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	edx, DWORD PTR __Size$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First1$[esp]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	_memcpy_s
	add	esp, 16					; 00000010H
	mov	eax, esi
	pop	esi

; 591  : 	}

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

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

	mov	eax, DWORD PTR __Count$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	edx, DWORD PTR __Size$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First1$[esp]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	_memmove_s
	add	esp, 16					; 00000010H
	mov	eax, esi
	pop	esi

; 618  : 	}

	ret	0
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDIU_Secure_char_traits_tag@1@@Z ENDP ; std::_Traits_helper::move_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??1_Container_base@std@@QAE@XZ			; std::_Container_base::~_Container_base
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??1_Container_base@std@@QAE@XZ
_TEXT	SEGMENT
??1_Container_base@std@@QAE@XZ PROC			; std::_Container_base::~_Container_base, COMDAT
; _this$ = ecx

; 106  : 		_Orphan_all();

	jmp	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
??1_Container_base@std@@QAE@XZ ENDP			; std::_Container_base::~_Container_base
_TEXT	ENDS
PUBLIC	??1_Iterator_base@std@@QAE@XZ			; std::_Iterator_base::~_Iterator_base
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1_Iterator_base@std@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1_Iterator_base@std@@QAE@XZ$0
__ehfuncinfo$??1_Iterator_base@std@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1_Iterator_base@std@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1_Iterator_base@std@@QAE@XZ
_TEXT	SEGMENT
__Lock$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1_Iterator_base@std@@QAE@XZ PROC			; std::_Iterator_base::~_Iterator_base, COMDAT
; _this$ = ecx

; 148  : 		{	// destroy the iterator

	push	-1
	push	__ehhandler$??1_Iterator_base@std@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx

; 149  : 		_Lockit _Lock(_LOCK_DEBUG);

	push	3
	lea	ecx, DWORD PTR __Lock$[esp+24]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 150  : 		_Orphan_me();

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me

; 151  : 		}

	lea	ecx, DWORD PTR __Lock$[esp+20]
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1_Iterator_base@std@@QAE@XZ$0:
	lea	ecx, DWORD PTR __Lock$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??1_Iterator_base@std@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1_Iterator_base@std@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1_Iterator_base@std@@QAE@XZ ENDP			; std::_Iterator_base::~_Iterator_base
PUBLIC	?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z ; std::_Iterator_base::_Adopt
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z$0
__ehfuncinfo$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
__Lock$7400 = 8						; size = 4
__Parent$ = 8						; size = 4
?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z PROC ; std::_Iterator_base::_Adopt, COMDAT
; _this$ = ecx

; 154  : 		{	// adopt this iterator by parent

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	push	esi
	push	edi

; 155  : 		if (_Mycont != _Parent)

	mov	edi, DWORD PTR __Parent$[esp+16]
	mov	esi, ecx
	cmp	DWORD PTR [esi], edi
	je	SHORT $LN2@Adopt

; 156  : 			{	// change parentage
; 157  : 			_Lockit _Lock(_LOCK_DEBUG);

	push	3
	lea	ecx, DWORD PTR __Lock$7400[esp+20]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 158  : 			_Orphan_me();

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me

; 159  : 			if (_Parent != 0 && _Parent->_Myfirstiter != _IGNORE_MYITERLIST)

	test	edi, edi
	je	SHORT $LN1@Adopt
	mov	eax, DWORD PTR [edi]
	cmp	eax, -3					; fffffffdH
	je	SHORT $LN1@Adopt

; 160  : 				{	// switch to new parent
; 161  : 				_Mynextiter = _Parent->_Myfirstiter;

	mov	DWORD PTR [esi+4], eax

; 162  : 				((_Container_base *)_Parent)->_Myfirstiter = this;

	mov	DWORD PTR [edi], esi
$LN1@Adopt:

; 163  : 				}
; 164  : 			_Mycont = _Parent;
; 165  : 			}

	lea	ecx, DWORD PTR __Lock$7400[esp+16]
	mov	DWORD PTR [esi], edi
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN2@Adopt:

; 166  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	pop	esi
	add	esp, 12					; 0000000cH
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z$0:
	lea	ecx, DWORD PTR __Lock$7400[ebp-4]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z ENDP ; std::_Iterator_base::_Adopt
PUBLIC	??3facet@locale@std@@SAXPAX@Z			; std::locale::facet::operator delete
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ??3facet@locale@std@@SAXPAX@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??3facet@locale@std@@SAXPAX@Z PROC			; std::locale::facet::operator delete, COMDAT

; 157  : 			{	// replace operator delete

	push	esi

; 158  : 			std::_DebugHeapDelete((facet*)_Ptr);

	mov	esi, DWORD PTR __Ptr$[esp]
	test	esi, esi
	je	SHORT $LN3@operator@3
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	0
	mov	ecx, esi
	call	edx
	push	esi
	call	_free
	add	esp, 4
$LN3@operator@3:
	pop	esi

; 159  : 			}

	ret	0
??3facet@locale@std@@SAXPAX@Z ENDP			; std::locale::facet::operator delete
_TEXT	ENDS
PUBLIC	??1locale@std@@QAE@XZ				; std::locale::~locale
; Function compile flags: /Ogtpy
;	COMDAT ??1locale@std@@QAE@XZ
_TEXT	SEGMENT
__Lock$26799 = -4					; size = 4
??1locale@std@@QAE@XZ PROC				; std::locale::~locale, COMDAT
; _this$ = ecx

; 374  : 		{	// destroy the object

	push	ecx
	push	edi

; 375  : 		if (_Ptr != 0)

	mov	edi, DWORD PTR [ecx]
	test	edi, edi
	je	SHORT $LN7@locale@3

; 376  : 			_DELETE_CRT(_Ptr->_Decref());

	push	0
	lea	ecx, DWORD PTR __Lock$26799[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $LN4@locale@3
	cmp	eax, -1
	jae	SHORT $LN4@locale@3
	add	eax, -1
	mov	DWORD PTR [edi+4], eax
$LN4@locale@3:
	push	esi
	mov	esi, DWORD PTR [edi+4]
	neg	esi
	sbb	esi, esi
	not	esi
	lea	ecx, DWORD PTR __Lock$26799[esp+12]
	and	esi, edi
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $LN10@locale@3
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	0
	mov	ecx, esi
	call	edx
	push	esi
	call	_free
	add	esp, 4
$LN10@locale@3:
	pop	esi
$LN7@locale@3:
	pop	edi

; 377  : 		}

	pop	ecx
	ret	0
??1locale@std@@QAE@XZ ENDP				; std::locale::~locale
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Gfacet@locale@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gfacet@locale@std@@UAEPAXI@Z PROC			; std::locale::facet::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN11@scalar@9
	push	0
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN11@scalar@9:
	mov	eax, esi
	pop	esi
	ret	4
??_Gfacet@locale@std@@UAEPAXI@Z ENDP			; std::locale::facet::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Gcodecvt_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gcodecvt_base@std@@UAEPAXI@Z PROC			; std::codecvt_base::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN13@scalar@10
	push	0
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN13@scalar@10:
	mov	eax, esi
	pop	esi
	ret	4
??_Gcodecvt_base@std@@UAEPAXI@Z ENDP			; std::codecvt_base::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Gctype_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gctype_base@std@@UAEPAXI@Z PROC			; std::ctype_base::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN13@scalar@11
	push	0
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN13@scalar@11:
	mov	eax, esi
	pop	esi
	ret	4
??_Gctype_base@std@@UAEPAXI@Z ENDP			; std::ctype_base::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?getloc@ios_base@std@@QBE?AVlocale@2@XZ		; std::ios_base::getloc
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
;	COMDAT ?getloc@ios_base@std@@QBE?AVlocale@2@XZ
_TEXT	SEGMENT
$T26872 = -4						; size = 4
__Lock$26885 = 8					; size = 4
___$ReturnUdt$ = 8					; size = 4
?getloc@ios_base@std@@QBE?AVlocale@2@XZ PROC		; std::ios_base::getloc, COMDAT
; _this$ = ecx

; 418  : 		{	// get locale

	push	ecx

; 419  : 		return (*_Ploc);

	mov	eax, DWORD PTR [ecx+36]
	push	esi
	mov	esi, DWORD PTR [eax]
	push	edi
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+8]
	push	0
	lea	ecx, DWORD PTR __Lock$26885[esp+12]
	mov	DWORD PTR $T26872[esp+16], 0
	mov	DWORD PTR [edi], esi
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $LN7@getloc
	add	eax, 1
	mov	DWORD PTR [esi+4], eax
$LN7@getloc:
	lea	ecx, DWORD PTR __Lock$26885[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	eax, edi
	pop	edi
	pop	esi

; 420  : 		}

	pop	ecx
	ret	4
?getloc@ios_base@std@@QBE?AVlocale@2@XZ ENDP		; std::ios_base::getloc
_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_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
;	COMDAT ??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base, COMDAT
; _this$ = ecx

; 62   : 			if (_Myistr.rdbuf() != 0)

	mov	eax, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $LN8@Sentry_bas

; 63   : 				_Myistr.rdbuf()->_Unlock();

	lea	ecx, DWORD PTR [eax+4]
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$LN8@Sentry_bas:

; 64   : 			}

	ret	0
??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
_TEXT	ENDS
PUBLIC	?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::sgetc
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::sgetc, COMDAT
; _this$ = ecx

; 112  : 		return (0 < _Gnavail()
; 113  : 			? _Traits::to_int_type(*gptr()) : underflow());

	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN3@sgetc
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], 0
	jle	SHORT $LN3@sgetc
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]

; 114  : 		}

	ret	0
$LN3@sgetc:

; 112  : 		return (0 < _Gnavail()
; 113  : 			? _Traits::to_int_type(*gptr()) : underflow());

	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+16]
	jmp	eax
?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sgetc
_TEXT	ENDS
PUBLIC	?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_ifstream<char,std::char_traits<char> >::is_open
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
;	COMDAT ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC ; std::basic_ifstream<char,std::char_traits<char> >::is_open, COMDAT
; _this$ = ecx

; 651  : 		return (_Filebuffer.is_open());

	xor	eax, eax
	cmp	DWORD PTR [ecx+84], eax
	setne	al

; 652  : 		}

	ret	0
?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::is_open
_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?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC ; std::basic_istream<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx-8]
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR [esi+8]
	mov	DWORD PTR [edx+eax-8], OFFSET ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	push	eax
	mov	DWORD PTR [eax], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN13@scalar@12
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN13@scalar@12:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??1_String_base@std@@QAE@XZ			; std::_String_base::~_String_base
; Function compile flags: /Ogtpy
;	COMDAT ??1_String_base@std@@QAE@XZ
_TEXT	SEGMENT
??1_String_base@std@@QAE@XZ PROC			; std::_String_base::~_String_base, COMDAT
; _this$ = ecx
	jmp	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
??1_String_base@std@@QAE@XZ ENDP			; std::_String_base::~_String_base
_TEXT	ENDS
PUBLIC	??1?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::~_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ PROC ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::~_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>, COMDAT
; _this$ = ecx
	jmp	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
??1?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ ENDP ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::~_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>
_TEXT	ENDS
PUBLIC	??1?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ ; std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::~_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ PROC ; std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::~_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>, COMDAT
; _this$ = ecx
	jmp	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
??1?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ ENDP ; std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::~_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>
_TEXT	ENDS
PUBLIC	??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
;	COMDAT ??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT
__Istr$ = 8						; size = 4
??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z PROC ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base, COMDAT
; _this$ = ecx

; 55   : 			{	// lock the stream buffer, if there

	mov	eax, DWORD PTR __Istr$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], eax

; 56   : 			if (_Myistr.rdbuf() != 0)

	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $LN10@Sentry_bas@2

; 57   : 				_Myistr.rdbuf()->_Lock();

	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$LN10@Sentry_bas@2:

; 58   : 			}

	mov	eax, esi
	pop	esi
	ret	4
??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
_TEXT	ENDS
PUBLIC	?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::sbumpc
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::sbumpc, COMDAT
; _this$ = ecx

; 106  : 		return (0 < _Gnavail()
; 107  : 			? _Traits::to_int_type(*_Gninc()) : uflow());

	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN3@sbumpc
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], 0
	jle	SHORT $LN3@sbumpc
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]

; 108  : 		}

	ret	0
$LN3@sbumpc:

; 106  : 		return (0 < _Gnavail()
; 107  : 			? _Traits::to_int_type(*_Gninc()) : uflow());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	jmp	edx
?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sbumpc
_TEXT	ENDS
PUBLIC	??D?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ??D?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ
_TEXT	SEGMENT
??D?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ PROC ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*, COMDAT
; _this$ = ecx

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

	jmp	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
??D?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ ENDP ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
_TEXT	ENDS
PUBLIC	??0_String_base@std@@QAE@XZ			; std::_String_base::_String_base
; Function compile flags: /Ogtpy
;	COMDAT ??0_String_base@std@@QAE@XZ
_TEXT	SEGMENT
??0_String_base@std@@QAE@XZ PROC			; std::_String_base::_String_base, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	DWORD PTR [eax], 0
	ret	0
??0_String_base@std@@QAE@XZ ENDP			; std::_String_base::_String_base
_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	??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ PROC ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+4], 0
	ret	0
??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@XZ ENDP ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>
_TEXT	ENDS
PUBLIC	?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign
; Function compile flags: /Ogtpy
;	COMDAT ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
__Count$ = 12						; size = 4
__Ch$ = 16						; size = 1
?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign, COMDAT
; _this$ = ecx

; 1993 : 		if (_Count == 1)

	mov	eax, DWORD PTR __Count$[esp-4]
	cmp	eax, 1
	jne	SHORT $LN2@Chassign

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

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	jb	SHORT $LN7@Chassign
	mov	ecx, DWORD PTR [ecx+8]
	mov	al, BYTE PTR __Ch$[esp-4]
	mov	edx, DWORD PTR __Off$[esp-4]
	mov	BYTE PTR [ecx+edx], al

; 1997 : 		}

	ret	12					; 0000000cH

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

$LN7@Chassign:
	mov	al, BYTE PTR __Ch$[esp-4]
	mov	edx, DWORD PTR __Off$[esp-4]
	add	ecx, 8
	mov	BYTE PTR [ecx+edx], al

; 1997 : 		}

	ret	12					; 0000000cH
$LN2@Chassign:

; 1995 : 		else
; 1996 : 			_Traits::assign(_Myptr() + _Off, _Count, _Ch);

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	jb	SHORT $LN13@Chassign
	mov	ecx, DWORD PTR [ecx+8]
	jmp	SHORT $LN14@Chassign
$LN13@Chassign:
	add	ecx, 8
$LN14@Chassign:
	mov	edx, DWORD PTR __Off$[esp-4]
	push	eax
	movsx	eax, BYTE PTR __Ch$[esp]
	push	eax
	add	ecx, edx
	push	ecx
	call	_memset
	add	esp, 12					; 0000000cH

; 1997 : 		}

	ret	12					; 0000000cH
?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign
_TEXT	ENDS
PUBLIC	?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos
; Function compile flags: /Ogtpy
;	COMDAT ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos, COMDAT
; _this$ = ecx

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

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	mov	eax, DWORD PTR __Newsize$[esp-4]
	mov	DWORD PTR [ecx+24], eax
	jb	SHORT $LN5@Eos
	mov	ecx, DWORD PTR [ecx+8]
	mov	BYTE PTR [ecx+eax], 0

; 2032 : 		}

	ret	4

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

$LN5@Eos:
	mov	BYTE PTR [ecx+eax+8], 0

; 2032 : 		}

	ret	4
?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos
_TEXT	ENDS
PUBLIC	?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ ; std::basic_streambuf<char,std::char_traits<char> >::getloc
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ
_TEXT	SEGMENT
$T27089 = -4						; size = 4
__Lock$27102 = 8					; size = 4
___$ReturnUdt$ = 8					; size = 4
?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::getloc, COMDAT
; _this$ = ecx

; 89   : 		{	// get locale

	push	ecx

; 90   : 		return (*_Plocale);

	mov	eax, DWORD PTR [ecx+56]
	push	esi
	mov	esi, DWORD PTR [eax]
	push	edi
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+8]
	push	0
	lea	ecx, DWORD PTR __Lock$27102[esp+12]
	mov	DWORD PTR $T27089[esp+16], 0
	mov	DWORD PTR [edi], esi
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $LN7@getloc@2
	add	eax, 1
	mov	DWORD PTR [esi+4], eax
$LN7@getloc@2:
	lea	ecx, DWORD PTR __Lock$27102[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	eax, edi
	pop	edi
	pop	esi

; 91   : 		}

	pop	ecx
	ret	4
?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::getloc
_TEXT	ENDS
PUBLIC	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
; Function compile flags: /Ogtpy
;	COMDAT ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ
_TEXT	SEGMENT
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Init, COMDAT
; _this$ = ecx

; 283  : 		_IGfirst = &_Gfirst, _IPfirst = &_Pfirst;
; 284  : 		_IGnext = &_Gnext, _IPnext = &_Pnext;

	lea	edx, DWORD PTR [ecx+24]
	mov	DWORD PTR [ecx+32], edx
	lea	edx, DWORD PTR [ecx+28]
	mov	DWORD PTR [ecx+36], edx
	lea	eax, DWORD PTR [ecx+8]
	mov	DWORD PTR [ecx+16], eax

; 285  : 		_IGcount = &_Gcount, _IPcount = &_Pcount;

	lea	edx, DWORD PTR [ecx+40]
	mov	DWORD PTR [ecx+48], edx
	lea	eax, DWORD PTR [ecx+12]
	mov	DWORD PTR [ecx+20], eax
	lea	edx, DWORD PTR [ecx+44]
	mov	DWORD PTR [ecx+52], edx

; 286  : 		setp(0, 0), setg(0, 0, 0);

	mov	DWORD PTR [eax], 0
	mov	eax, DWORD PTR [ecx+36]
	mov	DWORD PTR [eax], 0
	mov	edx, DWORD PTR [ecx+52]
	mov	DWORD PTR [edx], 0
	mov	eax, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax], 0
	mov	edx, DWORD PTR [ecx+32]
	mov	DWORD PTR [edx], 0
	mov	eax, DWORD PTR [ecx+48]
	mov	DWORD PTR [eax], 0

; 287  : 		}

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

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

	mov	eax, -2					; fffffffeH

; 1644 : 		}

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

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

	push	esi
	push	edi

; 2051 : 		_DEBUG_POINTER(_Ptr);

	mov	edi, DWORD PTR __Ptr$[esp+4]
	test	edi, edi
	mov	esi, ecx
	jne	SHORT $LN6@Inside
	push	2051					; 00000803H
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN6@Inside:

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

	mov	edx, DWORD PTR [esi+28]
	cmp	edx, 16					; 00000010H
	lea	eax, DWORD PTR [esi+8]
	jb	SHORT $LN11@Inside
	mov	ecx, DWORD PTR [eax]
	jmp	SHORT $LN12@Inside
$LN11@Inside:
	mov	ecx, eax
$LN12@Inside:
	cmp	edi, ecx
	jb	SHORT $LN2@Inside
	cmp	edx, 16					; 00000010H
	jb	SHORT $LN15@Inside
	mov	eax, DWORD PTR [eax]
$LN15@Inside:
	mov	ecx, DWORD PTR [esi+24]
	add	ecx, eax
	cmp	ecx, edi
	jbe	SHORT $LN2@Inside
	pop	edi

; 2054 : 		else
; 2055 : 			return (true);

	mov	al, 1
	pop	esi

; 2056 : 		}

	ret	4
$LN2@Inside:
	pop	edi

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

	xor	al, al
	pop	esi

; 2056 : 		}

	ret	4
?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside
_TEXT	ENDS
PUBLIC	??0?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ ; std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ PROC ; std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+4], 0
	ret	0
??0?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ ENDP ; std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>
_TEXT	ENDS
PUBLIC	?allocate@?$allocator@D@std@@QAEPADI@Z		; std::allocator<char>::allocate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ?allocate@?$allocator@D@std@@QAEPADI@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
?allocate@?$allocator@D@std@@QAEPADI@Z PROC		; std::allocator<char>::allocate, COMDAT
; _this$ = ecx

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

	mov	eax, DWORD PTR __Count$[esp-4]
	push	0
	push	eax
	call	??$_Allocate@D@std@@YAPADIPAD@Z		; std::_Allocate<char>
	add	esp, 8

; 147  : 		}

	ret	4
?allocate@?$allocator@D@std@@QAEPADI@Z ENDP		; std::allocator<char>::allocate
_TEXT	ENDS
PUBLIC	??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@ ; `string'
PUBLIC	??_C@_0DE@CCMGKNL@ScriptRegistrant?$DMclass?5NHP_Const@ ; `string'
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
;	COMDAT ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@ DB 'd:\source'
	DB	' code\stgm\scripts.h', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0DE@CCMGKNL@ScriptRegistrant?$DMclass?5NHP_Const@
CONST	SEGMENT
??_C@_0DE@CCMGKNL@ScriptRegistrant?$DMclass?5NHP_Const@ DB 'ScriptRegistr'
	DB	'ant<class NHP_Construction_AI>::Create', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T27163 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<NHP_Construction_AI>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0DE@CCMGKNL@ScriptRegistrant?$DMclass?5NHP_Const@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	40					; 00000028H
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T27163[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Construction_AI@@6B@
	jmp	SHORT $LN4@Create
$LN3@Create:
	xor	esi, esi
$LN4@Create:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T27163[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Construction_AI>::Create
PUBLIC	??_C@_0DF@MGIAIKOI@ScriptRegistrant?$DMclass?5NHP_Smart@ ; `string'
;	COMDAT ??_C@_0DF@MGIAIKOI@ScriptRegistrant?$DMclass?5NHP_Smart@
CONST	SEGMENT
??_C@_0DF@MGIAIKOI@ScriptRegistrant?$DMclass?5NHP_Smart@ DB 'ScriptRegist'
	DB	'rant<class NHP_Smart_Targetting>::Create', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T27186 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<NHP_Smart_Targetting>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0DF@MGIAIKOI@ScriptRegistrant?$DMclass?5NHP_Smart@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	28					; 0000001cH
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T27186[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create@2
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Smart_Targetting@@6B@
	jmp	SHORT $LN4@Create@2
$LN3@Create@2:
	xor	esi, esi
$LN4@Create@2:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T27186[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::Create
PUBLIC	??_C@_0CO@HNHEDGAP@ScriptRegistrant?$DMclass?5NHP_Guard@ ; `string'
;	COMDAT ??_C@_0CO@HNHEDGAP@ScriptRegistrant?$DMclass?5NHP_Guard@
CONST	SEGMENT
??_C@_0CO@HNHEDGAP@ScriptRegistrant?$DMclass?5NHP_Guard@ DB 'ScriptRegist'
	DB	'rant<class NHP_Guard_Bot>::Create', 00H	; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T27209 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<NHP_Guard_Bot>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0CO@HNHEDGAP@ScriptRegistrant?$DMclass?5NHP_Guard@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	28					; 0000001cH
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T27209[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create@3
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Guard_Bot@@6B@
	jmp	SHORT $LN4@Create@3
$LN3@Create@3:
	xor	esi, esi
$LN4@Create@3:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T27209[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Guard_Bot>::Create
PUBLIC	??_C@_0DG@MGAMFAFA@ScriptRegistrant?$DMclass?5NHP_Senso@ ; `string'
;	COMDAT ??_C@_0DG@MGAMFAFA@ScriptRegistrant?$DMclass?5NHP_Senso@
CONST	SEGMENT
??_C@_0DG@MGAMFAFA@ScriptRegistrant?$DMclass?5NHP_Senso@ DB 'ScriptRegist'
	DB	'rant<class NHP_Sensor_Array_Zone>::Create', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T27232 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<NHP_Sensor_Array_Zone>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0DG@MGAMFAFA@ScriptRegistrant?$DMclass?5NHP_Senso@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	40					; 00000028H
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T27232[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create@4
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Sensor_Array_Zone@@6B@
	jmp	SHORT $LN4@Create@4
$LN3@Create@4:
	xor	esi, esi
$LN4@Create@4:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T27232[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::Create
PUBLIC	??_C@_0DG@LOKAJJEJ@ScriptRegistrant?$DMclass?5NHP_Senso@ ; `string'
;	COMDAT ??_C@_0DG@LOKAJJEJ@ScriptRegistrant?$DMclass?5NHP_Senso@
CONST	SEGMENT
??_C@_0DG@LOKAJJEJ@ScriptRegistrant?$DMclass?5NHP_Senso@ DB 'ScriptRegist'
	DB	'rant<class NHP_Sensorable_Object>::Create', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T27255 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<NHP_Sensorable_Object>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0DG@LOKAJJEJ@ScriptRegistrant?$DMclass?5NHP_Senso@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	36					; 00000024H
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T27255[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create@5
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7NHP_Sensorable_Object@@6B@
	jmp	SHORT $LN4@Create@5
$LN3@Create@5:
	xor	esi, esi
$LN4@Create@5:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T27255[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::Create
PUBLIC	??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ; std::_Traits_helper::copy_s<std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
;	COMDAT ??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size$ = 12						; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z PROC ; std::_Traits_helper::copy_s<std::char_traits<char> >, COMDAT

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

	mov	eax, DWORD PTR __Count$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	edx, DWORD PTR __Size$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First1$[esp]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	_memcpy_s
	add	esp, 16					; 00000010H
	mov	eax, esi
	pop	esi

; 583  : 	}

	ret	0
??$copy_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ENDP ; std::_Traits_helper::copy_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ; std::_Traits_helper::move_s<std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__Size$ = 12						; size = 4
__First2$ = 16						; size = 4
__Count$ = 20						; size = 4
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z PROC ; std::_Traits_helper::move_s<std::char_traits<char> >, COMDAT

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

	mov	eax, DWORD PTR __Count$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	edx, DWORD PTR __Size$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First1$[esp]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	_memmove_s
	add	esp, 16					; 00000010H
	mov	eax, esi
	pop	esi

; 610  : 	}

	ret	0
??$move_s@U?$char_traits@D@std@@@_Traits_helper@std@@YAPADPADIPBDI@Z ENDP ; std::_Traits_helper::move_s<std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??_Glocale@std@@QAEPAXI@Z			; std::locale::`scalar deleting destructor'
; Function compile flags: /Ogtpy
;	COMDAT ??_Glocale@std@@QAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Glocale@std@@QAEPAXI@Z PROC				; std::locale::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1locale@std@@QAE@XZ			; std::locale::~locale
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@13
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@13:
	mov	eax, esi
	pop	esi
	ret	4
??_Glocale@std@@QAEPAXI@Z ENDP				; std::locale::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GNHP_Construction_AI@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Construction_AI@@UAEPAXI@Z PROC			; NHP_Construction_AI::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@14
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@14:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Construction_AI@@UAEPAXI@Z ENDP			; NHP_Construction_AI::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GNHP_Smart_Targetting@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Smart_Targetting@@UAEPAXI@Z PROC		; NHP_Smart_Targetting::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@15
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@15:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Smart_Targetting@@UAEPAXI@Z ENDP		; NHP_Smart_Targetting::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GNHP_Guard_Bot@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Guard_Bot@@UAEPAXI@Z PROC			; NHP_Guard_Bot::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@16
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@16:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Guard_Bot@@UAEPAXI@Z ENDP			; NHP_Guard_Bot::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z PROC		; NHP_Sensor_Array_Zone::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@17
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@17:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z ENDP		; NHP_Sensor_Array_Zone::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GNHP_Sensorable_Object@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Sensorable_Object@@UAEPAXI@Z PROC		; NHP_Sensorable_Object::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@18
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@18:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Sensorable_Object@@UAEPAXI@Z ENDP		; NHP_Sensorable_Object::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z	; std::_Iterator_base::operator=
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xutility
xdata$x	SEGMENT
__unwindtable$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z$0
__ehfuncinfo$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??4_Iterator_base@std@@QAEAAV01@ABV01@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
__Lock$7393 = 8						; size = 4
__Right$ = 8						; size = 4
??4_Iterator_base@std@@QAEAAV01@ABV01@@Z PROC		; std::_Iterator_base::operator=, COMDAT
; _this$ = ecx

; 137  : 		{	// assign an iterator

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	push	esi
	mov	esi, ecx

; 138  : 		if (_Mycont != _Right._Mycont)

	mov	eax, DWORD PTR [esi]
	push	edi
	mov	edi, DWORD PTR __Right$[esp+16]
	cmp	eax, DWORD PTR [edi]
	je	SHORT $LN5@operator@4

; 139  : 			{	// change parentage
; 140  : 			_Lockit _Lock(_LOCK_DEBUG);

	push	3
	lea	ecx, DWORD PTR __Lock$7393[esp+20]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 141  : 			_Orphan_me();

	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me

; 142  : 			_Adopt(_Right._Mycont);

	mov	ecx, DWORD PTR [edi]
	push	ecx
	mov	ecx, esi
	call	?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z ; std::_Iterator_base::_Adopt

; 143  : 			}

	lea	ecx, DWORD PTR __Lock$7393[esp+16]
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN5@operator@4:

; 144  : 		return (*this);
; 145  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	edi
	mov	eax, esi
	mov	DWORD PTR fs:0, ecx
	pop	esi
	add	esp, 12					; 0000000cH
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z$0:
	lea	ecx, DWORD PTR __Lock$7393[ebp-4]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z:
	mov	eax, OFFSET __ehfuncinfo$??4_Iterator_base@std@@QAEAAV01@ABV01@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ENDP		; std::_Iterator_base::operator=
PUBLIC	??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z ; std::locale::facet::operator delete
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
___formal$ = 20						; size = 4
??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z PROC ; std::locale::facet::operator delete, COMDAT

; 152  : 			{	// replace debugging operator delete

	push	esi

; 153  : 			operator delete(_Ptr);

	mov	esi, DWORD PTR __Ptr$[esp]
	test	esi, esi
	je	SHORT $LN5@operator@5
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	0
	mov	ecx, esi
	call	edx
	push	esi
	call	_free
	add	esp, 4
$LN5@operator@5:
	pop	esi

; 154  : 			}

	ret	0
??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z ENDP ; std::locale::facet::operator delete
_TEXT	ENDS
PUBLIC	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_istream<char,std::char_traits<char> >::sentry::~sentry
; Function compile flags: /Ogtpy
;	COMDAT ??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC ; std::basic_istream<char,std::char_traits<char> >::sentry::~sentry, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $LN11@sentry
	lea	ecx, DWORD PTR [eax+4]
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$LN11@sentry:
	ret	0
??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_istream<char,std::char_traits<char> >::sentry::~sentry
_TEXT	ENDS
PUBLIC	?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::snextc
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::snextc, COMDAT
; _this$ = ecx

; 131  : 		{	// point to next character and return it

	push	esi
	mov	esi, ecx

; 132  : 		return (1 < _Gnavail()
; 133  : 			? _Traits::to_int_type(*_Gnpreinc())
; 134  : 			: _Traits::eq_int_type(_Traits::eof(), sbumpc())
; 135  : 				? _Traits::eof() : sgetc());

	mov	eax, DWORD PTR [esi+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	je	SHORT $LN17@snextc
	mov	ecx, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [ecx]
	cmp	ecx, 1
	jle	SHORT $LN5@snextc
	mov	eax, DWORD PTR [esi+48]
	add	DWORD PTR [eax], -1
	mov	eax, DWORD PTR [esi+32]
	add	DWORD PTR [eax], 1
	mov	edx, DWORD PTR [esi+32]
	mov	eax, DWORD PTR [edx]
	movzx	eax, BYTE PTR [eax]
	pop	esi

; 136  : 		}

	ret	0
$LN5@snextc:

; 132  : 		return (1 < _Gnavail()
; 133  : 			? _Traits::to_int_type(*_Gnpreinc())
; 134  : 			: _Traits::eq_int_type(_Traits::eof(), sbumpc())
; 135  : 				? _Traits::eof() : sgetc());

	test	eax, eax
	je	SHORT $LN17@snextc
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], 0
	jle	SHORT $LN17@snextc
	mov	eax, ecx
	add	DWORD PTR [eax], -1
	mov	eax, DWORD PTR [esi+32]
	mov	ecx, DWORD PTR [eax]
	lea	edx, DWORD PTR [ecx+1]
	mov	DWORD PTR [eax], edx
	movzx	eax, BYTE PTR [ecx]
	jmp	SHORT $LN18@snextc
$LN17@snextc:
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+20]
	mov	ecx, esi
	call	edx
$LN18@snextc:
	cmp	eax, -1
	jne	SHORT $LN3@snextc
	or	eax, eax
	pop	esi

; 136  : 		}

	ret	0
$LN3@snextc:

; 132  : 		return (1 < _Gnavail()
; 133  : 			? _Traits::to_int_type(*_Gnpreinc())
; 134  : 			: _Traits::eq_int_type(_Traits::eof(), sbumpc())
; 135  : 				? _Traits::eof() : sgetc());

	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN35@snextc
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], 0
	jle	SHORT $LN35@snextc
	mov	edx, DWORD PTR [eax]
	movzx	eax, BYTE PTR [edx]
	pop	esi

; 136  : 		}

	ret	0

; 132  : 		return (1 < _Gnavail()
; 133  : 			? _Traits::to_int_type(*_Gnpreinc())
; 134  : 			: _Traits::eq_int_type(_Traits::eof(), sbumpc())
; 135  : 				? _Traits::eof() : sgetc());

$LN35@snextc:
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+16]
	mov	ecx, esi
	pop	esi
	jmp	edx
?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::snextc
_TEXT	ENDS
PUBLIC	??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ ; std::_String_val<char,std::allocator<char> >::~_String_val<char,std::allocator<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ PROC	; std::_String_val<char,std::allocator<char> >::~_String_val<char,std::allocator<char> >, COMDAT
; _this$ = ecx
	jmp	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ ENDP	; std::_String_val<char,std::allocator<char> >::~_String_val<char,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::istreambuf_iterator<char,std::char_traits<char> >::~istreambuf_iterator<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::~istreambuf_iterator<char,std::char_traits<char> >, COMDAT
; _this$ = ecx
	jmp	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::~istreambuf_iterator<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??1?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::~_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ PROC ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::~_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx
	jmp	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
??1?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ENDP ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::~_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
EXTRN	?_Xran@_String_base@std@@SAXXZ:PROC		; std::_String_base::_Xran
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z
_TEXT	SEGMENT
tv130 = 8						; size = 4
__Off$ = 8						; size = 4
__Count$ = 12						; size = 4
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase, COMDAT
; _this$ = ecx

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

	push	ebx

; 1241 : 		if (_Mysize < _Off)

	mov	ebx, DWORD PTR __Off$[esp]
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+24], ebx
	push	edi
	jae	SHORT $LN3@erase

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

	call	?_Xran@_String_base@std@@SAXXZ		; std::_String_base::_Xran
$LN3@erase:

; 1243 : 		if (_Mysize - _Off < _Count)

	mov	eax, DWORD PTR [esi+24]
	mov	edi, DWORD PTR __Count$[esp+8]
	sub	eax, ebx
	cmp	eax, edi
	jae	SHORT $LN2@erase

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

	mov	edi, eax
$LN2@erase:

; 1245 : 		if (0 < _Count)

	test	edi, edi
	jbe	SHORT $LN30@erase

; 1246 : 			{	// move elements down
; 1247 : 			_Traits_helper::move_s<_Traits>(_Myptr() + _Off, _Myres - _Off, _Myptr() + _Off + _Count,
; 1248 : 				_Mysize - _Off - _Count);

	mov	ecx, DWORD PTR [esi+28]
	cmp	ecx, 16					; 00000010H
	push	ebp
	lea	ebp, DWORD PTR [esi+8]
	jb	SHORT $LN8@erase
	mov	edx, DWORD PTR [ebp]
	mov	DWORD PTR tv130[esp+12], edx
	jmp	SHORT $LN9@erase
$LN8@erase:
	mov	DWORD PTR tv130[esp+12], ebp
$LN9@erase:
	cmp	ecx, 16					; 00000010H
	jb	SHORT $LN12@erase
	mov	edx, DWORD PTR [ebp]
	jmp	SHORT $LN13@erase
$LN12@erase:
	mov	edx, ebp
$LN13@erase:
	sub	eax, edi
	push	eax
	mov	eax, DWORD PTR tv130[esp+16]
	add	eax, ebx
	add	eax, edi
	push	eax
	sub	ecx, ebx
	push	ecx
	add	edx, ebx
	push	edx
	call	_memmove_s

; 1249 : 			size_type _Newsize = _Mysize - _Count;

	mov	eax, DWORD PTR [esi+24]
	sub	eax, edi
	add	esp, 16					; 00000010H

; 1250 : 			_Eos(_Newsize);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	DWORD PTR [esi+24], eax
	jb	SHORT $LN26@erase
	mov	ebp, DWORD PTR [ebp]
$LN26@erase:
	mov	BYTE PTR [eax+ebp], 0
	pop	ebp
$LN30@erase:
	pop	edi

; 1251 : 			}
; 1252 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1253 : 		}

	ret	8
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
_TEXT	ENDS
PUBLIC	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy
; Function compile flags: /Ogtpy
;	COMDAT ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z
_TEXT	SEGMENT
__Built$ = 8						; size = 1
__Newsize$ = 12						; size = 4
?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy, COMDAT
; _this$ = ecx

; 2067 : 		if (!_Built)

	cmp	BYTE PTR __Built$[esp-4], 0
	push	esi
	push	edi
	mov	edi, DWORD PTR __Newsize$[esp+4]
	mov	esi, ecx
	je	SHORT $LN15@Tidy@2

; 2068 : 			;
; 2069 : 		else if (_BUF_SIZE <= _Myres)

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN15@Tidy@2

; 2070 : 			{	// copy any leftovers to small buffer and deallocate
; 2071 : 			_Elem *_Ptr = _Bx._Ptr;
; 2072 : 			if (0 < _Newsize)

	test	edi, edi
	lea	eax, DWORD PTR [esi+8]
	push	ebx
	mov	ebx, DWORD PTR [eax]
	jbe	SHORT $LN13@Tidy@2

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

	push	edi
	push	ebx
	push	16					; 00000010H
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H
$LN13@Tidy@2:

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

	push	ebx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	ebx
$LN15@Tidy@2:

; 2075 : 			}
; 2076 : 		_Myres = _BUF_SIZE - 1;
; 2077 : 		_Eos(_Newsize);

	mov	DWORD PTR [esi+24], edi
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	BYTE PTR [esi+edi+8], 0
	pop	edi
	pop	esi

; 2078 : 		}

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

; 471  : 		{	// construct allocator from _Al

	mov	eax, ecx
	mov	DWORD PTR [eax], 0

; 472  : 		}

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

; 477  : 		{	// copy constructor

	mov	eax, ecx

; 478  : #if defined(_DEBUG)
; 479  : 		if (_Right._Myfirstiter == _IGNORE_MYITERLIST)

	mov	ecx, DWORD PTR __Right$[esp-4]
	mov	DWORD PTR [eax], 0
	cmp	DWORD PTR [ecx], -3			; fffffffdH
	jne	SHORT $LN1@String_val

; 480  : 			{
; 481  : 			this->_Myfirstiter = _IGNORE_MYITERLIST;

	mov	DWORD PTR [eax], -3			; fffffffdH
$LN1@String_val:

; 482  : 			}
; 483  : #endif
; 484  : 		}

	ret	4
??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z ENDP ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
_TEXT	ENDS
PUBLIC	?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
PUBLIC	?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf<char,std::char_traits<char> >::_Init
;	COMDAT ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
_BSS	SEGMENT
?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA DD 01H DUP (?) ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
_BSS	ENDS
;	COMDAT ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z
_TEXT	SEGMENT
__File$ = 8						; size = 4
__Which$ = 12						; size = 4
?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::_Init, COMDAT
; _this$ = ecx

; 461  : 		__PURE_APPDOMAIN_GLOBAL static _Myst _Stinit;	// initial state
; 462  : 		_Closef = _Which == _Openfl;

	cmp	DWORD PTR __Which$[esp-4], 1
	push	esi
	mov	esi, ecx
	sete	al
	mov	BYTE PTR [esi+72], al

; 463  : 		_Wrotesome = false;

	mov	BYTE PTR [esi+65], 0

; 464  : 
; 465  : 		_Mysb::_Init();	// initialize stream buffer base object

	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init

; 466  : 
; 467  :  #ifndef _IORCNT
; 468  :   #define _IORCNT	_IOCNT	/* read and write counts are the same */
; 469  :   #define _IOWCNT _IOCNT
; 470  :  #endif /* _IORCNT */
; 471  : 
; 472  : #pragma warning(push)
; 473  : #pragma warning(disable: 6240)
; 474  : 		/* prefast noise VSW 489858 */
; 475  : 		if (_File != 0 && sizeof (_Elem) == 1)

	mov	eax, DWORD PTR __File$[esp]
	test	eax, eax
	je	SHORT $LN4@Init

; 476  : #pragma warning(pop)
; 477  : 			{	// point inside C stream with [first, first + count) buffer
; 478  : 			_Elem **_Pb = (_Elem **)&_File->_IOBASE;

	lea	ecx, DWORD PTR [eax+8]

; 479  : 			_Elem **_Pn = (_Elem **)&_File->_IOPTR;
; 480  : 			int *_Nr = (int *)&_File->_IORCNT;
; 481  : 			int *_Nw = (int *)&_File->_IOWCNT;
; 482  : 			_Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw);

	mov	DWORD PTR [esi+16], ecx
	mov	DWORD PTR [esi+20], ecx
	lea	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+32], eax
	mov	DWORD PTR [esi+36], eax
	mov	DWORD PTR [esi+48], ecx
	mov	DWORD PTR [esi+52], ecx
$LN4@Init:

; 483  : 			}
; 484  : 		_Myfile = _File;

	mov	DWORD PTR [esi+76], eax

; 485  : 		_State = _Stinit;

	mov	ecx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+68], ecx

; 486  : 		_Pcvt = 0;	// pointer to codecvt facet

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

; 487  : 		}

	ret	8
?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::_Init
_TEXT	ENDS
PUBLIC	?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt
; Function compile flags: /Ogtpy
;	COMDAT ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z
_TEXT	SEGMENT
__Newpcvt$ = 8						; size = 4
?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt, COMDAT
; _this$ = ecx

; 531  : 		{	// initialize codecvt pointer

	push	esi
	push	edi

; 532  : 		if (_Newpcvt->always_noconv())

	mov	edi, DWORD PTR __Newpcvt$[esp+4]
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	esi, ecx
	mov	ecx, edi
	call	edx
	test	al, al
	je	SHORT $LN2@Initcvt
	pop	edi

; 533  : 			_Pcvt = 0;	// nothing to do

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

; 538  : 			}
; 539  : 		}

	ret	4
$LN2@Initcvt:

; 534  : 		else
; 535  : 			{	// set up for nontrivial codecvt facet
; 536  : 			_Pcvt = _Newpcvt;
; 537  : 			_Mysb::_Init();	// reset any buffering

	mov	ecx, esi
	mov	DWORD PTR [esi+60], edi
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	pop	edi
	pop	esi

; 538  : 			}
; 539  : 		}

	ret	4
?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt
_TEXT	ENDS
PUBLIC	??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z
_TEXT	SEGMENT
__Sb$ = 8						; size = 4
??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 2097 : 		{	// construct from stream buffer _Sb

	mov	eax, ecx
	mov	ecx, DWORD PTR __Sb$[esp-4]
	test	ecx, ecx
	mov	DWORD PTR [eax+8], ecx
	sete	cl
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+4], 0
	mov	BYTE PTR [eax+12], cl

; 2098 : 		}

	ret	4
??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??_C@_0EA@PCILNABG@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_streambuf<char,std::char_traits<char> >::`vftable'
PUBLIC	??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >
PUBLIC	??_R4?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_streambuf<char,std::char_traits<char> > `RTTI Type Descriptor'
PUBLIC	??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_streambuf<char,std::char_traits<char> >::overflow
PUBLIC	?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_streambuf<char,std::char_traits<char> >::pbackfail
PUBLIC	?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::showmanyc
PUBLIC	?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::underflow
PUBLIC	?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::uflow
PUBLIC	?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z ; std::basic_streambuf<char,std::char_traits<char> >::xsgetn
PUBLIC	?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z ; std::basic_streambuf<char,std::char_traits<char> >::_Xsgetn_s
PUBLIC	?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z ; std::basic_streambuf<char,std::char_traits<char> >::xsputn
PUBLIC	?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ; std::basic_streambuf<char,std::char_traits<char> >::seekoff
PUBLIC	?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ; std::basic_streambuf<char,std::char_traits<char> >::seekpos
PUBLIC	?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z ; std::basic_streambuf<char,std::char_traits<char> >::setbuf
PUBLIC	?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::sync
PUBLIC	?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ; std::basic_streambuf<char,std::char_traits<char> >::imbue
EXTRN	??1_Mutex@std@@QAE@XZ:PROC			; std::_Mutex::~_Mutex
EXTRN	??0_Mutex@std@@QAE@XZ:PROC			; std::_Mutex::_Mutex
EXTRN	??_E?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:PROC ; std::basic_streambuf<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
rdata$r	SEGMENT
??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8
_DATA	SEGMENT
??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::basic_streambuf<char,std::char_traits<char> > `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
rdata$r	SEGMENT
??_R4?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ DD 00H ; std::basic_streambuf<char,std::char_traits<char> >::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8
	DD	FLAT:??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_C@_0EA@PCILNABG@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0EA@PCILNABG@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\streambuf', 00H ; `string'
CONST	ENDS
;	COMDAT ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_R4?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_streambuf<char,std::char_traits<char> >::`vftable'
	DD	FLAT:??_E?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
	DD	FLAT:?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
	DD	FLAT:?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z
	DD	FLAT:?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
	DD	FLAT:?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
	DD	FLAT:?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
	DD	FLAT:?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z
	DD	FLAT:?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ$0
__ehfuncinfo$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
xdata$x	ENDS
;	COMDAT ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT
__Lock$27715 = -20					; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 29   : 		{	// construct with no buffers

	push	-1
	push	__ehhandler$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebx
	mov	ebx, ecx
	push	esi
	lea	ecx, DWORD PTR [ebx+4]
	mov	DWORD PTR _this$[esp+28], ebx
	mov	DWORD PTR [ebx], OFFSET ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
	call	??0_Mutex@std@@QAE@XZ			; std::_Mutex::_Mutex
	push	28					; 0000001cH
	push	OFFSET ??_C@_0EA@PCILNABG@C?3?2Program?5Files?2Microsoft?5Visua@
	mov	DWORD PTR __$EHRec$[esp+44], 0
	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	eax
	push	4
	call	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	test	esi, esi
	je	SHORT $LN3@basic_stre
	push	edi
	call	?_Init@locale@std@@CAPAV_Locimp@12@XZ	; std::locale::_Init
	mov	DWORD PTR [esi], eax
	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	push	0
	lea	ecx, DWORD PTR __Lock$27715[esp+36]
	mov	edi, eax
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	cmp	eax, -1
	jae	SHORT $LN8@basic_stre
	add	eax, 1
	mov	DWORD PTR [edi+4], eax
$LN8@basic_stre:
	lea	ecx, DWORD PTR __Lock$27715[esp+32]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	pop	edi
	jmp	SHORT $LN4@basic_stre
$LN3@basic_stre:
	xor	esi, esi
$LN4@basic_stre:

; 30   : 		_Init();

	mov	ecx, ebx
	mov	DWORD PTR [ebx+56], esi
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init

; 31   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	esi
	mov	eax, ebx
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 4
	jmp	??1_Mutex@std@@QAE@XZ			; std::_Mutex::~_Mutex
__ehhandler$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::overflow, COMDAT
; _this$ = ecx

; 299  : 		return (_Traits::eof());

	or	eax, -1

; 300  : 		}

	ret	4
?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::overflow
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::pbackfail, COMDAT
; _this$ = ecx

; 304  : 		return (_Traits::eof());

	or	eax, -1

; 305  : 		}

	ret	4
?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pbackfail
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::showmanyc, COMDAT
; _this$ = ecx

; 309  : 		return (0);

	xor	eax, eax

; 310  : 		}

	ret	0
?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::showmanyc
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::underflow, COMDAT
; _this$ = ecx

; 314  : 		return (_Traits::eof());

	or	eax, -1

; 315  : 		}

	ret	0
?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::underflow
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::xsgetn, COMDAT
; _this$ = ecx

; 327  : 		// assume the destination buffer is large enough
; 328  : 		return _Xsgetn_s(_Ptr, (size_t)-1, _Count);

	mov	edx, DWORD PTR __Count$[esp-4]
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+28]
	push	edx
	mov	edx, DWORD PTR __Ptr$[esp]
	push	-1
	push	edx
	call	eax

; 329  : 		}

	ret	8
?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::xsgetn
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::setbuf, COMDAT
; _this$ = ecx

; 404  : 		{	// offer buffer to external agent (do nothing)

	mov	eax, ecx

; 405  : 		return (this);
; 406  : 		}

	ret	8
?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::setbuf
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::sync, COMDAT
; _this$ = ecx

; 410  : 		return (0);

	xor	eax, eax

; 411  : 		}

	ret	0
?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sync
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::imbue, COMDAT
; _this$ = ecx

; 415  : 		}

	ret	4
?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::imbue
_TEXT	ENDS
PUBLIC	?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::pptr
; Function compile flags: /Ogtpy
;	COMDAT ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::pptr, COMDAT
; _this$ = ecx

; 201  : 		return (*_IPnext);

	mov	eax, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [eax]

; 202  : 		}

	ret	0
?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pptr
_TEXT	ENDS
PUBLIC	?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char> >::gbump
; Function compile flags: /Ogtpy
;	COMDAT ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::gbump, COMDAT
; _this$ = ecx

; 211  : 		*_IGcount -= _Off;

	mov	eax, DWORD PTR [ecx+48]
	mov	edx, DWORD PTR __Off$[esp-4]
	sub	DWORD PTR [eax], edx

; 212  : 		*_IGnext += _Off;

	mov	ecx, DWORD PTR [ecx+32]
	add	DWORD PTR [ecx], edx

; 213  : 		}

	ret	4
?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::gbump
_TEXT	ENDS
PUBLIC	?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ; std::basic_streambuf<char,std::char_traits<char> >::pbump
; Function compile flags: /Ogtpy
;	COMDAT ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::pbump, COMDAT
; _this$ = ecx

; 252  : 		*_IPcount -= _Off;

	mov	eax, DWORD PTR [ecx+52]
	mov	edx, DWORD PTR __Off$[esp-4]
	sub	DWORD PTR [eax], edx

; 253  : 		*_IPnext += _Off;

	mov	ecx, DWORD PTR [ecx+36]
	add	DWORD PTR [ecx], edx

; 254  : 		}

	ret	4
?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pbump
_TEXT	ENDS
PUBLIC	?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Pnavail
; Function compile flags: /Ogtpy
;	COMDAT ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ
_TEXT	SEGMENT
?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Pnavail, COMDAT
; _this$ = ecx

; 278  : 		return (*_IPnext != 0 ? *_IPcount : 0);

	mov	eax, DWORD PTR [ecx+36]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN3@Pnavail
	mov	ecx, DWORD PTR [ecx+52]
	mov	eax, DWORD PTR [ecx]

; 279  : 		}

	ret	0
$LN3@Pnavail:

; 278  : 		return (*_IPnext != 0 ? *_IPcount : 0);

	xor	eax, eax

; 279  : 		}

	ret	0
?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Pnavail
_TEXT	ENDS
PUBLIC	??0?$fpos@H@std@@QAE@J@Z			; std::fpos<int>::fpos<int>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
;	COMDAT ??0?$fpos@H@std@@QAE@J@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
??0?$fpos@H@std@@QAE@J@Z PROC				; std::fpos<int>::fpos<int>, COMDAT
; _this$ = ecx

; 47   : 		{	// construct with stream offset

	mov	eax, ecx
	mov	ecx, DWORD PTR __Off$[esp-4]
	mov	DWORD PTR [eax], ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx

; 48   : 		}

	ret	4
??0?$fpos@H@std@@QAE@J@Z ENDP				; std::fpos<int>::fpos<int>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
_TEXT	ENDS
;	COMDAT ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::uflow, COMDAT
; _this$ = ecx

; 318  : 		{	// get a character from stream, point past it

	push	esi
	mov	esi, ecx

; 319  : 		return (_Traits::eq_int_type(_Traits::eof(), underflow())
; 320  : 			? _Traits::eof() : _Traits::to_int_type(*_Gninc()));

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+16]
	call	edx
	cmp	eax, -1
	jne	SHORT $LN3@uflow
	or	eax, eax
	pop	esi

; 321  : 		}

	ret	0
$LN3@uflow:

; 319  : 		return (_Traits::eq_int_type(_Traits::eof(), underflow())
; 320  : 			? _Traits::eof() : _Traits::to_int_type(*_Gninc()));

	mov	eax, DWORD PTR [esi+48]
	add	DWORD PTR [eax], -1
	mov	eax, DWORD PTR [esi+32]
	mov	ecx, DWORD PTR [eax]
	lea	edx, DWORD PTR [ecx+1]
	mov	DWORD PTR [eax], edx
	movzx	eax, BYTE PTR [ecx]
	pop	esi

; 321  : 		}

	ret	0
?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::uflow
_TEXT	ENDS
EXTRN	?_BADOFF@std@@3JB:DWORD				; std::_BADOFF
; Function compile flags: /Ogtpy
;	COMDAT ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
___formal$ = 20						; size = 4
?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::seekoff, COMDAT
; _this$ = ecx

; 394  : 		return (streampos(_BADOFF));

	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	mov	ecx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	DWORD PTR [eax], ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx

; 395  : 		}

	ret	16					; 00000010H
?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::seekoff
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 24
___formal$ = 36						; size = 4
?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::seekpos, COMDAT
; _this$ = ecx

; 400  : 		return (streampos(_BADOFF));

	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	mov	ecx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	DWORD PTR [eax], ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx

; 401  : 		}

	ret	32					; 00000020H
?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::seekpos
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z
_TEXT	SEGMENT
__Copied$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Ptr_size$ = 12					; size = 4
__Count$ = 16						; size = 4
?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Xsgetn_s, COMDAT
; _this$ = ecx

; 333  : 		{	// get _Count characters from stream

	push	ecx
	push	ebp

; 334  : 		int_type _Meta;
; 335  : 		streamsize _Stream_size, _Size, _Copied;
; 336  : 
; 337  : 		for (_Copied = 0; 0 < _Count; )

	mov	ebp, DWORD PTR __Count$[esp+4]
	push	esi
	xor	esi, esi
	test	ebp, ebp
	push	edi
	mov	edi, ecx
	mov	DWORD PTR __Copied$[esp+16], esi
	jle	SHORT $LN31@Xsgetn_s
	push	ebx
	mov	ebx, DWORD PTR __Ptr$[esp+16]
	npad	7
$LL7@Xsgetn_s:

; 338  : 			if (0 < (_Stream_size = _Gnavail()))

	mov	ecx, edi
	call	?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gnavail
	test	eax, eax
	jle	SHORT $LN5@Xsgetn_s

; 339  : 				{	// copy from read buffer
; 340  : 				_Size = _Stream_size;
; 341  : 				if (_Count < _Size)

	cmp	ebp, eax
	mov	esi, eax
	jge	SHORT $LN4@Xsgetn_s

; 342  : 					_Size = _Count;

	mov	esi, ebp
$LN4@Xsgetn_s:

; 343  : 				_Traits_helper::copy_s<_Traits>(_Ptr, _Ptr_size, gptr(), _Size);

	mov	eax, DWORD PTR [edi+32]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR __Ptr_size$[esp+16]
	push	esi
	push	ecx
	push	edx
	push	ebx
	call	_memcpy_s

; 344  : 				_Ptr += _Size;
; 345  : 				_Copied += _Size;
; 346  : 				_Count -= _Size;
; 347  : 				gbump((int)_Size);

	mov	eax, DWORD PTR [edi+48]
	sub	DWORD PTR [eax], esi
	add	DWORD PTR __Copied$[esp+36], esi
	mov	eax, DWORD PTR [edi+32]
	add	ebx, esi
	sub	ebp, esi
	add	esp, 16					; 00000010H
	add	DWORD PTR [eax], esi
	mov	esi, DWORD PTR __Copied$[esp+20]
	jmp	SHORT $LN1@Xsgetn_s
$LN5@Xsgetn_s:

; 348  : 				}
; 349  : 			else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow()))

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+20]
	mov	ecx, edi
	call	edx
	cmp	eax, -1
	je	SHORT $LN30@Xsgetn_s

; 350  : 				break;	// end of file, quit
; 351  : 			else
; 352  : 				{	// get a single character
; 353  : 				*_Ptr++ = _Traits::to_char_type(_Meta);
; 354  : 				++_Copied;

	add	esi, 1
	mov	BYTE PTR [ebx], al
	add	ebx, 1
	mov	DWORD PTR __Copied$[esp+20], esi

; 355  : 				--_Count;

	sub	ebp, 1
$LN1@Xsgetn_s:

; 334  : 		int_type _Meta;
; 335  : 		streamsize _Stream_size, _Size, _Copied;
; 336  : 
; 337  : 		for (_Copied = 0; 0 < _Count; )

	test	ebp, ebp
	jg	SHORT $LL7@Xsgetn_s
$LN30@Xsgetn_s:
	pop	ebx
	pop	edi

; 356  : 				}
; 357  : 
; 358  : 		return (_Copied);

	mov	eax, esi
	pop	esi
	pop	ebp

; 359  : 		}

	pop	ecx
	ret	12					; 0000000cH
$LN31@Xsgetn_s:
	pop	edi

; 356  : 				}
; 357  : 
; 358  : 		return (_Copied);

	mov	eax, esi
	pop	esi
	pop	ebp

; 359  : 		}

	pop	ecx
	ret	12					; 0000000cH
?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Xsgetn_s
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
_TEXT	SEGMENT
__Copied$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::xsputn, COMDAT
; _this$ = ecx

; 363  : 		{	// put _Count characters to stream

	push	ecx
	push	ebp

; 364  : 		streamsize _Stream_size, _Size, _Copied;
; 365  : 
; 366  : 		for (_Copied = 0; 0 < _Count; )

	mov	ebp, DWORD PTR __Count$[esp+4]
	push	esi
	xor	esi, esi
	test	ebp, ebp
	push	edi
	mov	edi, ecx
	mov	DWORD PTR __Copied$[esp+16], esi
	jle	SHORT $LN31@xsputn
	push	ebx
	mov	ebx, DWORD PTR __Ptr$[esp+16]
	npad	7
$LL7@xsputn:

; 367  : 			if (0 < (_Stream_size = _Pnavail()))

	mov	ecx, edi
	call	?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Pnavail
	test	eax, eax
	jle	SHORT $LN5@xsputn

; 368  : 				{	// copy to write buffer
; 369  : 				_Size = _Stream_size;
; 370  : 				if (_Count < _Size)

	cmp	ebp, eax
	mov	esi, eax
	jge	SHORT $LN4@xsputn

; 371  : 					_Size = _Count;

	mov	esi, ebp
$LN4@xsputn:

; 372  : 				_Traits_helper::copy_s<_Traits>(pptr(), _Stream_size, _Ptr, _Size);

	push	esi
	push	ebx
	push	eax
	mov	eax, DWORD PTR [edi+36]
	mov	ecx, DWORD PTR [eax]
	push	ecx
	call	_memcpy_s

; 373  : 				_Ptr += _Size;
; 374  : 				_Copied += _Size;
; 375  : 				_Count -= _Size;
; 376  : 				pbump((int)_Size);

	mov	eax, DWORD PTR [edi+52]
	sub	DWORD PTR [eax], esi
	add	DWORD PTR __Copied$[esp+36], esi
	mov	eax, DWORD PTR [edi+36]
	add	ebx, esi
	sub	ebp, esi
	add	esp, 16					; 00000010H
	add	DWORD PTR [eax], esi

; 377  : 				}
; 378  : 			else if (_Traits::eq_int_type(_Traits::eof(),

	mov	esi, DWORD PTR __Copied$[esp+20]
	jmp	SHORT $LN1@xsputn
$LN5@xsputn:

; 379  : 				overflow(_Traits::to_int_type(*_Ptr))))

	movzx	eax, BYTE PTR [ebx]
	mov	edx, DWORD PTR [edi]
	push	eax
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, edi
	call	eax
	cmp	eax, -1
	je	SHORT $LN30@xsputn

; 380  : 				break;	// single character put failed, quit
; 381  : 			else
; 382  : 				{	// count character successfully put
; 383  : 				++_Ptr;
; 384  : 				++_Copied;

	add	esi, 1
	add	ebx, 1
	mov	DWORD PTR __Copied$[esp+20], esi

; 385  : 				--_Count;

	sub	ebp, 1
$LN1@xsputn:

; 364  : 		streamsize _Stream_size, _Size, _Copied;
; 365  : 
; 366  : 		for (_Copied = 0; 0 < _Count; )

	test	ebp, ebp
	jg	SHORT $LL7@xsputn
$LN30@xsputn:
	pop	ebx
	pop	edi

; 386  : 				}
; 387  : 
; 388  : 		return (_Copied);

	mov	eax, esi
	pop	esi
	pop	ebp

; 389  : 		}

	pop	ecx
	ret	8
$LN31@xsputn:
	pop	edi

; 386  : 				}
; 387  : 
; 388  : 		return (_Copied);

	mov	eax, esi
	pop	esi
	pop	ebp

; 389  : 		}

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

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

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH

; 2001 : 		size_type _Newres = _Newsize | _ALLOC_MASK;

	mov	eax, DWORD PTR __Newsize$[ebp]
	push	ebx
	push	esi
	mov	esi, eax
	push	edi
	or	esi, 15					; 0000000fH

; 2002 : 		if (max_size() < _Newres)

	cmp	esi, -2					; fffffffeH
	mov	edi, ecx
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR _this$[ebp], edi
	jbe	SHORT $LN6@Copy

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

	mov	esi, eax

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

	jmp	SHORT $LN4@Copy
$LN6@Copy:

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

	mov	ebx, DWORD PTR [edi+28]
	mov	eax, -1431655765			; aaaaaaabH
	mul	esi
	mov	ecx, ebx
	shr	ecx, 1
	shr	edx, 1
	cmp	edx, ecx
	jae	SHORT $LN4@Copy
	mov	eax, -2					; fffffffeH
	sub	eax, ecx
	cmp	ebx, eax
	ja	SHORT $LN4@Copy

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

	lea	esi, DWORD PTR [ecx+ebx]
$LN4@Copy:

; 2007 : 		_Elem *_Ptr = 0;
; 2008 : 
; 2009 : 		_TRY_BEGIN
; 2010 : 			_Ptr = _Mybase::_Alval.allocate(_Newres + 1);

	lea	ecx, DWORD PTR [esi+1]
	push	0
	push	ecx
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	call	??$_Allocate@D@std@@YAPADIPAD@Z		; std::_Allocate<char>
	add	esp, 8
	mov	DWORD PTR __Ptr$[ebp], eax

; 2018 : 			_CATCH_END
; 2019 : 		_CATCH_END

	jmp	SHORT $LN16@Copy
__catch$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$0:

; 2011 : 		_CATCH_ALL
; 2012 : 			_Newres = _Newsize;	// allocation failed, undo roundup and retry

	mov	eax, DWORD PTR __Newsize$[ebp]
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR __Newres$[ebp], eax

; 2013 : 			_TRY_BEGIN
; 2014 : 				_Ptr = _Mybase::_Alval.allocate(_Newres + 1);

	add	eax, 1
	push	0
	push	eax
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	call	??$_Allocate@D@std@@YAPADIPAD@Z		; std::_Allocate<char>
	mov	DWORD PTR __Ptr$[ebp], eax
	add	esp, 8

; 2018 : 			_CATCH_END
; 2019 : 		_CATCH_END

	mov	eax, $LN106@Copy
	ret	0
$LN106@Copy:
	mov	edi, DWORD PTR _this$[ebp]
	mov	esi, DWORD PTR __Newres$[ebp]
$LN16@Copy:

; 2020 : 
; 2021 : 		if (0 < _Oldlen)

	mov	ebx, DWORD PTR __Oldlen$[ebp]
	test	ebx, ebx
	jbe	SHORT $LN71@Copy

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

	cmp	DWORD PTR [edi+28], 16			; 00000010H
	jb	SHORT $LN63@Copy
	mov	eax, DWORD PTR [edi+8]
	jmp	SHORT $LN64@Copy
$LN63@Copy:
	lea	eax, DWORD PTR [edi+8]
$LN64@Copy:
	push	ebx
	push	eax
	mov	eax, DWORD PTR __Ptr$[ebp]
	lea	edx, DWORD PTR [esi+1]
	push	edx
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H
$LN71@Copy:

; 2023 : 		_Tidy(true);

	cmp	DWORD PTR [edi+28], 16			; 00000010H
	jb	SHORT $LN87@Copy
	mov	ecx, DWORD PTR [edi+8]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN87@Copy:

; 2024 : 		_Bx._Ptr = _Ptr;
; 2025 : 		_Myres = _Newres;
; 2026 : 		_Eos(_Oldlen);

	cmp	esi, 16					; 00000010H
	mov	ecx, DWORD PTR __Ptr$[ebp]
	lea	eax, DWORD PTR [edi+8]
	mov	BYTE PTR [eax], 0
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [edi+28], esi
	mov	DWORD PTR [edi+24], ebx
	jb	SHORT $LN101@Copy
	mov	eax, ecx
$LN101@Copy:

; 2027 : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	mov	BYTE PTR [eax+ebx], 0
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	8
__catch$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z$1:

; 2015 : 			_CATCH_ALL
; 2016 : 			_Tidy(true);	// failed again, discard storage and reraise

	mov	esi, DWORD PTR _this$[ebp]
	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN51@Copy
	mov	edx, DWORD PTR [esi+8]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN51@Copy:

; 2017 : 			_RERAISE;

	push	0
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], 0
	push	0
	mov	BYTE PTR [esi+8], 0
	call	__CxxThrowException@8
$LN110@Copy:
$LN109@Copy:
	int	3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
PUBLIC	??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe?$AAn?$AAt?$AA?$CC?$AA?$AA@ ; `string'
PUBLIC	??_C@_1OI@PNIDODDN@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@ ; `string'
PUBLIC	??_C@_1BEO@GFHFALBP@?$AA?$CI?$AA?$CC?$AA_?$AAP?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AA_?$AAP?$AAt?$AAr?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@ ; `string'
PUBLIC	??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe?$AAn?$AAt?$AA?$CC?$AA?$AA@
CONST	SEGMENT
??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe?$AAn?$AAt?$AA?$CC?$AA?$AA@ DB '"'
	DB	00H, 'i', 00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H
	DB	'd', 00H, ' ', 00H, 'a', 00H, 'r', 00H, 'g', 00H, 'u', 00H, 'm'
	DB	00H, 'e', 00H, 'n', 00H, 't', 00H, '"', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1OI@PNIDODDN@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@
CONST	SEGMENT
??_C@_1OI@PNIDODDN@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@ DB 's'
	DB	00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'S', 00H
	DB	't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, '_', 00H, 'c'
	DB	00H, 'o', 00H, 'n', 00H, 's', 00H, 't', 00H, '_', 00H, 'i', 00H
	DB	't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r'
	DB	00H, '<', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, ',', 00H
	DB	's', 00H, 't', 00H, 'r', 00H, 'u', 00H, 'c', 00H, 't', 00H, ' '
	DB	00H, 's', 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'c', 00H
	DB	'h', 00H, 'a', 00H, 'r', 00H, '_', 00H, 't', 00H, 'r', 00H, 'a'
	DB	00H, 'i', 00H, 't', 00H, 's', 00H, '<', 00H, 'c', 00H, 'h', 00H
	DB	'a', 00H, 'r', 00H, '>', 00H, ',', 00H, 'c', 00H, 'l', 00H, 'a'
	DB	00H, 's', 00H, 's', 00H, ' ', 00H, 's', 00H, 't', 00H, 'd', 00H
	DB	':', 00H, ':', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'o', 00H, 'c'
	DB	00H, 'a', 00H, 't', 00H, 'o', 00H, 'r', 00H, '<', 00H, 'c', 00H
	DB	'h', 00H, 'a', 00H, 'r', 00H, '>', 00H, ' ', 00H, '>', 00H, ':'
	DB	00H, ':', 00H, '_', 00H, 'S', 00H, 't', 00H, 'r', 00H, 'i', 00H
	DB	'n', 00H, 'g', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'n', 00H, 's'
	DB	00H, 't', 00H, '_', 00H, 'i', 00H, 't', 00H, 'e', 00H, 'r', 00H
	DB	'a', 00H, 't', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BEO@GFHFALBP@?$AA?$CI?$AA?$CC?$AA_?$AAP?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AA_?$AAP?$AAt?$AAr?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@
CONST	SEGMENT
??_C@_1BEO@GFHFALBP@?$AA?$CI?$AA?$CC?$AA_?$AAP?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AA_?$AAP?$AAt?$AAr?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@ DB '('
	DB	00H, '"', 00H, '_', 00H, 'P', 00H, 's', 00H, 't', 00H, 'r', 00H
	DB	'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, '=', 00H, '=', 00H, ' '
	DB	00H, 'N', 00H, 'U', 00H, 'L', 00H, 'L', 00H, ' ', 00H, '|', 00H
	DB	'|', 00H, ' ', 00H, '_', 00H, 'P', 00H, 't', 00H, 'r', 00H, ' '
	DB	00H, '!', 00H, '=', 00H, ' ', 00H, 'N', 00H, 'U', 00H, 'L', 00H
	DB	'L', 00H, ' ', 00H, '&', 00H, '&', 00H, ' ', 00H, '(', 00H, '('
	DB	00H, '_', 00H, 'M', 00H, 'y', 00H, 's', 00H, 't', 00H, 'r', 00H
	DB	'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, '*', 00H, ')', 00H, '_'
	DB	00H, 'P', 00H, 's', 00H, 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H
	DB	'g', 00H, ')', 00H, '-', 00H, '>', 00H, '_', 00H, 'M', 00H, 'y'
	DB	00H, 'p', 00H, 't', 00H, 'r', 00H, '(', 00H, ')', 00H, ' ', 00H
	DB	'<', 00H, '=', 00H, ' ', 00H, '_', 00H, 'P', 00H, 't', 00H, 'r'
	DB	00H, ' ', 00H, '&', 00H, '&', 00H, ' ', 00H, '_', 00H, 'P', 00H
	DB	't', 00H, 'r', 00H, ' ', 00H, '<', 00H, '=', 00H, ' ', 00H, '('
	DB	00H, '(', 00H, '(', 00H, '_', 00H, 'M', 00H, 'y', 00H, 's', 00H
	DB	't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, '*'
	DB	00H, ')', 00H, '_', 00H, 'P', 00H, 's', 00H, 't', 00H, 'r', 00H
	DB	'i', 00H, 'n', 00H, 'g', 00H, ')', 00H, '-', 00H, '>', 00H, '_'
	DB	00H, 'M', 00H, 'y', 00H, 'p', 00H, 't', 00H, 'r', 00H, '(', 00H
	DB	')', 00H, ' ', 00H, '+', 00H, ' ', 00H, '(', 00H, '(', 00H, '_'
	DB	00H, 'M', 00H, 'y', 00H, 's', 00H, 't', 00H, 'r', 00H, 'i', 00H
	DB	'n', 00H, 'g', 00H, ' ', 00H, '*', 00H, ')', 00H, '_', 00H, 'P'
	DB	00H, 's', 00H, 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H
	DB	')', 00H, '-', 00H, '>', 00H, '_', 00H, 'M', 00H, 'y', 00H, 's'
	DB	00H, 'i', 00H, 'z', 00H, 'e', 00H, ')', 00H, '"', 00H, ',', 00H
	DB	' ', 00H, '0', 00H, ')', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z$0
__ehfuncinfo$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Ptr$ = 8						; size = 4
__Pstring$ = 12						; size = 4
??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z PROC ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 70   : 	__CLR_OR_THIS_CALL _String_const_iterator(pointer _Ptr, const _Container_base *_Pstring)

	push	-1
	push	__ehhandler$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	esi
	push	edi
	mov	edi, ecx
	mov	DWORD PTR _this$[esp+28], edi
	mov	DWORD PTR [edi], 0
	mov	DWORD PTR [edi+4], 0

; 71   : 		{	// construct with pointer _Ptr
; 72   : 		_SCL_SECURE_VALIDATE(

	mov	esi, DWORD PTR __Pstring$[esp+24]
	test	esi, esi
	mov	ebx, DWORD PTR __Ptr$[esp+24]
	mov	DWORD PTR __$EHRec$[esp+36], 0
	je	SHORT $LN2@String_con
	test	ebx, ebx
	je	SHORT $LN1@String_con
	mov	edx, DWORD PTR [esi+28]
	cmp	edx, 16					; 00000010H
	lea	eax, DWORD PTR [esi+8]
	jb	SHORT $LN13@String_con
	mov	ecx, DWORD PTR [eax]
	jmp	SHORT $LN14@String_con
$LN13@String_con:
	mov	ecx, eax
$LN14@String_con:
	cmp	ecx, ebx
	ja	SHORT $LN1@String_con
	cmp	edx, 16					; 00000010H
	jb	SHORT $LN17@String_con
	mov	eax, DWORD PTR [eax]
$LN17@String_con:
	mov	ecx, DWORD PTR [esi+24]
	add	ecx, eax
	cmp	ebx, ecx
	jbe	SHORT $LN2@String_con
$LN1@String_con:
	push	OFFSET ??_C@_1BEO@GFHFALBP@?$AA?$CI?$AA?$CC?$AA_?$AAP?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAN?$AAU?$AAL?$AAL?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AA_?$AAP?$AAt?$AAr?$AA?5?$AA?$CB?$AA?$DN?$AA?5?$AAN?$AAU@
	push	0
	push	75					; 0000004bH
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	2
	call	__CrtDbgReportW
	add	esp, 20					; 00000014H
	cmp	eax, 1
	jne	SHORT $LN5@String_con
	int	3
$LN5@String_con:

; 73   : 			_Pstring == NULL || 
; 74   : 			_Ptr != NULL && 
; 75   : 			((_Mystring *)_Pstring)->_Myptr() <= _Ptr && _Ptr <= (((_Mystring *)_Pstring)->_Myptr() + ((_Mystring *)_Pstring)->_Mysize));

	push	0
	push	75					; 0000004bH
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1OI@PNIDODDN@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAS?$AAt?$AAr?$AAi?$AAn?$AAg?$AA_?$AAc?$AAo?$AAn?$AAs?$AAt?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?$DM?$AAc?$AAh?$AAa?$AAr@
	push	OFFSET ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe?$AAn?$AAt?$AA?$CC?$AA?$AA@
	call	__invalid_parameter
	add	esp, 20					; 00000014H
$LN2@String_con:

; 76   : 		this->_Adopt(_Pstring);

	push	esi
	mov	ecx, edi
	call	?_Adopt@_Iterator_base@std@@QAEXPBV_Container_base@2@@Z ; std::_Iterator_base::_Adopt

; 77   : 		_Myptr = _Ptr;
; 78   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	DWORD PTR [edi+8], ebx
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$_Ranit_base@DHPBDABDV_Iterator_base@std@@@std@@QAE@XZ
__ehhandler$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z ENDP ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	??$_DebugHeapDelete@Vlocale@std@@@std@@YAXPAVlocale@0@@Z ; std::_DebugHeapDelete<std::locale>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ??$_DebugHeapDelete@Vlocale@std@@@std@@YAXPAVlocale@0@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??$_DebugHeapDelete@Vlocale@std@@@std@@YAXPAVlocale@0@@Z PROC ; std::_DebugHeapDelete<std::locale>, COMDAT

; 55   : 	{	// delete from the debug CRT heap even if operator delete exists

	push	esi

; 56   : 	if (_Ptr != 0)

	mov	esi, DWORD PTR __Ptr$[esp]
	test	esi, esi
	je	SHORT $LN1@DebugHeapD@3

; 57   : 		{	// worth deleting
; 58   : 		_Ptr->~_Ty();

	mov	ecx, esi
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 59   : 		// delete as _NORMAL_BLOCK, not _CRT_BLOCK, since we might have
; 60   : 		// facets allocated by normal new.
; 61   : 		free(_Ptr);

	push	esi
	call	_free
	add	esp, 4
$LN1@DebugHeapD@3:
	pop	esi

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@Vlocale@std@@@std@@YAXPAVlocale@0@@Z ENDP ; std::_DebugHeapDelete<std::locale>
_TEXT	ENDS
PUBLIC	??0_Iterator_base@std@@QAE@ABV01@@Z		; std::_Iterator_base::_Iterator_base
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??0_Iterator_base@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??0_Iterator_base@std@@QAE@ABV01@@Z PROC		; std::_Iterator_base::_Iterator_base, COMDAT
; _this$ = ecx

; 133  : 		*this = _Right;

	mov	eax, DWORD PTR __Right$[esp-4]
	push	esi
	mov	esi, ecx
	push	eax
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=

; 134  : 		}

	mov	eax, esi
	pop	esi
	ret	4
??0_Iterator_base@std@@QAE@ABV01@@Z ENDP		; std::_Iterator_base::_Iterator_base
_TEXT	ENDS
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 564  : 		{	// construct empty string

	mov	eax, ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax], ecx

; 565  : 		_Tidy();

	mov	DWORD PTR [eax+28], 15			; 0000000fH
	mov	DWORD PTR [eax+24], ecx
	mov	BYTE PTR [eax+8], cl

; 566  : 		}

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

; 904  : 		{	// destroy the string

	push	esi
	mov	esi, ecx

; 905  : 		_Tidy(true);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN18@basic_stri
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN18@basic_stri:
	xor	eax, eax
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], eax
	mov	BYTE PTR [esi+8], al

; 906  : 		}

	mov	ecx, esi
	pop	esi
	jmp	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 43   : 		{	// destroy the object

	push	esi
	mov	esi, ecx
	push	edi

; 44   : 		_DELETE_CRT(_Plocale);

	mov	edi, DWORD PTR [esi+56]
	test	edi, edi
	mov	DWORD PTR [esi], OFFSET ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
	je	SHORT $LN4@basic_stre@2
	mov	ecx, edi
	call	??1locale@std@@QAE@XZ			; std::locale::~locale
	push	edi
	call	_free
	add	esp, 4
$LN4@basic_stre@2:
	pop	edi

; 45   : 		}

	lea	ecx, DWORD PTR [esi+4]
	pop	esi
	jmp	??1_Mutex@std@@QAE@XZ			; std::_Mutex::~_Mutex
??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC ; std::basic_streambuf<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	edi, DWORD PTR [esi+56]
	test	edi, edi
	mov	DWORD PTR [esi], OFFSET ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
	je	SHORT $LN7@scalar@19
	mov	ecx, edi
	call	??1locale@std@@QAE@XZ			; std::locale::~locale
	push	edi
	call	_free
	add	esp, 4
$LN7@scalar@19:
	lea	ecx, DWORD PTR [esi+4]
	call	??1_Mutex@std@@QAE@XZ			; std::_Mutex::~_Mutex
	test	BYTE PTR ___flags$[esp+4], 1
	je	SHORT $LN13@scalar@19
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN13@scalar@19:
	pop	edi
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::~_String_iterator<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ PROC ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::~_String_iterator<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx
	jmp	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ENDP ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::~_String_iterator<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf<char,std::char_traits<char> >::`vftable'
PUBLIC	??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z ; std::basic_filebuf<char,std::char_traits<char> >::basic_filebuf<char,std::char_traits<char> >
PUBLIC	??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_filebuf<char,std::char_traits<char> > `RTTI Type Descriptor'
PUBLIC	??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::overflow
PUBLIC	?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::pbackfail
PUBLIC	?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_filebuf<char,std::char_traits<char> >::underflow
PUBLIC	?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_filebuf<char,std::char_traits<char> >::uflow
PUBLIC	?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::seekoff
PUBLIC	?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ; std::basic_filebuf<char,std::char_traits<char> >::seekpos
PUBLIC	?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z ; std::basic_filebuf<char,std::char_traits<char> >::setbuf
PUBLIC	?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_filebuf<char,std::char_traits<char> >::sync
PUBLIC	?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ; std::basic_filebuf<char,std::char_traits<char> >::imbue
EXTRN	??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:PROC ; std::basic_filebuf<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8
_DATA	SEGMENT
??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::basic_filebuf<char,std::char_traits<char> > `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
rdata$r	SEGMENT
??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ DD 00H ; std::basic_filebuf<char,std::char_traits<char> >::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8
	DD	FLAT:??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf<char,std::char_traits<char> >::`vftable'
	DD	FLAT:??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
	DD	FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
	DD	FLAT:?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z
	DD	FLAT:?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
	DD	FLAT:?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
	DD	FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
	DD	FLAT:?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z
	DD	FLAT:?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
CONST	ENDS
;	COMDAT ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z
_TEXT	SEGMENT
__File$ = 8						; size = 4
??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::basic_filebuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 125  : 		{	// construct from pointer to C stream

	push	esi
	mov	esi, ecx
	call	??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >

; 126  : 		_Init(_File, _Newfl);

	mov	ecx, esi
	mov	DWORD PTR [esi], OFFSET ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
	mov	BYTE PTR [esi+72], 0
	mov	BYTE PTR [esi+65], 0
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	mov	eax, DWORD PTR __File$[esp]
	test	eax, eax
	je	SHORT $LN7@basic_file
	lea	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR [esi+16], ecx
	mov	DWORD PTR [esi+20], ecx
	lea	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+32], eax
	mov	DWORD PTR [esi+36], eax
	mov	DWORD PTR [esi+48], ecx
	mov	DWORD PTR [esi+52], ecx
$LN7@basic_file:
	mov	DWORD PTR [esi+76], eax
	mov	eax, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
	mov	DWORD PTR [esi+68], eax
	mov	DWORD PTR [esi+60], 0

; 127  : 		}

	mov	eax, esi
	pop	esi
	ret	4
??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::basic_filebuf<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	?not_eof@?$char_traits@D@std@@SAHABH@Z		; std::char_traits<char>::not_eof
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
;	COMDAT ?not_eof@?$char_traits@D@std@@SAHABH@Z
_TEXT	SEGMENT
__Meta$ = 8						; size = 4
?not_eof@?$char_traits@D@std@@SAHABH@Z PROC		; std::char_traits<char>::not_eof, COMDAT

; 515  : 		return (_Meta != eof() ? _Meta : !eof());

	mov	eax, DWORD PTR __Meta$[esp-4]
	mov	ecx, DWORD PTR [eax]
	mov	eax, ecx
	sub	eax, -1
	neg	eax
	sbb	eax, eax
	and	eax, ecx

; 516  : 		}

	ret	0
?not_eof@?$char_traits@D@std@@SAHABH@Z ENDP		; std::char_traits<char>::not_eof
_TEXT	ENDS
PUBLIC	??$_Fgetc@D@std@@YA_NAADPAU_iobuf@@@Z		; std::_Fgetc<char>
EXTRN	_fgetc:PROC
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
;	COMDAT ??$_Fgetc@D@std@@YA_NAADPAU_iobuf@@@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 4
__File$ = 12						; size = 4
??$_Fgetc@D@std@@YA_NAADPAU_iobuf@@@Z PROC		; std::_Fgetc<char>, COMDAT

; 36   : 	int _Meta;
; 37   : 	if ((_Meta = fgetc(_File)) == EOF)

	mov	eax, DWORD PTR __File$[esp-4]
	push	eax
	call	_fgetc
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $LN2@Fgetc

; 38   : 		return (false);

	xor	al, al

; 43   : 		}
; 44   : 	}

	ret	0
$LN2@Fgetc:

; 39   : 	else
; 40   : 		{	// got one, convert to char
; 41   : 		_Byte = (char)_Meta;

	mov	ecx, DWORD PTR __Byte$[esp-4]
	mov	BYTE PTR [ecx], al

; 42   : 		return (true);

	mov	al, 1

; 43   : 		}
; 44   : 	}

	ret	0
??$_Fgetc@D@std@@YA_NAADPAU_iobuf@@@Z ENDP		; std::_Fgetc<char>
_TEXT	ENDS
PUBLIC	??$_Fputc@D@std@@YA_NDPAU_iobuf@@@Z		; std::_Fputc<char>
EXTRN	_fputc:PROC
; Function compile flags: /Ogtpy
;	COMDAT ??$_Fputc@D@std@@YA_NDPAU_iobuf@@@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 1
__File$ = 12						; size = 4
??$_Fputc@D@std@@YA_NDPAU_iobuf@@@Z PROC		; std::_Fputc<char>, COMDAT

; 68   : 	return (fputc(_Byte, _File) != EOF);

	mov	eax, DWORD PTR __File$[esp-4]
	movsx	ecx, BYTE PTR __Byte$[esp-4]
	push	eax
	push	ecx
	call	_fputc
	xor	edx, edx
	add	esp, 8
	cmp	eax, -1
	setne	dl
	mov	al, dl

; 69   : 	}

	ret	0
??$_Fputc@D@std@@YA_NDPAU_iobuf@@@Z ENDP		; std::_Fputc<char>
_TEXT	ENDS
PUBLIC	??$_Ungetc@D@std@@YA_NABDPAU_iobuf@@@Z		; std::_Ungetc<char>
EXTRN	_ungetc:PROC
; Function compile flags: /Ogtpy
;	COMDAT ??$_Ungetc@D@std@@YA_NABDPAU_iobuf@@@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 4
__File$ = 12						; size = 4
??$_Ungetc@D@std@@YA_NABDPAU_iobuf@@@Z PROC		; std::_Ungetc<char>, COMDAT

; 86   : 	return (ungetc((unsigned char)_Byte, _File) != EOF);

	mov	ecx, DWORD PTR __Byte$[esp-4]
	mov	eax, DWORD PTR __File$[esp-4]
	movzx	edx, BYTE PTR [ecx]
	push	eax
	push	edx
	call	_ungetc
	xor	ecx, ecx
	add	esp, 8
	cmp	eax, -1
	setne	cl
	mov	al, cl

; 87   : 	}

	ret	0
??$_Ungetc@D@std@@YA_NABDPAU_iobuf@@@Z ENDP		; std::_Ungetc<char>
_TEXT	ENDS
EXTRN	_fflush:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::sync, COMDAT
; _this$ = ecx

; 448  : 		{	// synchronize C stream with external file

	push	esi
	mov	esi, ecx

; 449  : 		return (_Myfile == 0
; 450  : 			|| _Traits::eq_int_type(_Traits::eof(), overflow())
; 451  : 			|| 0 <= fflush(_Myfile) ? 0 : -1);

	cmp	DWORD PTR [esi+76], 0
	je	SHORT $LN3@sync
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	push	-1
	call	edx
	cmp	eax, -1
	je	SHORT $LN3@sync
	mov	eax, DWORD PTR [esi+76]
	push	eax
	call	_fflush
	add	esp, 4
	test	eax, eax
	jge	SHORT $LN3@sync
	or	eax, -1
	pop	esi

; 452  : 		}

	ret	0
$LN3@sync:

; 449  : 		return (_Myfile == 0
; 450  : 			|| _Traits::eq_int_type(_Traits::eof(), overflow())
; 451  : 			|| 0 <= fflush(_Myfile) ? 0 : -1);

	xor	eax, eax
	pop	esi

; 452  : 		}

	ret	0
?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::sync
_TEXT	ENDS
PUBLIC	?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::eback
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
;	COMDAT ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::eback, COMDAT
; _this$ = ecx

; 186  : 		return (*_IGfirst);

	mov	eax, DWORD PTR [ecx+16]
	mov	eax, DWORD PTR [eax]

; 187  : 		}

	ret	0
?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::eback
_TEXT	ENDS
PUBLIC	?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::egptr
; Function compile flags: /Ogtpy
;	COMDAT ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::egptr, COMDAT
; _this$ = ecx

; 206  : 		return (*_IGnext + *_IGcount);

	mov	eax, DWORD PTR [ecx+48]
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	add	eax, DWORD PTR [ecx]

; 207  : 		}

	ret	0
?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::egptr
_TEXT	ENDS
PUBLIC	?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::epptr
; Function compile flags: /Ogtpy
;	COMDAT ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::epptr, COMDAT
; _this$ = ecx

; 224  : 		return (*_IPnext + *_IPcount);

	mov	eax, DWORD PTR [ecx+52]
	mov	ecx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [eax]
	add	eax, DWORD PTR [ecx]

; 225  : 		}

	ret	0
?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::epptr
_TEXT	ENDS
PUBLIC	?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec
; Function compile flags: /Ogtpy
;	COMDAT ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec, COMDAT
; _this$ = ecx

; 229  : 		++*_IGcount;

	mov	eax, DWORD PTR [ecx+48]
	add	DWORD PTR [eax], 1

; 230  : 		return (--*_IGnext);

	mov	eax, DWORD PTR [ecx+32]
	add	DWORD PTR [eax], -1
	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]

; 231  : 		}

	ret	0
?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec
_TEXT	ENDS
PUBLIC	?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Pninc
; Function compile flags: /Ogtpy
;	COMDAT ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC ; std::basic_streambuf<char,std::char_traits<char> >::_Pninc, COMDAT
; _this$ = ecx

; 272  : 		--*_IPcount;

	mov	eax, DWORD PTR [ecx+52]
	add	DWORD PTR [eax], -1

; 273  : 		return ((*_IPnext)++);

	mov	ecx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx

; 274  : 		}

	ret	0
?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Pninc
_TEXT	ENDS
PUBLIC	??0?$fpos@H@std@@QAE@H_J@Z			; std::fpos<int>::fpos<int>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
;	COMDAT ??0?$fpos@H@std@@QAE@H_J@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__Fileposition$ = 12					; size = 8
??0?$fpos@H@std@@QAE@H_J@Z PROC				; std::fpos<int>::fpos<int>, COMDAT
; _this$ = ecx

; 52   : 		{	// construct with conversion state and C file position

	mov	edx, DWORD PTR __Fileposition$[esp]
	mov	eax, ecx
	mov	ecx, DWORD PTR __Fileposition$[esp-4]
	mov	DWORD PTR [eax+8], ecx
	mov	ecx, DWORD PTR __State$[esp-4]
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+12], edx
	mov	DWORD PTR [eax+16], ecx

; 53   : 		}

	ret	12					; 0000000cH
??0?$fpos@H@std@@QAE@H_J@Z ENDP				; std::fpos<int>::fpos<int>
_TEXT	ENDS
PUBLIC	?state@?$fpos@H@std@@QBEHXZ			; std::fpos<int>::state
; Function compile flags: /Ogtpy
;	COMDAT ?state@?$fpos@H@std@@QBEHXZ
_TEXT	SEGMENT
?state@?$fpos@H@std@@QBEHXZ PROC			; std::fpos<int>::state, COMDAT
; _this$ = ecx

; 57   : 		return (_Mystate);

	mov	eax, DWORD PTR [ecx+16]

; 58   : 		}

	ret	0
?state@?$fpos@H@std@@QBEHXZ ENDP			; std::fpos<int>::state
_TEXT	ENDS
PUBLIC	?seekpos@?$fpos@H@std@@QBE_JXZ			; std::fpos<int>::seekpos
; Function compile flags: /Ogtpy
;	COMDAT ?seekpos@?$fpos@H@std@@QBE_JXZ
_TEXT	SEGMENT
?seekpos@?$fpos@H@std@@QBE_JXZ PROC			; std::fpos<int>::seekpos, COMDAT
; _this$ = ecx

; 67   : 		return (_Fpos);

	mov	eax, DWORD PTR [ecx+8]
	mov	edx, DWORD PTR [ecx+12]

; 68   : 		}

	ret	0
?seekpos@?$fpos@H@std@@QBE_JXZ ENDP			; std::fpos<int>::seekpos
_TEXT	ENDS
PUBLIC	??B?$fpos@H@std@@QBEJXZ				; std::fpos<int>::operator long
; Function compile flags: /Ogtpy
;	COMDAT ??B?$fpos@H@std@@QBEJXZ
_TEXT	SEGMENT
??B?$fpos@H@std@@QBEJXZ PROC				; std::fpos<int>::operator long, COMDAT
; _this$ = ecx

; 72   : 		return (_Myoff + _FPOSOFF(_Fpos));

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

; 73   : 		}

	ret	0
??B?$fpos@H@std@@QBEJXZ ENDP				; std::fpos<int>::operator long
_TEXT	ENDS
PUBLIC	?in@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z ; std::codecvt<char,char,int>::in
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ?in@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__First1$ = 12						; size = 4
__Last1$ = 16						; size = 4
__Mid1$ = 20						; size = 4
__First2$ = 24						; size = 4
__Last2$ = 28						; size = 4
__Mid2$ = 32						; size = 4
?in@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z PROC	; std::codecvt<char,char,int>::in, COMDAT
; _this$ = ecx

; 718  : 		return (do_in(_State,
; 719  : 			_First1, _Last1, _Mid1, _First2, _Last2, _Mid2));

	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+16]
	jmp	eax
?in@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z ENDP	; std::codecvt<char,char,int>::in
_TEXT	ENDS
PUBLIC	?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z ; std::codecvt<char,char,int>::out
; Function compile flags: /Ogtpy
;	COMDAT ?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__First1$ = 12						; size = 4
__Last1$ = 16						; size = 4
__Mid1$ = 20						; size = 4
__First2$ = 24						; size = 4
__Last2$ = 28						; size = 4
__Mid2$ = 32						; size = 4
?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z PROC ; std::codecvt<char,char,int>::out, COMDAT
; _this$ = ecx

; 726  : 		return (do_out(_State,
; 727  : 			_First1, _Last1, _Mid1, _First2, _Last2, _Mid2));

	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+20]
	jmp	eax
?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z ENDP ; std::codecvt<char,char,int>::out
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
__Meta$ = 8						; size = 4
?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::pbackfail, COMDAT
; _this$ = ecx

; 283  : 		if (_Mysb::gptr() != 0
; 284  : 			&& _Mysb::eback() < _Mysb::gptr()
; 285  : 			&& (_Traits::eq_int_type(_Traits::eof(), _Meta)
; 286  : 			|| _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]),
; 287  : 				_Meta)))

	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	push	ebx
	mov	ebx, DWORD PTR __Meta$[esp]
	je	SHORT $LN10@pbackfail
	mov	edx, DWORD PTR [ecx+16]
	cmp	DWORD PTR [edx], eax
	jae	SHORT $LN10@pbackfail
	cmp	ebx, -1
	je	SHORT $LN9@pbackfail
	movzx	eax, BYTE PTR [eax-1]
	cmp	eax, ebx
	jne	SHORT $LN10@pbackfail
$LN9@pbackfail:

; 288  : 			{	// just back up position
; 289  : 			_Mysb::_Gndec();

	mov	eax, DWORD PTR [ecx+48]
	add	DWORD PTR [eax], 1
	mov	ecx, DWORD PTR [ecx+32]
	add	DWORD PTR [ecx], -1

; 290  : 			return (_Traits::not_eof(_Meta));

	mov	eax, ebx
	sub	eax, -1
	neg	eax
	sbb	eax, eax
	and	eax, ebx
	pop	ebx

; 296  : #pragma warning(push)
; 297  : #pragma warning(disable: 6237 6239)
; 298  : 		/* prefast noise VSW 489858 */
; 299  : 		else if (1 < sizeof (_Elem) && _Mysb::gptr() != &_Mychar)
; 300  : #pragma warning(pop)
; 301  : 			{	// putback to _Mychar
; 302  : 			_Mychar = _Traits::to_char_type(_Meta);
; 303  : 			_Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1);
; 304  : 			return (_Meta);
; 305  : 			}
; 306  : 		else
; 307  : 			return (_Traits::eof());	// nowhere to put back
; 308  : 		}

	ret	4
$LN10@pbackfail:

; 291  : 			}
; 292  : 		else if (_Myfile == 0 || _Traits::eq_int_type(_Traits::eof(), _Meta))

	mov	eax, DWORD PTR [ecx+76]
	test	eax, eax
	je	SHORT $LN6@pbackfail
	cmp	ebx, -1
	je	SHORT $LN6@pbackfail

; 294  : 		else if (_Pcvt == 0 && _Ungetc(_Traits::to_char_type(_Meta), _Myfile))

	cmp	DWORD PTR [ecx+60], 0
	jne	SHORT $LN6@pbackfail
	movzx	ecx, bl
	push	eax
	push	ecx
	call	_ungetc
	add	esp, 8
	cmp	eax, -1
	je	SHORT $LN6@pbackfail

; 295  : 			return (_Meta);	// no facet and unget succeeded, return

	mov	eax, ebx
	pop	ebx

; 296  : #pragma warning(push)
; 297  : #pragma warning(disable: 6237 6239)
; 298  : 		/* prefast noise VSW 489858 */
; 299  : 		else if (1 < sizeof (_Elem) && _Mysb::gptr() != &_Mychar)
; 300  : #pragma warning(pop)
; 301  : 			{	// putback to _Mychar
; 302  : 			_Mychar = _Traits::to_char_type(_Meta);
; 303  : 			_Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1);
; 304  : 			return (_Meta);
; 305  : 			}
; 306  : 		else
; 307  : 			return (_Traits::eof());	// nowhere to put back
; 308  : 		}

	ret	4
$LN6@pbackfail:

; 293  : 			return (_Traits::eof());	// no open C stream or EOF, fail

	or	eax, -1
	pop	ebx

; 296  : #pragma warning(push)
; 297  : #pragma warning(disable: 6237 6239)
; 298  : 		/* prefast noise VSW 489858 */
; 299  : 		else if (1 < sizeof (_Elem) && _Mysb::gptr() != &_Mychar)
; 300  : #pragma warning(pop)
; 301  : 			{	// putback to _Mychar
; 302  : 			_Mychar = _Traits::to_char_type(_Meta);
; 303  : 			_Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1);
; 304  : 			return (_Meta);
; 305  : 			}
; 306  : 		else
; 307  : 			return (_Traits::eof());	// nowhere to put back
; 308  : 		}

	ret	4
?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::pbackfail
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::underflow, COMDAT
; _this$ = ecx

; 311  : 		{	// get an element from stream, but don't point past it

	push	esi
	mov	esi, ecx

; 312  : 		int_type _Meta;
; 313  : 		if (_Mysb::gptr() != 0
; 314  : 			&& _Mysb::gptr() < _Mysb::egptr())

	mov	eax, DWORD PTR [esi+32]
	mov	ecx, DWORD PTR [eax]
	test	ecx, ecx
	je	SHORT $LN4@underflow
	mov	edx, eax
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [edx]
	add	edx, eax
	cmp	eax, edx
	jae	SHORT $LN4@underflow

; 315  : 			return (_Traits::to_int_type(*_Mysb::gptr()));	// return buffered

	movzx	eax, BYTE PTR [ecx]
	pop	esi

; 322  : 			}
; 323  : 		}

	ret	0
$LN4@underflow:

; 316  : 		else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow()))

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+20]
	push	edi
	mov	ecx, esi
	call	edx
	mov	edi, eax
	cmp	edi, -1
	jne	SHORT $LN2@underflow
	pop	edi

; 317  : 			return (_Meta);	// uflow failed, return EOF

	or	eax, eax
	pop	esi

; 322  : 			}
; 323  : 		}

	ret	0
$LN2@underflow:

; 318  : 		else
; 319  : 			{	// get a char, don't point past it
; 320  : 			pbackfail(_Meta);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	push	edi
	mov	ecx, esi
	call	edx

; 321  : 			return (_Meta);

	mov	eax, edi
	pop	edi
	pop	esi

; 322  : 			}
; 323  : 		}

	ret	0
?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::underflow
_TEXT	ENDS
EXTRN	_setvbuf:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z
_TEXT	SEGMENT
__Buffer$ = 8						; size = 4
__Count$ = 12						; size = 4
?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::setbuf, COMDAT
; _this$ = ecx

; 435  : 		{	// offer _Buffer to C stream

	push	esi
	mov	esi, ecx

; 436  : 		if (_Myfile == 0 || setvbuf(_Myfile, (char *)_Buffer,
; 437  : 			_Buffer == 0 && _Count == 0 ? _IONBF : _IOFBF,
; 438  : 			_Count * sizeof (_Elem)) != 0)

	mov	ecx, DWORD PTR [esi+76]
	test	ecx, ecx
	push	edi
	je	SHORT $LN2@setbuf
	mov	edx, DWORD PTR __Buffer$[esp+4]
	test	edx, edx
	mov	edi, DWORD PTR __Count$[esp+4]
	jne	SHORT $LN6@setbuf
	test	edi, edi
	jne	SHORT $LN6@setbuf
	lea	eax, DWORD PTR [edi+4]
	jmp	SHORT $LN7@setbuf
$LN6@setbuf:
	xor	eax, eax
$LN7@setbuf:
	push	edi
	push	eax
	push	edx
	push	ecx
	call	_setvbuf
	add	esp, 16					; 00000010H
	test	eax, eax
	jne	SHORT $LN2@setbuf

; 440  : 		else
; 441  : 			{	// new buffer, reinitialize pointers
; 442  : 			_Init(_Myfile, _Openfl);

	mov	edi, DWORD PTR [esi+76]
	mov	ecx, esi
	mov	BYTE PTR [esi+72], 1
	mov	BYTE PTR [esi+65], al
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	test	edi, edi
	je	SHORT $LN11@setbuf
	lea	eax, DWORD PTR [edi+8]
	mov	DWORD PTR [esi+16], eax
	mov	DWORD PTR [esi+20], eax
	lea	eax, DWORD PTR [edi+4]
	mov	DWORD PTR [esi+32], edi
	mov	DWORD PTR [esi+36], edi
	mov	DWORD PTR [esi+48], eax
	mov	DWORD PTR [esi+52], eax
$LN11@setbuf:
	mov	DWORD PTR [esi+76], edi
	mov	eax, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
	mov	DWORD PTR [esi+68], eax
	pop	edi
	mov	DWORD PTR [esi+60], 0

; 443  : 			return (this);

	mov	eax, esi
	pop	esi

; 444  : 			}
; 445  : 		}

	ret	8
$LN2@setbuf:
	pop	edi

; 439  : 			return (0);	// failed

	xor	eax, eax
	pop	esi

; 444  : 			}
; 445  : 		}

	ret	8
?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::setbuf
_TEXT	ENDS
PUBLIC	??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@ABU01@@Z ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@ABU01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@ABU01@@Z PROC ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	mov	esi, ecx
	push	eax
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	eax, esi
	pop	esi
	ret	4
??0?$_Iterator_with_base@Uinput_iterator_tag@std@@DJPADAADV_Iterator_base@2@@std@@QAE@ABU01@@Z ENDP ; std::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>::_Iterator_with_base<std::input_iterator_tag,char,long,char *,char &,std::_Iterator_base>
_TEXT	ENDS
PUBLIC	?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
EXTRN	?_Xlen@_String_base@std@@SAXXZ:PROC		; std::_String_base::_Xlen
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
__Trim$ = 12						; size = 1
?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow, COMDAT
; _this$ = ecx

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

	push	ebx

; 2037 : 			if (max_size() < _Newsize)

	mov	ebx, DWORD PTR __Newsize$[esp]
	cmp	ebx, -2					; fffffffeH
	push	esi
	mov	esi, ecx
	jbe	SHORT $LN6@Grow

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

	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN6@Grow:

; 2039 : 		if (_Myres < _Newsize)

	mov	eax, DWORD PTR [esi+28]
	cmp	eax, ebx
	jae	SHORT $LN5@Grow

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

	mov	eax, DWORD PTR [esi+24]
	push	eax
	push	ebx
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy

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

	xor	ecx, ecx
	cmp	ecx, ebx
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebx

; 2047 : 		}

	ret	8
$LN5@Grow:

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

	cmp	BYTE PTR __Trim$[esp+4], 0
	je	SHORT $LN3@Grow
	cmp	ebx, 16					; 00000010H
	jae	SHORT $LN3@Grow
	push	edi

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

	mov	edi, DWORD PTR [esi+24]
	cmp	ebx, edi
	jae	SHORT $LN9@Grow
	mov	edi, ebx
$LN9@Grow:
	cmp	eax, 16					; 00000010H
	jb	SHORT $LN33@Grow
	test	edi, edi
	lea	eax, DWORD PTR [esi+8]
	push	ebp
	mov	ebp, DWORD PTR [eax]
	jbe	SHORT $LN31@Grow
	push	edi
	push	ebp
	push	16					; 00000010H
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H
$LN31@Grow:
	push	ebp
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	ebp
$LN33@Grow:
	mov	DWORD PTR [esi+24], edi
	mov	DWORD PTR [esi+28], 15			; 0000000fH

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

	xor	ecx, ecx
	mov	BYTE PTR [esi+edi+8], 0
	cmp	ecx, ebx
	pop	edi
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebx

; 2047 : 		}

	ret	8
$LN3@Grow:

; 2044 : 		else if (_Newsize == 0)

	test	ebx, ebx
	jne	SHORT $LN49@Grow

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

	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+24], ebx
	jb	SHORT $LN47@Grow
	mov	esi, DWORD PTR [esi+8]

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

	xor	ecx, ecx
	cmp	ecx, ebx
	mov	BYTE PTR [esi], bl
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebx

; 2047 : 		}

	ret	8

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

$LN47@Grow:
	add	esi, 8
	mov	BYTE PTR [esi], 0
$LN49@Grow:

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

	xor	ecx, ecx
	cmp	ecx, ebx
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebx

; 2047 : 		}

	ret	8
?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
_TEXT	ENDS
PUBLIC	??0?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PADPBV_Container_base@1@@Z ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_iterator<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PADPBV_Container_base@1@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Pstring$ = 12						; size = 4
??0?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PADPBV_Container_base@1@@Z PROC ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_iterator<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 333  : 		{	// construct with pointer _Ptr

	mov	eax, DWORD PTR __Pstring$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR __Ptr$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >

; 334  : 		}

	mov	eax, esi
	pop	esi
	ret	8
??0?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PADPBV_Container_base@1@@Z ENDP ; std::_String_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_iterator<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??_7runtime_error@std@@6B@			; std::runtime_error::`vftable'
PUBLIC	??1runtime_error@std@@UAE@XZ			; std::runtime_error::~runtime_error
PUBLIC	??_R4runtime_error@std@@6B@			; std::runtime_error::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVruntime_error@std@@@8			; std::runtime_error `RTTI Type Descriptor'
PUBLIC	??_R3runtime_error@std@@8			; std::runtime_error::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2runtime_error@std@@8			; std::runtime_error::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@runtime_error@std@@8		; std::runtime_error::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?what@runtime_error@std@@UBEPBDXZ		; std::runtime_error::what
EXTRN	??_Eruntime_error@std@@UAEPAXI@Z:PROC		; std::runtime_error::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@runtime_error@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\xutility
rdata$r	SEGMENT
??_R1A@?0A@EA@runtime_error@std@@8 DD FLAT:??_R0?AVruntime_error@std@@@8 ; std::runtime_error::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3runtime_error@std@@8
rdata$r	ENDS
;	COMDAT ??_R2runtime_error@std@@8
rdata$r	SEGMENT
??_R2runtime_error@std@@8 DD FLAT:??_R1A@?0A@EA@runtime_error@std@@8 ; std::runtime_error::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R3runtime_error@std@@8
rdata$r	SEGMENT
??_R3runtime_error@std@@8 DD 00H			; std::runtime_error::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2runtime_error@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVruntime_error@std@@@8
_DATA	SEGMENT
??_R0?AVruntime_error@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::runtime_error `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVruntime_error@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4runtime_error@std@@6B@
rdata$r	SEGMENT
??_R4runtime_error@std@@6B@ DD 00H			; std::runtime_error::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVruntime_error@std@@@8
	DD	FLAT:??_R3runtime_error@std@@8
rdata$r	ENDS
;	COMDAT ??_7runtime_error@std@@6B@
CONST	SEGMENT
??_7runtime_error@std@@6B@ DD FLAT:??_R4runtime_error@std@@6B@ ; std::runtime_error::`vftable'
	DD	FLAT:??_Eruntime_error@std@@UAEPAXI@Z
	DD	FLAT:?what@runtime_error@std@@UBEPBDXZ
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\stdexcept
CONST	ENDS
;	COMDAT ??1runtime_error@std@@UAE@XZ
_TEXT	SEGMENT
??1runtime_error@std@@UAE@XZ PROC			; std::runtime_error::~runtime_error, COMDAT
; _this$ = ecx

; 158  : 		{	// destroy the object

	push	esi
	push	edi
	mov	edi, ecx

; 159  : 		}

	lea	esi, DWORD PTR [edi+12]
	mov	DWORD PTR [edi], OFFSET ??_7runtime_error@std@@6B@
	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN19@runtime_er
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN19@runtime_er:
	xor	eax, eax
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], eax
	mov	ecx, esi
	mov	BYTE PTR [esi+8], al
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	mov	ecx, edi
	pop	edi
	pop	esi
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
??1runtime_error@std@@UAE@XZ ENDP			; std::runtime_error::~runtime_error
_TEXT	ENDS
PUBLIC	?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ
_TEXT	SEGMENT
?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str, COMDAT
; _this$ = ecx

; 1622 : 		return (_Myptr());

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	jb	SHORT $LN5@c_str
	mov	eax, DWORD PTR [ecx+8]

; 1623 : 		}

	ret	0

; 1622 : 		return (_Myptr());

$LN5@c_str:
	lea	eax, DWORD PTR [ecx+8]

; 1623 : 		}

	ret	0
?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\stdexcept
_TEXT	ENDS
;	COMDAT ?what@runtime_error@std@@UBEPBDXZ
_TEXT	SEGMENT
?what@runtime_error@std@@UBEPBDXZ PROC			; std::runtime_error::what, COMDAT
; _this$ = ecx

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

	cmp	DWORD PTR [ecx+40], 16			; 00000010H
	jb	SHORT $LN7@what
	mov	eax, DWORD PTR [ecx+20]

; 164  : 		}

	ret	0

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

$LN7@what:
	lea	eax, DWORD PTR [ecx+20]

; 164  : 		}

	ret	0
?what@runtime_error@std@@UBEPBDXZ ENDP			; std::runtime_error::what
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Gruntime_error@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gruntime_error@std@@UAEPAXI@Z PROC			; std::runtime_error::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	push	edi
	mov	edi, ecx
	lea	esi, DWORD PTR [edi+12]
	mov	DWORD PTR [edi], OFFSET ??_7runtime_error@std@@6B@
	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN22@scalar@20
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN22@scalar@20:
	xor	eax, eax
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], eax
	mov	ecx, esi
	mov	BYTE PTR [esi+8], al
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	mov	ecx, edi
	call	??1exception@std@@UAE@XZ		; std::exception::~exception
	test	BYTE PTR ___flags$[esp+4], 1
	je	SHORT $LN38@scalar@20
	push	edi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN38@scalar@20:
	mov	eax, edi
	pop	edi
	pop	esi
	ret	4
??_Gruntime_error@std@@UAEPAXI@Z ENDP			; std::runtime_error::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??1_Locinfo@std@@QAE@XZ				; std::_Locinfo::~_Locinfo
EXTRN	?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z:PROC	; std::_Locinfo::_Locinfo_dtor
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xutility
xdata$x	SEGMENT
__ehfuncinfo$??1_Locinfo@std@@QAE@XZ DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$??1_Locinfo@std@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$??1_Locinfo@std@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1_Locinfo@std@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1_Locinfo@std@@QAE@XZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$??1_Locinfo@std@@QAE@XZ$2
	DD	02H
	DD	FLAT:__unwindfunclet$??1_Locinfo@std@@QAE@XZ$3
	DD	03H
	DD	FLAT:__unwindfunclet$??1_Locinfo@std@@QAE@XZ$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocinfo
xdata$x	ENDS
;	COMDAT ??1_Locinfo@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1_Locinfo@std@@QAE@XZ PROC				; std::_Locinfo::~_Locinfo, COMDAT
; _this$ = ecx

; 92   :         {

	push	-1
	push	__ehhandler$??1_Locinfo@std@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	edi, ecx
	mov	DWORD PTR _this$[esp+32], edi

; 93   :         _Locinfo_dtor(this);

	push	edi
	mov	DWORD PTR __$EHRec$[esp+44], 4
	call	?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z ; std::_Locinfo::_Locinfo_dtor

; 94   :         }

	lea	esi, DWORD PTR [edi+100]
	add	esp, 4
	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	BYTE PTR __$EHRec$[esp+40], 3
	jb	SHORT $LN25@Locinfo
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN25@Locinfo:
	xor	ebx, ebx
	mov	ebp, 15					; 0000000fH
	mov	DWORD PTR [esi+28], ebp
	mov	DWORD PTR [esi+24], ebx
	mov	ecx, esi
	mov	BYTE PTR [esi+8], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	cmp	DWORD PTR [edi+96], 16			; 00000010H
	lea	esi, DWORD PTR [edi+68]
	mov	BYTE PTR __$EHRec$[esp+40], 2
	jb	SHORT $LN60@Locinfo
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN60@Locinfo:
	mov	DWORD PTR [esi+28], ebp
	mov	DWORD PTR [esi+24], ebx
	mov	ecx, esi
	mov	BYTE PTR [esi+8], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	cmp	DWORD PTR [edi+64], 16			; 00000010H
	lea	esi, DWORD PTR [edi+36]
	mov	BYTE PTR __$EHRec$[esp+40], 1
	jb	SHORT $LN95@Locinfo
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN95@Locinfo:
	mov	DWORD PTR [esi+28], ebp
	mov	DWORD PTR [esi+24], ebx
	mov	ecx, esi
	mov	BYTE PTR [esi+8], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	cmp	DWORD PTR [edi+32], 16			; 00000010H
	lea	esi, DWORD PTR [edi+4]
	mov	BYTE PTR __$EHRec$[esp+40], bl
	jb	SHORT $LN130@Locinfo
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN130@Locinfo:
	mov	DWORD PTR [esi+28], ebp
	mov	DWORD PTR [esi+24], ebx
	mov	ecx, esi
	mov	BYTE PTR [esi+8], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+40], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1_Locinfo@std@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$??1_Locinfo@std@@QAE@XZ$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 4
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??1_Locinfo@std@@QAE@XZ$2:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 36					; 00000024H
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??1_Locinfo@std@@QAE@XZ$3:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 68					; 00000044H
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??1_Locinfo@std@@QAE@XZ$4:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 100				; 00000064H
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$??1_Locinfo@std@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1_Locinfo@std@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1_Locinfo@std@@QAE@XZ ENDP				; std::_Locinfo::~_Locinfo
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 990  : 		{	// append _Count * _Ch

	push	ebx

; 991  : 			if (npos - _Mysize <= _Count)

	mov	ebx, DWORD PTR __Count$[esp]
	push	esi
	or	eax, -1
	mov	esi, ecx
	sub	eax, DWORD PTR [esi+24]
	cmp	eax, ebx
	ja	SHORT $LN2@append

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

	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN2@append:

; 993  : 
; 994  : 		size_type _Num;
; 995  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

	test	ebx, ebx
	jbe	$LN63@append
	push	edi
	mov	edi, DWORD PTR [esi+24]
	add	edi, ebx
	cmp	edi, -2					; fffffffeH
	jbe	SHORT $LN10@append
	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN10@append:
	mov	eax, DWORD PTR [esi+28]
	cmp	eax, edi
	jae	SHORT $LN9@append
	mov	ecx, DWORD PTR [esi+24]
	push	ecx
	push	edi
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	edi, edi
$LN66@append:
	jbe	SHORT $LN64@append

; 996  : 			{	// make room and append new stuff using assign
; 997  : 			_Chassign(_Mysize, _Count, _Ch);

	mov	edx, DWORD PTR __Ch$[esp+8]
	mov	eax, DWORD PTR [esi+24]
	push	edx
	push	ebx
	push	eax
	mov	ecx, esi
	call	?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign

; 998  : 			_Eos(_Num);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN59@append
	mov	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax+edi], 0
	pop	edi

; 999  : 			}
; 1000 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1001 : 		}

	ret	8

; 993  : 
; 994  : 		size_type _Num;
; 995  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN9@append:
	test	edi, edi
	jne	SHORT $LN66@append
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN51@append
	mov	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 999  : 			}
; 1000 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1001 : 		}

	ret	8

; 993  : 
; 994  : 		size_type _Num;
; 995  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN51@append:
	lea	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 999  : 			}
; 1000 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1001 : 		}

	ret	8

; 998  : 			_Eos(_Num);

$LN59@append:
	lea	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax+edi], 0
$LN64@append:
	pop	edi
$LN63@append:

; 999  : 			}
; 1000 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1001 : 		}

	ret	8
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1038 : 		{	// assign _Right [_Roff, _Roff + _Count)

	push	ebx

; 1039 : 		if (_Right.size() < _Roff)

	mov	ebx, DWORD PTR __Right$[esp]
	push	ebp
	mov	ebp, DWORD PTR __Roff$[esp+4]
	cmp	DWORD PTR [ebx+24], ebp
	push	esi
	push	edi
	mov	esi, ecx
	jae	SHORT $LN5@assign

; 1040 : 			_String_base::_Xran();	// _Roff off end

	call	?_Xran@_String_base@std@@SAXXZ		; std::_String_base::_Xran
$LN5@assign:

; 1041 : 		size_type _Num = _Right.size() - _Roff;

	mov	edi, DWORD PTR [ebx+24]

; 1042 : 		if (_Count < _Num)

	mov	eax, DWORD PTR __Count$[esp+12]
	sub	edi, ebp
	cmp	eax, edi
	jae	SHORT $LN4@assign

; 1043 : 			_Num = _Count;	// trim _Num to size

	mov	edi, eax
$LN4@assign:

; 1044 : 
; 1045 : 		if (this == &_Right)

	cmp	esi, ebx
	jne	SHORT $LN3@assign

; 1046 : 			erase((size_type)(_Roff + _Num)), erase(0, _Roff);	// substring

	push	-1
	add	edi, ebp
	push	edi
	mov	ecx, esi
	call	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
	push	ebp
	push	0
	mov	ecx, esi
	call	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
	pop	edi

; 1051 : 			}
; 1052 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 1053 : 		}

	ret	12					; 0000000cH
$LN3@assign:

; 1047 : 		else if (_Grow(_Num))

	cmp	edi, -2					; fffffffeH
	jbe	SHORT $LN17@assign
	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN17@assign:
	mov	eax, DWORD PTR [esi+28]
	cmp	eax, edi
	jae	SHORT $LN16@assign
	mov	eax, DWORD PTR [esi+24]
	push	eax
	push	edi
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	edi, edi
$LN87@assign:
	jbe	SHORT $LN86@assign

; 1048 : 			{	// make room and assign new stuff
; 1049 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Right._Myptr() + _Roff, _Num);

	cmp	DWORD PTR [ebx+28], 16			; 00000010H
	jb	SHORT $LN64@assign
	mov	edx, DWORD PTR [ebx+8]
	jmp	SHORT $LN65@assign

; 1047 : 		else if (_Grow(_Num))

$LN16@assign:
	test	edi, edi
	jne	SHORT $LN87@assign
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN58@assign
	mov	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 1051 : 			}
; 1052 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 1053 : 		}

	ret	12					; 0000000cH

; 1047 : 		else if (_Grow(_Num))

$LN58@assign:
	lea	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 1051 : 			}
; 1052 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 1053 : 		}

	ret	12					; 0000000cH

; 1048 : 			{	// make room and assign new stuff
; 1049 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Right._Myptr() + _Roff, _Num);

$LN64@assign:
	lea	edx, DWORD PTR [ebx+8]
$LN65@assign:
	mov	ecx, DWORD PTR [esi+28]
	cmp	ecx, 16					; 00000010H
	lea	ebx, DWORD PTR [esi+8]
	jb	SHORT $LN68@assign
	mov	eax, DWORD PTR [ebx]
	jmp	SHORT $LN69@assign
$LN68@assign:
	mov	eax, ebx
$LN69@assign:
	push	edi
	add	edx, ebp
	push	edx
	push	ecx
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H

; 1050 : 			_Eos(_Num);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN82@assign
	mov	ebx, DWORD PTR [ebx]
$LN82@assign:
	mov	BYTE PTR [ebx+edi], 0
$LN86@assign:
	pop	edi

; 1051 : 			}
; 1052 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 1053 : 		}

	ret	12					; 0000000cH
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
; Function compile flags: /Ogtpy
;	COMDAT ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T30228 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin, COMDAT
; _this$ = ecx

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

	push	ecx

; 1473 : 		return (_STRING_ITERATOR(_Myptr()));

	cmp	DWORD PTR [ecx+28], 16			; 00000010H
	mov	DWORD PTR $T30228[esp+4], 0
	jb	SHORT $LN7@begin
	mov	eax, DWORD PTR [ecx+8]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	ecx
	push	eax
	mov	ecx, esi
	call	??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >
	mov	eax, esi
	pop	esi

; 1474 : 		}

	pop	ecx
	ret	4

; 1473 : 		return (_STRING_ITERATOR(_Myptr()));

$LN7@begin:
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	lea	eax, DWORD PTR [ecx+8]
	push	ecx
	push	eax
	mov	ecx, esi
	call	??0?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDPBV_Container_base@1@@Z ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >
	mov	eax, esi
	pop	esi

; 1474 : 		}

	pop	ecx
	ret	4
?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
_TEXT	ENDS
PUBLIC	??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >, COMDAT
; _this$ = ecx
	push	esi
	push	edi
	mov	edi, DWORD PTR ___that$[esp+4]
	mov	esi, ecx
	push	edi
	mov	DWORD PTR [esi], 0
	mov	DWORD PTR [esi+4], 0
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	eax, DWORD PTR [edi+8]
	mov	DWORD PTR [esi+8], eax
	mov	cl, BYTE PTR [edi+12]
	mov	BYTE PTR [esi+12], cl
	mov	dl, BYTE PTR [edi+13]
	pop	edi
	mov	BYTE PTR [esi+13], dl
	mov	eax, esi
	pop	esi
	ret	4
??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Num$ = 12						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1056 : 		{	// assign [_Ptr, _Ptr + _Num)

	push	ebp

; 1057 : 		if (_Inside(_Ptr))

	mov	ebp, DWORD PTR __Ptr$[esp]
	push	esi
	push	ebp
	mov	esi, ecx
	call	?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside
	test	al, al
	je	SHORT $LN2@assign@2

; 1058 : 			return (assign(*this, _Ptr - _Myptr(), _Num));	// substring

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN7@assign@2
	mov	eax, DWORD PTR [esi+8]
	mov	ecx, DWORD PTR __Num$[esp+4]
	push	ecx
	sub	ebp, eax
	push	ebp
	push	esi
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	esi
	pop	ebp

; 1066 : 		}

	ret	8

; 1058 : 			return (assign(*this, _Ptr - _Myptr(), _Num));	// substring

$LN7@assign@2:
	mov	ecx, DWORD PTR __Num$[esp+4]
	lea	eax, DWORD PTR [esi+8]
	push	ecx
	sub	ebp, eax
	push	ebp
	push	esi
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	esi
	pop	ebp

; 1066 : 		}

	ret	8
$LN2@assign@2:
	push	edi

; 1059 : 
; 1060 : 		if (_Grow(_Num))

	mov	edi, DWORD PTR __Num$[esp+8]
	cmp	edi, -2					; fffffffeH
	jbe	SHORT $LN14@assign@2
	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN14@assign@2:
	mov	eax, DWORD PTR [esi+28]
	cmp	eax, edi
	jae	SHORT $LN13@assign@2
	mov	edx, DWORD PTR [esi+24]
	push	edx
	push	edi
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	edi, edi
$LN79@assign@2:
	jbe	SHORT $LN77@assign@2

; 1061 : 			{	// make room and assign new stuff
; 1062 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Ptr, _Num);

	mov	ecx, DWORD PTR [esi+28]
	cmp	ecx, 16					; 00000010H
	push	ebx
	lea	ebx, DWORD PTR [esi+8]
	jb	SHORT $LN61@assign@2
	mov	eax, DWORD PTR [ebx]
	jmp	SHORT $LN62@assign@2

; 1059 : 
; 1060 : 		if (_Grow(_Num))

$LN13@assign@2:
	test	edi, edi
	jne	SHORT $LN79@assign@2
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN55@assign@2
	mov	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 1064 : 			}
; 1065 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 1066 : 		}

	ret	8

; 1059 : 
; 1060 : 		if (_Grow(_Num))

$LN55@assign@2:
	lea	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 1064 : 			}
; 1065 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 1066 : 		}

	ret	8

; 1061 : 			{	// make room and assign new stuff
; 1062 : 			_Traits_helper::copy_s<_Traits>(_Myptr(), _Myres, _Ptr, _Num);

$LN61@assign@2:
	mov	eax, ebx
$LN62@assign@2:
	push	edi
	push	ebp
	push	ecx
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H

; 1063 : 			_Eos(_Num);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN75@assign@2
	mov	ebx, DWORD PTR [ebx]
$LN75@assign@2:
	mov	BYTE PTR [ebx+edi], 0
	pop	ebx
$LN77@assign@2:
	pop	edi

; 1064 : 			}
; 1065 : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 1066 : 		}

	ret	8
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1074 : 		{	// assign _Count * _Ch

	push	esi
	push	edi

; 1075 : 		if (_Count == npos)

	mov	edi, DWORD PTR __Count$[esp+4]
	cmp	edi, -1
	mov	esi, ecx
	jne	SHORT $LN2@assign@3

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

	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen

; 1077 : 
; 1078 : 		if (_Grow(_Count))

	jmp	SHORT $LN63@assign@3
$LN2@assign@3:
	cmp	edi, -2					; fffffffeH
	jbe	SHORT $LN10@assign@3
$LN63@assign@3:
	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN10@assign@3:
	mov	eax, DWORD PTR [esi+28]
	cmp	eax, edi
	jae	SHORT $LN9@assign@3
	mov	eax, DWORD PTR [esi+24]
	push	eax
	push	edi
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	edi, edi
$LN65@assign@3:
	jbe	SHORT $LN64@assign@3

; 1079 : 			{	// make room and assign new stuff
; 1080 : 			_Chassign(0, _Count, _Ch);

	mov	ecx, DWORD PTR __Ch$[esp+4]
	push	ecx
	push	edi
	push	0
	mov	ecx, esi
	call	?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Chassign

; 1081 : 			_Eos(_Count);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN59@assign@3
	mov	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax+edi], 0
	pop	edi

; 1082 : 			}
; 1083 : 		return (*this);

	mov	eax, esi
	pop	esi

; 1084 : 		}

	ret	8

; 1077 : 
; 1078 : 		if (_Grow(_Count))

$LN9@assign@3:
	test	edi, edi
	jne	SHORT $LN65@assign@3
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN51@assign@3
	mov	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax], 0
	pop	edi

; 1082 : 			}
; 1083 : 		return (*this);

	mov	eax, esi
	pop	esi

; 1084 : 		}

	ret	8

; 1077 : 
; 1078 : 		if (_Grow(_Count))

$LN51@assign@3:
	lea	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax], 0
	pop	edi

; 1082 : 			}
; 1083 : 		return (*this);

	mov	eax, esi
	pop	esi

; 1084 : 		}

	ret	8

; 1081 : 			_Eos(_Count);

$LN59@assign@3:
	lea	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax+edi], 0
$LN64@assign@3:
	pop	edi

; 1082 : 			}
; 1083 : 		return (*this);

	mov	eax, esi
	pop	esi

; 1084 : 		}

	ret	8
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z$0
__ehfuncinfo$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	ENDS
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Right$ = 8						; size = 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 720  : 		{	// construct by copying _Right

	push	-1
	push	__ehhandler$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	eax, DWORD PTR __Right$[esp+12]
	push	esi
	mov	esi, ecx
	xor	ecx, ecx
	mov	DWORD PTR [esi], ecx
	cmp	DWORD PTR [eax], -3			; fffffffdH
	mov	DWORD PTR _this$[esp+20], esi
	jne	SHORT $LN4@basic_stri@2
	mov	DWORD PTR [esi], -3			; fffffffdH
$LN4@basic_stri@2:

; 721  : 		_Tidy();
; 722  : 		assign(_Right, 0, npos);

	push	-1
	mov	DWORD PTR [esi+24], ecx
	push	ecx
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR __$EHRec$[esp+36], ecx
	mov	BYTE PTR [esi+8], cl
	push	eax
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 723  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ
__ehhandler$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
xdata$x	SEGMENT
__ehfuncinfo$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ DD 019930522H
	DD	08H
	DD	FLAT:__unwindtable$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$2
	DD	01H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$9
	DD	00H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$13
	DD	00H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$3
	DD	00H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$4
	DD	00H
	DD	FLAT:__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$5
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
__Ch$21924 = -121					; size = 1
__Src$21926 = -120					; size = 4
__Lock$31072 = -116					; size = 4
__Lock$31104 = -112					; size = 4
__Dest$21925 = -108					; size = 4
$T30829 = -104						; size = 12
$T30828 = -92						; size = 12
$T30832 = -80						; size = 12
$T30833 = -68						; size = 12
$T30830 = -56						; size = 12
__Str$21920 = -44					; size = 32
__$EHRec$ = -12						; size = 12
?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::uflow, COMDAT
; _this$ = ecx

; 326  : 		{	// get an element from stream, point past it

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 112				; 00000070H
	push	ebx
	mov	ebx, ecx

; 327  : 		if (_Mysb::gptr() != 0
; 328  : 			&& _Mysb::gptr() < _Mysb::egptr())

	mov	eax, DWORD PTR [ebx+32]
	mov	eax, DWORD PTR [eax]
	xor	ecx, ecx
	cmp	eax, ecx
	je	SHORT $LN19@uflow@2
	mov	edx, DWORD PTR [ebx+32]
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [ebx+48]
	mov	edx, DWORD PTR [edx]
	add	edx, eax
	cmp	eax, edx
	jae	SHORT $LN19@uflow@2

; 329  : 			return (_Traits::to_int_type(
; 330  : 				*_Mysb::_Gninc()));	// return buffered

	mov	eax, DWORD PTR [ebx+48]
	add	DWORD PTR [eax], -1
	mov	ebx, DWORD PTR [ebx+32]
	mov	eax, DWORD PTR [ebx]
	lea	ecx, DWORD PTR [eax+1]
	mov	DWORD PTR [ebx], ecx
	movzx	eax, BYTE PTR [eax]
	pop	ebx

; 382  : 					}
; 383  : 				}
; 384  : 			}
; 385  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	mov	DWORD PTR fs:0, ecx
	add	esp, 124				; 0000007cH
	ret	0
$LN19@uflow@2:

; 331  : 		else if (_Myfile == 0)

	mov	eax, DWORD PTR [ebx+76]
	cmp	eax, ecx
	jne	SHORT $LN17@uflow@2
$LN22@uflow@2:

; 332  : 			return (_Traits::eof());	// no open C stream, fail

	or	eax, -1
	pop	ebx

; 382  : 					}
; 383  : 				}
; 384  : 			}
; 385  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	mov	DWORD PTR fs:0, ecx
	add	esp, 124				; 0000007cH
	ret	0
$LN17@uflow@2:

; 333  : 		else if (_Pcvt == 0)

	cmp	DWORD PTR [ebx+60], ecx
	jne	SHORT $LN15@uflow@2

; 334  : 			{	// no codecvt facet, just get it
; 335  : 			_Elem _Ch;
; 336  : 			return (_Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch)
; 337  : 				: _Traits::eof());

	push	eax
	call	_fgetc
	add	esp, 4
	cmp	eax, -1
	je	SHORT $LN22@uflow@2
	movzx	eax, al
	pop	ebx

; 382  : 					}
; 383  : 				}
; 384  : 			}
; 385  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	mov	DWORD PTR fs:0, ecx
	add	esp, 124				; 0000007cH
	ret	0
$LN15@uflow@2:
	push	ebp
	push	esi
	push	edi

; 338  : 			}
; 339  : 		else
; 340  : 			{	// build string until codecvt succeeds
; 341  : 			string _Str;

	mov	DWORD PTR __Str$21920[esp+140], ecx
	mov	DWORD PTR __Str$21920[esp+168], 15	; 0000000fH
	mov	DWORD PTR __Str$21920[esp+164], ecx
	mov	BYTE PTR __Str$21920[esp+148], cl

; 342  : 
; 343  : 			for (; ; )
; 344  : 				{	// get using codecvt facet
; 345  : 				_Elem _Ch, *_Dest;
; 346  : 				const char *_Src;
; 347  : 				ptrdiff_t _Nleft;
; 348  : 				int _Meta = fgetc(_Myfile);

	push	eax
	mov	DWORD PTR __$EHRec$[esp+152], ecx
	call	_fgetc
	add	esp, 4

; 349  : 
; 350  : 				if (_Meta == EOF)

	cmp	eax, -1
	je	$LN1@uflow@2
	npad	7
$LL13@uflow@2:

; 351  : 					return (_Traits::eof());	// partial char?
; 352  : 
; 353  : 				_Str.append(1, (char)_Meta);	// append byte and convert

	push	eax
	push	1
	lea	ecx, DWORD PTR __Str$21920[esp+148]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 354  : 				switch (_Pcvt->in(_State,
; 355  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Src,
; 356  : 					&_Ch, &_Ch + 1, _Dest))

	lea	edx, DWORD PTR $T30828[esp+140]
	push	edx
	lea	ecx, DWORD PTR __Str$21920[esp+144]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	esi, eax
	lea	eax, DWORD PTR $T30829[esp+140]
	push	eax
	lea	ecx, DWORD PTR __Str$21920[esp+144]
	mov	BYTE PTR __$EHRec$[esp+152], 1
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	edi, eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+148], 2
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ebp, DWORD PTR __Str$21920[esp+164]
	mov	ecx, edi
	mov	esi, eax
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ecx, DWORD PTR [ebx+60]
	mov	edx, DWORD PTR [ecx]
	lea	edi, DWORD PTR __Dest$21925[esp+140]
	push	edi
	lea	edi, DWORD PTR __Ch$21924[esp+145]
	push	edi
	lea	edi, DWORD PTR __Ch$21924[esp+148]
	push	edi
	lea	edi, DWORD PTR __Src$21926[esp+152]
	push	edi
	add	ebp, esi
	push	ebp
	push	eax
	lea	eax, DWORD PTR [ebx+68]
	push	eax
	mov	eax, DWORD PTR [edx+16]
	call	eax
	push	3
	lea	ecx, DWORD PTR __Lock$31072[esp+144]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+152], 1
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	lea	ecx, DWORD PTR $T30829[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 3
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me
	lea	ecx, DWORD PTR __Lock$31072[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	push	3
	lea	ecx, DWORD PTR __Lock$31104[esp+144]
	mov	BYTE PTR __$EHRec$[esp+152], 0
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	lea	ecx, DWORD PTR $T30828[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 4
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me
	lea	ecx, DWORD PTR __Lock$31104[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 0
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	jl	$LN1@uflow@2
	cmp	esi, 1
	jle	$LN8@uflow@2
	cmp	esi, 3
	jne	$LN1@uflow@2

; 370  : 					break;
; 371  : 
; 372  : 				case codecvt_base::noconv:
; 373  : 					if (_Str.size() < sizeof (_Elem))

	cmp	DWORD PTR __Str$21920[esp+164], 1
	jb	$LN4@uflow@2

; 374  : 						break;	// no conversion, but need more chars
; 375  : 
; 376  : 					_CRT_SECURE_MEMCPY(&_Ch,sizeof (_Elem), &*_Str.begin(),

	lea	eax, DWORD PTR $T30833[esp+140]
	push	eax
	lea	ecx, DWORD PTR __Str$21920[esp+144]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	push	1
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+152], 7
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	push	eax
	lea	ecx, DWORD PTR __Ch$21924[esp+148]
	push	1
	push	ecx
	call	_memcpy_s
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T30833[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 377  : 						sizeof (_Elem));	// copy raw bytes to element
; 378  : 					return (_Traits::to_int_type(_Ch));	// return result

	movzx	esi, BYTE PTR __Ch$21924[esp+140]
	lea	ecx, DWORD PTR __Str$21920[esp+140]
	mov	DWORD PTR __$EHRec$[esp+148], -1
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 382  : 					}
; 383  : 				}
; 384  : 			}
; 385  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	mov	DWORD PTR fs:0, ecx
	add	esp, 124				; 0000007cH
	ret	0
$LN8@uflow@2:

; 357  : 					{	// test result of converting one element
; 358  : 				case codecvt_base::partial:
; 359  : 				case codecvt_base::ok:
; 360  : 					if (_Dest != &_Ch)

	lea	ecx, DWORD PTR __Ch$21924[esp+140]
	cmp	DWORD PTR __Dest$21925[esp+140], ecx

; 366  : 						}
; 367  : 					else
; 368  : 						_Str.erase((size_t)0,	// partial, discard used input
; 369  : 							(size_t)(_Src - &*_Str.begin()));

	lea	ecx, DWORD PTR __Str$21920[esp+140]
	jne	SHORT $LN167@uflow@2
	lea	edx, DWORD PTR $T30832[esp+140]
	push	edx
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+148], 6
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ecx, DWORD PTR __Src$21926[esp+140]
	sub	ecx, eax
	push	ecx
	push	0
	lea	ecx, DWORD PTR __Str$21920[esp+148]
	call	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
	lea	ecx, DWORD PTR $T30832[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
$LN4@uflow@2:
	mov	edx, DWORD PTR [ebx+76]
	push	edx
	call	_fgetc
	add	esp, 4
	cmp	eax, -1
	jne	$LL13@uflow@2
$LN1@uflow@2:

; 379  : 
; 380  : 				default:
; 381  : 					return (_Traits::eof());	// conversion failed

	lea	ecx, DWORD PTR __Str$21920[esp+140]
	mov	DWORD PTR __$EHRec$[esp+148], -1
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
	pop	edi
	pop	esi
	pop	ebp
	or	eax, -1
	pop	ebx

; 382  : 					}
; 383  : 				}
; 384  : 			}
; 385  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	mov	DWORD PTR fs:0, ecx
	add	esp, 124				; 0000007cH
	ret	0
$LN167@uflow@2:

; 361  : 						{	// got an element, put back excess and deliver it
; 362  : 						for (_Nleft = &*_Str.begin() + _Str.size() - _Src;

	lea	edx, DWORD PTR $T30830[esp+140]
	push	edx
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+148], 5
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	esi, DWORD PTR __Str$21920[esp+164]
	sub	esi, DWORD PTR __Src$21926[esp+140]
	lea	ecx, DWORD PTR $T30830[esp+140]
	add	esi, eax
	mov	BYTE PTR __$EHRec$[esp+148], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 363  : 							0 < _Nleft; )

	test	esi, esi
	jle	SHORT $LN5@uflow@2
	npad	10
$LL6@uflow@2:

; 364  : 							ungetc(_Src[--_Nleft], _Myfile);

	mov	ecx, DWORD PTR __Src$21926[esp+140]
	mov	eax, DWORD PTR [ebx+76]
	movsx	edx, BYTE PTR [esi+ecx-1]
	sub	esi, 1
	push	eax
	push	edx
	call	_ungetc
	add	esp, 8
	test	esi, esi
	jg	SHORT $LL6@uflow@2
$LN5@uflow@2:

; 365  : 						return (_Traits::to_int_type(_Ch));

	movzx	esi, BYTE PTR __Ch$21924[esp+140]
	lea	ecx, DWORD PTR __Str$21920[esp+140]
	mov	DWORD PTR __$EHRec$[esp+148], -1
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >

; 382  : 					}
; 383  : 				}
; 384  : 			}
; 385  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+140]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 124				; 0000007cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$0:
	lea	ecx, DWORD PTR __Str$21920[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$1:
	lea	ecx, DWORD PTR $T30828[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$2:
	lea	ecx, DWORD PTR $T30829[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$9:
	lea	ecx, DWORD PTR __Lock$31072[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$13:
	lea	ecx, DWORD PTR __Lock$31104[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$5:
	lea	ecx, DWORD PTR $T30833[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$4:
	lea	ecx, DWORD PTR $T30832[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ$3:
	lea	ecx, DWORD PTR $T30830[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__ehhandler$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ:
	mov	eax, OFFSET __ehfuncinfo$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::uflow
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z$0
__ehfuncinfo$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	ENDS
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 664  : 		{	// construct from _Count * _Ch

	push	-1
	push	__ehhandler$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	xor	eax, eax
	mov	DWORD PTR _this$[esp+20], esi
	mov	DWORD PTR [esi], eax

; 665  : 		_Tidy();
; 666  : 		assign(_Count, _Ch);

	mov	ecx, DWORD PTR __Count$[esp+16]
	mov	DWORD PTR [esi+24], eax
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR __$EHRec$[esp+28], eax
	mov	BYTE PTR [esi+8], al
	mov	eax, DWORD PTR __Ch$[esp+16]
	push	eax
	push	ecx
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 667  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ
__ehhandler$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogtpy
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 1069 : 		{	// assign [_Ptr, <null>)

	push	esi

; 1070 : 		return (assign(_Ptr, _Traits::length(_Ptr)));

	mov	esi, DWORD PTR __Ptr$[esp]
	mov	eax, esi
	push	edi
	lea	edi, DWORD PTR [eax+1]
	npad	5
$LL5@assign@4:
	mov	dl, BYTE PTR [eax]
	add	eax, 1
	test	dl, dl
	jne	SHORT $LL5@assign@4
	sub	eax, edi
	push	eax
	push	esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi
	pop	esi

; 1071 : 		}

	ret	4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
EXTRN	_fwrite:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ DD 019930522H
	DD	08H
	DD	FLAT:__unwindtable$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$2
	DD	01H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$8
	DD	00H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$12
	DD	00H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$3
	DD	00H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$16
	DD	00H
	DD	FLAT:__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
_TEXT	SEGMENT
$T31341 = -113						; size = 1
$T31353 = -112						; size = 4
__Lock$31414 = -108					; size = 4
__Lock$31446 = -104					; size = 4
__Dest$22490 = -100					; size = 4
__Lock$31483 = -96					; size = 4
$T31339 = -92						; size = 12
$T31338 = -80						; size = 12
$T31340 = -68						; size = 12
$T31342 = -56						; size = 12
__Str$22494 = -44					; size = 32
__$EHRec$ = -12						; size = 12
?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite, COMDAT
; _this$ = ecx

; 490  : 		{	// put shift to initial conversion state, as needed

	push	-1
	push	__ehhandler$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 104				; 00000068H
	push	ebx
	push	esi
	xor	esi, esi
	mov	ebx, ecx
	mov	DWORD PTR $T31353[esp+124], esi

; 491  : 		if (_Pcvt == 0 || !_Wrotesome)

	cmp	DWORD PTR [ebx+60], esi
	je	$LN14@Endwrite
	cmp	BYTE PTR [ebx+65], 0
	je	$LN14@Endwrite

; 492  : 			return (true);
; 493  : 		else
; 494  : 			{	// may have to put
; 495  : 			const int _STRING_INC = 8;
; 496  : 			char *_Dest;
; 497  : 			if (_Traits::eq_int_type(_Traits::eof(), overflow()))

	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+4]
	push	-1
	call	edx
	cmp	eax, -1
	jne	SHORT $LN12@Endwrite
	pop	esi

; 498  : 				return (false);

	xor	al, al
	pop	ebx

; 527  : 			}
; 528  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+116]
	mov	DWORD PTR fs:0, ecx
	add	esp, 116				; 00000074H
	ret	0
$LN12@Endwrite:

; 499  : 
; 500  : 			string _Str(_STRING_INC, '\0');

	push	esi
	push	8
	lea	ecx, DWORD PTR __Str$22494[esp+132]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	push	ebp
	mov	DWORD PTR __$EHRec$[esp+136], esi
	push	edi
	npad	8
$LL11@Endwrite:

; 501  : 			for (; ; )
; 502  : 				switch (_Pcvt->unshift(_State,
; 503  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest))

	lea	eax, DWORD PTR $T31338[esp+132]
	push	eax
	lea	ecx, DWORD PTR __Str$22494[esp+136]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	esi, eax
	lea	ecx, DWORD PTR $T31339[esp+132]
	push	ecx
	lea	ecx, DWORD PTR __Str$22494[esp+136]
	mov	BYTE PTR __$EHRec$[esp+144], 1
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	edi, eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+140], 2
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ebp, DWORD PTR __Str$22494[esp+156]
	mov	ecx, edi
	mov	esi, eax
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ecx, DWORD PTR [ebx+60]
	mov	edx, DWORD PTR [ecx]
	lea	edi, DWORD PTR __Dest$22490[esp+132]
	push	edi
	add	ebp, esi
	push	ebp
	push	eax
	lea	eax, DWORD PTR [ebx+68]
	push	eax
	mov	eax, DWORD PTR [edx+24]
	call	eax
	push	3
	lea	ecx, DWORD PTR __Lock$31414[esp+136]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+144], 1
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	lea	ecx, DWORD PTR $T31339[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 3
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me
	lea	ecx, DWORD PTR __Lock$31414[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	push	3
	lea	ecx, DWORD PTR __Lock$31446[esp+136]
	mov	BYTE PTR __$EHRec$[esp+144], 0
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	lea	ecx, DWORD PTR $T31338[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 4
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me
	lea	ecx, DWORD PTR __Lock$31446[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 0
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	eax, esi
	sub	eax, 0
	je	SHORT $LN7@Endwrite
	sub	eax, 1
	je	SHORT $LN6@Endwrite
	sub	eax, 2

; 518  : 					break;
; 519  : 					}
; 520  : 
; 521  : 				case codecvt_base::noconv:
; 522  : 					return (true);	// nothing to do
; 523  : 
; 524  : 				default:
; 525  : 					return (false);	// conversion failed

	mov	DWORD PTR __$EHRec$[esp+140], -1
	lea	ecx, DWORD PTR __Str$22494[esp+132]
	je	$LN2@Endwrite
$LN97@Endwrite:
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
	pop	edi
	pop	ebp
	pop	esi
	xor	al, al
	pop	ebx

; 527  : 			}
; 528  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+116]
	mov	DWORD PTR fs:0, ecx
	add	esp, 116				; 00000074H
	ret	0
$LN7@Endwrite:

; 504  : 				{	// test result of homing conversion
; 505  : 				case codecvt_base::ok:
; 506  : 					_Wrotesome = false;	// homed successfully

	mov	BYTE PTR [ebx+65], 0
$LN6@Endwrite:

; 507  : 
; 508  : 				case codecvt_base::partial:	// fall through
; 509  : 					{	// put any generated bytes
; 510  : 					size_t _Count = _Dest - &*_Str.begin();

	lea	ecx, DWORD PTR $T31340[esp+132]
	push	ecx
	lea	ecx, DWORD PTR __Str$22494[esp+136]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+140], 5
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	esi, DWORD PTR __Dest$22490[esp+132]
	push	3
	lea	ecx, DWORD PTR __Lock$31483[esp+136]
	sub	esi, eax
	mov	BYTE PTR __$EHRec$[esp+144], 0
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	lea	ecx, DWORD PTR $T31340[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 6
	call	?_Orphan_me@_Iterator_base@std@@QAEXXZ	; std::_Iterator_base::_Orphan_me
	lea	ecx, DWORD PTR __Lock$31483[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 0
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 511  : 					if (0 < _Count && _Count !=
; 512  : 						fwrite(&*_Str.begin(), 1, _Count, _Myfile))

	test	esi, esi
	jbe	SHORT $LN18@Endwrite
	lea	edx, DWORD PTR $T31342[esp+132]
	push	edx
	lea	ecx, DWORD PTR __Str$22494[esp+136]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	or	DWORD PTR $T31353[esp+132], 1
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+140], 7
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ecx, DWORD PTR [ebx+76]
	push	ecx
	push	esi
	push	1
	push	eax
	call	_fwrite
	add	esp, 16					; 00000010H
	cmp	esi, eax
	mov	BYTE PTR $T31341[esp+132], 1
	jne	SHORT $LN19@Endwrite
$LN18@Endwrite:
	mov	BYTE PTR $T31341[esp+132], 0
$LN19@Endwrite:
	test	BYTE PTR $T31353[esp+132], 1
	mov	DWORD PTR __$EHRec$[esp+140], 0
	je	SHORT $LN26@Endwrite
	and	DWORD PTR $T31353[esp+132], -2		; fffffffeH
	lea	ecx, DWORD PTR $T31342[esp+132]
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
$LN26@Endwrite:
	cmp	BYTE PTR $T31341[esp+132], 0
	jne	SHORT $LN91@Endwrite

; 514  : 					if (!_Wrotesome)

	cmp	BYTE PTR [ebx+65], 0
	je	SHORT $LN92@Endwrite

; 516  : 					if (_Count == 0)

	test	esi, esi
	jne	$LL11@Endwrite

; 517  : 						_Str.append(_STRING_INC, '\0');	// try with more space

	push	esi
	push	8
	lea	ecx, DWORD PTR __Str$22494[esp+140]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 526  : 				}

	jmp	$LL11@Endwrite
$LN91@Endwrite:

; 513  : 						return (false);	// write failed

	mov	DWORD PTR __$EHRec$[esp+140], -1
	lea	ecx, DWORD PTR __Str$22494[esp+132]
	jmp	$LN97@Endwrite
$LN92@Endwrite:

; 515  : 						return (true);

	mov	DWORD PTR __$EHRec$[esp+140], -1
	lea	ecx, DWORD PTR __Str$22494[esp+132]
$LN2@Endwrite:
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
	pop	edi
	pop	ebp
	pop	esi
	mov	al, 1
	pop	ebx

; 527  : 			}
; 528  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+116]
	mov	DWORD PTR fs:0, ecx
	add	esp, 116				; 00000074H
	ret	0
$LN14@Endwrite:
	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	pop	esi
	mov	al, 1
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 116				; 00000074H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$0:
	lea	ecx, DWORD PTR __Str$22494[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$1:
	lea	ecx, DWORD PTR $T31338[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$2:
	lea	ecx, DWORD PTR $T31339[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$8:
	lea	ecx, DWORD PTR __Lock$31414[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$12:
	lea	ecx, DWORD PTR __Lock$31446[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$3:
	lea	ecx, DWORD PTR $T31340[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$16:
	lea	ecx, DWORD PTR __Lock$31483[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ$4:
	mov	eax, DWORD PTR $T31353[ebp]
	and	eax, 1
	je	$LN25@Endwrite
	and	DWORD PTR $T31353[ebp], -2		; fffffffeH
	lea	ecx, DWORD PTR $T31342[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
$LN25@Endwrite:
	ret	0
__ehhandler$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ:
	mov	eax, OFFSET __ehfuncinfo$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
PUBLIC	?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__unwindtable$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$4
	DD	00H
	DD	FLAT:__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$2
__ehfuncinfo$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
_TEXT	SEGMENT
$T31531 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
__Iosbase$ = 44						; size = 4
$T31525 = 48						; size = 4
__State$ = 48						; size = 4
$T31524 = 52						; size = 4
__Val$ = 52						; size = 4
?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get, COMDAT
; _this$ = ecx

; 283  : 		{	// get long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T31531[esp+28], ebx

; 284  : 		return (do_get(_First, _Last, _Iosbase, _State, _Val));

	mov	eax, DWORD PTR __Val$[esp+24]
	mov	ecx, DWORD PTR __State$[esp+24]
	mov	edx, DWORD PTR __Iosbase$[esp+24]
	push	eax
	push	ecx
	push	edx
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+52]
	mov	DWORD PTR $T31524[esp+52], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+68], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+60]
	mov	dl, BYTE PTR __Last$[esp+64]
	mov	al, BYTE PTR __Last$[esp+65]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+68]
	mov	DWORD PTR $T31525[esp+68], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+84], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+76]
	mov	al, BYTE PTR __First$[esp+80]
	mov	cl, BYTE PTR __First$[esp+81]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR [esi+12], al
	mov	eax, DWORD PTR [edi]
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+68]
	mov	edx, DWORD PTR [eax+32]
	push	esi
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[esp+84], 2
	call	edx
	mov	eax, 1
	lea	ecx, DWORD PTR __First$[esp+24]
	mov	DWORD PTR $T31531[esp+28], eax
	mov	BYTE PTR __$EHRec$[esp+36], al
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+24]
	mov	BYTE PTR __$EHRec$[esp+36], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 285  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 16					; 00000010H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$2:
	mov	ecx, DWORD PTR $T31524[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$4:
	mov	eax, DWORD PTR $T31531[ebp]
	and	eax, 1
	je	$LN8@get
	and	DWORD PTR $T31531[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN8@get:
	ret	0
__ehhandler$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z:
	mov	eax, OFFSET __ehfuncinfo$?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
PUBLIC	??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::runtime_error::runtime_error
EXTRN	??0exception@std@@QAE@XZ:PROC			; std::exception::exception
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\stdexcept
xdata$x	SEGMENT
__unwindtable$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z$0
__ehfuncinfo$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Message$ = 8						; size = 4
??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z PROC ; std::runtime_error::runtime_error, COMDAT
; _this$ = ecx

; 154  : 		{	// construct from message string

	push	-1
	push	__ehhandler$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	call	??0exception@std@@QAE@XZ		; std::exception::exception
	mov	eax, DWORD PTR __Message$[esp+16]
	push	eax
	lea	ecx, DWORD PTR [esi+12]
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR [esi], OFFSET ??_7runtime_error@std@@6B@
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 155  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
__ehhandler$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ENDP ; std::runtime_error::runtime_error
PUBLIC	??_7failure@ios_base@std@@6B@			; std::ios_base::failure::`vftable'
PUBLIC	??0failure@ios_base@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; std::ios_base::failure::failure
PUBLIC	??_R4failure@ios_base@std@@6B@			; std::ios_base::failure::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVfailure@ios_base@std@@@8		; std::ios_base::failure `RTTI Type Descriptor'
PUBLIC	??_R3failure@ios_base@std@@8			; std::ios_base::failure::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2failure@ios_base@std@@8			; std::ios_base::failure::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@failure@ios_base@std@@8		; std::ios_base::failure::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_Efailure@ios_base@std@@UAEPAXI@Z:PROC	; std::ios_base::failure::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@failure@ios_base@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
rdata$r	SEGMENT
??_R1A@?0A@EA@failure@ios_base@std@@8 DD FLAT:??_R0?AVfailure@ios_base@std@@@8 ; std::ios_base::failure::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3failure@ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R2failure@ios_base@std@@8
rdata$r	SEGMENT
??_R2failure@ios_base@std@@8 DD FLAT:??_R1A@?0A@EA@failure@ios_base@std@@8 ; std::ios_base::failure::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@runtime_error@std@@8
	DD	FLAT:??_R1A@?0A@EA@exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R3failure@ios_base@std@@8
rdata$r	SEGMENT
??_R3failure@ios_base@std@@8 DD 00H			; std::ios_base::failure::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2failure@ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVfailure@ios_base@std@@@8
_DATA	SEGMENT
??_R0?AVfailure@ios_base@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::ios_base::failure `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVfailure@ios_base@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4failure@ios_base@std@@6B@
rdata$r	SEGMENT
??_R4failure@ios_base@std@@6B@ DD 00H			; std::ios_base::failure::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVfailure@ios_base@std@@@8
	DD	FLAT:??_R3failure@ios_base@std@@8
rdata$r	ENDS
;	COMDAT ??_7failure@ios_base@std@@6B@
CONST	SEGMENT
??_7failure@ios_base@std@@6B@ DD FLAT:??_R4failure@ios_base@std@@6B@ ; std::ios_base::failure::`vftable'
	DD	FLAT:??_Efailure@ios_base@std@@UAEPAXI@Z
	DD	FLAT:?what@runtime_error@std@@UBEPBDXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0failure@ios_base@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z
_TEXT	SEGMENT
__Message$ = 8						; size = 4
??0failure@ios_base@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z PROC ; std::ios_base::failure::failure, COMDAT
; _this$ = ecx

; 208  : 			{	// construct with message

	mov	eax, DWORD PTR __Message$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::runtime_error::runtime_error
	mov	DWORD PTR [esi], OFFSET ??_7failure@ios_base@std@@6B@

; 209  : 			}

	mov	eax, esi
	pop	esi
	ret	4
??0failure@ios_base@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ENDP ; std::ios_base::failure::failure
_TEXT	ENDS
PUBLIC	??1failure@ios_base@std@@UAE@XZ			; std::ios_base::failure::~failure
; Function compile flags: /Ogtpy
;	COMDAT ??1failure@ios_base@std@@UAE@XZ
_TEXT	SEGMENT
??1failure@ios_base@std@@UAE@XZ PROC			; std::ios_base::failure::~failure, COMDAT
; _this$ = ecx

; 212  : 			{	// destroy the object

	push	esi
	push	edi
	mov	edi, ecx

; 213  : 			}

	lea	esi, DWORD PTR [edi+12]
	mov	DWORD PTR [edi], OFFSET ??_7runtime_error@std@@6B@
	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN21@failure
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN21@failure:
	xor	eax, eax
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], eax
	mov	ecx, esi
	mov	BYTE PTR [esi+8], al
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	mov	ecx, edi
	pop	edi
	pop	esi
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
??1failure@ios_base@std@@UAE@XZ ENDP			; std::ios_base::failure::~failure
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_Gfailure@ios_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gfailure@ios_base@std@@UAEPAXI@Z PROC		; std::ios_base::failure::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	push	edi
	mov	edi, ecx
	lea	esi, DWORD PTR [edi+12]
	mov	DWORD PTR [edi], OFFSET ??_7runtime_error@std@@6B@
	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN24@scalar@21
	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN24@scalar@21:
	xor	eax, eax
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], eax
	mov	ecx, esi
	mov	BYTE PTR [esi+8], al
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all
	mov	ecx, edi
	call	??1exception@std@@UAE@XZ		; std::exception::~exception
	test	BYTE PTR ___flags$[esp+4], 1
	je	SHORT $LN40@scalar@21
	push	edi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN40@scalar@21:
	mov	eax, edi
	pop	edi
	pop	esi
	ret	4
??_Gfailure@ios_base@std@@UAEPAXI@Z ENDP		; std::ios_base::failure::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
xdata$x	SEGMENT
__unwindtable$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z$0
__ehfuncinfo$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	ENDS
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Ptr$ = 8						; size = 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 650  : 		{	// construct from [_Ptr, <null>)

	push	-1
	push	__ehhandler$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	esi
	mov	esi, ecx
	xor	edx, edx
	push	edi
	mov	DWORD PTR _this$[esp+28], esi
	mov	DWORD PTR [esi], edx

; 651  : 		_Tidy();
; 652  : 		assign(_Ptr);

	mov	edi, DWORD PTR __Ptr$[esp+24]
	mov	eax, edi
	mov	DWORD PTR [esi+28], 15			; 0000000fH
	mov	DWORD PTR [esi+24], edx
	mov	DWORD PTR __$EHRec$[esp+36], edx
	mov	BYTE PTR [esi+8], dl
	lea	ebx, DWORD PTR [eax+1]
	npad	3
$LL42@basic_stri@3:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	cmp	cl, dl
	jne	SHORT $LL42@basic_stri@3
	sub	eax, ebx
	push	eax
	push	edi
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 653  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ
__ehhandler$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
xdata$x	SEGMENT
__ehfuncinfo$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$3
	DD	00H
	DD	FLAT:__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
__Ch$21625 = -108					; size = 1
$T32151 = -104						; size = 4
__Dest$21627 = -100					; size = 4
__Src$21626 = -96					; size = 4
$T32134 = -92						; size = 12
$T32133 = -80						; size = 12
$T32135 = -68						; size = 12
$T32137 = -56						; size = 12
__Str$21628 = -44					; size = 32
__$EHRec$ = -12						; size = 12
__Meta$ = 8						; size = 4
?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::overflow, COMDAT
; _this$ = ecx

; 223  : 		{	// put an element to stream

	push	-1
	push	__ehhandler$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 96					; 00000060H
	push	ebx

; 224  : 		if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	mov	ebx, DWORD PTR __Meta$[esp+108]
	push	esi
	xor	esi, esi
	cmp	ebx, -1
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T32151[esp+120], esi
	jne	SHORT $LN21@overflow
	pop	edi
	pop	esi

; 225  : 			return (_Traits::not_eof(_Meta));	// EOF, return success code

	xor	eax, eax
	pop	ebx

; 277  : 				}
; 278  : 			}
; 279  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	mov	DWORD PTR fs:0, ecx
	add	esp, 108				; 0000006cH
	ret	4
$LN21@overflow:

; 226  : 		else if (_Mysb::pptr() != 0
; 227  : 			&& _Mysb::pptr() < _Mysb::epptr())

	mov	eax, DWORD PTR [edi+36]
	cmp	DWORD PTR [eax], esi
	je	SHORT $LN19@overflow
	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [edi+52]
	mov	edx, DWORD PTR [eax]
	add	edx, ecx
	cmp	ecx, edx
	jae	SHORT $LN19@overflow

; 228  : 			{	// room in buffer, store it
; 229  : 			*_Mysb::_Pninc() = _Traits::to_char_type(_Meta);

	add	DWORD PTR [eax], -1
	mov	edi, DWORD PTR [edi+36]
	mov	eax, DWORD PTR [edi]
	lea	ecx, DWORD PTR [eax+1]
	mov	DWORD PTR [edi], ecx
	mov	BYTE PTR [eax], bl
$LN136@overflow:
	pop	edi
	pop	esi

; 230  : 			return (_Meta);

	mov	eax, ebx
	pop	ebx

; 277  : 				}
; 278  : 			}
; 279  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	mov	DWORD PTR fs:0, ecx
	add	esp, 108				; 0000006cH
	ret	4
$LN19@overflow:

; 231  : 			}
; 232  : 		else if (_Myfile == 0)

	mov	eax, DWORD PTR [edi+76]
	cmp	eax, esi
	jne	SHORT $LN17@overflow
$LN24@overflow:
	pop	edi
	pop	esi

; 233  : 			return (_Traits::eof());	// no open C stream, fail

	or	eax, -1
	pop	ebx

; 277  : 				}
; 278  : 			}
; 279  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	mov	DWORD PTR fs:0, ecx
	add	esp, 108				; 0000006cH
	ret	4
$LN17@overflow:

; 234  : 		else if (_Pcvt == 0)

	cmp	DWORD PTR [edi+60], esi
	jne	SHORT $LN15@overflow

; 235  : 			return (_Fputc(_Traits::to_char_type(_Meta), _Myfile)
; 236  : 				? _Meta : _Traits::eof());	// no codecvt facet, put as is

	movsx	edx, bl
	push	eax
	push	edx
	call	_fputc
	add	esp, 8
	cmp	eax, -1
	je	SHORT $LN24@overflow
	jmp	SHORT $LN136@overflow
$LN15@overflow:
	push	ebp

; 237  : 		else
; 238  : 			{	// put using codecvt facet
; 239  : 			const int _STRING_INC = 8;
; 240  : 			const _Elem _Ch = _Traits::to_char_type(_Meta);
; 241  : 			const _Elem *_Src;
; 242  : 			char *_Dest;
; 243  : 
; 244  : 			string _Str(_STRING_INC, '\0');

	push	esi
	push	8
	lea	ecx, DWORD PTR __Str$21628[esp+132]
	mov	BYTE PTR __Ch$21625[esp+132], bl
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 245  : 			for (; ; )
; 246  : 				switch (_Pcvt->out(_State,
; 247  : 					&_Ch, &_Ch + 1, _Src,
; 248  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest))

	lea	eax, DWORD PTR $T32133[esp+124]
	push	eax
	lea	ecx, DWORD PTR __Str$21628[esp+128]
	mov	DWORD PTR __$EHRec$[esp+136], esi
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	esi, eax
	lea	ecx, DWORD PTR $T32134[esp+124]
	push	ecx
	lea	ecx, DWORD PTR __Str$21628[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 1
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	ebp, eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 2
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ebx, DWORD PTR __Str$21628[esp+148]
	mov	ecx, ebp
	mov	esi, eax
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ecx, DWORD PTR [edi+60]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+20]
	lea	ebp, DWORD PTR __Dest$21627[esp+124]
	push	ebp
	add	ebx, esi
	push	ebx
	push	eax
	lea	eax, DWORD PTR __Src$21626[esp+136]
	push	eax
	lea	eax, DWORD PTR __Ch$21625[esp+141]
	push	eax
	lea	eax, DWORD PTR __Ch$21625[esp+144]
	push	eax
	lea	eax, DWORD PTR [edi+68]
	push	eax
	call	edx
	lea	ecx, DWORD PTR $T32134[esp+124]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+132], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR $T32133[esp+124]
	mov	BYTE PTR __$EHRec$[esp+132], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	test	esi, esi
	jl	$LN1@overflow
$LL13@overflow:
	cmp	esi, 1
	jg	$LN128@overflow

; 249  : 				{	// test result of converting one element
; 250  : 				case codecvt_base::partial:
; 251  : 				case codecvt_base::ok:
; 252  : 					{	// converted something, try to put it out
; 253  : 					size_t _Count = _Dest - &*_Str.begin();

	lea	eax, DWORD PTR $T32135[esp+124]
	push	eax
	lea	ecx, DWORD PTR __Str$21628[esp+128]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+132], 3
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	esi, DWORD PTR __Dest$21627[esp+124]
	lea	ecx, DWORD PTR $T32135[esp+124]
	sub	esi, eax
	mov	BYTE PTR __$EHRec$[esp+132], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 254  : 					if (0 < _Count && _Count !=
; 255  : 						fwrite(&*_Str.begin(), 1, _Count, _Myfile))

	test	esi, esi
	jbe	SHORT $LN132@overflow
	lea	ecx, DWORD PTR $T32137[esp+124]
	push	ecx
	lea	ecx, DWORD PTR __Str$21628[esp+128]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	or	DWORD PTR $T32151[esp+124], 1
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+132], 4
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	edx, DWORD PTR [edi+76]
	push	edx
	push	esi
	push	1
	push	eax
	call	_fwrite
	add	esp, 16					; 00000010H
	cmp	esi, eax
	je	SHORT $LN132@overflow
	mov	bl, 1
	jmp	SHORT $LN27@overflow
$LN132@overflow:
	xor	bl, bl
$LN27@overflow:
	test	BYTE PTR $T32151[esp+124], 1
	mov	DWORD PTR __$EHRec$[esp+132], 0
	je	SHORT $LN36@overflow
	and	DWORD PTR $T32151[esp+124], -2		; fffffffeH
	lea	ecx, DWORD PTR $T32137[esp+124]
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
$LN36@overflow:
	test	bl, bl
	jne	$LN1@overflow

; 256  : 						return (_Traits::eof());	// write failed
; 257  : 
; 258  : 					_Wrotesome = true;	// write succeeded
; 259  : 					if (_Src != &_Ch)

	lea	eax, DWORD PTR __Ch$21625[esp+124]
	cmp	DWORD PTR __Src$21626[esp+124], eax
	mov	BYTE PTR [edi+65], 1
	jne	$LN130@overflow

; 261  : 
; 262  : 					if (0 < _Count)

	test	esi, esi
	ja	SHORT $LN3@overflow

; 263  : 						;
; 264  : 					else if (_Str.size() < 4 * _STRING_INC)

	cmp	DWORD PTR __Str$21628[esp+148], 32	; 00000020H

; 265  : 						_Str.append(_STRING_INC, '\0');	// try with more space

	lea	ecx, DWORD PTR __Str$21628[esp+124]
	jae	$LN4@overflow
	push	0
	push	8
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
$LN3@overflow:
	lea	ecx, DWORD PTR $T32133[esp+124]
	push	ecx
	lea	ecx, DWORD PTR __Str$21628[esp+128]
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	esi, eax
	lea	edx, DWORD PTR $T32134[esp+124]
	push	edx
	lea	ecx, DWORD PTR __Str$21628[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 1
	call	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
	mov	ebp, eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 2
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ebx, DWORD PTR __Str$21628[esp+148]
	mov	ecx, ebp
	mov	esi, eax
	call	??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*
	mov	ecx, DWORD PTR [edi+60]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+20]
	lea	ebp, DWORD PTR __Dest$21627[esp+124]
	push	ebp
	add	ebx, esi
	push	ebx
	push	eax
	lea	eax, DWORD PTR __Src$21626[esp+136]
	push	eax
	lea	eax, DWORD PTR __Ch$21625[esp+141]
	push	eax
	lea	eax, DWORD PTR __Ch$21625[esp+144]
	push	eax
	lea	eax, DWORD PTR [edi+68]
	push	eax
	call	edx
	lea	ecx, DWORD PTR $T32134[esp+124]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+132], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR $T32133[esp+124]
	mov	BYTE PTR __$EHRec$[esp+132], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	test	esi, esi
	jge	$LL13@overflow
$LN1@overflow:

; 274  : 
; 275  : 				default:
; 276  : 					return (_Traits::eof());	// conversion failed

	lea	ecx, DWORD PTR __Str$21628[esp+124]
$LN4@overflow:
	mov	DWORD PTR __$EHRec$[esp+132], -1
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
	pop	ebp
	pop	edi
	pop	esi
	or	eax, -1
	pop	ebx

; 277  : 				}
; 278  : 			}
; 279  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	mov	DWORD PTR fs:0, ecx
	add	esp, 108				; 0000006cH
	ret	4
$LN128@overflow:

; 245  : 			for (; ; )
; 246  : 				switch (_Pcvt->out(_State,
; 247  : 					&_Ch, &_Ch + 1, _Src,
; 248  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest))

	cmp	esi, 3
	jne	SHORT $LN1@overflow

; 266  : 					else
; 267  : 						return (_Traits::eof());	// conversion failed
; 268  : 					break;
; 269  : 					}
; 270  : 
; 271  : 				case codecvt_base::noconv:
; 272  : 					return (_Fputc(_Ch, _Myfile) ? _Meta
; 273  : 						: _Traits::eof());	// no conversion, put as is

	mov	eax, DWORD PTR [edi+76]
	mov	ecx, DWORD PTR __Ch$21625[esp+124]
	push	eax
	push	ecx
	call	??$_Fputc@D@std@@YA_NDPAU_iobuf@@@Z	; std::_Fputc<char>
	add	esp, 8
	test	al, al
	je	SHORT $LN28@overflow
	mov	esi, DWORD PTR __Meta$[esp+120]
	jmp	SHORT $LN29@overflow
$LN28@overflow:
	or	esi, -1
$LN29@overflow:
	lea	ecx, DWORD PTR __Str$21628[esp+124]
	mov	DWORD PTR __$EHRec$[esp+132], -1
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
	pop	ebp
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx

; 277  : 				}
; 278  : 			}
; 279  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	mov	DWORD PTR fs:0, ecx
	add	esp, 108				; 0000006cH
	ret	4
$LN130@overflow:

; 260  : 						return (_Meta);	// converted whole element

	lea	ecx, DWORD PTR __Str$21628[esp+124]
	mov	DWORD PTR __$EHRec$[esp+132], -1
	call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >

; 277  : 				}
; 278  : 			}
; 279  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+124]
	mov	eax, DWORD PTR __Meta$[esp+120]
	pop	ebp
	pop	edi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 108				; 0000006cH
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$0:
	lea	ecx, DWORD PTR __Str$21628[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$1:
	lea	ecx, DWORD PTR $T32133[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$2:
	lea	ecx, DWORD PTR $T32134[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$3:
	lea	ecx, DWORD PTR $T32135[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
__unwindfunclet$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z$4:
	mov	eax, DWORD PTR $T32151[ebp]
	and	eax, 1
	je	$LN35@overflow
	and	DWORD PTR $T32151[ebp], -2		; fffffffeH
	lea	ecx, DWORD PTR $T32137[ebp]
	jmp	??1?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
$LN35@overflow:
	ret	0
__ehhandler$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z:
	mov	eax, OFFSET __ehfuncinfo$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::overflow
EXTRN	_fgetpos:PROC
EXTRN	_fseek:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT
__Fileposition$ = -8					; size = 8
___$ReturnUdt$ = 8					; size = 4
__Off$ = 12						; size = 4
__Way$ = 16						; size = 4
___formal$ = 20						; size = 4
?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::seekoff, COMDAT
; _this$ = ecx

; 391  : 		{	// change position by _Off

	sub	esp, 8
	push	ebx
	push	ebp

; 392  : 		fpos_t _Fileposition;
; 393  : 
; 394  : 		if (_Mysb::gptr() == &_Mychar	// something putback
; 395  : 			&& _Way == ios_base::cur	// a relative seek
; 396  : 			&& _Pcvt == 0)	// not converting

	mov	ebp, DWORD PTR __Way$[esp+12]
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+32]
	push	edi
	lea	edi, DWORD PTR [esi+64]
	cmp	DWORD PTR [eax], edi
	jne	SHORT $LN20@seekoff
	cmp	ebp, 1
	jne	SHORT $LN20@seekoff
	cmp	DWORD PTR [esi+60], 0
	jne	SHORT $LN20@seekoff

; 397  : 			_Off -= (off_type)sizeof (_Elem);	// back up over _Elem bytes

	mov	ebx, DWORD PTR __Off$[esp+20]
	sub	ebx, ebp
	jmp	SHORT $LN6@seekoff
$LN20@seekoff:
	mov	ebx, DWORD PTR __Off$[esp+20]
$LN6@seekoff:

; 398  : 
; 399  : 		if (_Myfile == 0 || !_Endwrite()
; 400  : 			|| (_Off != 0 || _Way != ios_base::cur)
; 401  : 				&& fseek(_Myfile, (long)_Off, _Way) != 0
; 402  : 			|| fgetpos(_Myfile, &_Fileposition) != 0)

	cmp	DWORD PTR [esi+76], 0
	je	$LN21@seekoff
	call	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
	test	al, al
	je	SHORT $LN21@seekoff
	test	ebx, ebx
	jne	SHORT $LN2@seekoff
	cmp	ebp, 1
	je	SHORT $LN3@seekoff
$LN2@seekoff:
	mov	ecx, DWORD PTR [esi+76]
	push	ebp
	push	ebx
	push	ecx
	call	_fseek
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $LN21@seekoff
$LN3@seekoff:
	mov	eax, DWORD PTR [esi+76]
	lea	edx, DWORD PTR __Fileposition$[esp+24]
	push	edx
	push	eax
	call	_fgetpos
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN21@seekoff

; 404  : 
; 405  : 		if (_Mysb::gptr() == &_Mychar)

	mov	ecx, DWORD PTR [esi+32]
	cmp	DWORD PTR [ecx], edi
	jne	SHORT $LN15@seekoff

; 406  : 			_Mysb::setg(&_Mychar, &_Mychar + 1,
; 407  : 				&_Mychar + 1);	// discard any putback

	mov	edx, DWORD PTR [esi+16]
	mov	DWORD PTR [edx], edi
	mov	ecx, DWORD PTR [esi+32]
	lea	eax, DWORD PTR [esi+65]
	mov	edx, esi
	sub	edx, eax
	mov	DWORD PTR [ecx], eax
	mov	eax, DWORD PTR [esi+48]
	add	edx, 65					; 00000041H
	mov	DWORD PTR [eax], edx
$LN15@seekoff:

; 408  : 		return (_POS_TYPE_FROM_STATE(pos_type, _State,

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+20]
	mov	ecx, DWORD PTR __Fileposition$[esp+24]
	mov	edx, DWORD PTR __Fileposition$[esp+28]
	pop	edi
	mov	DWORD PTR [eax+8], ecx
	mov	ecx, DWORD PTR [esi+68]
	pop	esi
	pop	ebp
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+12], edx
	mov	DWORD PTR [eax+16], ecx
	pop	ebx

; 409  : 			_Fileposition));	// return new position
; 410  : 		}

	add	esp, 8
	ret	16					; 00000010H
$LN21@seekoff:

; 403  : 			return (pos_type(_BADOFF));	// report failure

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+20]
	mov	edx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	pop	edi
	pop	esi
	xor	ecx, ecx
	pop	ebp
	mov	DWORD PTR [eax], edx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx
	pop	ebx

; 409  : 			_Fileposition));	// return new position
; 410  : 		}

	add	esp, 8
	ret	16					; 00000010H
?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::seekoff
_TEXT	ENDS
EXTRN	_fsetpos:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT
__Fileposition$ = -8					; size = 8
___$ReturnUdt$ = 8					; size = 4
__Pos$ = 12						; size = 24
___formal$ = 36						; size = 4
?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::seekpos, COMDAT
; _this$ = ecx

; 415  : 		{	// change position to _Pos

	sub	esp, 8

; 416  : 		fpos_t _Fileposition = _POS_TYPE_TO_FPOS_T(_Pos);

	mov	eax, DWORD PTR __Pos$[esp+12]
	push	esi
	mov	esi, ecx

; 417  : 		off_type _Off = (off_type)_Pos - _FPOSOFF(_Fileposition);
; 418  : 
; 419  : 		if (_Myfile == 0 || !_Endwrite()
; 420  : 			|| fsetpos(_Myfile, &_Fileposition) != 0
; 421  : 			|| _Off != 0 && fseek(_Myfile, (long)_Off, SEEK_CUR) != 0
; 422  : 			|| fgetpos(_Myfile, &_Fileposition) != 0)

	cmp	DWORD PTR [esi+76], 0
	mov	ecx, DWORD PTR __Pos$[esp+20]
	mov	DWORD PTR __Fileposition$[esp+12], eax
	mov	DWORD PTR __Fileposition$[esp+16], ecx
	je	$LN3@seekpos
	mov	ecx, esi
	call	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
	test	al, al
	je	$LN3@seekpos
	mov	eax, DWORD PTR [esi+76]
	lea	edx, DWORD PTR __Fileposition$[esp+12]
	push	edx
	push	eax
	call	_fsetpos
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN3@seekpos
	mov	eax, DWORD PTR __Pos$[esp+8]
	test	eax, eax
	je	SHORT $LN2@seekpos
	mov	ecx, DWORD PTR [esi+76]
	push	1
	push	eax
	push	ecx
	call	_fseek
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $LN3@seekpos
$LN2@seekpos:
	mov	eax, DWORD PTR [esi+76]
	lea	edx, DWORD PTR __Fileposition$[esp+12]
	push	edx
	push	eax
	call	_fgetpos
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN3@seekpos

; 424  : 
; 425  : 		_State = _POS_TYPE_TO_STATE(_Pos);

	mov	ecx, DWORD PTR __Pos$[esp+24]

; 426  : 
; 427  : 		if (_Mysb::gptr() == &_Mychar)

	mov	edx, DWORD PTR [esi+32]
	mov	DWORD PTR [esi+68], ecx
	lea	ecx, DWORD PTR [esi+64]
	cmp	DWORD PTR [edx], ecx
	jne	SHORT $LN17@seekpos

; 428  : 			_Mysb::setg(&_Mychar, &_Mychar + 1,
; 429  : 				&_Mychar + 1);	// discard any putback

	mov	edx, DWORD PTR [esi+16]
	mov	DWORD PTR [edx], ecx
	mov	ecx, DWORD PTR [esi+32]
	lea	eax, DWORD PTR [esi+65]
	mov	edx, esi
	sub	edx, eax
	mov	DWORD PTR [ecx], eax
	mov	eax, DWORD PTR [esi+48]
	add	edx, 65					; 00000041H
	mov	DWORD PTR [eax], edx
$LN17@seekpos:

; 430  : 		return (_POS_TYPE_FROM_STATE(pos_type, _State,

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+8]
	mov	ecx, DWORD PTR __Fileposition$[esp+12]
	mov	edx, DWORD PTR __Fileposition$[esp+16]
	mov	DWORD PTR [eax+8], ecx
	mov	ecx, DWORD PTR [esi+68]
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+12], edx
	mov	DWORD PTR [eax+16], ecx
	pop	esi

; 431  : 			_Fileposition));	// return new position
; 432  : 		}

	add	esp, 8
	ret	32					; 00000020H
$LN3@seekpos:

; 423  : 			return (pos_type(_BADOFF));	// report failure

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+8]
	mov	edx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	DWORD PTR [eax], edx
	mov	DWORD PTR [eax+8], 0
	mov	DWORD PTR [eax+12], 0
	mov	DWORD PTR [eax+16], 0
	pop	esi

; 431  : 			_Fileposition));	// return new position
; 432  : 		}

	add	esp, 8
	ret	32					; 00000020H
?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::seekpos
_TEXT	ENDS
PUBLIC	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
EXTRN	_fclose:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ
_TEXT	SEGMENT
?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::close, COMDAT
; _this$ = ecx

; 206  : 		{	// close the C stream

	push	ebx
	push	esi
	mov	esi, ecx

; 207  : 		_Myt *_Ans = this;
; 208  : 		if (_Myfile == 0)

	xor	ebx, ebx
	cmp	DWORD PTR [esi+76], ebx
	push	edi
	mov	edi, esi

; 209  : 			_Ans = 0;
; 210  : 		else

	je	SHORT $LN12@close

; 211  : 			{	// put any homing sequence and close file
; 212  : 			if (!_Endwrite())

	call	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
	test	al, al
	jne	SHORT $LN2@close

; 213  : 				_Ans = 0;

	xor	edi, edi
$LN2@close:

; 214  : 			if (fclose(_Myfile) != 0)

	mov	eax, DWORD PTR [esi+76]
	push	eax
	call	_fclose
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@close
$LN12@close:

; 215  : 				_Ans = 0;

	xor	edi, edi
$LN1@close:

; 216  : 			}
; 217  : 		_Init(0, _Closefl);

	mov	ecx, esi
	mov	BYTE PTR [esi+72], bl
	mov	BYTE PTR [esi+65], bl
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	mov	DWORD PTR [esi+76], ebx
	mov	ecx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA

; 218  : 		return (_Ans);

	mov	eax, edi
	pop	edi
	mov	DWORD PTR [esi+60], ebx
	mov	DWORD PTR [esi+68], ecx
	pop	esi
	pop	ebx

; 219  : 		}

	ret	0
?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::close
_TEXT	ENDS
PUBLIC	__TI2?AVruntime_error@std@@
PUBLIC	??_C@_0BA@ELKIONDK@bad?5locale?5name?$AA@	; `string'
PUBLIC	??0_Locinfo@std@@QAE@PBD@Z			; std::_Locinfo::_Locinfo
PUBLIC	__CTA2?AVruntime_error@std@@
PUBLIC	__CT??_R0?AVruntime_error@std@@@8??0runtime_error@std@@QAE@ABV01@@Z44
PUBLIC	??0runtime_error@std@@QAE@ABV01@@Z		; std::runtime_error::runtime_error
EXTRN	?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z:PROC ; std::_Locinfo::_Locinfo_ctor
;	COMDAT __CT??_R0?AVruntime_error@std@@@8??0runtime_error@std@@QAE@ABV01@@Z44
; File c:\program files\microsoft visual studio 8\vc\include\iosfwd
xdata$x	SEGMENT
__CT??_R0?AVruntime_error@std@@@8??0runtime_error@std@@QAE@ABV01@@Z44 DD 00H
	DD	FLAT:??_R0?AVruntime_error@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	02cH
	DD	FLAT:??0runtime_error@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVruntime_error@std@@
xdata$x	SEGMENT
__CTA2?AVruntime_error@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVruntime_error@std@@@8??0runtime_error@std@@QAE@ABV01@@Z44
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVruntime_error@std@@
xdata$x	SEGMENT
__TI2?AVruntime_error@std@@ DD 00H
	DD	FLAT:??1runtime_error@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVruntime_error@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0BA@ELKIONDK@bad?5locale?5name?$AA@
CONST	SEGMENT
??_C@_0BA@ELKIONDK@bad?5locale?5name?$AA@ DB 'bad locale name', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$??0_Locinfo@std@@QAE@PBD@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$??0_Locinfo@std@@QAE@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$??0_Locinfo@std@@QAE@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$3
	DD	03H
	DD	FLAT:__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$4
	DD	04H
	DD	FLAT:__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$5
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocinfo
xdata$x	ENDS
;	COMDAT ??0_Locinfo@std@@QAE@PBD@Z
_TEXT	SEGMENT
_this$ = -92						; size = 4
$T32425 = -88						; size = 32
$T32424 = -56						; size = 44
__$EHRec$ = -12						; size = 12
__Pch$ = 8						; size = 4
??0_Locinfo@std@@QAE@PBD@Z PROC				; std::_Locinfo::_Locinfo, COMDAT
; _this$ = ecx

; 75   :         {

	push	-1
	push	__ehhandler$??0_Locinfo@std@@QAE@PBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 80					; 00000050H
	push	ebx
	push	esi
	mov	esi, ecx
	xor	ebx, ebx
	push	ebx
	mov	DWORD PTR _this$[esp+104], esi
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, 15					; 0000000fH
	mov	DWORD PTR [esi+4], ebx
	mov	DWORD PTR [esi+32], eax
	mov	DWORD PTR [esi+28], ebx
	mov	DWORD PTR __$EHRec$[esp+108], ebx
	mov	BYTE PTR [esi+12], bl
	mov	DWORD PTR [esi+36], ebx
	mov	DWORD PTR [esi+64], eax
	mov	DWORD PTR [esi+60], ebx
	mov	BYTE PTR [esi+44], bl
	mov	DWORD PTR [esi+68], ebx
	mov	DWORD PTR [esi+96], eax
	mov	DWORD PTR [esi+92], ebx
	mov	BYTE PTR [esi+76], bl
	mov	DWORD PTR [esi+100], ebx
	mov	DWORD PTR [esi+128], eax
	mov	DWORD PTR [esi+124], ebx
	mov	BYTE PTR [esi+108], bl

; 76   :         if (_Pch == 0)

	mov	eax, DWORD PTR __Pch$[esp+96]
	cmp	eax, ebx
	mov	BYTE PTR __$EHRec$[esp+108], 4
	jne	SHORT $LN1@Locinfo@2

; 77   :             _THROW_NCEE(runtime_error, "bad locale name");

	push	OFFSET ??_C@_0BA@ELKIONDK@bad?5locale?5name?$AA@
	lea	ecx, DWORD PTR $T32425[esp+104]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	lea	eax, DWORD PTR $T32425[esp+100]
	push	eax
	lea	ecx, DWORD PTR $T32424[esp+104]
	mov	BYTE PTR __$EHRec$[esp+112], 5
	call	??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z ; std::runtime_error::runtime_error
	push	OFFSET __TI2?AVruntime_error@std@@
	lea	ecx, DWORD PTR $T32424[esp+104]
	push	ecx
	call	__CxxThrowException@8
$LN156@Locinfo@2:
$LN1@Locinfo@2:

; 78   :         _Locinfo_ctor(this, _Pch);

	push	eax
	push	esi
	call	?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z ; std::_Locinfo::_Locinfo_ctor

; 79   :         }

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	add	esp, 8
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 92					; 0000005cH
	ret	4
$LN155@Locinfo@2:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 4
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$2:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 36					; 00000024H
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$3:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 68					; 00000044H
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$4:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 100				; 00000064H
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$??0_Locinfo@std@@QAE@PBD@Z$5:
	lea	ecx, DWORD PTR $T32425[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$??0_Locinfo@std@@QAE@PBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??0_Locinfo@std@@QAE@PBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0_Locinfo@std@@QAE@PBD@Z ENDP				; std::_Locinfo::_Locinfo
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0runtime_error@std@@QAE@ABV01@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0runtime_error@std@@QAE@ABV01@@Z$0
__ehfuncinfo$??0runtime_error@std@@QAE@ABV01@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0runtime_error@std@@QAE@ABV01@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0runtime_error@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___that$ = 8						; size = 4
??0runtime_error@std@@QAE@ABV01@@Z PROC			; std::runtime_error::runtime_error, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??0runtime_error@std@@QAE@ABV01@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi
	mov	edi, DWORD PTR ___that$[esp+20]
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+28], esi
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	add	edi, 12					; 0000000cH
	push	edi
	lea	ecx, DWORD PTR [esi+12]
	mov	DWORD PTR __$EHRec$[esp+36], 0
	mov	DWORD PTR [esi], OFFSET ??_7runtime_error@std@@6B@
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0runtime_error@std@@QAE@ABV01@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
__ehhandler$??0runtime_error@std@@QAE@ABV01@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0runtime_error@std@@QAE@ABV01@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0runtime_error@std@@QAE@ABV01@@Z ENDP			; std::runtime_error::runtime_error
PUBLIC	??_7?$ctype@D@std@@6B@				; std::ctype<char>::`vftable'
PUBLIC	??_C@_01GFHCPBMG@C?$AA@				; `string'
PUBLIC	??0?$ctype@D@std@@QAE@PBF_NI@Z			; std::ctype<char>::ctype<char>
PUBLIC	??_R4?$ctype@D@std@@6B@				; std::ctype<char>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ctype@D@std@@@8			; std::ctype<char> `RTTI Type Descriptor'
PUBLIC	??_R3?$ctype@D@std@@8				; std::ctype<char>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ctype@D@std@@8				; std::ctype<char>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ctype@D@std@@8			; std::ctype<char>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z	; std::ctype<char>::do_tolower
PUBLIC	?do_tolower@?$ctype@D@std@@MBEDD@Z		; std::ctype<char>::do_tolower
PUBLIC	?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z	; std::ctype<char>::do_toupper
PUBLIC	?do_toupper@?$ctype@D@std@@MBEDD@Z		; std::ctype<char>::do_toupper
PUBLIC	?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z	; std::ctype<char>::do_widen
PUBLIC	?do_widen@?$ctype@D@std@@MBEDD@Z		; std::ctype<char>::do_widen
PUBLIC	?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z	; std::ctype<char>::_Do_widen_s
PUBLIC	?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z	; std::ctype<char>::do_narrow
PUBLIC	?do_narrow@?$ctype@D@std@@MBEDDD@Z		; std::ctype<char>::do_narrow
PUBLIC	?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z	; std::ctype<char>::_Do_narrow_s
EXTRN	??_E?$ctype@D@std@@MAEPAXI@Z:PROC		; std::ctype<char>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ctype@D@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ctype@D@std@@8 DD FLAT:??_R0?AV?$ctype@D@std@@@8 ; std::ctype<char>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ctype@D@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ctype@D@std@@8
rdata$r	SEGMENT
??_R2?$ctype@D@std@@8 DD FLAT:??_R1A@?0A@EA@?$ctype@D@std@@8 ; std::ctype<char>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ctype_base@std@@8
	DD	FLAT:??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ctype@D@std@@8
rdata$r	SEGMENT
??_R3?$ctype@D@std@@8 DD 00H				; std::ctype<char>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2?$ctype@D@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ctype@D@std@@@8
_DATA	SEGMENT
??_R0?AV?$ctype@D@std@@@8 DD FLAT:??_7type_info@@6B@	; std::ctype<char> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ctype@D@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ctype@D@std@@6B@
rdata$r	SEGMENT
??_R4?$ctype@D@std@@6B@ DD 00H				; std::ctype<char>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ctype@D@std@@@8
	DD	FLAT:??_R3?$ctype@D@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$ctype@D@std@@6B@
CONST	SEGMENT
??_7?$ctype@D@std@@6B@ DD FLAT:??_R4?$ctype@D@std@@6B@	; std::ctype<char>::`vftable'
	DD	FLAT:??_E?$ctype@D@std@@MAEPAXI@Z
	DD	FLAT:?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z
	DD	FLAT:?do_tolower@?$ctype@D@std@@MBEDD@Z
	DD	FLAT:?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z
	DD	FLAT:?do_toupper@?$ctype@D@std@@MBEDD@Z
	DD	FLAT:?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z
	DD	FLAT:?do_widen@?$ctype@D@std@@MBEDD@Z
	DD	FLAT:?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z
	DD	FLAT:?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z
	DD	FLAT:?do_narrow@?$ctype@D@std@@MBEDDD@Z
	DD	FLAT:?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z
CONST	ENDS
;	COMDAT ??_C@_01GFHCPBMG@C?$AA@
CONST	SEGMENT
??_C@_01GFHCPBMG@C?$AA@ DB 'C', 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$ctype@D@std@@QAE@PBF_NI@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$ctype@D@std@@QAE@PBF_NI@Z$0
__ehfuncinfo$??0?$ctype@D@std@@QAE@PBF_NI@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$ctype@D@std@@QAE@PBF_NI@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0?$ctype@D@std@@QAE@PBF_NI@Z
_TEXT	SEGMENT
_this$ = -164						; size = 4
$T33069 = -160						; size = 16
__Lobj$14077 = -144					; size = 132
__$EHRec$ = -12						; size = 12
__Table$ = 8						; size = 4
__Deletetable$ = 12					; size = 1
__Refs$ = 16						; size = 4
??0?$ctype@D@std@@QAE@PBF_NI@Z PROC			; std::ctype<char>::ctype<char>, COMDAT
; _this$ = ecx

; 1739 : 		{	// construct with specified table and delete flag for table

	push	-1
	push	__ehhandler$??0?$ctype@D@std@@QAE@PBF_NI@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 152				; 00000098H
	mov	eax, DWORD PTR __Refs$[esp+160]
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+172], esi
	mov	DWORD PTR [esi+4], eax

; 1740 : 		_BEGIN_LOCINFO(_Lobj)

	push	OFFSET ??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR __Lobj$14077[esp+176]
	mov	DWORD PTR __$EHRec$[esp+184], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$ctype@D@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo

; 1741 : 			_Init(_Lobj);

	lea	ecx, DWORD PTR $T33069[esp+172]
	push	ecx
	call	__Getctype
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [esi+8], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+12], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	DWORD PTR [esi+16], edx
	mov	eax, DWORD PTR [eax+12]
	add	esp, 4

; 1742 : 		_END_LOCINFO()

	lea	ecx, DWORD PTR __Lobj$14077[esp+172]
	mov	DWORD PTR [esi+20], eax
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 1743 : 		if (_Table != 0)

	mov	edi, DWORD PTR __Table$[esp+168]
	test	edi, edi
	je	SHORT $LN19@ctype

; 1744 : 			{	// replace existing char to mask table
; 1745 : 			_Tidy();

	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	jle	SHORT $LN21@ctype
	mov	ecx, DWORD PTR [esi+16]
	push	ecx
	call	_free
	jmp	SHORT $LN22@ctype
$LN21@ctype:
	jge	SHORT $LN14@ctype
	mov	edx, DWORD PTR [esi+16]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
$LN22@ctype:
	add	esp, 4
$LN14@ctype:

; 1746 : 			_Ctype._Table = _Table;
; 1747 : 			_Ctype._Delfl = _Deletetable ? -1 : 0;

	mov	al, BYTE PTR __Deletetable$[esp+168]
	neg	al
	mov	DWORD PTR [esi+16], edi
	sbb	eax, eax
	mov	DWORD PTR [esi+20], eax
$LN19@ctype:

; 1748 : 			}
; 1749 : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+172]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 164				; 000000a4H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$ctype@D@std@@QAE@PBF_NI@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ctype_base@std@@UAE@XZ		; std::ctype_base::~ctype_base
__ehhandler$??0?$ctype@D@std@@QAE@PBF_NI@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$ctype@D@std@@QAE@PBF_NI@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$ctype@D@std@@QAE@PBF_NI@Z ENDP			; std::ctype<char>::ctype<char>
EXTRN	__Tolower:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?do_tolower@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
?do_tolower@?$ctype@D@std@@MBEDD@Z PROC			; std::ctype<char>::do_tolower, COMDAT
; _this$ = ecx

; 1788 : 		return ((_Elem)_Tolower((unsigned char)_Ch, &_Ctype));

	movzx	eax, BYTE PTR __Ch$[esp-4]
	add	ecx, 8
	push	ecx
	push	eax
	call	__Tolower
	add	esp, 8

; 1789 : 		}

	ret	4
?do_tolower@?$ctype@D@std@@MBEDD@Z ENDP			; std::ctype<char>::do_tolower
_TEXT	ENDS
EXTRN	__Toupper:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?do_toupper@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
?do_toupper@?$ctype@D@std@@MBEDD@Z PROC			; std::ctype<char>::do_toupper, COMDAT
; _this$ = ecx

; 1802 : 		return ((_Elem)_Toupper((unsigned char)_Ch, &_Ctype));

	movzx	eax, BYTE PTR __Ch$[esp-4]
	add	ecx, 8
	push	ecx
	push	eax
	call	__Toupper
	add	esp, 8

; 1803 : 		}

	ret	4
?do_toupper@?$ctype@D@std@@MBEDD@Z ENDP			; std::ctype<char>::do_toupper
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 1
?do_widen@?$ctype@D@std@@MBEDD@Z PROC			; std::ctype<char>::do_widen, COMDAT
; _this$ = ecx

; 1816 : 		return (_Byte);

	mov	al, BYTE PTR __Byte$[esp-4]

; 1817 : 		}

	ret	4
?do_widen@?$ctype@D@std@@MBEDD@Z ENDP			; std::ctype<char>::do_widen
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z PROC		; std::ctype<char>::do_widen, COMDAT
; _this$ = ecx

; 1823 : 		// assume there is enough space in _Dest
; 1824 : 		return _Do_widen_s(_First, _Last, _Dest, _Last - _First);

	mov	eax, DWORD PTR __Last$[esp-4]
	mov	edx, DWORD PTR __First$[esp-4]
	push	esi
	mov	esi, DWORD PTR [ecx]
	push	edi
	mov	edi, eax
	sub	edi, edx
	push	edi
	mov	edi, DWORD PTR __Dest$[esp+8]
	push	edi
	push	eax
	mov	eax, DWORD PTR [esi+28]
	push	edx
	call	eax
	pop	edi
	pop	esi

; 1825 : 		}

	ret	12					; 0000000cH
?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z ENDP		; std::ctype<char>::do_widen
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@D@std@@MBEDDD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
___formal$ = 12						; size = 1
?do_narrow@?$ctype@D@std@@MBEDDD@Z PROC			; std::ctype<char>::do_narrow, COMDAT
; _this$ = ecx

; 1839 : 		return (_Ch);

	mov	al, BYTE PTR __Ch$[esp-4]

; 1840 : 		}

	ret	8
?do_narrow@?$ctype@D@std@@MBEDDD@Z ENDP			; std::ctype<char>::do_narrow
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dflt$ = 16						; size = 1
__Dest$ = 20						; size = 4
?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z PROC		; std::ctype<char>::do_narrow, COMDAT
; _this$ = ecx

; 1847 : 		// assume there is enough space in _Dest
; 1848 : 		return _Do_narrow_s(_First, _Last, _Dflt, _Dest, _Last - _First);

	mov	eax, DWORD PTR __Last$[esp-4]
	mov	edx, DWORD PTR __First$[esp-4]
	push	esi
	mov	esi, DWORD PTR [ecx]
	push	edi
	mov	edi, eax
	sub	edi, edx
	push	edi
	mov	edi, DWORD PTR __Dest$[esp+8]
	push	edi
	mov	edi, DWORD PTR __Dflt$[esp+12]
	push	edi
	push	eax
	mov	eax, DWORD PTR [esi+40]
	push	edx
	call	eax
	pop	edi
	pop	esi

; 1849 : 		}

	ret	16					; 00000010H
?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z ENDP		; std::ctype<char>::do_narrow
_TEXT	ENDS
PUBLIC	??$_Iter_cat@PBD@std@@YA?AUrandom_access_iterator_tag@0@ABQBD@Z ; std::_Iter_cat<char const *>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??$_Iter_cat@PBD@std@@YA?AUrandom_access_iterator_tag@0@ABQBD@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
??$_Iter_cat@PBD@std@@YA?AUrandom_access_iterator_tag@0@ABQBD@Z PROC ; std::_Iter_cat<char const *>, COMDAT

; 799  : 	typename iterator_traits<_Iter>::iterator_category _Cat;
; 800  : 	return (_Cat);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]

; 801  : 	}

	ret	0
??$_Iter_cat@PBD@std@@YA?AUrandom_access_iterator_tag@0@ABQBD@Z ENDP ; std::_Iter_cat<char const *>
_TEXT	ENDS
PUBLIC	??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@ ; `string'
PUBLIC	??$_Debug_range2@PBD@std@@YAXPBD0PB_WIUrandom_access_iterator_tag@0@@Z ; std::_Debug_range2<char const *>
;	COMDAT ??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@ DB 'i'
	DB	00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'd', 00H
	DB	' ', 00H, 'i', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't'
	DB	00H, 'o', 00H, 'r', 00H, ' ', 00H, 'r', 00H, 'a', 00H, 'n', 00H
	DB	'g', 00H, 'e', 00H, 00H, 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??$_Debug_range2@PBD@std@@YAXPBD0PB_WIUrandom_access_iterator_tag@0@@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__File$ = 16						; size = 4
__Line$ = 20						; size = 4
___formal$ = 24						; size = 1
??$_Debug_range2@PBD@std@@YAXPBD0PB_WIUrandom_access_iterator_tag@0@@Z PROC ; std::_Debug_range2<char const *>, COMDAT

; 1393 : 	{	// test iterator pair for valid range, random-access iterators

	push	ebx

; 1394 : 	if (_First != _Last)

	mov	ebx, DWORD PTR __First$[esp]
	push	ebp
	mov	ebp, DWORD PTR __Last$[esp+4]
	cmp	ebx, ebp
	je	SHORT $LN1@Debug_rang

; 1395 : 		{	// check for non-null pointers, valid range
; 1396 : 		_DEBUG_POINTER2(_First, _File, _Line);

	test	ebx, ebx
	push	esi
	mov	esi, DWORD PTR __Line$[esp+8]
	push	edi
	mov	edi, DWORD PTR __File$[esp+12]
	jne	SHORT $LN5@Debug_rang
	push	esi
	push	edi
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN5@Debug_rang:

; 1397 : 		_DEBUG_POINTER2(_Last, _File, _Line);

	test	ebp, ebp
	jne	SHORT $LN8@Debug_rang
	push	esi
	push	edi
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN8@Debug_rang:

; 1398 : 		if (_Last < _First)

	cmp	ebp, ebx
	jae	SHORT $LN11@Debug_rang

; 1399 : 			_DEBUG_ERROR2("invalid iterator range", _File, _Line);

	push	esi
	push	edi
	push	OFFSET ??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN11@Debug_rang:
	pop	edi
	pop	esi
$LN1@Debug_rang:
	pop	ebp
	pop	ebx

; 1400 : 		}
; 1401 : 	}

	ret	0
??$_Debug_range2@PBD@std@@YAXPBD0PB_WIUrandom_access_iterator_tag@0@@Z ENDP ; std::_Debug_range2<char const *>
_TEXT	ENDS
PUBLIC	??1?$ctype@D@std@@MAE@XZ			; std::ctype<char>::~ctype<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ??1?$ctype@D@std@@MAE@XZ
_TEXT	SEGMENT
??1?$ctype@D@std@@MAE@XZ PROC				; std::ctype<char>::~ctype<char>, COMDAT
; _this$ = ecx

; 1768 : 		{	// destroy the object

	push	esi
	mov	esi, ecx

; 1769 : 		_Tidy();

	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7?$ctype@D@std@@6B@
	jle	SHORT $LN14@ctype@2
	mov	eax, DWORD PTR [esi+16]
	push	eax
	call	_free
	add	esp, 4

; 1770 : 		}

	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	pop	esi
	ret	0
$LN14@ctype@2:

; 1769 : 		_Tidy();

	jge	SHORT $LN13@ctype@2
	mov	ecx, DWORD PTR [esi+16]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 4
$LN13@ctype@2:

; 1770 : 		}

	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	pop	esi
	ret	0
??1?$ctype@D@std@@MAE@XZ ENDP				; std::ctype<char>::~ctype<char>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ctype@D@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ctype@D@std@@MAEPAXI@Z PROC			; std::ctype<char>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7?$ctype@D@std@@6B@
	jle	SHORT $LN21@scalar@22
	mov	eax, DWORD PTR [esi+16]
	push	eax
	call	_free
	jmp	SHORT $LN22@scalar@22
$LN21@scalar@22:
	jge	SHORT $LN6@scalar@22
	mov	ecx, DWORD PTR [esi+16]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
$LN22@scalar@22:
	add	esp, 4
$LN6@scalar@22:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN20@scalar@22
	push	0
	mov	ecx, esi
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN20@scalar@22:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ctype@D@std@@MAEPAXI@Z ENDP			; std::ctype<char>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??$_Debug_range@PBD@std@@YAXPBD0PB_WI@Z		; std::_Debug_range<char const *>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??$_Debug_range@PBD@std@@YAXPBD0PB_WI@Z
_TEXT	SEGMENT
$T33194 = -4						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__File$ = 16						; size = 4
__Line$ = 20						; size = 4
??$_Debug_range@PBD@std@@YAXPBD0PB_WI@Z PROC		; std::_Debug_range<char const *>, COMDAT

; 1405 : 	{	// test iterator pair for valid range

	push	ecx

; 1406 : 	_Debug_range2(_First, _Last, _File, _Line, _Iter_cat(_First));

	mov	eax, DWORD PTR $T33194[esp+4]
	mov	ecx, DWORD PTR __Line$[esp]
	mov	edx, DWORD PTR __File$[esp]
	push	eax
	mov	eax, DWORD PTR __Last$[esp+4]
	push	ecx
	mov	ecx, DWORD PTR __First$[esp+8]
	push	edx
	push	eax
	push	ecx
	call	??$_Debug_range2@PBD@std@@YAXPBD0PB_WIUrandom_access_iterator_tag@0@@Z ; std::_Debug_range2<char const *>

; 1407 : 	}

	add	esp, 24					; 00000018H
	ret	0
??$_Debug_range@PBD@std@@YAXPBD0PB_WI@Z ENDP		; std::_Debug_range<char const *>
_TEXT	ENDS
PUBLIC	??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ ; `string'
;	COMDAT ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
CONST	SEGMENT
??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ DB 'C'
	DB	00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H
	DB	'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l'
	DB	00H, 'e', 00H, 's', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H
	DB	'r', 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' '
	DB	00H, 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H
	DB	' ', 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o'
	DB	00H, ' ', 00H, '8', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H
	DB	'i', 00H, 'n', 00H, 'c', 00H, 'l', 00H, 'u', 00H, 'd', 00H, 'e'
	DB	00H, '\', 00H, 'x', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'a', 00H
	DB	'l', 00H, 'e', 00H, 00H, 00H			; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
CONST	ENDS
;	COMDAT ?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z PROC		; std::ctype<char>::do_tolower, COMDAT
; _this$ = ecx

; 1793 : 		{	// convert [_First, _Last) in place to lower case

	push	ebx

; 1794 : 		_DEBUG_RANGE((const _Elem *)_First, _Last);

	mov	ebx, DWORD PTR __Last$[esp]
	push	esi
	mov	esi, DWORD PTR __First$[esp+4]
	cmp	esi, ebx
	push	edi
	mov	edi, ecx
	je	SHORT $LN23@do_tolower
	test	esi, esi
	jne	SHORT $LN14@do_tolower
	push	1794					; 00000702H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN14@do_tolower:
	test	ebx, ebx
	jne	SHORT $LN17@do_tolower
	push	1794					; 00000702H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN17@do_tolower:
	cmp	ebx, esi
	jae	SHORT $LN22@do_tolower
	push	1794					; 00000702H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN22@do_tolower:
	add	edi, 8
$LL10@do_tolower:

; 1795 : 		for (; _First != _Last; ++_First)
; 1796 : 			*_First = (_Elem)_Tolower((unsigned char)*_First, &_Ctype);

	movzx	eax, BYTE PTR [esi]
	push	edi
	push	eax
	call	__Tolower
	mov	BYTE PTR [esi], al
	add	esi, 1
	add	esp, 8
	cmp	esi, ebx
	jne	SHORT $LL10@do_tolower
$LN23@do_tolower:
	pop	edi

; 1797 : 		return ((const _Elem *)_First);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1798 : 		}

	ret	8
?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z ENDP		; std::ctype<char>::do_tolower
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z PROC		; std::ctype<char>::do_toupper, COMDAT
; _this$ = ecx

; 1807 : 		{	// convert [_First, _Last) in place to upper case

	push	ebx

; 1808 : 		_DEBUG_RANGE((const _Elem *)_First, _Last);

	mov	ebx, DWORD PTR __Last$[esp]
	push	esi
	mov	esi, DWORD PTR __First$[esp+4]
	cmp	esi, ebx
	push	edi
	mov	edi, ecx
	je	SHORT $LN23@do_toupper
	test	esi, esi
	jne	SHORT $LN14@do_toupper
	push	1808					; 00000710H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN14@do_toupper:
	test	ebx, ebx
	jne	SHORT $LN17@do_toupper
	push	1808					; 00000710H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN17@do_toupper:
	cmp	ebx, esi
	jae	SHORT $LN22@do_toupper
	push	1808					; 00000710H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN22@do_toupper:
	add	edi, 8
$LL10@do_toupper:

; 1809 : 		for (; _First != _Last; ++_First)
; 1810 : 			*_First = (_Elem)_Toupper((unsigned char)*_First, &_Ctype);

	movzx	eax, BYTE PTR [esi]
	push	edi
	push	eax
	call	__Toupper
	mov	BYTE PTR [esi], al
	add	esi, 1
	add	esp, 8
	cmp	esi, ebx
	jne	SHORT $LL10@do_toupper
$LN23@do_toupper:
	pop	edi

; 1811 : 		return ((const _Elem *)_First);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1812 : 		}

	ret	8
?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z ENDP		; std::ctype<char>::do_toupper
_TEXT	ENDS
PUBLIC	??_C@_1DM@FBIJBEHP@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAw?$AAi?$AAd?$AAe?$AAn?$AA_?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_1FM@PEAIHFJH@?$AA?$CI?$AA?$CC?$AA_?$AAD?$AAe?$AAs?$AAt?$AA_?$AAs?$AAi?$AAz?$AAe?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA?$CI?$AAs?$AAi?$AAz?$AAe?$AA_?$AAt?$AA?$CJ?$AA?$CI?$AA_?$AAL?$AAa?$AAs?$AAt?$AA?5?$AA?9@ ; `string'
;	COMDAT ??_C@_1DM@FBIJBEHP@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAw?$AAi?$AAd?$AAe?$AAn?$AA_?$AAs?$AA?$AA@
; File c:\program files\microsoft visual studio 8\vc\include\xutility
CONST	SEGMENT
??_C@_1DM@FBIJBEHP@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAw?$AAi?$AAd?$AAe?$AAn?$AA_?$AAs?$AA?$AA@ DB 's'
	DB	00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'c', 00H, 't', 00H
	DB	'y', 00H, 'p', 00H, 'e', 00H, '<', 00H, 'c', 00H, 'h', 00H, 'a'
	DB	00H, 'r', 00H, '>', 00H, ':', 00H, ':', 00H, '_', 00H, 'D', 00H
	DB	'o', 00H, '_', 00H, 'w', 00H, 'i', 00H, 'd', 00H, 'e', 00H, 'n'
	DB	00H, '_', 00H, 's', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1FM@PEAIHFJH@?$AA?$CI?$AA?$CC?$AA_?$AAD?$AAe?$AAs?$AAt?$AA_?$AAs?$AAi?$AAz?$AAe?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA?$CI?$AAs?$AAi?$AAz?$AAe?$AA_?$AAt?$AA?$CJ?$AA?$CI?$AA_?$AAL?$AAa?$AAs?$AAt?$AA?5?$AA?9@
CONST	SEGMENT
??_C@_1FM@PEAIHFJH@?$AA?$CI?$AA?$CC?$AA_?$AAD?$AAe?$AAs?$AAt?$AA_?$AAs?$AAi?$AAz?$AAe?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA?$CI?$AAs?$AAi?$AAz?$AAe?$AA_?$AAt?$AA?$CJ?$AA?$CI?$AA_?$AAL?$AAa?$AAs?$AAt?$AA?5?$AA?9@ DB '('
	DB	00H, '"', 00H, '_', 00H, 'D', 00H, 'e', 00H, 's', 00H, 't', 00H
	DB	'_', 00H, 's', 00H, 'i', 00H, 'z', 00H, 'e', 00H, ' ', 00H, '>'
	DB	00H, '=', 00H, ' ', 00H, '(', 00H, 's', 00H, 'i', 00H, 'z', 00H
	DB	'e', 00H, '_', 00H, 't', 00H, ')', 00H, '(', 00H, '_', 00H, 'L'
	DB	00H, 'a', 00H, 's', 00H, 't', 00H, ' ', 00H, '-', 00H, ' ', 00H
	DB	'_', 00H, 'F', 00H, 'i', 00H, 'r', 00H, 's', 00H, 't', 00H, ')'
	DB	00H, '"', 00H, ',', 00H, ' ', 00H, '0', 00H, ')', 00H, 00H, 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
CONST	ENDS
;	COMDAT ?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Dest_size$ = 20					; size = 4
?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z PROC	; std::ctype<char>::_Do_widen_s, COMDAT
; _this$ = ecx

; 1829 : 		{	// widen chars in [_First, _Last)

	push	ebx

; 1830 : 		_DEBUG_RANGE(_First, _Last);

	mov	ebx, DWORD PTR __Last$[esp]
	push	ebp
	push	esi
	push	edi
	mov	edi, DWORD PTR __First$[esp+12]
	cmp	edi, ebx
	je	SHORT $LN23@Do_widen_s
	test	edi, edi
	jne	SHORT $LN22@Do_widen_s
	push	1830					; 00000726H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN22@Do_widen_s:
	test	ebx, ebx
	jne	SHORT $LN24@Do_widen_s
	push	1830					; 00000726H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN24@Do_widen_s:
	cmp	ebx, edi
	jae	SHORT $LN23@Do_widen_s
	push	1830					; 00000726H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN23@Do_widen_s:

; 1831 : 		_DEBUG_POINTER(_Dest);

	cmp	DWORD PTR __Dest$[esp+12], 0
	jne	SHORT $LN19@Do_widen_s
	push	1831					; 00000727H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN19@Do_widen_s:

; 1832 : 		_SCL_SECURE_ALWAYS_VALIDATE_RANGE(_Dest_size >= (size_t)(_Last - _First));

	mov	ebp, DWORD PTR __Dest_size$[esp+12]
	mov	esi, ebx
	sub	esi, edi
	cmp	ebp, esi
	jae	SHORT $LN1@Do_widen_s
	push	OFFSET ??_C@_1FM@PEAIHFJH@?$AA?$CI?$AA?$CC?$AA_?$AAD?$AAe?$AAs?$AAt?$AA_?$AAs?$AAi?$AAz?$AAe?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA?$CI?$AAs?$AAi?$AAz?$AAe?$AA_?$AAt?$AA?$CJ?$AA?$CI?$AA_?$AAL?$AAa?$AAs?$AAt?$AA?5?$AA?9@
	push	0
	push	1832					; 00000728H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	2
	call	__CrtDbgReportW
	add	esp, 20					; 00000014H
	cmp	eax, 1
	jne	SHORT $LN4@Do_widen_s
	int	3
$LN4@Do_widen_s:
	push	0
	push	1832					; 00000728H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1DM@FBIJBEHP@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAw?$AAi?$AAd?$AAe?$AAn?$AA_?$AAs?$AA?$AA@
	push	OFFSET ??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@
	call	__invalid_parameter
	add	esp, 20					; 00000014H
$LN1@Do_widen_s:

; 1833 : 		_CRT_SECURE_MEMCPY(_Dest, _Dest_size, _First, _Last - _First);

	mov	eax, DWORD PTR __Dest$[esp+12]
	push	esi
	push	edi
	push	ebp
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H
	pop	edi
	pop	esi
	pop	ebp

; 1834 : 		return (_Last);

	mov	eax, ebx
	pop	ebx

; 1835 : 		}

	ret	16					; 00000010H
?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z ENDP	; std::ctype<char>::_Do_widen_s
_TEXT	ENDS
PUBLIC	??_C@_1DO@DNILJADM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAn?$AAa?$AAr?$AAr?$AAo?$AAw?$AA_?$AAs?$AA?$AA@ ; `string'
;	COMDAT ??_C@_1DO@DNILJADM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAn?$AAa?$AAr?$AAr?$AAo?$AAw?$AA_?$AAs?$AA?$AA@
; File c:\program files\microsoft visual studio 8\vc\include\xutility
CONST	SEGMENT
??_C@_1DO@DNILJADM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAn?$AAa?$AAr?$AAr?$AAo?$AAw?$AA_?$AAs?$AA?$AA@ DB 's'
	DB	00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'c', 00H, 't', 00H
	DB	'y', 00H, 'p', 00H, 'e', 00H, '<', 00H, 'c', 00H, 'h', 00H, 'a'
	DB	00H, 'r', 00H, '>', 00H, ':', 00H, ':', 00H, '_', 00H, 'D', 00H
	DB	'o', 00H, '_', 00H, 'n', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'o'
	DB	00H, 'w', 00H, '_', 00H, 's', 00H, 00H, 00H	; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
CONST	ENDS
;	COMDAT ?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
___formal$ = 16						; size = 1
__Dest$ = 20						; size = 4
__Dest_size$ = 24					; size = 4
?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z PROC	; std::ctype<char>::_Do_narrow_s, COMDAT
; _this$ = ecx

; 1854 : 		{	// narrow elements in [_First, _Last) to chars

	push	ebx

; 1855 : 		_DEBUG_RANGE(_First, _Last);

	mov	ebx, DWORD PTR __Last$[esp]
	push	ebp
	push	esi
	push	edi
	mov	edi, DWORD PTR __First$[esp+12]
	cmp	edi, ebx
	je	SHORT $LN23@Do_narrow_
	test	edi, edi
	jne	SHORT $LN22@Do_narrow_
	push	1855					; 0000073fH
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN22@Do_narrow_:
	test	ebx, ebx
	jne	SHORT $LN24@Do_narrow_
	push	1855					; 0000073fH
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN24@Do_narrow_:
	cmp	ebx, edi
	jae	SHORT $LN23@Do_narrow_
	push	1855					; 0000073fH
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CO@DGLIKNHI@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN23@Do_narrow_:

; 1856 : 		_DEBUG_POINTER(_Dest);

	cmp	DWORD PTR __Dest$[esp+12], 0
	jne	SHORT $LN19@Do_narrow_
	push	1856					; 00000740H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN19@Do_narrow_:

; 1857 : 		_SCL_SECURE_ALWAYS_VALIDATE_RANGE(_Dest_size >= (size_t)(_Last - _First));

	mov	ebp, DWORD PTR __Dest_size$[esp+12]
	mov	esi, ebx
	sub	esi, edi
	cmp	ebp, esi
	jae	SHORT $LN1@Do_narrow_
	push	OFFSET ??_C@_1FM@PEAIHFJH@?$AA?$CI?$AA?$CC?$AA_?$AAD?$AAe?$AAs?$AAt?$AA_?$AAs?$AAi?$AAz?$AAe?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA?$CI?$AAs?$AAi?$AAz?$AAe?$AA_?$AAt?$AA?$CJ?$AA?$CI?$AA_?$AAL?$AAa?$AAs?$AAt?$AA?5?$AA?9@
	push	0
	push	1857					; 00000741H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	2
	call	__CrtDbgReportW
	add	esp, 20					; 00000014H
	cmp	eax, 1
	jne	SHORT $LN4@Do_narrow_
	int	3
$LN4@Do_narrow_:
	push	0
	push	1857					; 00000741H
	push	OFFSET ??_C@_1HM@EIFAJCOL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1DO@DNILJADM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAc?$AAt?$AAy?$AAp?$AAe?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?$DO?$AA?3?$AA?3?$AA_?$AAD?$AAo?$AA_?$AAn?$AAa?$AAr?$AAr?$AAo?$AAw?$AA_?$AAs?$AA?$AA@
	push	OFFSET ??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@
	call	__invalid_parameter
	add	esp, 20					; 00000014H
$LN1@Do_narrow_:

; 1858 : 		_CRT_SECURE_MEMCPY(_Dest, _Dest_size, _First, _Last - _First);

	mov	eax, DWORD PTR __Dest$[esp+12]
	push	esi
	push	edi
	push	ebp
	push	eax
	call	_memcpy_s
	add	esp, 16					; 00000010H
	pop	edi
	pop	esi
	pop	ebp

; 1859 : 		return (_Last);

	mov	eax, ebx
	pop	ebx

; 1860 : 		}

	ret	20					; 00000014H
?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z ENDP	; std::ctype<char>::_Do_narrow_s
_TEXT	ENDS
PUBLIC	??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::ctype<char>::_Getcat
;	COMDAT ??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xlocale', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z$0
__ehfuncinfo$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
$T33415 = -16						; size = 4
__$EHRec$ = -12						; size = 12
$T33416 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z PROC	; std::ctype<char>::_Getcat, COMDAT

; 1758 : 		{	// construct from specified locale

	push	-1
	push	__ehhandler$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi

; 1759 : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	esi, DWORD PTR __Ppf$[esp+16]
	test	esi, esi
	je	SHORT $LN10@Getcat
	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN10@Getcat

; 1760 : 			*_Ppf = _NEW_CRT ctype<_Elem>;

	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	1760					; 000006e0H
	push	OFFSET ??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@
	push	eax
	push	24					; 00000018H
	mov	DWORD PTR $T33416[esp+32], eax
	call	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T33415[esp+20], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+28], 0
	je	SHORT $LN4@Getcat
	push	0
	push	0
	push	0
	mov	ecx, eax
	call	??0?$ctype@D@std@@QAE@PBF_NI@Z		; std::ctype<char>::ctype<char>
	jmp	SHORT $LN5@Getcat
$LN4@Getcat:
	xor	eax, eax
$LN5@Getcat:
	mov	DWORD PTR [esi], eax
$LN10@Getcat:

; 1761 : 		return (_X_CTYPE);
; 1762 : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, 2
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z$0:
	push	1760					; 000006e0H
	push	OFFSET ??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@
	mov	eax, DWORD PTR $T33416[ebp-4]
	push	eax
	mov	ecx, DWORD PTR $T33415[ebp]
	push	ecx
	call	??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z ; std::locale::facet::operator delete
	add	esp, 16					; 00000010H
	ret	0
__ehhandler$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z ENDP	; std::ctype<char>::_Getcat
PUBLIC	??_C@_0BF@OOHOMBOF@ios_base?3?3eofbit?5set?$AA@	; `string'
PUBLIC	??_C@_0BG@FMKFHCIL@ios_base?3?3failbit?5set?$AA@ ; `string'
PUBLIC	__TI3?AVfailure@ios_base@std@@
PUBLIC	??_C@_0BF@PHHKMMFD@ios_base?3?3badbit?5set?$AA@	; `string'
PUBLIC	?clear@ios_base@std@@QAEXH_N@Z			; std::ios_base::clear
PUBLIC	__CTA3?AVfailure@ios_base@std@@
PUBLIC	__CT??_R0?AVfailure@ios_base@std@@@8??0failure@ios_base@std@@QAE@ABV012@@Z44
PUBLIC	??0failure@ios_base@std@@QAE@ABV012@@Z		; std::ios_base::failure::failure
;	COMDAT __CT??_R0?AVfailure@ios_base@std@@@8??0failure@ios_base@std@@QAE@ABV012@@Z44
; File c:\program files\microsoft visual studio 8\vc\include\stdexcept
xdata$x	SEGMENT
__CT??_R0?AVfailure@ios_base@std@@@8??0failure@ios_base@std@@QAE@ABV012@@Z44 DD 00H
	DD	FLAT:??_R0?AVfailure@ios_base@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	02cH
	DD	FLAT:??0failure@ios_base@std@@QAE@ABV012@@Z
xdata$x	ENDS
;	COMDAT __CTA3?AVfailure@ios_base@std@@
xdata$x	SEGMENT
__CTA3?AVfailure@ios_base@std@@ DD 03H
	DD	FLAT:__CT??_R0?AVfailure@ios_base@std@@@8??0failure@ios_base@std@@QAE@ABV012@@Z44
	DD	FLAT:__CT??_R0?AVruntime_error@std@@@8??0runtime_error@std@@QAE@ABV01@@Z44
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT ??_C@_0BF@OOHOMBOF@ios_base?3?3eofbit?5set?$AA@
CONST	SEGMENT
??_C@_0BF@OOHOMBOF@ios_base?3?3eofbit?5set?$AA@ DB 'ios_base::eofbit set', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@FMKFHCIL@ios_base?3?3failbit?5set?$AA@
CONST	SEGMENT
??_C@_0BG@FMKFHCIL@ios_base?3?3failbit?5set?$AA@ DB 'ios_base::failbit se'
	DB	't', 00H					; `string'
CONST	ENDS
;	COMDAT __TI3?AVfailure@ios_base@std@@
xdata$x	SEGMENT
__TI3?AVfailure@ios_base@std@@ DD 00H
	DD	FLAT:??1failure@ios_base@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA3?AVfailure@ios_base@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0BF@PHHKMMFD@ios_base?3?3badbit?5set?$AA@
CONST	SEGMENT
??_C@_0BF@PHHKMMFD@ios_base?3?3badbit?5set?$AA@ DB 'ios_base::badbit set', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?clear@ios_base@std@@QAEXH_N@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?clear@ios_base@std@@QAEXH_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?clear@ios_base@std@@QAEXH_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$4
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$7
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$2
	DD	04H
	DD	FLAT:__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$10
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
xdata$x	ENDS
;	COMDAT ?clear@ios_base@std@@QAEXH_N@Z
_TEXT	SEGMENT
$T33436 = -164						; size = 44
$T33434 = -164						; size = 44
$T33437 = -120						; size = 32
$T33435 = -120						; size = 32
$T33438 = -88						; size = 44
$T33439 = -44						; size = 32
__$EHRec$ = -12						; size = 12
__State$ = 8						; size = 4
__Reraise$ = 12						; size = 1
?clear@ios_base@std@@QAEXH_N@Z PROC			; std::ios_base::clear, COMDAT
; _this$ = ecx

; 273  :         {	// set state, possibly reraise exception

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?clear@ios_base@std@@QAEXH_N@Z
	push	eax

; 274  :         _Mystate = (iostate)(_State & _Statmask);

	mov	eax, DWORD PTR __State$[esp+8]
	mov	DWORD PTR fs:0, esp
	and	eax, 23					; 00000017H
	mov	DWORD PTR [ecx+8], eax

; 275  :         if ((_Mystate & _Except) == 0)

	mov	ecx, DWORD PTR [ecx+12]
	sub	esp, 152				; 00000098H
	and	ecx, eax
	je	$LN1@clear

; 276  :             ;
; 277  :         else if (_Reraise)

	cmp	BYTE PTR __Reraise$[esp+160], 0
	je	SHORT $LN6@clear

; 278  :             _RERAISE;

	push	0
	push	0
	call	__CxxThrowException@8
$LN37@clear:
$LN6@clear:

; 279  :         else if (_Mystate & _Except & badbit)

	test	cl, 4
	je	SHORT $LN4@clear

; 280  :             _THROW_NCEE(failure, "ios_base::badbit set");

	push	OFFSET ??_C@_0BF@PHHKMMFD@ios_base?3?3badbit?5set?$AA@
	lea	ecx, DWORD PTR $T33435[esp+168]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	lea	ecx, DWORD PTR $T33434[esp+164]
	mov	DWORD PTR __$EHRec$[esp+172], 0
	call	??0exception@std@@QAE@XZ		; std::exception::exception
	lea	eax, DWORD PTR $T33435[esp+164]
	push	eax
	lea	ecx, DWORD PTR $T33434[esp+180]
	mov	BYTE PTR __$EHRec$[esp+176], 1
	mov	DWORD PTR $T33434[esp+168], OFFSET ??_7runtime_error@std@@6B@
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	push	OFFSET __TI3?AVfailure@ios_base@std@@
	lea	ecx, DWORD PTR $T33434[esp+168]
	push	ecx
	mov	BYTE PTR __$EHRec$[esp+180], 0
	mov	DWORD PTR $T33434[esp+172], OFFSET ??_7failure@ios_base@std@@6B@
	call	__CxxThrowException@8
$LN38@clear:
$LN4@clear:

; 281  :         else if (_Mystate & _Except & failbit)

	test	cl, 2
	je	SHORT $LN2@clear

; 282  :             _THROW_NCEE(failure, "ios_base::failbit set");

	push	OFFSET ??_C@_0BG@FMKFHCIL@ios_base?3?3failbit?5set?$AA@
	lea	ecx, DWORD PTR $T33437[esp+168]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	lea	ecx, DWORD PTR $T33436[esp+164]
	mov	DWORD PTR __$EHRec$[esp+172], 2
	call	??0exception@std@@QAE@XZ		; std::exception::exception
	lea	edx, DWORD PTR $T33437[esp+164]
	push	edx
	lea	ecx, DWORD PTR $T33436[esp+180]
	mov	BYTE PTR __$EHRec$[esp+176], 3
	mov	DWORD PTR $T33436[esp+168], OFFSET ??_7runtime_error@std@@6B@
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	push	OFFSET __TI3?AVfailure@ios_base@std@@
	lea	eax, DWORD PTR $T33436[esp+168]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+180], 2
	mov	DWORD PTR $T33436[esp+172], OFFSET ??_7failure@ios_base@std@@6B@
	call	__CxxThrowException@8
$LN39@clear:
$LN2@clear:

; 283  :         else
; 284  :             _THROW_NCEE(failure, "ios_base::eofbit set");

	push	OFFSET ??_C@_0BF@OOHOMBOF@ios_base?3?3eofbit?5set?$AA@
	lea	ecx, DWORD PTR $T33439[esp+168]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	lea	ecx, DWORD PTR $T33438[esp+164]
	mov	DWORD PTR __$EHRec$[esp+172], 4
	call	??0exception@std@@QAE@XZ		; std::exception::exception
	lea	ecx, DWORD PTR $T33439[esp+164]
	push	ecx
	lea	ecx, DWORD PTR $T33438[esp+180]
	mov	BYTE PTR __$EHRec$[esp+176], 5
	mov	DWORD PTR $T33438[esp+168], OFFSET ??_7runtime_error@std@@6B@
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	push	OFFSET __TI3?AVfailure@ios_base@std@@
	lea	edx, DWORD PTR $T33438[esp+168]
	push	edx
	mov	BYTE PTR __$EHRec$[esp+180], 4
	mov	DWORD PTR $T33438[esp+172], OFFSET ??_7failure@ios_base@std@@6B@
	call	__CxxThrowException@8
$LN40@clear:
$LN1@clear:

; 285  :         }

	mov	ecx, DWORD PTR __$EHRec$[esp+164]
	mov	DWORD PTR fs:0, ecx
	add	esp, 164				; 000000a4H
	ret	8
$LN36@clear:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$0:
	lea	ecx, DWORD PTR $T33435[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$4:
	lea	ecx, DWORD PTR $T33434[ebp]
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$1:
	lea	ecx, DWORD PTR $T33437[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$7:
	lea	ecx, DWORD PTR $T33436[ebp]
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$2:
	lea	ecx, DWORD PTR $T33439[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?clear@ios_base@std@@QAEXH_N@Z$10:
	lea	ecx, DWORD PTR $T33438[ebp]
	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
__ehhandler$?clear@ios_base@std@@QAEXH_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?clear@ios_base@std@@QAEXH_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?clear@ios_base@std@@QAEXH_N@Z ENDP			; std::ios_base::clear
; Function compile flags: /Ogtpy
;	COMDAT ??0failure@ios_base@std@@QAE@ABV012@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0failure@ios_base@std@@QAE@ABV012@@Z PROC		; std::ios_base::failure::failure, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0runtime_error@std@@QAE@ABV01@@Z
	mov	DWORD PTR [esi], OFFSET ??_7failure@ios_base@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0failure@ios_base@std@@QAE@ABV012@@Z ENDP		; std::ios_base::failure::failure
_TEXT	ENDS
PUBLIC	?clear@ios_base@std@@QAEXH@Z			; std::ios_base::clear
; Function compile flags: /Ogtpy
;	COMDAT ?clear@ios_base@std@@QAEXH@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
?clear@ios_base@std@@QAEXH@Z PROC			; std::ios_base::clear, COMDAT
; _this$ = ecx

; 289  : 		clear(_State, false);

	mov	eax, DWORD PTR __State$[esp-4]
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 290  : 		}

	ret	4
?clear@ios_base@std@@QAEXH@Z ENDP			; std::ios_base::clear
_TEXT	ENDS
PUBLIC	??_C@_0DP@KBDMCEOP@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?_Init@ios_base@std@@IAEXXZ			; std::ios_base::_Init
;	COMDAT ??_C@_0DP@KBDMCEOP@C?3?2Program?5Files?2Microsoft?5Visua@
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
CONST	SEGMENT
??_C@_0DP@KBDMCEOP@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xiosbase', 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
CONST	ENDS
;	COMDAT ?_Init@ios_base@std@@IAEXXZ
_TEXT	SEGMENT
__Lock$33514 = -4					; size = 4
?_Init@ios_base@std@@IAEXXZ PROC			; std::ios_base::_Init, COMDAT
; _this$ = ecx

; 503  :         {	// initialize a new ios_base

	push	ecx
	push	ebp
	push	esi

; 504  :         _Ploc = 0;

	xor	ebp, ebp
	mov	esi, ecx
	push	edi

; 505  :         _Except = goodbit;
; 506  :         _Fmtfl = skipws | dec;
; 507  :         _Prec = 6;
; 508  :         _Wide = 0;
; 509  :         _Arr = 0;
; 510  :         _Calls = 0;
; 511  :         clear(goodbit);

	push	ebp
	push	ebp
	mov	DWORD PTR [esi+36], ebp
	mov	DWORD PTR [esi+12], ebp
	mov	DWORD PTR [esi+16], 513			; 00000201H
	mov	DWORD PTR [esi+20], 6
	mov	DWORD PTR [esi+24], ebp
	mov	DWORD PTR [esi+28], ebp
	mov	DWORD PTR [esi+32], ebp
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 512  :         _Ploc = _NEW_CRT locale;

	push	512					; 00000200H
	push	OFFSET ??_C@_0DP@KBDMCEOP@C?3?2Program?5Files?2Microsoft?5Visua@
	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	eax
	push	4
	call	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
	mov	edi, eax
	add	esp, 16					; 00000010H
	cmp	edi, ebp
	je	SHORT $LN3@Init@2
	push	ebx
	call	?_Init@locale@std@@CAPAV_Locimp@12@XZ	; std::locale::_Init
	mov	DWORD PTR [edi], eax
	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	push	ebp
	lea	ecx, DWORD PTR __Lock$33514[esp+24]
	mov	ebx, eax
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [ebx+4]
	cmp	eax, -1
	jae	SHORT $LN9@Init@2
	add	eax, 1
	mov	DWORD PTR [ebx+4], eax
$LN9@Init@2:
	lea	ecx, DWORD PTR __Lock$33514[esp+20]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	pop	ebx
	mov	DWORD PTR [esi+36], edi
	pop	edi
	pop	esi
	pop	ebp

; 513  :         }

	pop	ecx
	ret	0
$LN3@Init@2:
	pop	edi

; 512  :         _Ploc = _NEW_CRT locale;

	mov	DWORD PTR [esi+36], ebp
	pop	esi
	pop	ebp

; 513  :         }

	pop	ecx
	ret	0
?_Init@ios_base@std@@IAEXXZ ENDP			; std::ios_base::_Init
_TEXT	ENDS
PUBLIC	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__unwindtable$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ$0
__ehfuncinfo$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ PROC ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 118  : 		{	// destroy the object

	push	-1
	push	__ehhandler$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	mov	DWORD PTR [esi], OFFSET ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@

; 119  : 		if (_Closef)

	cmp	BYTE PTR [esi+72], 0
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN1@basic_file@2

; 120  : 			close();

	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
$LN1@basic_file@2:

; 121  : 		}

	mov	edi, DWORD PTR [esi+56]
	test	edi, edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi], OFFSET ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
	je	SHORT $LN8@basic_file@2
	mov	ecx, edi
	call	??1locale@std@@QAE@XZ			; std::locale::~locale
	push	edi
	call	_free
	add	esp, 4
$LN8@basic_file@2:
	lea	ecx, DWORD PTR [esi+4]
	call	??1_Mutex@std@@QAE@XZ			; std::_Mutex::~_Mutex
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
__ehhandler$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@23
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@23:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ; std::basic_ios<char,std::char_traits<char> >::clear
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
;	COMDAT ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__Reraise$ = 12						; size = 1
?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z PROC ; std::basic_ios<char,std::char_traits<char> >::clear, COMDAT
; _this$ = ecx

; 43   : 		ios_base::clear((iostate)(_Mystrbuf == 0
; 44   : 			? (int)_State | (int)badbit : (int)_State), _Reraise);

	cmp	DWORD PTR [ecx+40], 0
	mov	eax, DWORD PTR __State$[esp-4]
	jne	SHORT $LN4@clear@2
	or	eax, 4
$LN4@clear@2:
	mov	DWORD PTR __State$[esp-4], eax
	jmp	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::clear
_TEXT	ENDS
PUBLIC	__TI2?AVbad_cast@std@@
PUBLIC	??_C@_08EPJLHIJG@bad?5cast?$AA@			; `string'
PUBLIC	?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::ctype<char> >::_Psave
PUBLIC	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
PUBLIC	__CTA2?AVbad_cast@std@@
PUBLIC	__CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QAE@ABV01@@Z12
PUBLIC	??_R0?AVbad_cast@std@@@8			; std::bad_cast `RTTI Type Descriptor'
EXTRN	??0bad_cast@std@@QAE@PBD@Z:PROC			; std::bad_cast::bad_cast
EXTRN	?id@?$ctype@D@std@@2V0locale@2@A:DWORD		; std::ctype<char>::id
EXTRN	??1bad_cast@std@@UAE@XZ:PROC			; std::bad_cast::~bad_cast
EXTRN	??0bad_cast@std@@QAE@ABV01@@Z:PROC		; std::bad_cast::bad_cast
;	COMDAT ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::ctype<char> >::_Psave
_BSS	ENDS
;	COMDAT ??_R0?AVbad_cast@std@@@8
_DATA	SEGMENT
??_R0?AVbad_cast@std@@@8 DD FLAT:??_7type_info@@6B@	; std::bad_cast `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVbad_cast@std@@', 00H
_DATA	ENDS
;	COMDAT __CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QAE@ABV01@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_cast@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_cast@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_cast@std@@
xdata$x	SEGMENT
__CTA2?AVbad_cast@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QAE@ABV01@@Z12
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVbad_cast@std@@
xdata$x	SEGMENT
__TI2?AVbad_cast@std@@ DD 00H
	DD	FLAT:??1bad_cast@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_cast@std@@
xdata$x	ENDS
;	COMDAT ??_C@_08EPJLHIJG@bad?5cast?$AA@
CONST	SEGMENT
??_C@_08EPJLHIJG@bad?5cast?$AA@ DB 'bad cast', 00H	; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z$0
__ehfuncinfo$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$23757 = -36					; size = 4
__Lock$33569 = -32					; size = 4
__Lock$23756 = -28					; size = 4
$T33562 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z PROC ; std::use_facet<std::ctype<char> >, COMDAT

; 466  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	esi
	push	edi

; 467  : 	_BEGIN_LOCK(_LOCK_LOCALE)	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$23756[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 468  : 		const locale::facet *_Psave =
; 469  : 			_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet
; 470  : 
; 471  : 		size_t _Id = _Facet::id;

	cmp	DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A, 0 ; std::ctype<char>::id
	mov	ebx, DWORD PTR ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::ctype<char> >::_Psave
	mov	DWORD PTR __$EHRec$[esp+56], 0
	mov	DWORD PTR __Psave$23757[esp+48], ebx
	jne	SHORT $LN11@use_facet
	push	0
	lea	ecx, DWORD PTR __Lock$33569[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	cmp	DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A, 0 ; std::ctype<char>::id
	jne	SHORT $LN10@use_facet
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	add	eax, 1
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A, eax ; std::ctype<char>::id
$LN10@use_facet:
	lea	ecx, DWORD PTR __Lock$33569[esp+48]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN11@use_facet:

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	eax, DWORD PTR __Loc$[esp+44]
	mov	edi, DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A ; std::ctype<char>::id
	mov	eax, DWORD PTR [eax]
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN20@use_facet
	mov	ecx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [ecx+edi*4]
	test	esi, esi
	jne	SHORT $LN24@use_facet
$LN26@use_facet:
	cmp	BYTE PTR [eax+20], 0
	je	SHORT $LN16@use_facet
	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN27@use_facet
	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+edi*4]
$LN16@use_facet:

; 473  : 
; 474  : 		if (_Pf != 0)

	test	esi, esi
	jne	SHORT $LN24@use_facet
$LN27@use_facet:

; 475  : 			;	// got facet from locale
; 476  : 		else if (_Psave != 0)

	test	ebx, ebx
	je	SHORT $LN4@use_facet

; 477  : 			_Pf = _Psave;	// lazy facet already allocated

	mov	esi, ebx
	jmp	SHORT $LN24@use_facet

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

$LN20@use_facet:
	xor	esi, esi
	jmp	SHORT $LN26@use_facet
$LN4@use_facet:

; 478  : 		else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	lea	eax, DWORD PTR __Psave$23757[esp+48]
	push	eax
	call	?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::ctype<char>::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $LN2@use_facet

; 479  : 
; 480  :  #if _HAS_EXCEPTIONS
; 481  : 		_THROW_NCEE(bad_cast, _EMPTY_ARGUMENT);	// lazy disallowed

	push	OFFSET ??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T33562[esp+52]
	call	??0bad_cast@std@@QAE@PBD@Z		; std::bad_cast::bad_cast
	push	OFFSET __TI2?AVbad_cast@std@@
	lea	ecx, DWORD PTR $T33562[esp+52]
	push	ecx
	call	__CxxThrowException@8
$LN31@use_facet:
$LN2@use_facet:

; 482  : 
; 483  : 	#else /* _HAS_EXCEPTIONS */
; 484  : 			abort();	// lazy disallowed
; 485  : 	#endif /* _HAS_EXCEPTIONS */
; 486  : 
; 487  : 		else
; 488  : 			{	// queue up lazy facet for destruction
; 489  : 			_Pf = _Psave;

	mov	esi, DWORD PTR __Psave$23757[esp+48]

; 490  : 			_Facetptr<_Facet>::_Psave = _Psave;
; 491  : 
; 492  : 			locale::facet *_Pfmod = (_Facet *)_Psave;
; 493  : 			_Pfmod->_Incref();

	mov	ecx, esi
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::ctype<char> >::_Psave
	call	?_Incref@facet@locale@std@@QAEXXZ	; std::locale::facet::_Incref

; 494  : 			_Pfmod->_Register();

	push	esi
	call	?facet_Register@facet@locale@std@@CAXPAV123@@Z ; std::locale::facet::facet_Register
	add	esp, 4
$LN24@use_facet:

; 495  : 			}
; 496  : 
; 497  : 		return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$23756[esp+48]
	mov	DWORD PTR __$EHRec$[esp+56], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 498  : 	_END_LOCK()
; 499  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	0
$LN29@use_facet:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z$0:
	lea	ecx, DWORD PTR __Lock$23756[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::ctype<char> >
PUBLIC	??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`vftable'
PUBLIC	??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	??_R4?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@8 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > `RTTI Type Descriptor'
PUBLIC	??_R3?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	??_E?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z:PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\xlocinfo
rdata$r	SEGMENT
??_R1A@?0A@EA@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 DD FLAT:??_R0?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@8 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8
rdata$r	SEGMENT
??_R2?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 DD FLAT:??_R1A@?0A@EA@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8
rdata$r	SEGMENT
??_R3?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8 DD 00H ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@8
_DATA	SEGMENT
??_R0?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@'
	DB	'std@@@std@@@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@
rdata$r	SEGMENT
??_R4?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ DD 00H ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@8
	DD	FLAT:??_R3?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@
CONST	SEGMENT
??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ DD FLAT:??_R4?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`vftable'
	DD	FLAT:??_E?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z$0
__ehfuncinfo$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
_TEXT	SEGMENT
_this$ = -148						; size = 4
__Lobj$24377 = -144					; size = 132
__$EHRec$ = -12						; size = 12
__Refs$ = 8						; size = 4
??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT
; _this$ = ecx

; 244  : 		{	// construct from current locale

	push	-1
	push	__ehhandler$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 136				; 00000088H
	mov	eax, DWORD PTR __Refs$[esp+144]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+152], esi
	mov	DWORD PTR [esi+4], eax

; 245  : 		_BEGIN_LOCINFO(_Lobj)

	push	OFFSET ??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR __Lobj$24377[esp+156]
	mov	DWORD PTR __$EHRec$[esp+164], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo

; 246  : 			_Init(_Lobj);

	call	__Getcvt

; 247  : 		_END_LOCINFO()

	lea	ecx, DWORD PTR __Lobj$24377[esp+152]
	mov	DWORD PTR [esi+8], eax
	mov	DWORD PTR [esi+12], edx
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 248  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+152]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 148				; 00000094H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1facet@locale@std@@UAE@XZ		; std::locale::facet::~facet
__ehhandler$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	?_Getlconv@_Locinfo@std@@QBEPBUlconv@@XZ	; std::_Locinfo::_Getlconv
EXTRN	_localeconv:PROC
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocinfo
;	COMDAT ?_Getlconv@_Locinfo@std@@QBEPBUlconv@@XZ
_TEXT	SEGMENT
?_Getlconv@_Locinfo@std@@QBEPBUlconv@@XZ PROC		; std::_Locinfo::_Getlconv, COMDAT
; _this$ = ecx

; 125  : 		return (localeconv());

	jmp	_localeconv
?_Getlconv@_Locinfo@std@@QBEPBUlconv@@XZ ENDP		; std::_Locinfo::_Getlconv
_TEXT	ENDS
PUBLIC	??_C@_05LAPONLG@false?$AA@			; `string'
PUBLIC	?_Getfalse@_Locinfo@std@@QBEPBDXZ		; std::_Locinfo::_Getfalse
;	COMDAT ??_C@_05LAPONLG@false?$AA@
CONST	SEGMENT
??_C@_05LAPONLG@false?$AA@ DB 'false', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?_Getfalse@_Locinfo@std@@QBEPBDXZ
_TEXT	SEGMENT
?_Getfalse@_Locinfo@std@@QBEPBDXZ PROC			; std::_Locinfo::_Getfalse, COMDAT
; _this$ = ecx

; 163  : 		return ("false");

	mov	eax, OFFSET ??_C@_05LAPONLG@false?$AA@

; 164  : 		}

	ret	0
?_Getfalse@_Locinfo@std@@QBEPBDXZ ENDP			; std::_Locinfo::_Getfalse
_TEXT	ENDS
PUBLIC	??_C@_04LOAJBDKD@true?$AA@			; `string'
PUBLIC	?_Gettrue@_Locinfo@std@@QBEPBDXZ		; std::_Locinfo::_Gettrue
;	COMDAT ??_C@_04LOAJBDKD@true?$AA@
CONST	SEGMENT
??_C@_04LOAJBDKD@true?$AA@ DB 'true', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?_Gettrue@_Locinfo@std@@QBEPBDXZ
_TEXT	SEGMENT
?_Gettrue@_Locinfo@std@@QBEPBDXZ PROC			; std::_Locinfo::_Gettrue, COMDAT
; _this$ = ecx

; 168  : 		return ("true");

	mov	eax, OFFSET ??_C@_04LOAJBDKD@true?$AA@

; 169  : 		}

	ret	0
?_Gettrue@_Locinfo@std@@QBEPBDXZ ENDP			; std::_Locinfo::_Gettrue
_TEXT	ENDS
PUBLIC	??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
;	COMDAT ??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ
_TEXT	SEGMENT
??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT
; _this$ = ecx

; 231  : 		}

	mov	DWORD PTR [ecx], OFFSET ??_7facet@locale@std@@6B@
	ret	0
??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
_TEXT	ENDS
PUBLIC	??_C@_1LO@NPPEKPAI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?0?$AAs?$AAt?$AAr?$AAu?$AAc?$AAt?$AA?5?$AAs?$AAt@ ; `string'
PUBLIC	??_C@_1DM@GMPLOCPK@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAu?$AAb?$AAs?$AAc?$AAr?$AAi?$AAp?$AAt?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@ ; `string'
PUBLIC	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
;	COMDAT ??_C@_1LO@NPPEKPAI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?0?$AAs?$AAt?$AAr?$AAu?$AAc?$AAt?$AA?5?$AAs?$AAt@
; File c:\program files\microsoft visual studio 8\vc\include\xstring
CONST	SEGMENT
??_C@_1LO@NPPEKPAI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?0?$AAs?$AAt?$AAr?$AAu?$AAc?$AAt?$AA?5?$AAs?$AAt@ DB 's'
	DB	00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'b', 00H, 'a', 00H
	DB	's', 00H, 'i', 00H, 'c', 00H, '_', 00H, 's', 00H, 't', 00H, 'r'
	DB	00H, 'i', 00H, 'n', 00H, 'g', 00H, '<', 00H, 'c', 00H, 'h', 00H
	DB	'a', 00H, 'r', 00H, ',', 00H, 's', 00H, 't', 00H, 'r', 00H, 'u'
	DB	00H, 'c', 00H, 't', 00H, ' ', 00H, 's', 00H, 't', 00H, 'd', 00H
	DB	':', 00H, ':', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, '_'
	DB	00H, 't', 00H, 'r', 00H, 'a', 00H, 'i', 00H, 't', 00H, 's', 00H
	DB	'<', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, '>', 00H, ','
	DB	00H, 'c', 00H, 'l', 00H, 'a', 00H, 's', 00H, 's', 00H, ' ', 00H
	DB	's', 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'a', 00H, 'l'
	DB	00H, 'l', 00H, 'o', 00H, 'c', 00H, 'a', 00H, 't', 00H, 'o', 00H
	DB	'r', 00H, '<', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, '>'
	DB	00H, ' ', 00H, '>', 00H, ':', 00H, ':', 00H, 'o', 00H, 'p', 00H
	DB	'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r', 00H, ' '
	DB	00H, '[', 00H, ']', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@GMPLOCPK@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAu?$AAb?$AAs?$AAc?$AAr?$AAi?$AAp?$AAt?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@GMPLOCPK@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAu?$AAb?$AAs?$AAc?$AAr?$AAi?$AAp?$AAt?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@ DB 's'
	DB	00H, 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H
	DB	's', 00H, 'u', 00H, 'b', 00H, 's', 00H, 'c', 00H, 'r', 00H, 'i'
	DB	00H, 'p', 00H, 't', 00H, ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H
	DB	' ', 00H, 'o', 00H, 'f', 00H, ' ', 00H, 'r', 00H, 'a', 00H, 'n'
	DB	00H, 'g', 00H, 'e', 00H, 00H, 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[], COMDAT
; _this$ = ecx

; 1528 : 		{	// subscript mutable sequence

	push	esi
	mov	esi, ecx

; 1529 : 
; 1530 :  #if _HAS_ITERATOR_DEBUGGING
; 1531 : 		// skip debug checks if the container is initizialed with _IGNORE_MYITERLIST
; 1532 : 		if (this->_Myfirstiter != _IGNORE_MYITERLIST)

	cmp	DWORD PTR [esi], -3			; fffffffdH
	push	edi
	mov	edi, DWORD PTR __Off$[esp+4]
	je	SHORT $LN1@operator@6

; 1533 : 			{
; 1534 : 			if (_Mysize < _Off)

	cmp	DWORD PTR [esi+24], edi
	jae	SHORT $LN1@operator@6

; 1535 : 				{
; 1536 : 				_DEBUG_ERROR("string subscript out of range");

	push	1536					; 00000600H
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1DM@GMPLOCPK@?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAu?$AAb?$AAs?$AAc?$AAr?$AAi?$AAp?$AAt?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message

; 1537 : 				_SCL_SECURE_OUT_OF_RANGE;

	push	OFFSET ??_C@_1FG@CMLDHNON@?$AA?$CI?$AA?$CC?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?5?$AAC?$AA?$CL?$AA?$CL?$AA?5?$AAL?$AAi?$AAb?$AAr?$AAa?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5@
	push	0
	push	1537					; 00000601H
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	2
	call	__CrtDbgReportW
	add	esp, 32					; 00000020H
	cmp	eax, 1
	jne	SHORT $LN5@operator@6
	int	3
$LN5@operator@6:
	push	0
	push	1537					; 00000601H
	push	OFFSET ??_C@_1HM@PJLEMLGA@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1LO@NPPEKPAI@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi?$AAn?$AAg?$AA?$DM?$AAc?$AAh?$AAa?$AAr?$AA?0?$AAs?$AAt?$AAr?$AAu?$AAc?$AAt?$AA?5?$AAs?$AAt@
	push	OFFSET ??_C@_1BO@MEPPHOO@?$AA?$CC?$AAo?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAr?$AAa?$AAn?$AAg?$AAe?$AA?$CC?$AA?$AA@
	call	__invalid_parameter
	add	esp, 20					; 00000014H
$LN1@operator@6:

; 1538 : 				}
; 1539 : 			}
; 1540 :  #else
; 1541 : 		_SCL_SECURE_VALIDATE_RANGE(_Off <= _Mysize);
; 1542 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1543 : 
; 1544 : 		return (_Myptr()[_Off]);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	jb	SHORT $LN8@operator@6
	mov	esi, DWORD PTR [esi+8]
	lea	eax, DWORD PTR [esi+edi]
	pop	edi
	pop	esi

; 1545 : 		}

	ret	4

; 1538 : 				}
; 1539 : 			}
; 1540 :  #else
; 1541 : 		_SCL_SECURE_VALIDATE_RANGE(_Off <= _Mysize);
; 1542 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 1543 : 
; 1544 : 		return (_Myptr()[_Off]);

$LN8@operator@6:
	lea	eax, DWORD PTR [esi+edi+8]
	pop	edi
	pop	esi

; 1545 : 		}

	ret	4
??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
_TEXT	ENDS
PUBLIC	?decimal_point@?$numpunct@D@std@@QBEDXZ		; std::numpunct<char>::decimal_point
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
;	COMDAT ?decimal_point@?$numpunct@D@std@@QBEDXZ
_TEXT	SEGMENT
?decimal_point@?$numpunct@D@std@@QBEDXZ PROC		; std::numpunct<char>::decimal_point, COMDAT
; _this$ = ecx

; 60   : 		return (do_decimal_point());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	jmp	edx
?decimal_point@?$numpunct@D@std@@QBEDXZ ENDP		; std::numpunct<char>::decimal_point
_TEXT	ENDS
PUBLIC	?thousands_sep@?$numpunct@D@std@@QBEDXZ		; std::numpunct<char>::thousands_sep
; Function compile flags: /Ogtpy
;	COMDAT ?thousands_sep@?$numpunct@D@std@@QBEDXZ
_TEXT	SEGMENT
?thousands_sep@?$numpunct@D@std@@QBEDXZ PROC		; std::numpunct<char>::thousands_sep, COMDAT
; _this$ = ecx

; 65   : 		return (do_thousands_sep());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+8]
	jmp	edx
?thousands_sep@?$numpunct@D@std@@QBEDXZ ENDP		; std::numpunct<char>::thousands_sep
_TEXT	ENDS
PUBLIC	??$_Maklocchr@D@std@@YADDPADABU_Cvtvec@@@Z	; std::_Maklocchr<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ??$_Maklocchr@D@std@@YADDPADABU_Cvtvec@@@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 1
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
??$_Maklocchr@D@std@@YADDPADABU_Cvtvec@@@Z PROC		; std::_Maklocchr<char>, COMDAT

; 583  : 	return ((_Elem)(unsigned char)_Byte);

	mov	al, BYTE PTR __Byte$[esp-4]

; 584  : 	}

	ret	0
??$_Maklocchr@D@std@@YADDPADABU_Cvtvec@@@Z ENDP		; std::_Maklocchr<char>
_TEXT	ENDS
PUBLIC	??$_Maklocbyte@D@std@@YADDABU_Cvtvec@@@Z	; std::_Maklocbyte<char>
; Function compile flags: /Ogtpy
;	COMDAT ??$_Maklocbyte@D@std@@YADDABU_Cvtvec@@@Z
_TEXT	SEGMENT
__Char$ = 8						; size = 1
___formal$ = 12						; size = 4
??$_Maklocbyte@D@std@@YADDABU_Cvtvec@@@Z PROC		; std::_Maklocbyte<char>, COMDAT

; 561  : 	return ((char)(unsigned char)_Char);

	mov	al, BYTE PTR __Char$[esp-4]

; 562  : 	}

	ret	0
??$_Maklocbyte@D@std@@YADDABU_Cvtvec@@@Z ENDP		; std::_Maklocbyte<char>
_TEXT	ENDS
PUBLIC	??$_Iter_cat@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YA?AUinput_iterator_tag@0@ABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@@Z ; std::_Iter_cat<std::istreambuf_iterator<char,std::char_traits<char> > >
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ??$_Iter_cat@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YA?AUinput_iterator_tag@0@ABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
??$_Iter_cat@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YA?AUinput_iterator_tag@0@ABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@@Z PROC ; std::_Iter_cat<std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT

; 798  : 	{	// return category from iterator argument

	push	ecx

; 799  : 	typename iterator_traits<_Iter>::iterator_category _Cat;
; 800  : 	return (_Cat);

	mov	al, BYTE PTR __Cat$[esp+4]

; 801  : 	}

	pop	ecx
	ret	0
??$_Iter_cat@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YA?AUinput_iterator_tag@0@ABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@@Z ENDP ; std::_Iter_cat<std::istreambuf_iterator<char,std::char_traits<char> > >
_TEXT	ENDS
PUBLIC	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z	; std::_Maklocstr<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
;	COMDAT ??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z PROC	; std::_Maklocstr<char>, COMDAT

; 604  : 	{	// convert C string to _Elem sequence using _Cvtvec

	push	esi
	push	edi

; 605  : 	size_t _Count = ::strlen(_Ptr) + 1;

	mov	edi, DWORD PTR __Ptr$[esp+4]
	mov	eax, edi
	lea	edx, DWORD PTR [eax+1]
	npad	5
$LL8@Maklocstr:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL8@Maklocstr
	sub	eax, edx

; 606  : 	_Elem *_Ptrdest = _NEW_CRT _Elem[_Count];

	push	606					; 0000025eH
	push	OFFSET ??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@
	lea	esi, DWORD PTR [eax+1]
	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

; 607  : 
; 608  : #pragma warning(push)
; 609  : #pragma warning(disable: 6011)
; 610  : 	/* prefast noise */
; 611  : 	for (_Elem *_Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr)

	test	esi, esi
	mov	ecx, eax
	jbe	SHORT $LN1@Maklocstr
	npad	3
$LL3@Maklocstr:

; 612  : 		*_Ptrnext = (_Elem)(unsigned char)*_Ptr;

	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [ecx], dl
	sub	esi, 1
	add	ecx, 1
	add	edi, 1
	test	esi, esi
	ja	SHORT $LL3@Maklocstr
$LN1@Maklocstr:
	pop	edi
	pop	esi

; 613  : 	return (_Ptrdest);
; 614  : #pragma warning(pop)
; 615  : 	}

	ret	0
??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ENDP	; std::_Maklocstr<char>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN13@scalar@24
	push	0
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN13@scalar@24:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?_Tidy@?$numpunct@D@std@@AAEXXZ			; std::numpunct<char>::_Tidy
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
;	COMDAT ?_Tidy@?$numpunct@D@std@@AAEXXZ
_TEXT	SEGMENT
?_Tidy@?$numpunct@D@std@@AAEXXZ PROC			; std::numpunct<char>::_Tidy, COMDAT
; _this$ = ecx

; 171  : 		{	// free all storage

	push	esi
	mov	esi, ecx

; 172  : 		_DELETE_CRT_VEC((void *)_Grouping);

	mov	eax, DWORD PTR [esi+8]
	test	eax, eax
	je	SHORT $LN3@Tidy@3
	push	eax
	call	_free
	add	esp, 4
$LN3@Tidy@3:

; 173  : 		_DELETE_CRT_VEC((void *)_Falsename);

	mov	eax, DWORD PTR [esi+16]
	test	eax, eax
	je	SHORT $LN6@Tidy@3
	push	eax
	call	_free
	add	esp, 4
$LN6@Tidy@3:

; 174  : 		_DELETE_CRT_VEC((void *)_Truename);

	mov	esi, DWORD PTR [esi+20]
	test	esi, esi
	je	SHORT $LN9@Tidy@3
	push	esi
	call	_free
	add	esp, 4
$LN9@Tidy@3:
	pop	esi

; 175  : 		}

	ret	0
?_Tidy@?$numpunct@D@std@@AAEXXZ ENDP			; std::numpunct<char>::_Tidy
_TEXT	ENDS
PUBLIC	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
;	COMDAT ?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ
_TEXT	SEGMENT
?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc, COMDAT
; _this$ = ecx

; 2151 : 		{	// skip to next input element

	push	esi
	mov	esi, ecx

; 2152 : 		if (_Strbuf == 0
; 2153 : 			|| traits_type::eq_int_type(traits_type::eof(),
; 2154 : 				_Strbuf->sbumpc()))

	mov	ecx, DWORD PTR [esi+8]
	test	ecx, ecx
	je	SHORT $LN2@Inc
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN8@Inc
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], 0
	jle	SHORT $LN8@Inc
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN9@Inc
$LN8@Inc:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN9@Inc:
	cmp	eax, -1
	je	SHORT $LN2@Inc

; 2156 : 		else
; 2157 : 			_Got = false;

	mov	BYTE PTR [esi+12], 0
	pop	esi

; 2158 : 		}

	ret	0
$LN2@Inc:

; 2155 : 			_Strbuf = 0, _Got = true;

	mov	DWORD PTR [esi+8], 0
	mov	BYTE PTR [esi+12], 1
	pop	esi

; 2158 : 		}

	ret	0
?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
_TEXT	ENDS
PUBLIC	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
; Function compile flags: /Ogtpy
;	COMDAT ?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ
_TEXT	SEGMENT
?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek, COMDAT
; _this$ = ecx

; 2161 : 		{	// peek at next input element

	push	esi
	mov	esi, ecx

; 2162 : 		int_type _Meta;
; 2163 : 		if (_Strbuf == 0
; 2164 : 			|| traits_type::eq_int_type(traits_type::eof(),
; 2165 : 				_Meta = _Strbuf->sgetc()))

	mov	ecx, DWORD PTR [esi+8]
	test	ecx, ecx
	je	SHORT $LN2@Peek
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN8@Peek
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], 0
	jle	SHORT $LN8@Peek
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN9@Peek
$LN8@Peek:
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+16]
	call	eax
$LN9@Peek:
	cmp	eax, -1
	je	SHORT $LN2@Peek

; 2166 : 			_Strbuf = 0;
; 2167 : 		else
; 2168 : 			_Val = traits_type::to_char_type(_Meta);

	mov	BYTE PTR [esi+13], al

; 2169 : 		_Got = true;

	mov	BYTE PTR [esi+12], 1
	pop	esi

; 2171 : 		}

	ret	0
$LN2@Peek:

; 2170 : 		return (_Val);

	mov	al, BYTE PTR [esi+13]
	mov	DWORD PTR [esi+8], 0
	mov	BYTE PTR [esi+12], 1
	pop	esi

; 2171 : 		}

	ret	0
?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
_TEXT	ENDS
PUBLIC	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
; Function compile flags: /Ogtpy
;	COMDAT ?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::equal, COMDAT
; _this$ = ecx

; 2140 : 		{	// test for equality

	push	esi
	mov	esi, ecx

; 2141 : 		if (!_Got)

	cmp	BYTE PTR [esi+12], 0
	push	edi
	jne	SHORT $LN2@equal

; 2142 : 			((_Myt *)this)->_Peek();

	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN2@equal:

; 2143 : 		if (!_Right._Got)

	mov	edi, DWORD PTR __Right$[esp+4]
	cmp	BYTE PTR [edi+12], 0
	jne	SHORT $LN1@equal

; 2144 : 			((_Myt *)&_Right)->_Peek();

	mov	ecx, edi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN1@equal:

; 2145 : 		return (_Strbuf == 0 && _Right._Strbuf == 0
; 2146 : 			|| _Strbuf != 0 && _Right._Strbuf != 0);

	mov	eax, DWORD PTR [esi+8]
	test	eax, eax
	jne	SHORT $LN10@equal
	cmp	DWORD PTR [edi+8], eax
	je	SHORT $LN7@equal
	test	eax, eax
	je	SHORT $LN6@equal
$LN10@equal:
	cmp	DWORD PTR [edi+8], 0
	je	SHORT $LN6@equal
$LN7@equal:
	pop	edi
	mov	eax, 1
	pop	esi

; 2147 : 		}

	ret	4
$LN6@equal:
	pop	edi

; 2145 : 		return (_Strbuf == 0 && _Right._Strbuf == 0
; 2146 : 			|| _Strbuf != 0 && _Right._Strbuf != 0);

	xor	eax, eax
	pop	esi

; 2147 : 		}

	ret	4
?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
_TEXT	ENDS
PUBLIC	?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z	; std::numpunct<char>::_Init
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
xdata$x	SEGMENT
__catchsym$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z$2 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z$0
__unwindtable$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__tryblocktable$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z$2
__ehfuncinfo$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
	DD	01H
	DD	FLAT:__tryblocktable$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
$T33823 = -24						; size = 8
$T33822 = -24						; size = 8
$T33821 = -24						; size = 8
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Lobj$ = 8						; size = 4
?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z PROC	; std::numpunct<char>::_Init, COMDAT
; _this$ = ecx

; 123  : 		{	// initialize from _Lobj

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	ebx
	push	esi
	push	edi
	mov	esi, ecx
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR _this$[ebp], esi

; 124  : 		const lconv *_Ptr = _Lobj._Getlconv();

	call	_localeconv

; 125  : 
; 126  : 		_Grouping = 0;

	xor	ebx, ebx
	mov	edi, eax
	mov	DWORD PTR [esi+8], ebx

; 127  : 		_Falsename = 0;

	mov	DWORD PTR [esi+16], ebx

; 128  : 		_Truename = 0;

	mov	DWORD PTR [esi+20], ebx

; 129  : 
; 130  : 		_TRY_BEGIN

	mov	DWORD PTR __$EHRec$[ebp+12], ebx

; 131  : 		_Grouping = _MAKLOCSTR(char, _Ptr->grouping, _Lobj._Getcvt());

	call	__Getcvt
	mov	ecx, DWORD PTR [edi+8]
	lea	eax, DWORD PTR $T33821[ebp]
	push	eax
	push	ebx
	push	ecx
	call	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ; std::_Maklocstr<char>
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [esi+8], eax

; 132  : 		_Falsename = _MAKLOCSTR(_Elem, _Lobj._Getfalse(), _Lobj._Getcvt());

	call	__Getcvt
	lea	edx, DWORD PTR $T33822[ebp]
	push	edx
	push	ebx
	push	OFFSET ??_C@_05LAPONLG@false?$AA@
	call	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ; std::_Maklocstr<char>
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [esi+16], eax

; 133  : 		_Truename = _MAKLOCSTR(_Elem, _Lobj._Gettrue(), _Lobj._Getcvt());

	call	__Getcvt
	lea	eax, DWORD PTR $T33823[ebp]
	push	eax
	push	ebx
	push	OFFSET ??_C@_04LOAJBDKD@true?$AA@
	call	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ; std::_Maklocstr<char>
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [esi+20], eax

; 137  : 		_CATCH_END
; 138  : 
; 139  : 		_Dp = _MAKLOCCHR(_Elem, _Ptr->decimal_point[0], _Lobj._Getcvt());

	call	__Getcvt
	mov	ecx, DWORD PTR [edi]
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [esi+12], dl

; 140  : 		_Kseparator =
; 141  : 			_MAKLOCCHR(_Elem, _Ptr->thousands_sep[0], _Lobj._Getcvt());

	call	__Getcvt
	mov	eax, DWORD PTR [edi+4]
	mov	cl, BYTE PTR [eax]
	mov	BYTE PTR [esi+13], cl

; 142  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
__catch$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z$0:

; 134  : 		_CATCH_ALL
; 135  : 		_Tidy();

	mov	ecx, DWORD PTR _this$[ebp]
	call	?_Tidy@?$numpunct@D@std@@AAEXXZ		; std::numpunct<char>::_Tidy

; 136  : 		_RERAISE;

	xor	ebx, ebx
	push	ebx
	push	ebx
	call	__CxxThrowException@8
$LN31@Init@3:
$LN30@Init@3:
	int	3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z ENDP	; std::numpunct<char>::_Init
PUBLIC	??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@ ; `string'
PUBLIC	??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*
;	COMDAT ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
; File c:\program files\microsoft visual studio 8\vc\include\xutility
CONST	SEGMENT
??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@ DB 'i'
	DB	00H, 's', 00H, 't', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'm', 00H
	DB	'b', 00H, 'u', 00H, 'f', 00H, '_', 00H, 'i', 00H, 't', 00H, 'e'
	DB	00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r', 00H, ' ', 00H
	DB	'i', 00H, 's', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' '
	DB	00H, 'd', 00H, 'e', 00H, 'r', 00H, 'e', 00H, 'f', 00H, 'e', 00H
	DB	'r', 00H, 'e', 00H, 'n', 00H, 'c', 00H, 'a', 00H, 'b', 00H, 'l'
	DB	00H, 'e', 00H, 00H, 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ
_TEXT	SEGMENT
??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*, COMDAT
; _this$ = ecx

; 2106 : 		{	// return designated value

	push	esi
	mov	esi, ecx

; 2107 : 		if (!_Got)

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN2@operator@7

; 2108 : 			((_Myt *)this)->_Peek();

	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN2@operator@7:

; 2109 : 
; 2110 :  #if _HAS_ITERATOR_DEBUGGING
; 2111 : 		if (_Strbuf == 0)

	cmp	DWORD PTR [esi+8], 0
	jne	SHORT $LN5@operator@7

; 2112 : 			_DEBUG_ERROR("istreambuf_iterator is not dereferencable");

	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN5@operator@7:

; 2113 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 2114 : 
; 2115 : 		return (_Val);

	mov	al, BYTE PTR [esi+13]
	pop	esi

; 2116 : 		}

	ret	0
??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*
_TEXT	ENDS
PUBLIC	??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@ ; `string'
PUBLIC	??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator++
;	COMDAT ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
CONST	SEGMENT
??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@ DB 'i'
	DB	00H, 's', 00H, 't', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'm', 00H
	DB	'b', 00H, 'u', 00H, 'f', 00H, '_', 00H, 'i', 00H, 't', 00H, 'e'
	DB	00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r', 00H, ' ', 00H
	DB	'i', 00H, 's', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' '
	DB	00H, 'i', 00H, 'n', 00H, 'c', 00H, 'r', 00H, 'e', 00H, 'm', 00H
	DB	'e', 00H, 'n', 00H, 't', 00H, 'a', 00H, 'b', 00H, 'l', 00H, 'e'
	DB	00H, 00H, 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ
_TEXT	SEGMENT
??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ PROC ; std::istreambuf_iterator<char,std::char_traits<char> >::operator++, COMDAT
; _this$ = ecx

; 2119 : 		{	// preincrement

	push	esi
	mov	esi, ecx

; 2120 : 
; 2121 :  #if _HAS_ITERATOR_DEBUGGING
; 2122 : 		if (_Strbuf == 0)

	cmp	DWORD PTR [esi+8], 0
	jne	SHORT $LN1@operator@8

; 2123 : 			_DEBUG_ERROR("istreambuf_iterator is not incrementable");

	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN1@operator@8:

; 2124 :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 2125 : 
; 2126 : 		_Inc();

	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc

; 2127 : 		return (*this);

	mov	eax, esi
	pop	esi

; 2128 : 		}

	ret	0
??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::operator++
_TEXT	ENDS
PUBLIC	??$?8DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ; std::operator==<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??$?8DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
??$?8DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z PROC ; std::operator==<char,std::char_traits<char> >, COMDAT

; 2184 : 	{	// test for istreambuf_iterator equality

	push	esi
	push	edi

; 2185 : 	return (_Left.equal(_Right));

	mov	edi, DWORD PTR __Left$[esp+4]
	cmp	BYTE PTR [edi+12], 0
	jne	SHORT $LN4@operator@9
	mov	ecx, edi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN4@operator@9:
	mov	esi, DWORD PTR __Right$[esp+4]
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN3@operator@9
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN3@operator@9:
	mov	eax, DWORD PTR [edi+8]
	test	eax, eax
	jne	SHORT $LN12@operator@9
	cmp	DWORD PTR [esi+8], eax
	je	SHORT $LN9@operator@9
	test	eax, eax
	je	SHORT $LN8@operator@9
$LN12@operator@9:
	cmp	DWORD PTR [esi+8], 0
	je	SHORT $LN8@operator@9
$LN9@operator@9:
	pop	edi
	mov	eax, 1
	pop	esi

; 2186 : 	}

	ret	0

; 2185 : 	return (_Left.equal(_Right));

$LN8@operator@9:
	pop	edi
	xor	eax, eax
	pop	esi

; 2186 : 	}

	ret	0
??$?8DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ENDP ; std::operator==<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ; std::operator!=<char,std::char_traits<char> >
; Function compile flags: /Ogtpy
;	COMDAT ??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z PROC ; std::operator!=<char,std::char_traits<char> >, COMDAT

; 2193 : 	{	// test for istreambuf_iterator inequality

	push	esi
	push	edi

; 2194 : 	return (!(_Left == _Right));

	mov	edi, DWORD PTR __Left$[esp+4]
	cmp	BYTE PTR [edi+12], 0
	jne	SHORT $LN6@operator@10
	mov	ecx, edi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN6@operator@10:
	mov	esi, DWORD PTR __Right$[esp+4]
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN5@operator@10
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN5@operator@10:
	mov	eax, DWORD PTR [edi+8]
	test	eax, eax
	jne	SHORT $LN14@operator@10
	cmp	DWORD PTR [esi+8], eax
	je	SHORT $LN11@operator@10
	test	eax, eax
	je	SHORT $LN10@operator@10
$LN14@operator@10:
	cmp	DWORD PTR [esi+8], 0
	je	SHORT $LN10@operator@10
$LN11@operator@10:
	mov	eax, 1
	xor	ecx, ecx
	test	al, al
	sete	cl
	pop	edi
	mov	al, cl
	pop	esi

; 2195 : 	}

	ret	0

; 2194 : 	return (!(_Left == _Right));

$LN10@operator@10:
	xor	eax, eax
	xor	ecx, ecx
	test	al, al
	sete	cl
	pop	edi
	mov	al, cl
	pop	esi

; 2195 : 	}

	ret	0
??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ENDP ; std::operator!=<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z ; std::_Debug_range2<std::istreambuf_iterator<char,std::char_traits<char> > >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__unwindtable$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z$0
__ehfuncinfo$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
xdata$x	ENDS
;	COMDAT ??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
___formal$ = 8						; size = 16
___formal$ = 24						; size = 16
___formal$ = 40						; size = 4
___formal$ = 44						; size = 4
___formal$ = 48						; size = 1
??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z PROC ; std::_Debug_range2<std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT

; 1387 : 	{	// test iterator pair for valid range, arbitrary iterators

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z
	push	eax
	mov	DWORD PTR fs:0, esp

; 1388 : 	}

	lea	ecx, DWORD PTR ___formal$[esp+8]
	mov	DWORD PTR __$EHRec$[esp+20], 0
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR ___formal$[esp+8]
	mov	DWORD PTR __$EHRec$[esp+20], -1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	mov	ecx, DWORD PTR __$EHRec$[esp+12]
	mov	DWORD PTR fs:0, ecx
	add	esp, 12					; 0000000cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z$0:
	lea	ecx, DWORD PTR ___formal$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__ehhandler$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$_Debug_range2@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WIUinput_iterator_tag@0@@Z ENDP ; std::_Debug_range2<std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::falsename
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
;	COMDAT ?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T33971 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::numpunct<char>::falsename, COMDAT
; _this$ = ecx

; 74   : 		{	// return name for false

	push	ecx

; 75   : 		return (do_falsename());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	esi
	mov	DWORD PTR $T33971[esp+12], 0
	call	edx
	mov	eax, esi
	pop	esi

; 76   : 		}

	pop	ecx
	ret	4
?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::falsename
_TEXT	ENDS
PUBLIC	?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::truename
; Function compile flags: /Ogtpy
;	COMDAT ?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T33977 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::numpunct<char>::truename, COMDAT
; _this$ = ecx

; 79   : 		{	// return name for true

	push	ecx

; 80   : 		return (do_truename());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	esi
	mov	DWORD PTR $T33977[esp+12], 0
	call	edx
	mov	eax, esi
	pop	esi

; 81   : 		}

	pop	ecx
	ret	4
?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::truename
_TEXT	ENDS
PUBLIC	?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::grouping
; Function compile flags: /Ogtpy
;	COMDAT ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T33983 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::numpunct<char>::grouping, COMDAT
; _this$ = ecx

; 69   : 		{	// return grouping string

	push	ecx

; 70   : 		return (do_grouping());

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+12]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	esi
	mov	DWORD PTR $T33983[esp+12], 0
	call	edx
	mov	eax, esi
	pop	esi

; 71   : 		}

	pop	ecx
	ret	4
?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::grouping
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 950  : 		{	// append _Right [_Roff, _Roff + _Count)

	push	ebx
	push	ebp

; 951  : 		if (_Right.size() < _Roff)

	mov	ebp, DWORD PTR __Right$[esp+4]
	push	esi
	push	edi
	mov	edi, DWORD PTR __Roff$[esp+12]
	cmp	DWORD PTR [ebp+24], edi
	mov	esi, ecx
	jae	SHORT $LN5@append@2

; 952  : 			_String_base::_Xran();	// _Roff off end

	call	?_Xran@_String_base@std@@SAXXZ		; std::_String_base::_Xran
$LN5@append@2:

; 953  : 		size_type _Num = _Right.size() - _Roff;

	mov	eax, DWORD PTR [ebp+24]

; 954  : 		if (_Num < _Count)

	mov	ebx, DWORD PTR __Count$[esp+12]
	sub	eax, edi
	cmp	eax, ebx
	jae	SHORT $LN4@append@2

; 955  : 			_Count = _Num;	// trim _Count to size

	mov	ebx, eax
$LN4@append@2:

; 956  : 		if (npos - _Mysize <= _Count || _Mysize + _Count < _Mysize)

	mov	eax, DWORD PTR [esi+24]
	or	ecx, -1
	sub	ecx, eax
	cmp	ecx, ebx
	jbe	SHORT $LN2@append@2
	lea	edx, DWORD PTR [eax+ebx]
	cmp	edx, eax
	jae	SHORT $LN3@append@2
$LN2@append@2:

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

	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN3@append@2:

; 958  : 
; 959  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

	test	ebx, ebx
	jbe	$LN87@append@2
	mov	edi, DWORD PTR [esi+24]
	add	edi, ebx
	cmp	edi, -2					; fffffffeH
	jbe	SHORT $LN17@append@2
	call	?_Xlen@_String_base@std@@SAXXZ		; std::_String_base::_Xlen
$LN17@append@2:
	mov	eax, DWORD PTR [esi+28]
	cmp	eax, edi
	jae	SHORT $LN16@append@2
	mov	eax, DWORD PTR [esi+24]
	push	eax
	push	edi
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	edi, edi
$LN88@append@2:
	jbe	$LN87@append@2

; 960  : 			{	// make room and append new stuff
; 961  : 			_Traits_helper::copy_s<_Traits>(_Myptr() + _Mysize, _Myres - _Mysize,
; 962  : 				_Right._Myptr() + _Roff, _Count);

	cmp	DWORD PTR [ebp+28], 16			; 00000010H
	jb	SHORT $LN64@append@2
	mov	ebp, DWORD PTR [ebp+8]
	jmp	SHORT $LN65@append@2

; 958  : 
; 959  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN16@append@2:
	test	edi, edi
	jne	SHORT $LN88@append@2
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN58@append@2
	mov	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 964  : 			}
; 965  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 966  : 		}

	ret	12					; 0000000cH

; 958  : 
; 959  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$LN58@append@2:
	lea	eax, DWORD PTR [esi+8]
	pop	edi
	mov	BYTE PTR [eax], 0

; 964  : 			}
; 965  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 966  : 		}

	ret	12					; 0000000cH

; 960  : 			{	// make room and append new stuff
; 961  : 			_Traits_helper::copy_s<_Traits>(_Myptr() + _Mysize, _Myres - _Mysize,
; 962  : 				_Right._Myptr() + _Roff, _Count);

$LN64@append@2:
	add	ebp, 8
$LN65@append@2:
	mov	eax, DWORD PTR [esi+28]
	cmp	eax, 16					; 00000010H
	jb	SHORT $LN68@append@2
	mov	edx, DWORD PTR [esi+8]
	jmp	SHORT $LN69@append@2
$LN68@append@2:
	lea	edx, DWORD PTR [esi+8]
$LN69@append@2:
	mov	ecx, DWORD PTR [esi+24]
	push	ebx
	mov	ebx, DWORD PTR __Roff$[esp+16]
	add	ebp, ebx
	sub	eax, ecx
	push	ebp
	push	eax
	add	ecx, edx
	push	ecx
	call	_memcpy_s
	add	esp, 16					; 00000010H

; 963  : 			_Eos(_Num);

	cmp	DWORD PTR [esi+28], 16			; 00000010H
	mov	DWORD PTR [esi+24], edi
	jb	SHORT $LN82@append@2
	mov	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax+edi], 0
	pop	edi

; 964  : 			}
; 965  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 966  : 		}

	ret	12					; 0000000cH

; 963  : 			_Eos(_Num);

$LN82@append@2:
	lea	eax, DWORD PTR [esi+8]
	mov	BYTE PTR [eax+edi], 0
$LN87@append@2:
	pop	edi

; 964  : 			}
; 965  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 966  : 		}

	ret	12					; 0000000cH
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
; Function compile flags: /Ogtpy
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=, COMDAT
; _this$ = ecx

; 940  : 		return (append((size_type)1, _Ch));

	mov	eax, DWORD PTR __Ch$[esp-4]
	push	eax
	push	1
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 941  : 		}

	ret	4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
_TEXT	ENDS
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogtpy
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 945  : 		return (append(_Right, 0, npos));

	mov	eax, DWORD PTR __Right$[esp-4]
	push	-1
	push	0
	push	eax
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 946  : 		}

	ret	4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$2
	DD	01H
	DD	FLAT:__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$8
__ehfuncinfo$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xutility
xdata$x	ENDS
;	COMDAT ??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z
_TEXT	SEGMENT
$T34332 = -44						; size = 16
$T34331 = -28						; size = 16
__$EHRec$ = -12						; size = 12
__First$ = 8						; size = 16
__Last$ = 24						; size = 16
__File$ = 40						; size = 4
__Line$ = 44						; size = 4
??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z PROC ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT

; 1405 : 	{	// test iterator pair for valid range

	push	-1
	push	__ehhandler$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 32					; 00000020H
	push	ebx

; 1406 : 	_Debug_range2(_First, _Last, _File, _Line, _Iter_cat(_First));

	lea	eax, DWORD PTR __Last$[esp+44]
	xor	ebx, ebx
	push	eax
	lea	ecx, DWORD PTR $T34331[esp+52]
	mov	DWORD PTR __$EHRec$[esp+60], 1
	mov	DWORD PTR $T34331[esp+52], ebx
	mov	DWORD PTR $T34331[esp+56], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+52]
	mov	dl, BYTE PTR __Last$[esp+56]
	mov	al, BYTE PTR __Last$[esp+57]
	mov	DWORD PTR $T34331[esp+56], ecx
	mov	BYTE PTR $T34331[esp+60], dl
	mov	BYTE PTR $T34331[esp+61], al
	lea	ecx, DWORD PTR __First$[esp+44]
	push	ecx
	lea	ecx, DWORD PTR $T34332[esp+52]
	mov	BYTE PTR __$EHRec$[esp+60], 2
	mov	DWORD PTR $T34332[esp+52], ebx
	mov	DWORD PTR $T34332[esp+56], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+52]
	mov	al, BYTE PTR __First$[esp+56]
	mov	cl, BYTE PTR __First$[esp+57]
	mov	DWORD PTR $T34332[esp+56], edx
	mov	BYTE PTR $T34332[esp+60], al
	mov	BYTE PTR $T34332[esp+61], cl
	lea	ecx, DWORD PTR $T34332[esp+48]
	mov	BYTE PTR __$EHRec$[esp+56], 3
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR $T34331[esp+48]
	mov	BYTE PTR __$EHRec$[esp+56], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 1407 : 	}

	lea	ecx, DWORD PTR __First$[esp+44]
	mov	BYTE PTR __$EHRec$[esp+56], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+44]
	mov	DWORD PTR __$EHRec$[esp+56], -1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 44					; 0000002cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$2:
	lea	ecx, DWORD PTR $T34331[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z$8:
	lea	ecx, DWORD PTR $T34331[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__ehhandler$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z:
	mov	eax, OFFSET __ehfuncinfo$??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ENDP ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xstring
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=, COMDAT
; _this$ = ecx

; 930  : 		return (append(_Right));

	mov	eax, DWORD PTR __Right$[esp-4]
	push	-1
	push	0
	push	eax
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 931  : 		}

	ret	4
??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator+=
_TEXT	ENDS
PUBLIC	??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xutility
xdata$x	SEGMENT
__unwindtable$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z$0
__ehfuncinfo$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
xdata$x	ENDS
;	COMDAT ??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
_TEXT	SEGMENT
__Prefix$24245 = -53					; size = 1
__Column$24241 = -52					; size = 4
__Ans$ = -48						; size = 4
__Str$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Lock$35387 = 16					; size = 4
__Numfields$ = 16					; size = 4
__Ptr$ = 20						; size = 4
??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z PROC ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT

; 513  : 	{	// find field at _Ptr that matches longest in [_First, _Last)

	mov	eax, DWORD PTR fs:0

; 514  : 	for (size_t _Off = 0; _Ptr[_Off] != (_Elem)0; ++_Off)

	mov	ecx, DWORD PTR __Ptr$[esp-4]
	push	-1
	push	__ehhandler$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	mov	dl, BYTE PTR [ecx]
	sub	esp, 44					; 0000002cH
	test	dl, dl
	push	ebx
	push	esi
	mov	esi, DWORD PTR __Numfields$[esp+60]
	push	edi
	je	SHORT $LN21@Getloctxt

; 517  : 	string _Str(_Numfields, '\0');	// one column counter for each field

	mov	al, dl
	npad	5
$LL23@Getloctxt:

; 515  : 		if (_Ptr[_Off] == _Ptr[0])

	cmp	al, dl
	jne	SHORT $LN22@Getloctxt

; 516  : 			++_Numfields;	// add fields with leading mark to initial count

	add	esi, 1
$LN22@Getloctxt:

; 514  : 	for (size_t _Off = 0; _Ptr[_Off] != (_Elem)0; ++_Off)

	mov	al, BYTE PTR [ecx+1]
	add	ecx, 1
	test	al, al
	jne	SHORT $LL23@Getloctxt

; 516  : 			++_Numfields;	// add fields with leading mark to initial count

	mov	DWORD PTR __Numfields$[esp+64], esi
$LN21@Getloctxt:

; 517  : 	string _Str(_Numfields, '\0');	// one column counter for each field

	xor	ebx, ebx
	mov	DWORD PTR __Str$[esp+68], ebx
	push	ebx
	push	esi
	lea	ecx, DWORD PTR __Str$[esp+76]
	mov	DWORD PTR __$EHRec$[esp+84], ebx
	mov	DWORD PTR __Str$[esp+104], 15		; 0000000fH
	mov	DWORD PTR __Str$[esp+100], ebx
	mov	BYTE PTR __Str$[esp+84], bl
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 518  : 
; 519  : 	int _Ans = -2;	// no candidates so far
; 520  : 	for (size_t _Column = 1; ; ++_Column, ++_First, _Ans = -1)

	mov	edi, DWORD PTR __First$[esp+64]
	mov	eax, 1
	mov	DWORD PTR __$EHRec$[esp+76], eax
	mov	DWORD PTR __Ans$[esp+68], -2		; fffffffeH
	mov	DWORD PTR __Column$24241[esp+68], eax
	push	ebp
$LL19@Getloctxt:

; 521  : 		{	// test each element against all viable fields
; 522  : 		bool  _Prefix = false;	// seen at least one valid prefix
; 523  : 		size_t _Off = 0;	// offset into fields

	xor	esi, esi

; 524  : 		size_t _Field = 0;	// current field number

	xor	ebp, ebp

; 525  : 
; 526  : 		for (; _Field < _Numfields; ++_Field)

	cmp	DWORD PTR __Numfields$[esp+68], ebx
	mov	BYTE PTR __Prefix$24245[esp+72], 0
	jbe	$LN183@Getloctxt
$LL16@Getloctxt:

; 527  : 			{	// test element at _Column in field _Field
; 528  : 			for (; _Ptr[_Off] != (_Elem)0 && _Ptr[_Off] != _Ptr[0]; ++_Off)

	mov	edx, DWORD PTR __Ptr$[esp+68]
	mov	al, BYTE PTR [esi+edx]
	test	al, al
	je	SHORT $LN11@Getloctxt
	mov	cl, BYTE PTR [edx]
$LL13@Getloctxt:
	cmp	al, cl
	je	SHORT $LN11@Getloctxt
	mov	al, BYTE PTR [esi+edx+1]
	add	esi, 1
	test	al, al
	jne	SHORT $LL13@Getloctxt
$LN11@Getloctxt:

; 529  : 				;	// find beginning of field
; 530  : 
; 531  : 			if (_Str[_Field] != '\0')

	push	ebp
	lea	ecx, DWORD PTR __Str$[esp+76]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], 0
	je	SHORT $LN10@Getloctxt

; 532  : 				_Off += _Str[_Field];	// skip tested columns in field

	push	ebp
	lea	ecx, DWORD PTR __Str$[esp+76]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	movsx	eax, BYTE PTR [eax]
	add	esi, eax

; 533  : 			else if (_Ptr[_Off += _Column] == _Ptr[0]

	jmp	$LN15@Getloctxt
$LN10@Getloctxt:

; 534  : 				|| _Ptr[_Off] == (_Elem)0)

	mov	edx, DWORD PTR __Column$24241[esp+72]
	mov	ecx, DWORD PTR __Ptr$[esp+68]
	add	esi, edx
	mov	al, BYTE PTR [esi+ecx]
	cmp	al, BYTE PTR [ecx]
	je	$LN7@Getloctxt
	test	al, al
	je	$LN7@Getloctxt

; 539  : 				}
; 540  : 			else if (_First == _Last || _Ptr[_Off] != *_First)

	cmp	BYTE PTR [edi+12], 0
	jne	SHORT $LN105@Getloctxt
	mov	ecx, DWORD PTR [edi+8]
	cmp	ecx, ebx
	je	SHORT $LN287@Getloctxt
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN109@Getloctxt
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN109@Getloctxt
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN110@Getloctxt
$LN109@Getloctxt:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN110@Getloctxt:
	cmp	eax, -1
	je	SHORT $LN287@Getloctxt
	mov	BYTE PTR [edi+13], al
	jmp	SHORT $LN102@Getloctxt
$LN287@Getloctxt:
	mov	DWORD PTR [edi+8], ebx
$LN102@Getloctxt:
	mov	BYTE PTR [edi+12], 1
$LN105@Getloctxt:
	mov	edx, DWORD PTR __Last$[esp+68]
	cmp	BYTE PTR [edx+12], 0
	jne	SHORT $LN128@Getloctxt
	mov	ecx, DWORD PTR [edx+8]
	cmp	ecx, ebx
	je	SHORT $LN126@Getloctxt
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN132@Getloctxt
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN132@Getloctxt
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN133@Getloctxt
$LN132@Getloctxt:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN133@Getloctxt:
	cmp	eax, -1
	mov	edx, DWORD PTR __Last$[esp+68]
	je	SHORT $LN126@Getloctxt
	mov	BYTE PTR [edx+13], al
	jmp	SHORT $LN125@Getloctxt
$LN126@Getloctxt:
	mov	DWORD PTR [edx+8], ebx
$LN125@Getloctxt:
	mov	BYTE PTR [edx+12], 1
$LN128@Getloctxt:
	mov	ecx, DWORD PTR [edi+8]
	cmp	ecx, ebx
	jne	SHORT $LN295@Getloctxt
	cmp	DWORD PTR [edx+8], ebx
	je	SHORT $LN4@Getloctxt
	cmp	ecx, ebx
	je	SHORT $LN99@Getloctxt
$LN295@Getloctxt:
	cmp	DWORD PTR [edx+8], ebx
	jne	SHORT $LN4@Getloctxt
$LN99@Getloctxt:
	cmp	BYTE PTR [edi+12], 0
	jne	SHORT $LN155@Getloctxt
	cmp	ecx, ebx
	je	SHORT $LN289@Getloctxt
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN159@Getloctxt
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN159@Getloctxt
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN160@Getloctxt
$LN159@Getloctxt:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN160@Getloctxt:
	cmp	eax, -1
	je	SHORT $LN289@Getloctxt
	mov	BYTE PTR [edi+13], al
	jmp	SHORT $LN152@Getloctxt
$LN289@Getloctxt:
	mov	DWORD PTR [edi+8], ebx
$LN152@Getloctxt:
	mov	BYTE PTR [edi+12], 1
$LN155@Getloctxt:
	cmp	DWORD PTR [edi+8], ebx
	jne	SHORT $LN148@Getloctxt
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN148@Getloctxt:
	mov	al, BYTE PTR [edi+13]
	mov	ecx, DWORD PTR __Ptr$[esp+68]
	cmp	BYTE PTR [esi+ecx], al
	jne	SHORT $LN4@Getloctxt

; 544  : 				_Prefix = true;	// still a valid prefix

	mov	BYTE PTR __Prefix$24245[esp+72], 1
	jmp	SHORT $LN15@Getloctxt
$LN4@Getloctxt:

; 541  : 				_Str[_Field] = (char)(_Column < 127
; 542  : 					? _Column : 127);	// no match, just save skip count

	cmp	DWORD PTR __Column$24241[esp+72], 127	; 0000007fH
	mov	ebx, DWORD PTR __Column$24241[esp+72]
	jb	SHORT $LN29@Getloctxt
	mov	ebx, 127				; 0000007fH
$LN29@Getloctxt:
	push	ebp
	lea	ecx, DWORD PTR __Str$[esp+76]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]

; 543  : 			else

	jmp	SHORT $LN296@Getloctxt
$LN7@Getloctxt:

; 535  : 				{	// matched all of field, save as possible answer
; 536  : 				_Str[_Field] = (char)(_Column < 127
; 537  : 					? _Column : 127);	// save skip count if small enough

	cmp	edx, 127				; 0000007fH
	mov	ebx, DWORD PTR __Column$24241[esp+72]
	jb	SHORT $LN27@Getloctxt
	mov	ebx, 127				; 0000007fH
$LN27@Getloctxt:
	push	ebp
	lea	ecx, DWORD PTR __Str$[esp+76]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]

; 538  : 				_Ans = (int)_Field;	// save answer

	mov	DWORD PTR __Ans$[esp+72], ebp
$LN296@Getloctxt:
	mov	BYTE PTR [eax], bl
	xor	ebx, ebx
$LN15@Getloctxt:
	add	ebp, 1
	cmp	ebp, DWORD PTR __Numfields$[esp+68]
	jb	$LL16@Getloctxt

; 545  : 			}
; 546  : 
; 547  : 		if (!_Prefix || _First == _Last)

	cmp	BYTE PTR __Prefix$24245[esp+72], 0
	je	$LN183@Getloctxt
	cmp	BYTE PTR [edi+12], 0
	jne	SHORT $LN291@Getloctxt
	mov	ecx, DWORD PTR [edi+8]
	cmp	ecx, ebx
	je	SHORT $LN290@Getloctxt
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN192@Getloctxt
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN192@Getloctxt
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN193@Getloctxt
$LN192@Getloctxt:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN193@Getloctxt:
	cmp	eax, -1
	je	SHORT $LN290@Getloctxt
	mov	BYTE PTR [edi+13], al
	jmp	SHORT $LN185@Getloctxt
$LN290@Getloctxt:
	mov	DWORD PTR [edi+8], ebx
$LN185@Getloctxt:
	mov	BYTE PTR [edi+12], 1
$LN291@Getloctxt:
	mov	edx, DWORD PTR __Last$[esp+68]
	cmp	BYTE PTR [edx+12], 0
	jne	SHORT $LN211@Getloctxt
	mov	ecx, DWORD PTR [edx+8]
	cmp	ecx, ebx
	je	SHORT $LN209@Getloctxt
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN215@Getloctxt
	mov	esi, DWORD PTR [ecx+48]
	cmp	DWORD PTR [esi], ebx
	jle	SHORT $LN215@Getloctxt
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN216@Getloctxt
$LN215@Getloctxt:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
	mov	edx, DWORD PTR __Last$[esp+68]
$LN216@Getloctxt:
	cmp	eax, -1
	je	SHORT $LN209@Getloctxt
	mov	BYTE PTR [edx+13], al
	jmp	SHORT $LN208@Getloctxt
$LN209@Getloctxt:
	mov	DWORD PTR [edx+8], ebx
$LN208@Getloctxt:
	mov	BYTE PTR [edx+12], 1
$LN211@Getloctxt:
	mov	eax, DWORD PTR [edi+8]
	cmp	eax, ebx
	jne	SHORT $LN298@Getloctxt
	cmp	DWORD PTR [edx+8], ebx
	je	$LN183@Getloctxt
	cmp	eax, ebx
	je	SHORT $LN182@Getloctxt
$LN298@Getloctxt:
	cmp	DWORD PTR [edx+8], ebx
	jne	SHORT $LN183@Getloctxt
$LN182@Getloctxt:
	add	DWORD PTR __Column$24241[esp+72], 1
	cmp	eax, ebx
	jne	SHORT $LN68@Getloctxt
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN68@Getloctxt:
	mov	ecx, DWORD PTR [edi+8]
	cmp	ecx, ebx
	je	SHORT $LN292@Getloctxt
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN78@Getloctxt
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN78@Getloctxt
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN79@Getloctxt

; 518  : 
; 519  : 	int _Ans = -2;	// no candidates so far
; 520  : 	for (size_t _Column = 1; ; ++_Column, ++_First, _Ans = -1)

$LN78@Getloctxt:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN79@Getloctxt:
	cmp	eax, -1
	je	SHORT $LN292@Getloctxt
	mov	BYTE PTR [edi+12], 0
	mov	DWORD PTR __Ans$[esp+72], -1
	jmp	$LL19@Getloctxt
$LN292@Getloctxt:
	mov	DWORD PTR [edi+8], ebx
	mov	BYTE PTR [edi+12], 1
	mov	DWORD PTR __Ans$[esp+72], -1
	jmp	$LL19@Getloctxt

; 545  : 			}
; 546  : 
; 547  : 		if (!_Prefix || _First == _Last)

$LN183@Getloctxt:

; 548  : 			break;	// no pending prefixes or no input, give up
; 549  : 		}
; 550  : 	return (_Ans);	// return field number or negative value on failure

	cmp	DWORD PTR __Str$[esp+100], 16		; 00000010H
	mov	DWORD PTR __$EHRec$[esp+80], -1
	pop	ebp
	jb	SHORT $LN248@Getloctxt
	mov	eax, DWORD PTR __Str$[esp+76]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN248@Getloctxt:
	push	3
	lea	ecx, DWORD PTR __Lock$35387[esp+68]
	mov	DWORD PTR __Str$[esp+100], 15		; 0000000fH
	mov	DWORD PTR __Str$[esp+96], ebx
	mov	BYTE PTR __Str$[esp+80], 0
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR __Str$[esp+68]
	cmp	eax, -3					; fffffffdH
	je	SHORT $LN269@Getloctxt
	cmp	eax, ebx
	je	SHORT $LN266@Getloctxt
$LL268@Getloctxt:
	mov	DWORD PTR [eax], ebx
	mov	ecx, DWORD PTR __Str$[esp+68]
	mov	eax, DWORD PTR [ecx+4]
	cmp	eax, ebx
	mov	DWORD PTR __Str$[esp+68], eax
	jne	SHORT $LL268@Getloctxt
$LN266@Getloctxt:
	mov	DWORD PTR __Str$[esp+68], ebx
$LN269@Getloctxt:
	lea	ecx, DWORD PTR __Lock$35387[esp+64]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 551  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	mov	eax, DWORD PTR __Ans$[esp+68]
	pop	edi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 56					; 00000038H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z$1:
	lea	ecx, DWORD PTR __Str$[ebp]
	jmp	??1?$_String_val@DV?$allocator@D@std@@@std@@QAE@XZ
__unwindfunclet$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z$0:
	lea	ecx, DWORD PTR __Str$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z ENDP ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	??_7?$codecvt@DDH@std@@6B@			; std::codecvt<char,char,int>::`vftable'
PUBLIC	??0?$codecvt@DDH@std@@QAE@I@Z			; std::codecvt<char,char,int>::codecvt<char,char,int>
PUBLIC	??_R4?$codecvt@DDH@std@@6B@			; std::codecvt<char,char,int>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$codecvt@DDH@std@@@8			; std::codecvt<char,char,int> `RTTI Type Descriptor'
PUBLIC	??_R3?$codecvt@DDH@std@@8			; std::codecvt<char,char,int>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$codecvt@DDH@std@@8			; std::codecvt<char,char,int>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$codecvt@DDH@std@@8		; std::codecvt<char,char,int>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ; std::codecvt<char,char,int>::do_in
PUBLIC	?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ; std::codecvt<char,char,int>::do_out
PUBLIC	?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z ; std::codecvt<char,char,int>::do_unshift
PUBLIC	?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z	; std::codecvt<char,char,int>::do_length
EXTRN	??_E?$codecvt@DDH@std@@MAEPAXI@Z:PROC		; std::codecvt<char,char,int>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$codecvt@DDH@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$codecvt@DDH@std@@8 DD FLAT:??_R0?AV?$codecvt@DDH@std@@@8 ; std::codecvt<char,char,int>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$codecvt@DDH@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$codecvt@DDH@std@@8
rdata$r	SEGMENT
??_R2?$codecvt@DDH@std@@8 DD FLAT:??_R1A@?0A@EA@?$codecvt@DDH@std@@8 ; std::codecvt<char,char,int>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@codecvt_base@std@@8
	DD	FLAT:??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$codecvt@DDH@std@@8
rdata$r	SEGMENT
??_R3?$codecvt@DDH@std@@8 DD 00H			; std::codecvt<char,char,int>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2?$codecvt@DDH@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$codecvt@DDH@std@@@8
_DATA	SEGMENT
??_R0?AV?$codecvt@DDH@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::codecvt<char,char,int> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$codecvt@DDH@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$codecvt@DDH@std@@6B@
rdata$r	SEGMENT
??_R4?$codecvt@DDH@std@@6B@ DD 00H			; std::codecvt<char,char,int>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$codecvt@DDH@std@@@8
	DD	FLAT:??_R3?$codecvt@DDH@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$codecvt@DDH@std@@6B@
CONST	SEGMENT
??_7?$codecvt@DDH@std@@6B@ DD FLAT:??_R4?$codecvt@DDH@std@@6B@ ; std::codecvt<char,char,int>::`vftable'
	DD	FLAT:??_E?$codecvt@DDH@std@@MAEPAXI@Z
	DD	FLAT:?do_always_noconv@codecvt_base@std@@MBE_NXZ
	DD	FLAT:?do_max_length@codecvt_base@std@@MBEHXZ
	DD	FLAT:?do_encoding@codecvt_base@std@@MBEHXZ
	DD	FLAT:?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
	DD	FLAT:?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
	DD	FLAT:?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z
	DD	FLAT:?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$codecvt@DDH@std@@QAE@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$codecvt@DDH@std@@QAE@I@Z$0
__ehfuncinfo$??0?$codecvt@DDH@std@@QAE@I@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$codecvt@DDH@std@@QAE@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0?$codecvt@DDH@std@@QAE@I@Z
_TEXT	SEGMENT
_this$ = -148						; size = 4
__Lobj$24380 = -144					; size = 132
__$EHRec$ = -12						; size = 12
__Refs$ = 8						; size = 4
??0?$codecvt@DDH@std@@QAE@I@Z PROC			; std::codecvt<char,char,int>::codecvt<char,char,int>, COMDAT
; _this$ = ecx

; 746  : 		{	// construct from current locale

	push	-1
	push	__ehhandler$??0?$codecvt@DDH@std@@QAE@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 136				; 00000088H
	mov	eax, DWORD PTR __Refs$[esp+144]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+152], esi
	mov	DWORD PTR [esi+4], eax

; 747  : 		_BEGIN_LOCINFO(_Lobj)

	push	OFFSET ??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR __Lobj$24380[esp+156]
	mov	DWORD PTR __$EHRec$[esp+164], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$codecvt@DDH@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo

; 748  : 			_Init(_Lobj);
; 749  : 		_END_LOCINFO()

	lea	ecx, DWORD PTR __Lobj$24380[esp+152]
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 750  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+152]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 148				; 00000094H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$codecvt@DDH@std@@QAE@I@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1codecvt_base@std@@UAE@XZ		; std::codecvt_base::~codecvt_base
__ehhandler$??0?$codecvt@DDH@std@@QAE@I@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$codecvt@DDH@std@@QAE@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$codecvt@DDH@std@@QAE@I@Z ENDP			; std::codecvt<char,char,int>::codecvt<char,char,int>
PUBLIC	??1?$codecvt@DDH@std@@MAE@XZ			; std::codecvt<char,char,int>::~codecvt<char,char,int>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$codecvt@DDH@std@@MAE@XZ
_TEXT	SEGMENT
??1?$codecvt@DDH@std@@MAE@XZ PROC			; std::codecvt<char,char,int>::~codecvt<char,char,int>, COMDAT
; _this$ = ecx

; 768  : 		}

	mov	DWORD PTR [ecx], OFFSET ??_7facet@locale@std@@6B@
	ret	0
??1?$codecvt@DDH@std@@MAE@XZ ENDP			; std::codecvt<char,char,int>::~codecvt<char,char,int>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First1$ = 12						; size = 4
___formal$ = 16						; size = 4
__Mid1$ = 20						; size = 4
__First2$ = 24						; size = 4
___formal$ = 28						; size = 4
__Mid2$ = 32						; size = 4
?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z PROC ; std::codecvt<char,char,int>::do_in, COMDAT
; _this$ = ecx

; 779  : 		_Mid1 = _First1, _Mid2 = _First2;

	mov	eax, DWORD PTR __Mid1$[esp-4]
	mov	ecx, DWORD PTR __First1$[esp-4]
	mov	edx, DWORD PTR __Mid2$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	eax, DWORD PTR __First2$[esp-4]
	mov	DWORD PTR [edx], eax

; 780  : 		return (noconv);	// convert nothing

	mov	eax, 3

; 781  : 		}

	ret	28					; 0000001cH
?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ENDP ; std::codecvt<char,char,int>::do_in
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First1$ = 12						; size = 4
___formal$ = 16						; size = 4
__Mid1$ = 20						; size = 4
__First2$ = 24						; size = 4
___formal$ = 28						; size = 4
__Mid2$ = 32						; size = 4
?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z PROC ; std::codecvt<char,char,int>::do_out, COMDAT
; _this$ = ecx

; 787  : 		_Mid1 = _First1, _Mid2 = _First2;

	mov	eax, DWORD PTR __Mid1$[esp-4]
	mov	ecx, DWORD PTR __First1$[esp-4]
	mov	edx, DWORD PTR __Mid2$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	eax, DWORD PTR __First2$[esp-4]
	mov	DWORD PTR [edx], eax

; 788  : 		return (noconv);	// convert nothing

	mov	eax, 3

; 789  : 		}

	ret	28					; 0000001cH
?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ENDP ; std::codecvt<char,char,int>::do_out
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First2$ = 12						; size = 4
___formal$ = 16						; size = 4
__Mid2$ = 20						; size = 4
?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z PROC	; std::codecvt<char,char,int>::do_unshift, COMDAT
; _this$ = ecx

; 794  : 		_Mid2 = _First2;

	mov	eax, DWORD PTR __Mid2$[esp-4]
	mov	ecx, DWORD PTR __First2$[esp-4]
	mov	DWORD PTR [eax], ecx

; 795  : 		return (noconv);	// convert nothing

	mov	eax, 3

; 796  : 		}

	ret	16					; 00000010H
?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z ENDP	; std::codecvt<char,char,int>::do_unshift
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First1$ = 12						; size = 4
__Last1$ = 16						; size = 4
__Count$ = 20						; size = 4
?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z PROC	; std::codecvt<char,char,int>::do_length, COMDAT
; _this$ = ecx

; 801  : 		return ((int)(_Count < (size_t)(_Last1 - _First1)
; 802  : 			? _Count : _Last1 - _First1));	// assume 1-to-1 conversion

	mov	eax, DWORD PTR __Last1$[esp-4]
	sub	eax, DWORD PTR __First1$[esp-4]
	mov	ecx, DWORD PTR __Count$[esp-4]
	cmp	ecx, eax
	jae	SHORT $LN4@do_length
	mov	eax, ecx
$LN4@do_length:

; 803  : 		}

	ret	16					; 00000010H
?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z ENDP	; std::codecvt<char,char,int>::do_length
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$codecvt@DDH@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$codecvt@DDH@std@@MAEPAXI@Z PROC			; std::codecvt<char,char,int>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN15@scalar@25
	push	0
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN15@scalar@25:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$codecvt@DDH@std@@MAEPAXI@Z ENDP			; std::codecvt<char,char,int>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_7?$numpunct@D@std@@6B@			; std::numpunct<char>::`vftable'
PUBLIC	??0?$numpunct@D@std@@QAE@I@Z			; std::numpunct<char>::numpunct<char>
PUBLIC	??_R4?$numpunct@D@std@@6B@			; std::numpunct<char>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$numpunct@D@std@@@8			; std::numpunct<char> `RTTI Type Descriptor'
PUBLIC	??_R3?$numpunct@D@std@@8			; std::numpunct<char>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$numpunct@D@std@@8			; std::numpunct<char>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$numpunct@D@std@@8		; std::numpunct<char>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?do_decimal_point@?$numpunct@D@std@@MBEDXZ	; std::numpunct<char>::do_decimal_point
PUBLIC	?do_thousands_sep@?$numpunct@D@std@@MBEDXZ	; std::numpunct<char>::do_thousands_sep
PUBLIC	?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::do_grouping
PUBLIC	?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::do_falsename
PUBLIC	?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::do_truename
EXTRN	??_E?$numpunct@D@std@@MAEPAXI@Z:PROC		; std::numpunct<char>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$numpunct@D@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$numpunct@D@std@@8 DD FLAT:??_R0?AV?$numpunct@D@std@@@8 ; std::numpunct<char>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$numpunct@D@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$numpunct@D@std@@8
rdata$r	SEGMENT
??_R2?$numpunct@D@std@@8 DD FLAT:??_R1A@?0A@EA@?$numpunct@D@std@@8 ; std::numpunct<char>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@facet@locale@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$numpunct@D@std@@8
rdata$r	SEGMENT
??_R3?$numpunct@D@std@@8 DD 00H				; std::numpunct<char>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$numpunct@D@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$numpunct@D@std@@@8
_DATA	SEGMENT
??_R0?AV?$numpunct@D@std@@@8 DD FLAT:??_7type_info@@6B@	; std::numpunct<char> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$numpunct@D@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$numpunct@D@std@@6B@
rdata$r	SEGMENT
??_R4?$numpunct@D@std@@6B@ DD 00H			; std::numpunct<char>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$numpunct@D@std@@@8
	DD	FLAT:??_R3?$numpunct@D@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$numpunct@D@std@@6B@
CONST	SEGMENT
??_7?$numpunct@D@std@@6B@ DD FLAT:??_R4?$numpunct@D@std@@6B@ ; std::numpunct<char>::`vftable'
	DD	FLAT:??_E?$numpunct@D@std@@MAEPAXI@Z
	DD	FLAT:?do_decimal_point@?$numpunct@D@std@@MBEDXZ
	DD	FLAT:?do_thousands_sep@?$numpunct@D@std@@MBEDXZ
	DD	FLAT:?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
	DD	FLAT:?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
	DD	FLAT:?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$numpunct@D@std@@QAE@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$numpunct@D@std@@QAE@I@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0?$numpunct@D@std@@QAE@I@Z$1
__ehfuncinfo$??0?$numpunct@D@std@@QAE@I@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0?$numpunct@D@std@@QAE@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ??0?$numpunct@D@std@@QAE@I@Z
_TEXT	SEGMENT
_this$ = -148						; size = 4
__Lobj$24383 = -144					; size = 132
__$EHRec$ = -12						; size = 12
__Refs$ = 8						; size = 4
??0?$numpunct@D@std@@QAE@I@Z PROC			; std::numpunct<char>::numpunct<char>, COMDAT
; _this$ = ecx

; 85   : 		{	// construct from current locale

	push	-1
	push	__ehhandler$??0?$numpunct@D@std@@QAE@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 136				; 00000088H
	mov	eax, DWORD PTR __Refs$[esp+144]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+152], esi
	mov	DWORD PTR [esi+4], eax

; 86   : 		_BEGIN_LOCINFO(_Lobj)

	push	OFFSET ??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR __Lobj$24383[esp+156]
	mov	DWORD PTR __$EHRec$[esp+164], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$numpunct@D@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo

; 87   : 			_Init(_Lobj);

	lea	ecx, DWORD PTR __Lobj$24383[esp+152]
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+164], 1
	call	?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z ; std::numpunct<char>::_Init

; 88   : 			if (_Kseparator == 0)

	cmp	BYTE PTR [esi+13], 0
	jne	SHORT $LN1@numpunct

; 89   : 				_Kseparator =	// NB: differs from "C" locale
; 90   : 					_MAKLOCCHR(_Elem, ',', _Lobj._Getcvt());

	call	__Getcvt
	mov	BYTE PTR [esi+13], 44			; 0000002cH
$LN1@numpunct:

; 91   : 		_END_LOCINFO()

	lea	ecx, DWORD PTR __Lobj$24383[esp+152]
	mov	BYTE PTR __$EHRec$[esp+160], 0
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 92   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+152]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 148				; 00000094H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$numpunct@D@std@@QAE@I@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1facet@locale@std@@UAE@XZ		; std::locale::facet::~facet
__unwindfunclet$??0?$numpunct@D@std@@QAE@I@Z$1:
	lea	ecx, DWORD PTR __Lobj$24383[ebp]
	jmp	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo
__ehhandler$??0?$numpunct@D@std@@QAE@I@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$numpunct@D@std@@QAE@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$numpunct@D@std@@QAE@I@Z ENDP			; std::numpunct<char>::numpunct<char>
; Function compile flags: /Ogtpy
;	COMDAT ?do_decimal_point@?$numpunct@D@std@@MBEDXZ
_TEXT	SEGMENT
?do_decimal_point@?$numpunct@D@std@@MBEDXZ PROC		; std::numpunct<char>::do_decimal_point, COMDAT
; _this$ = ecx

; 146  : 		return (_Dp);

	mov	al, BYTE PTR [ecx+12]

; 147  : 		}

	ret	0
?do_decimal_point@?$numpunct@D@std@@MBEDXZ ENDP		; std::numpunct<char>::do_decimal_point
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_thousands_sep@?$numpunct@D@std@@MBEDXZ
_TEXT	SEGMENT
?do_thousands_sep@?$numpunct@D@std@@MBEDXZ PROC		; std::numpunct<char>::do_thousands_sep, COMDAT
; _this$ = ecx

; 151  : 		return (_Kseparator);

	mov	al, BYTE PTR [ecx+13]

; 152  : 		}

	ret	0
?do_thousands_sep@?$numpunct@D@std@@MBEDXZ ENDP		; std::numpunct<char>::do_thousands_sep
_TEXT	ENDS
PUBLIC	??1?$numpunct@D@std@@MAE@XZ			; std::numpunct<char>::~numpunct<char>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$numpunct@D@std@@MAE@XZ
_TEXT	SEGMENT
??1?$numpunct@D@std@@MAE@XZ PROC			; std::numpunct<char>::~numpunct<char>, COMDAT
; _this$ = ecx

; 109  : 		{	// destroy the object

	push	esi
	mov	esi, ecx

; 110  : 		_Tidy();

	mov	eax, DWORD PTR [esi+8]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7?$numpunct@D@std@@6B@
	je	SHORT $LN6@numpunct@2
	push	eax
	call	_free
	add	esp, 4
$LN6@numpunct@2:
	mov	eax, DWORD PTR [esi+16]
	test	eax, eax
	je	SHORT $LN9@numpunct@2
	push	eax
	call	_free
	add	esp, 4
$LN9@numpunct@2:
	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	je	SHORT $LN17@numpunct@2
	push	eax
	call	_free
	add	esp, 4
$LN17@numpunct@2:

; 111  : 		}

	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	pop	esi
	ret	0
??1?$numpunct@D@std@@MAE@XZ ENDP			; std::numpunct<char>::~numpunct<char>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$numpunct@D@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$numpunct@D@std@@MAEPAXI@Z PROC			; std::numpunct<char>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+8]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7?$numpunct@D@std@@6B@
	je	SHORT $LN8@scalar@26
	push	eax
	call	_free
	add	esp, 4
$LN8@scalar@26:
	mov	eax, DWORD PTR [esi+16]
	test	eax, eax
	je	SHORT $LN11@scalar@26
	push	eax
	call	_free
	add	esp, 4
$LN11@scalar@26:
	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	je	SHORT $LN14@scalar@26
	push	eax
	call	_free
	add	esp, 4
$LN14@scalar@26:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi], OFFSET ??_7facet@locale@std@@6B@
	je	SHORT $LN24@scalar@26
	push	0
	mov	ecx, esi
	call	DWORD PTR ??_7facet@locale@std@@6B@
	push	esi
	call	_free
	add	esp, 4
$LN24@scalar@26:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$numpunct@D@std@@MAEPAXI@Z ENDP			; std::numpunct<char>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T35632 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::numpunct<char>::do_grouping, COMDAT
; _this$ = ecx

; 155  : 		{	// return grouping string

	push	ecx

; 156  : 		return (string(_Grouping));

	mov	eax, DWORD PTR [ecx+8]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR $T35632[esp+12], 0
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	mov	eax, esi
	pop	esi

; 157  : 		}

	pop	ecx
	ret	4
?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::do_grouping
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T35638 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::numpunct<char>::do_falsename, COMDAT
; _this$ = ecx

; 160  : 		{	// return name for false

	push	ecx

; 161  : 		return (string_type(_Falsename));

	mov	eax, DWORD PTR [ecx+16]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR $T35638[esp+12], 0
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	mov	eax, esi
	pop	esi

; 162  : 		}

	pop	ecx
	ret	4
?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::do_falsename
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T35644 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC ; std::numpunct<char>::do_truename, COMDAT
; _this$ = ecx

; 165  : 		{	// return name for true

	push	ecx

; 166  : 		return (string_type(_Truename));

	mov	eax, DWORD PTR [ecx+20]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR $T35644[esp+12], 0
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	mov	eax, esi
	pop	esi

; 167  : 		}

	pop	ecx
	ret	4
?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::do_truename
_TEXT	ENDS
PUBLIC	?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ; std::basic_ios<char,std::char_traits<char> >::setstate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
;	COMDAT ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__Reraise$ = 12						; size = 1
?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z PROC ; std::basic_ios<char,std::char_traits<char> >::setstate, COMDAT
; _this$ = ecx

; 54   : 		if (_State != goodbit)

	mov	edx, DWORD PTR __State$[esp-4]
	test	edx, edx
	je	SHORT $LN6@setstate

; 55   : 			clear((iostate)((int)rdstate() | (int)_State), _Reraise);

	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN8@setstate
	or	eax, 4
$LN8@setstate:
	mov	DWORD PTR __State$[esp-4], eax
	jmp	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN6@setstate:

; 56   : 		}

	ret	8
?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::setstate
_TEXT	ENDS
PUBLIC	??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ifstream<char,std::char_traits<char> >::`vftable'
PUBLIC	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
PUBLIC	??_R4?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ifstream<char,std::char_traits<char> > `RTTI Type Descriptor'
PUBLIC	??_R3?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_E?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:PROC ; std::basic_ifstream<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$basic_ifstream@DU?$char_traits@D@std@@@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\istream
rdata$r	SEGMENT
??_R1A@?0A@EA@?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R0?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	04H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$basic_ifstream@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R2?$basic_ifstream@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R2?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 DD FLAT:??_R1A@?0A@EA@?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$basic_istream@DU?$char_traits@D@std@@@std@@8
	DD	FLAT:??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8
	DD	FLAT:??_R1A@A@3EA@ios_base@std@@8
	DD	FLAT:??_R13A@3EA@?$_Iosb@H@std@@8
rdata$r	ENDS
;	COMDAT ??_R3?$basic_ifstream@DU?$char_traits@D@std@@@std@@8
rdata$r	SEGMENT
??_R3?$basic_ifstream@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	05H
	DD	FLAT:??_R2?$basic_ifstream@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@@8
_DATA	SEGMENT
??_R0?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::basic_ifstream<char,std::char_traits<char> > `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@
rdata$r	SEGMENT
??_R4?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ DD 00H ; std::basic_ifstream<char,std::char_traits<char> >::`RTTI Complete Object Locator'
	DD	058H
	DD	00H
	DD	FLAT:??_R0?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@@8
	DD	FLAT:??_R3?$basic_ifstream@DU?$char_traits@D@std@@@std@@8
rdata$r	ENDS
;	COMDAT ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_R4?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ifstream<char,std::char_traits<char> >::`vftable'
	DD	FLAT:??_E?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ$0
__ehfuncinfo$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ PROC ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 641  : 		{	// destroy the object

	push	-1
	push	__ehhandler$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	eax, DWORD PTR [ecx-88]
	mov	edx, DWORD PTR [eax+4]
	push	esi
	mov	DWORD PTR _this$[esp+20], ecx
	mov	DWORD PTR [edx+ecx-88], OFFSET ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@

; 642  : 		}

	lea	esi, DWORD PTR [ecx-80]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
	mov	eax, DWORD PTR [esi-8]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+esi-8], OFFSET ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	sub	ecx, 80					; 00000050H
	jmp	??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
__ehhandler$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
PUBLIC	?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_ifstream<char,std::char_traits<char> >::close
; Function compile flags: /Ogtpy
;	COMDAT ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ PROC ; std::basic_ifstream<char,std::char_traits<char> >::close, COMDAT
; _this$ = ecx

; 668  : 		{	// close the C stream

	push	esi
	mov	esi, ecx

; 669  : 		if (_Filebuffer.close() == 0)

	lea	ecx, DWORD PTR [esi+8]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $LN9@close@2

; 670  : 			_Myios::setstate(ios_base::failbit);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+esi+8]
	add	ecx, esi
	or	eax, 2
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN11@close@2
	or	eax, 4
$LN11@close@2:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN9@close@2:
	pop	esi

; 671  : 		}

	ret	0
?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::close
_TEXT	ENDS
PUBLIC	?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ; std::basic_ios<char,std::char_traits<char> >::widen
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
xdata$x	SEGMENT
__unwindtable$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z$0
__ehfuncinfo$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
xdata$x	ENDS
;	COMDAT ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
_TEXT	SEGMENT
$T35706 = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Byte$ = 8						; size = 1
?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z PROC ; std::basic_ios<char,std::char_traits<char> >::widen, COMDAT
; _this$ = ecx

; 123  : 		{	// convert _Byte to character using imbued locale

	push	-1
	push	__ehhandler$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi

; 124  : 		const _Ctype& _Ctype_fac = _USE(getloc(), _Ctype);

	lea	eax, DWORD PTR $T35706[esp+20]
	push	eax
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
	add	esp, 4
	lea	ecx, DWORD PTR $T35706[esp+20]
	mov	esi, eax
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 125  : 		return (_Ctype_fac.widen(_Byte));

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR __Byte$[esp+16]
	mov	edx, DWORD PTR [edx+24]
	push	eax
	mov	ecx, esi
	call	edx

; 126  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z$0:
	lea	ecx, DWORD PTR $T35706[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z:
	mov	eax, OFFSET __ehfuncinfo$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::widen
PUBLIC	??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat
;	COMDAT ??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
CONST	SEGMENT
??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xlocnum', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z$0
__ehfuncinfo$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
$T35721 = -16						; size = 4
__$EHRec$ = -12						; size = 12
$T35722 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat, COMDAT

; 220  : 		{	// return locale category mask and construct standard facet

	push	-1
	push	__ehhandler$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi

; 221  : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	esi, DWORD PTR __Ppf$[esp+16]
	test	esi, esi
	je	SHORT $LN10@Getcat@2
	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN10@Getcat@2

; 222  : 			*_Ppf = _NEW_CRT num_get<_Elem, _InIt>;

	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	222					; 000000deH
	push	OFFSET ??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@
	push	eax
	push	16					; 00000010H
	mov	DWORD PTR $T35722[esp+32], eax
	call	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T35721[esp+20], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+28], 0
	je	SHORT $LN4@Getcat@2
	push	0
	mov	ecx, eax
	call	??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
	jmp	SHORT $LN5@Getcat@2
$LN4@Getcat@2:
	xor	eax, eax
$LN5@Getcat@2:
	mov	DWORD PTR [esi], eax
$LN10@Getcat@2:

; 223  : 		return (_X_NUMERIC);
; 224  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, 4
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z$0:
	push	222					; 000000deH
	push	OFFSET ??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@
	mov	eax, DWORD PTR $T35722[ebp-4]
	push	eax
	mov	ecx, DWORD PTR $T35721[ebp]
	push	ecx
	call	??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z ; std::locale::facet::operator delete
	add	esp, 16					; 00000010H
	ret	0
__ehhandler$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat
PUBLIC	?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z ; std::codecvt<char,char,int>::_Getcat
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
xdata$x	SEGMENT
__unwindtable$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z$0
__ehfuncinfo$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
$T35741 = -16						; size = 4
__$EHRec$ = -12						; size = 12
$T35742 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z PROC ; std::codecvt<char,char,int>::_Getcat, COMDAT

; 759  : 		{	// return locale category mask and construct standard facet

	push	-1
	push	__ehhandler$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi

; 760  : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	esi, DWORD PTR __Ppf$[esp+16]
	test	esi, esi
	je	SHORT $LN10@Getcat@3
	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN10@Getcat@3

; 761  : 			*_Ppf = _NEW_CRT codecvt<_Elem, _Byte, _Statype>;

	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	761					; 000002f9H
	push	OFFSET ??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@
	push	eax
	push	8
	mov	DWORD PTR $T35742[esp+32], eax
	call	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T35741[esp+20], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+28], 0
	je	SHORT $LN4@Getcat@3
	push	0
	mov	ecx, eax
	call	??0?$codecvt@DDH@std@@QAE@I@Z		; std::codecvt<char,char,int>::codecvt<char,char,int>
	jmp	SHORT $LN5@Getcat@3
$LN4@Getcat@3:
	xor	eax, eax
$LN5@Getcat@3:
	mov	DWORD PTR [esi], eax
$LN10@Getcat@3:

; 762  : 		return (_X_CTYPE);
; 763  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, 2
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z$0:
	push	761					; 000002f9H
	push	OFFSET ??_C@_0DO@OEECDFDJ@C?3?2Program?5Files?2Microsoft?5Visua@
	mov	eax, DWORD PTR $T35742[ebp-4]
	push	eax
	mov	ecx, DWORD PTR $T35741[ebp]
	push	ecx
	call	??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z ; std::locale::facet::operator delete
	add	esp, 16					; 00000010H
	ret	0
__ehhandler$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z ENDP ; std::codecvt<char,char,int>::_Getcat
PUBLIC	?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::numpunct<char>::_Getcat
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z$0
__ehfuncinfo$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
$T35761 = -16						; size = 4
__$EHRec$ = -12						; size = 12
$T35762 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z PROC ; std::numpunct<char>::_Getcat, COMDAT

; 101  : 		{	// return locale category mask and construct standard facet

	push	-1
	push	__ehhandler$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi

; 102  : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	esi, DWORD PTR __Ppf$[esp+16]
	test	esi, esi
	je	SHORT $LN10@Getcat@4
	cmp	DWORD PTR [esi], 0
	jne	SHORT $LN10@Getcat@4

; 103  : 			*_Ppf = _NEW_CRT numpunct<_Elem>;

	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	103					; 00000067H
	push	OFFSET ??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@
	push	eax
	push	24					; 00000018H
	mov	DWORD PTR $T35762[esp+32], eax
	call	??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T35761[esp+20], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+28], 0
	je	SHORT $LN4@Getcat@4
	push	0
	mov	ecx, eax
	call	??0?$numpunct@D@std@@QAE@I@Z		; std::numpunct<char>::numpunct<char>
	jmp	SHORT $LN5@Getcat@4
$LN4@Getcat@4:
	xor	eax, eax
$LN5@Getcat@4:
	mov	DWORD PTR [esi], eax
$LN10@Getcat@4:

; 104  : 		return (_X_NUMERIC);
; 105  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, 4
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z$0:
	push	103					; 00000067H
	push	OFFSET ??_C@_0DO@GHAPDHJI@C?3?2Program?5Files?2Microsoft?5Visua@
	mov	eax, DWORD PTR $T35762[ebp-4]
	push	eax
	mov	ecx, DWORD PTR $T35761[ebp]
	push	ecx
	call	??3facet@locale@std@@SAXPAXABU_DebugHeapTag_t@2@PADH@Z ; std::locale::facet::operator delete
	add	esp, 16					; 00000010H
	ret	0
__ehhandler$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z ENDP ; std::numpunct<char>::_Getcat
PUBLIC	??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_ifstream<char,std::char_traits<char> >::`vbase destructor'
; Function compile flags: /Ogtpy
;	COMDAT ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ PROC ; std::basic_ifstream<char,std::char_traits<char> >::`vbase destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx+88]
	mov	ecx, esi
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	push	esi
	mov	DWORD PTR [esi], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	pop	esi
	ret	0
??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::`vbase destructor'
_TEXT	ENDS
PUBLIC	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ostream
;	COMDAT ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ
_TEXT	SEGMENT
?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ PROC ; std::basic_ostream<char,std::char_traits<char> >::flush, COMDAT
; _this$ = ecx

; 553  : 		{	// flush output stream

	push	esi
	mov	esi, ecx

; 554  : 		ios_base::iostate _State = ios_base::goodbit;
; 555  : 		if (!ios_base::fail() && _Myios::rdbuf()->pubsync() == -1)

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	push	edi
	lea	eax, DWORD PTR [ecx+esi]
	xor	edi, edi
	test	BYTE PTR [eax+8], 6
	jne	SHORT $LN1@flush
	mov	eax, DWORD PTR [eax+40]
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+48]
	call	eax
	cmp	eax, -1
	jne	SHORT $LN1@flush

; 556  : 			_State |= ios_base::badbit;	// sync failed

	mov	edi, 4
$LN1@flush:

; 557  : 		_Myios::setstate(_State);

	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	add	ecx, esi
	test	edi, edi
	je	SHORT $LN21@flush
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edi
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN19@flush
	or	eax, 4
$LN19@flush:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN21@flush:
	pop	edi

; 558  : 		return (*this);

	mov	eax, esi
	pop	esi

; 559  : 		}

	ret	0
?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::flush
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC ; std::basic_ifstream<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	push	edi
	lea	edi, DWORD PTR [ecx-88]
	lea	esi, DWORD PTR [edi+88]
	mov	ecx, esi
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	push	esi
	mov	DWORD PTR [esi], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	test	BYTE PTR ___flags$[esp+4], 1
	je	SHORT $LN11@scalar@27
	push	edi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@27:
	mov	eax, edi
	pop	edi
	pop	esi
	ret	4
??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_ifstream<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z ; std::basic_istream<char,std::char_traits<char> >::_Ipfx
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\ios
xdata$x	SEGMENT
__catchsym$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z$15 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z$0
__tryblocktable$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z DD 01H
	DD	01H
	DD	08H
	DD	01H
	DD	FLAT:__catchsym$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z$15
__ehfuncinfo$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z DD 019930522H
	DD	09H
	DD	FLAT:__unwindtable$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
	DD	01H
	DD	FLAT:__tryblocktable$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z$2
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	02H
	DD	00H
	DD	03H
	DD	00H
	DD	02H
	DD	00H
	DD	05H
	DD	00H
	DD	02H
	DD	00H
	DD	07H
	DD	00H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
xdata$x	ENDS
;	COMDAT ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
$T35858 = 8						; size = 4
__Noskip$ = 8						; size = 1
?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z PROC ; std::basic_istream<char,std::char_traits<char> >::_Ipfx, COMDAT
; _this$ = ecx

; 92   : 		{	// test stream state and skip whitespace as needed

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebx
	push	esi
	mov	esi, ecx

; 93   : 		if (ios_base::good())

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+esi+8]
	add	ecx, esi
	test	eax, eax
	push	edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR _this$[ebp], esi
	jne	$LN1@Ipfx

; 94   : 			{	// state okay, flush tied stream and skip whitespace
; 95   : 			if (_Myios::tie() != 0)

	mov	ecx, DWORD PTR [ecx+44]
	test	ecx, ecx
	je	SHORT $LN10@Ipfx

; 96   : 				_Myios::tie()->flush();

	call	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
$LN10@Ipfx:

; 97   : 
; 98   : 			if (!_Noskip && ios_base::flags() & ios_base::skipws)

	cmp	BYTE PTR __Noskip$[ebp], 0
	jne	$LN17@Ipfx
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [edx+esi+16]
	test	cl, 1
	je	$LN17@Ipfx

; 99   : 				{	// skip whitespace
; 100  : 				const _Ctype& _Ctype_fac = _USE(ios_base::getloc(), _Ctype);

	lea	ecx, DWORD PTR $T35858[ebp]
	push	ecx
	mov	ecx, edx
	add	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	call	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
	add	esp, 4
	lea	ecx, DWORD PTR $T35858[ebp]
	mov	edi, eax
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 101  : 
; 102  : 				_TRY_IO_BEGIN
; 103  : 				int_type _Meta = _Myios::rdbuf()->sgetc();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, DWORD PTR [eax+esi+40]
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	mov	DWORD PTR __$EHRec$[ebp+12], 1
	je	SHORT $LN33@Ipfx
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], 0
	jle	SHORT $LN33@Ipfx
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LL123@Ipfx
$LN33@Ipfx:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LL123@Ipfx:

; 106  : 					if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	cmp	eax, -1
	jne	SHORT $LN4@Ipfx

; 107  : 						{	// end of file, quit
; 108  : 						_Myios::setstate(ios_base::eofbit);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+esi+8]
	add	ecx, esi
	or	eax, 1
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN56@Ipfx
	or	eax, 4
$LN56@Ipfx:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 109  : 						break;

	jmp	SHORT $LN5@Ipfx
$LN4@Ipfx:

; 110  : 						}
; 111  : 					else if (!_Ctype_fac.is(_Ctype::space,
; 112  : 						_Traits::to_char_type(_Meta)))

	mov	edx, DWORD PTR [edi+16]
	movzx	ecx, al
	test	BYTE PTR [edx+ecx*2], 72		; 00000048H
	jne	SHORT $LN6@Ipfx
$LN5@Ipfx:

; 113  : 						break;	// not whitespace, quit
; 114  : 				_CATCH_IO_END

	mov	DWORD PTR __$EHRec$[ebp+12], -1
$LN17@Ipfx:

; 115  : 				}
; 116  : 
; 117  : 			if (ios_base::good())

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	add	ecx, esi
	cmp	DWORD PTR [ecx+8], 0
	jne	SHORT $LN1@Ipfx

; 118  : 				return (true);

	mov	al, 1

; 121  : 		return (false);
; 122  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$LN6@Ipfx:

; 104  : 
; 105  : 				for (; ; _Meta = _Myios::rdbuf()->snextc())

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [ecx+esi+40]
	call	?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::snextc
	jmp	SHORT $LL123@Ipfx
__catch$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z$0:

; 113  : 						break;	// not whitespace, quit
; 114  : 				_CATCH_IO_END

	mov	ecx, DWORD PTR _this$[ebp]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	add	eax, ecx
	mov	ecx, DWORD PTR [eax+8]
	or	ecx, 4
	cmp	DWORD PTR [eax+40], 0
	jne	SHORT $LN69@Ipfx
	or	ecx, 4
$LN69@Ipfx:
	and	ecx, 23					; 00000017H
	test	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+8], ecx
	jne	SHORT $LN78@Ipfx
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	mov	eax, $LN18@Ipfx
	ret	0
$LN18@Ipfx:
	mov	esi, DWORD PTR _this$[ebp]
	jmp	SHORT $LN17@Ipfx
$LN78@Ipfx:
	push	0
	push	0
	call	__CxxThrowException@8
$LN130@Ipfx:
$LN1@Ipfx:

; 119  : 			}
; 120  : 		_Myios::setstate(ios_base::failbit);

	mov	eax, DWORD PTR [ecx+8]
	or	eax, 2
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN119@Ipfx
	or	eax, 4
$LN119@Ipfx:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 121  : 		return (false);
; 122  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	pop	esi
	xor	al, al
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$LN129@Ipfx:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z$2:
	lea	ecx, DWORD PTR $T35858[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::_Ipfx
PUBLIC	?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ; std::basic_ios<char,std::char_traits<char> >::init
EXTRN	?_Addstd@ios_base@std@@SAXPAV12@@Z:PROC		; std::ios_base::_Addstd
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\ios
;	COMDAT ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z
_TEXT	SEGMENT
__Strbuf$ = 8						; size = 4
__Isstd$ = 12						; size = 1
?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z PROC ; std::basic_ios<char,std::char_traits<char> >::init, COMDAT
; _this$ = ecx

; 131  : 		{	// initialize with stream buffer pointer

	push	esi
	mov	esi, ecx

; 132  : 		_Init();	// initialize ios_base

	call	?_Init@ios_base@std@@IAEXXZ		; std::ios_base::_Init

; 133  : 		_Mystrbuf = _Strbuf;

	mov	eax, DWORD PTR __Strbuf$[esp]

; 134  : 		_Tiestr = 0;
; 135  : 		_Fillch = widen(' ');

	push	32					; 00000020H
	mov	ecx, esi
	mov	DWORD PTR [esi+40], eax
	mov	DWORD PTR [esi+44], 0
	call	?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ; std::basic_ios<char,std::char_traits<char> >::widen

; 136  : 
; 137  : 		if (_Mystrbuf == 0)

	cmp	DWORD PTR [esi+40], 0
	mov	BYTE PTR [esi+48], al
	jne	SHORT $LN11@init

; 138  : 			setstate(badbit);

	mov	eax, DWORD PTR [esi+8]
	or	eax, 4
	push	0
	push	eax
	mov	ecx, esi
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN11@init:

; 139  : 
; 140  : 		if (_Isstd)

	cmp	BYTE PTR __Isstd$[esp], 0
	je	SHORT $LN2@init

; 141  : 			_Addstd(this);	// special handling for standard streams

	push	esi
	call	?_Addstd@ios_base@std@@SAXPAV12@@Z	; std::ios_base::_Addstd
	add	esp, 4
	pop	esi

; 144  : 		}

	ret	8
$LN2@init:

; 142  : 		else
; 143  : 			_Stdstr = 0;

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

; 144  : 		}

	ret	8
?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::init
_TEXT	ENDS
PUBLIC	?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
PUBLIC	??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
;	COMDAT ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z$0
__ehfuncinfo$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$23952 = -36					; size = 4
__Lock$36196 = -32					; size = 4
__Lock$23951 = -28					; size = 4
$T36188 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z PROC ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >, COMDAT

; 466  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	esi
	push	edi

; 467  : 	_BEGIN_LOCK(_LOCK_LOCALE)	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$23951[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 468  : 		const locale::facet *_Psave =
; 469  : 			_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet
; 470  : 
; 471  : 		size_t _Id = _Facet::id;

	cmp	DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A, 0 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
	mov	ebx, DWORD PTR ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
	mov	DWORD PTR __$EHRec$[esp+56], 0
	mov	DWORD PTR __Psave$23952[esp+48], ebx
	jne	SHORT $LN11@use_facet@2
	push	0
	lea	ecx, DWORD PTR __Lock$36196[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	cmp	DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A, 0 ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
	jne	SHORT $LN10@use_facet@2
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	add	eax, 1
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A, eax ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
$LN10@use_facet@2:
	lea	ecx, DWORD PTR __Lock$36196[esp+48]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN11@use_facet@2:

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	eax, DWORD PTR __Loc$[esp+44]
	mov	edi, DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
	mov	eax, DWORD PTR [eax]
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN20@use_facet@2
	mov	ecx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [ecx+edi*4]
	test	esi, esi
	jne	SHORT $LN24@use_facet@2
$LN26@use_facet@2:
	cmp	BYTE PTR [eax+20], 0
	je	SHORT $LN16@use_facet@2
	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN27@use_facet@2
	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+edi*4]
$LN16@use_facet@2:

; 473  : 
; 474  : 		if (_Pf != 0)

	test	esi, esi
	jne	SHORT $LN24@use_facet@2
$LN27@use_facet@2:

; 475  : 			;	// got facet from locale
; 476  : 		else if (_Psave != 0)

	test	ebx, ebx
	je	SHORT $LN4@use_facet@2

; 477  : 			_Pf = _Psave;	// lazy facet already allocated

	mov	esi, ebx
	jmp	SHORT $LN24@use_facet@2

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

$LN20@use_facet@2:
	xor	esi, esi
	jmp	SHORT $LN26@use_facet@2
$LN4@use_facet@2:

; 478  : 		else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	lea	eax, DWORD PTR __Psave$23952[esp+48]
	push	eax
	call	?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $LN2@use_facet@2

; 479  : 
; 480  :  #if _HAS_EXCEPTIONS
; 481  : 		_THROW_NCEE(bad_cast, _EMPTY_ARGUMENT);	// lazy disallowed

	push	OFFSET ??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T36188[esp+52]
	call	??0bad_cast@std@@QAE@PBD@Z		; std::bad_cast::bad_cast
	push	OFFSET __TI2?AVbad_cast@std@@
	lea	ecx, DWORD PTR $T36188[esp+52]
	push	ecx
	call	__CxxThrowException@8
$LN31@use_facet@2:
$LN2@use_facet@2:

; 482  : 
; 483  : 	#else /* _HAS_EXCEPTIONS */
; 484  : 			abort();	// lazy disallowed
; 485  : 	#endif /* _HAS_EXCEPTIONS */
; 486  : 
; 487  : 		else
; 488  : 			{	// queue up lazy facet for destruction
; 489  : 			_Pf = _Psave;

	mov	esi, DWORD PTR __Psave$23952[esp+48]

; 490  : 			_Facetptr<_Facet>::_Psave = _Psave;
; 491  : 
; 492  : 			locale::facet *_Pfmod = (_Facet *)_Psave;
; 493  : 			_Pfmod->_Incref();

	mov	ecx, esi
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
	call	?_Incref@facet@locale@std@@QAEXXZ	; std::locale::facet::_Incref

; 494  : 			_Pfmod->_Register();

	push	esi
	call	?facet_Register@facet@locale@std@@CAXPAV123@@Z ; std::locale::facet::facet_Register
	add	esp, 4
$LN24@use_facet@2:

; 495  : 			}
; 496  : 
; 497  : 		return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$23951[esp+48]
	mov	DWORD PTR __$EHRec$[esp+56], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 498  : 	_END_LOCK()
; 499  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	0
$LN29@use_facet@2:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z$0:
	lea	ecx, DWORD PTR __Lock$23951[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
PUBLIC	?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
PUBLIC	??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ; std::use_facet<std::codecvt<char,char,int> >
;	COMDAT ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z$0
__ehfuncinfo$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$24115 = -36					; size = 4
__Lock$36240 = -32					; size = 4
__Lock$24114 = -28					; size = 4
$T36232 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z PROC ; std::use_facet<std::codecvt<char,char,int> >, COMDAT

; 466  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	esi
	push	edi

; 467  : 	_BEGIN_LOCK(_LOCK_LOCALE)	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$24114[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 468  : 		const locale::facet *_Psave =
; 469  : 			_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet
; 470  : 
; 471  : 		size_t _Id = _Facet::id;

	cmp	DWORD PTR ?id@?$codecvt@DDH@std@@2V0locale@2@A, 0 ; std::codecvt<char,char,int>::id
	mov	ebx, DWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
	mov	DWORD PTR __$EHRec$[esp+56], 0
	mov	DWORD PTR __Psave$24115[esp+48], ebx
	jne	SHORT $LN11@use_facet@3
	push	0
	lea	ecx, DWORD PTR __Lock$36240[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	cmp	DWORD PTR ?id@?$codecvt@DDH@std@@2V0locale@2@A, 0 ; std::codecvt<char,char,int>::id
	jne	SHORT $LN10@use_facet@3
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	add	eax, 1
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$codecvt@DDH@std@@2V0locale@2@A, eax ; std::codecvt<char,char,int>::id
$LN10@use_facet@3:
	lea	ecx, DWORD PTR __Lock$36240[esp+48]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN11@use_facet@3:

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	eax, DWORD PTR __Loc$[esp+44]
	mov	edi, DWORD PTR ?id@?$codecvt@DDH@std@@2V0locale@2@A ; std::codecvt<char,char,int>::id
	mov	eax, DWORD PTR [eax]
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN20@use_facet@3
	mov	ecx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [ecx+edi*4]
	test	esi, esi
	jne	SHORT $LN24@use_facet@3
$LN26@use_facet@3:
	cmp	BYTE PTR [eax+20], 0
	je	SHORT $LN16@use_facet@3
	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN27@use_facet@3
	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+edi*4]
$LN16@use_facet@3:

; 473  : 
; 474  : 		if (_Pf != 0)

	test	esi, esi
	jne	SHORT $LN24@use_facet@3
$LN27@use_facet@3:

; 475  : 			;	// got facet from locale
; 476  : 		else if (_Psave != 0)

	test	ebx, ebx
	je	SHORT $LN4@use_facet@3

; 477  : 			_Pf = _Psave;	// lazy facet already allocated

	mov	esi, ebx
	jmp	SHORT $LN24@use_facet@3

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

$LN20@use_facet@3:
	xor	esi, esi
	jmp	SHORT $LN26@use_facet@3
$LN4@use_facet@3:

; 478  : 		else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	lea	eax, DWORD PTR __Psave$24115[esp+48]
	push	eax
	call	?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z ; std::codecvt<char,char,int>::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $LN2@use_facet@3

; 479  : 
; 480  :  #if _HAS_EXCEPTIONS
; 481  : 		_THROW_NCEE(bad_cast, _EMPTY_ARGUMENT);	// lazy disallowed

	push	OFFSET ??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T36232[esp+52]
	call	??0bad_cast@std@@QAE@PBD@Z		; std::bad_cast::bad_cast
	push	OFFSET __TI2?AVbad_cast@std@@
	lea	ecx, DWORD PTR $T36232[esp+52]
	push	ecx
	call	__CxxThrowException@8
$LN31@use_facet@3:
$LN2@use_facet@3:

; 482  : 
; 483  : 	#else /* _HAS_EXCEPTIONS */
; 484  : 			abort();	// lazy disallowed
; 485  : 	#endif /* _HAS_EXCEPTIONS */
; 486  : 
; 487  : 		else
; 488  : 			{	// queue up lazy facet for destruction
; 489  : 			_Pf = _Psave;

	mov	esi, DWORD PTR __Psave$24115[esp+48]

; 490  : 			_Facetptr<_Facet>::_Psave = _Psave;
; 491  : 
; 492  : 			locale::facet *_Pfmod = (_Facet *)_Psave;
; 493  : 			_Pfmod->_Incref();

	mov	ecx, esi
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
	call	?_Incref@facet@locale@std@@QAEXXZ	; std::locale::facet::_Incref

; 494  : 			_Pfmod->_Register();

	push	esi
	call	?facet_Register@facet@locale@std@@CAXPAV123@@Z ; std::locale::facet::facet_Register
	add	esp, 4
$LN24@use_facet@3:

; 495  : 			}
; 496  : 
; 497  : 		return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$24114[esp+48]
	mov	DWORD PTR __$EHRec$[esp+56], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 498  : 	_END_LOCK()
; 499  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	0
$LN29@use_facet@3:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z$0:
	lea	ecx, DWORD PTR __Lock$24114[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::codecvt<char,char,int> >
PUBLIC	?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::numpunct<char> >::_Psave
PUBLIC	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
;	COMDAT ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::numpunct<char> >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z$0
__ehfuncinfo$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$24204 = -36					; size = 4
__Lock$36284 = -32					; size = 4
__Lock$24203 = -28					; size = 4
$T36276 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z PROC ; std::use_facet<std::numpunct<char> >, COMDAT

; 466  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	esi
	push	edi

; 467  : 	_BEGIN_LOCK(_LOCK_LOCALE)	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$24203[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 468  : 		const locale::facet *_Psave =
; 469  : 			_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet
; 470  : 
; 471  : 		size_t _Id = _Facet::id;

	cmp	DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A, 0 ; std::numpunct<char>::id
	mov	ebx, DWORD PTR ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::numpunct<char> >::_Psave
	mov	DWORD PTR __$EHRec$[esp+56], 0
	mov	DWORD PTR __Psave$24204[esp+48], ebx
	jne	SHORT $LN11@use_facet@4
	push	0
	lea	ecx, DWORD PTR __Lock$36284[esp+52]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	cmp	DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A, 0 ; std::numpunct<char>::id
	jne	SHORT $LN10@use_facet@4
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	add	eax, 1
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A, eax ; std::numpunct<char>::id
$LN10@use_facet@4:
	lea	ecx, DWORD PTR __Lock$36284[esp+48]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$LN11@use_facet@4:

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	eax, DWORD PTR __Loc$[esp+44]
	mov	edi, DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A ; std::numpunct<char>::id
	mov	eax, DWORD PTR [eax]
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN20@use_facet@4
	mov	ecx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [ecx+edi*4]
	test	esi, esi
	jne	SHORT $LN24@use_facet@4
$LN26@use_facet@4:
	cmp	BYTE PTR [eax+20], 0
	je	SHORT $LN16@use_facet@4
	call	?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ ; std::locale::_Getgloballocale
	cmp	edi, DWORD PTR [eax+12]
	jae	SHORT $LN27@use_facet@4
	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+edi*4]
$LN16@use_facet@4:

; 473  : 
; 474  : 		if (_Pf != 0)

	test	esi, esi
	jne	SHORT $LN24@use_facet@4
$LN27@use_facet@4:

; 475  : 			;	// got facet from locale
; 476  : 		else if (_Psave != 0)

	test	ebx, ebx
	je	SHORT $LN4@use_facet@4

; 477  : 			_Pf = _Psave;	// lazy facet already allocated

	mov	esi, ebx
	jmp	SHORT $LN24@use_facet@4

; 472  : 		const locale::facet *_Pf = _Loc._Getfacet(_Id);

$LN20@use_facet@4:
	xor	esi, esi
	jmp	SHORT $LN26@use_facet@4
$LN4@use_facet@4:

; 478  : 		else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	lea	eax, DWORD PTR __Psave$24204[esp+48]
	push	eax
	call	?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::numpunct<char>::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $LN2@use_facet@4

; 479  : 
; 480  :  #if _HAS_EXCEPTIONS
; 481  : 		_THROW_NCEE(bad_cast, _EMPTY_ARGUMENT);	// lazy disallowed

	push	OFFSET ??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T36276[esp+52]
	call	??0bad_cast@std@@QAE@PBD@Z		; std::bad_cast::bad_cast
	push	OFFSET __TI2?AVbad_cast@std@@
	lea	ecx, DWORD PTR $T36276[esp+52]
	push	ecx
	call	__CxxThrowException@8
$LN31@use_facet@4:
$LN2@use_facet@4:

; 482  : 
; 483  : 	#else /* _HAS_EXCEPTIONS */
; 484  : 			abort();	// lazy disallowed
; 485  : 	#endif /* _HAS_EXCEPTIONS */
; 486  : 
; 487  : 		else
; 488  : 			{	// queue up lazy facet for destruction
; 489  : 			_Pf = _Psave;

	mov	esi, DWORD PTR __Psave$24204[esp+48]

; 490  : 			_Facetptr<_Facet>::_Psave = _Psave;
; 491  : 
; 492  : 			locale::facet *_Pfmod = (_Facet *)_Psave;
; 493  : 			_Pfmod->_Incref();

	mov	ecx, esi
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::numpunct<char> >::_Psave
	call	?_Incref@facet@locale@std@@QAEXXZ	; std::locale::facet::_Incref

; 494  : 			_Pfmod->_Register();

	push	esi
	call	?facet_Register@facet@locale@std@@CAXPAV123@@Z ; std::locale::facet::facet_Register
	add	esp, 4
$LN24@use_facet@4:

; 495  : 			}
; 496  : 
; 497  : 		return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$24203[esp+48]
	mov	DWORD PTR __$EHRec$[esp+56], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 498  : 	_END_LOCK()
; 499  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+48]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	0
$LN29@use_facet@4:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z$0:
	lea	ecx, DWORD PTR __Lock$24203[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z:
	mov	eax, OFFSET __ehfuncinfo$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::numpunct<char> >
PUBLIC	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
xdata$x	SEGMENT
__unwindtable$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z$0
__ehfuncinfo$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
xdata$x	ENDS
;	COMDAT ??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Istr$ = 8						; size = 4
__Noskip$ = 12						; size = 1
??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z PROC ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry, COMDAT
; _this$ = ecx

; 75   : 			{	// construct locking and calling _Ipfx

	push	-1
	push	__ehhandler$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	eax, DWORD PTR __Istr$[esp+12]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], eax
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	mov	DWORD PTR _this$[esp+20], esi
	je	SHORT $LN11@sentry@2
	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$LN11@sentry@2:

; 76   : 			_Ok = this->_Myistr._Ipfx(_Noskip);

	mov	eax, DWORD PTR __Noskip$[esp+16]
	mov	ecx, DWORD PTR [esi]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z ; std::basic_istream<char,std::char_traits<char> >::_Ipfx

; 77   : 			}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	BYTE PTR [esi+4], al
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
__ehhandler$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z:
	mov	eax, OFFSET __ehfuncinfo$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
;	COMDAT ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT
__Loc$ = 8						; size = 4
?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::imbue, COMDAT
; _this$ = ecx

; 456  : 		_Initcvt((_Cvt *)&_USE(_Loc, _Cvt));

	mov	eax, DWORD PTR __Loc$[esp-4]
	push	esi
	push	edi
	push	eax
	mov	edi, ecx
	call	??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ; std::use_facet<std::codecvt<char,char,int> >
	mov	esi, eax
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	add	esp, 4
	mov	ecx, esi
	call	eax
	test	al, al
	je	SHORT $LN4@imbue
	mov	DWORD PTR [edi+60], 0
	pop	edi
	pop	esi

; 457  : 		}

	ret	4

; 456  : 		_Initcvt((_Cvt *)&_USE(_Loc, _Cvt));

$LN4@imbue:
	mov	ecx, edi
	mov	DWORD PTR [edi+60], esi
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	pop	edi
	pop	esi

; 457  : 		}

	ret	4
?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::imbue
_TEXT	ENDS
PUBLIC	??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_istream<char,std::char_traits<char> >::`vbtable'
PUBLIC	??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z ; std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >
;	COMDAT ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
CONST	SEGMENT
??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ DD 00H ; std::basic_istream<char,std::char_traits<char> >::`vbtable'
	DD	08H
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z$0
__ehfuncinfo$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
xdata$x	ENDS
;	COMDAT ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
_TEXT	SEGMENT
$T36365 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Strbuf$ = 8						; size = 4
__Isstd$ = 12						; size = 1
_$initVBases$ = 16					; size = 4
??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z PROC ; std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 32   : 		{	// construct from stream buffer pointer

	push	-1
	push	__ehhandler$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	xor	eax, eax
	cmp	DWORD PTR _$initVBases$[esp+16], eax
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+24], esi
	mov	DWORD PTR $T36365[esp+24], eax
	je	SHORT $LN1@basic_istr
	mov	DWORD PTR [esi], OFFSET ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@
	mov	DWORD PTR [esi+8], OFFSET ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+32], eax
	mov	DWORD PTR $T36365[esp+24], 1
$LN1@basic_istr:
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]

; 33   : 		_Myios::init(_Strbuf, _Isstd);

	mov	ecx, DWORD PTR __Strbuf$[esp+20]
	mov	DWORD PTR [esi+edx], OFFSET ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	edx, DWORD PTR [esi]
	mov	DWORD PTR [esi+4], eax
	mov	eax, DWORD PTR __Isstd$[esp+20]
	push	eax
	push	ecx
	mov	ecx, DWORD PTR [edx+4]
	add	ecx, esi
	call	?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ; std::basic_ios<char,std::char_traits<char> >::init

; 34   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z$0:
	mov	eax, DWORD PTR $T36365[ebp]
	and	eax, 1
	je	$LN5@basic_istr
	and	DWORD PTR $T36365[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 8
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
$LN5@basic_istr:
	ret	0
__ehhandler$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >
PUBLIC	?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::open
EXTRN	?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z:PROC		; std::_Fiopen
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xlocale
xdata$x	SEGMENT
__unwindtable$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z$0
__ehfuncinfo$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
__Filename$ = 8						; size = 4
__Mode$ = 12						; size = 4
$T36386 = 16						; size = 4
__Prot$ = 16						; size = 4
?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z PROC ; std::basic_filebuf<char,std::char_traits<char> >::open, COMDAT
; _this$ = ecx

; 152  : 		{	// open a C stream with specified mode

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ebx
	push	esi
	mov	esi, ecx

; 153  : 		_Filet *_File;
; 154  : 		if (_Myfile != 0 || (_File = _Fiopen(_Filename, _Mode, _Prot)) == 0)

	xor	ebx, ebx
	cmp	DWORD PTR [esi+76], ebx
	push	edi
	jne	$LN1@open
	mov	eax, DWORD PTR __Prot$[esp+20]
	mov	ecx, DWORD PTR __Mode$[esp+20]
	mov	edx, DWORD PTR __Filename$[esp+20]
	push	eax
	push	ecx
	push	edx
	call	?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z	; std::_Fiopen
	mov	edi, eax
	add	esp, 12					; 0000000cH
	cmp	edi, ebx
	je	$LN1@open

; 155  : 			return (0);	// open failed
; 156  : 
; 157  : 		_Init(_File, _Openfl);

	mov	ecx, esi
	mov	BYTE PTR [esi+72], 1
	mov	BYTE PTR [esi+65], bl
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	lea	ecx, DWORD PTR [edi+4]
	mov	DWORD PTR [esi+48], ecx
	mov	DWORD PTR [esi+52], ecx
	lea	eax, DWORD PTR [edi+8]

; 158  : 		_Initcvt((_Cvt *)&_USE(_Mysb::getloc(), _Cvt));

	lea	ecx, DWORD PTR $T36386[esp+20]
	mov	DWORD PTR [esi+16], eax
	mov	DWORD PTR [esi+20], eax
	mov	DWORD PTR [esi+32], edi
	mov	DWORD PTR [esi+36], edi
	mov	DWORD PTR [esi+76], edi
	mov	eax, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [esi+68], eax
	mov	DWORD PTR [esi+60], ebx
	call	?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ ; std::basic_streambuf<char,std::char_traits<char> >::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[esp+36], ebx
	call	??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ; std::use_facet<std::codecvt<char,char,int> >
	mov	edi, eax
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	add	esp, 4
	mov	ecx, edi
	call	eax
	test	al, al
	je	SHORT $LN12@open
	lea	ecx, DWORD PTR $T36386[esp+20]
	mov	DWORD PTR [esi+60], ebx
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 159  : 		return (this);	// open succeeded

	mov	eax, esi

; 160  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebx
	add	esp, 12					; 0000000cH
	ret	12					; 0000000cH

; 158  : 		_Initcvt((_Cvt *)&_USE(_Mysb::getloc(), _Cvt));

$LN12@open:
	mov	ecx, esi
	mov	DWORD PTR [esi+60], edi
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	lea	ecx, DWORD PTR $T36386[esp+20]
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 159  : 		return (this);	// open succeeded

	mov	eax, esi

; 160  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebx
	add	esp, 12					; 0000000cH
	ret	12					; 0000000cH
$LN1@open:
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	xor	eax, eax
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 12					; 0000000cH
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z$0:
	lea	ecx, DWORD PTR $T36386[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z:
	mov	eax, OFFSET __ehfuncinfo$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::open
PUBLIC	??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@	; `string'
PUBLIC	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
EXTRN	_memchr:PROC
;	COMDAT ??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@
; File c:\program files\microsoft visual studio 8\vc\include\xutility
CONST	SEGMENT
??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@ DB '0123456789abcdefABCDEF'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z$1
__ehfuncinfo$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
_TEXT	SEGMENT
__Kseparator$ = -85					; size = 1
__Ptr$ = -84						; size = 4
__Base$ = -80						; size = 4
__Groups$ = -76						; size = 32
__Grouping$ = -44					; size = 32
__$EHRec$ = -12						; size = 12
_this$ = 8						; size = 4
__Ac$ = 12						; size = 4
__Nonzero$ = 16						; size = 1
__First$ = 16						; size = 4
__Lock$37376 = 20					; size = 4
__Lock$37199 = 20					; size = 4
__Last$ = 20						; size = 4
__Seendigit$ = 24					; size = 1
__Basefield$ = 24					; size = 4
__Loc$ = 28						; size = 4
?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld, COMDAT

; 598  : 		{	// get integer field from [_First, _Last) into _Ac

	push	-1
	push	__ehhandler$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 76					; 0000004cH

; 599  : 		const _Mypunct& _Punct_fac = _USE(_Loc, _Mypunct);

	mov	eax, DWORD PTR __Loc$[esp+84]
	push	ebx
	push	esi
	push	eax
	call	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
	add	esp, 4

; 600  : 		const string _Grouping = _Punct_fac.grouping();

	lea	ecx, DWORD PTR __Grouping$[esp+96]
	mov	esi, eax
	push	ecx
	mov	ecx, esi
	call	?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::grouping
	xor	ebx, ebx

; 601  : 		const _Elem _Kseparator = _Grouping.size() == 0
; 602  : 			? (_Elem)0 : _Punct_fac.thousands_sep();

	cmp	DWORD PTR __Grouping$[esp+120], ebx
	mov	DWORD PTR __$EHRec$[esp+104], ebx
	jne	SHORT $LN41@Getifld
	mov	BYTE PTR __Kseparator$[esp+96], bl
	jmp	SHORT $LN42@Getifld
$LN41@Getifld:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+8]
	mov	ecx, esi
	call	eax
	mov	BYTE PTR __Kseparator$[esp+96], al
$LN42@Getifld:

; 603  : 		const _Elem _E0 = _MAKLOCCHR(_Elem, '0', _Cvt);
; 604  : 		char *_Ptr = _Ac;
; 605  : 
; 606  : 		if (_First == _Last)

	mov	esi, DWORD PTR __First$[esp+92]
	cmp	BYTE PTR [esi+12], bl
	push	ebp
	mov	ebp, DWORD PTR __Ac$[esp+96]
	mov	DWORD PTR __Ptr$[esp+100], ebp
	jne	SHORT $LN60@Getifld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN60@Getifld:
	push	edi
	mov	edi, DWORD PTR __Last$[esp+100]
	cmp	BYTE PTR [edi+12], bl
	jne	SHORT $LN59@Getifld
	mov	ecx, edi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN59@Getifld:
	mov	eax, DWORD PTR [esi+8]
	cmp	eax, ebx
	jne	SHORT $LN321@Getifld
	cmp	DWORD PTR [edi+8], ebx
	je	$LN34@Getifld
	cmp	eax, ebx
	je	SHORT $LN64@Getifld
$LN321@Getifld:
	cmp	DWORD PTR [edi+8], ebx
	jne	$LN34@Getifld
$LN64@Getifld:

; 607  : 			;	// empty field
; 608  : 		else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	cmp	BYTE PTR [esi+12], bl
	jne	SHORT $LN68@Getifld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN68@Getifld:
	cmp	DWORD PTR [esi+8], ebx
	jne	SHORT $LN67@Getifld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN67@Getifld:
	mov	al, BYTE PTR [esi+13]
	cmp	al, 43					; 0000002bH
	jne	SHORT $LN36@Getifld

; 609  : 			*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [ebp], al
	add	ebp, 1
	cmp	DWORD PTR [esi+8], ebx
	mov	DWORD PTR __Ptr$[esp+104], ebp
	jne	SHORT $LN73@Getifld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN73@Getifld:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	jmp	SHORT $LN34@Getifld
$LN36@Getifld:

; 610  : 		else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	cmp	BYTE PTR [esi+12], bl
	jne	SHORT $LN77@Getifld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN77@Getifld:
	cmp	DWORD PTR [esi+8], ebx
	jne	SHORT $LN76@Getifld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN76@Getifld:
	mov	al, BYTE PTR [esi+13]
	cmp	al, 45					; 0000002dH
	jne	SHORT $LN34@Getifld

; 611  : 			*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [ebp], al
	add	ebp, 1
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+104], ebp
	call	??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator++
$LN34@Getifld:

; 612  : 
; 613  : 		_Basefield &= ios_base::basefield;

	mov	eax, DWORD PTR __Basefield$[esp+100]
	and	eax, 3584				; 00000e00H

; 614  : 		int _Base = _Basefield == ios_base::oct ? 8
; 615  : 			: _Basefield == ios_base::hex ? 16
; 616  : 			: _Basefield == ios_base::_Fmtzero ? 0 : 10;

	cmp	eax, 1024				; 00000400H
	jne	SHORT $LN45@Getifld
	mov	ebp, 8
	mov	DWORD PTR __Base$[esp+104], ebp
	jmp	SHORT $LN44@Getifld
$LN45@Getifld:
	cmp	eax, 2048				; 00000800H
	jne	SHORT $LN43@Getifld
	mov	ebp, 16					; 00000010H
	mov	DWORD PTR __Base$[esp+104], ebp
	jmp	SHORT $LN44@Getifld
$LN43@Getifld:
	neg	eax
	sbb	eax, eax
	and	eax, 10					; 0000000aH
	mov	ebp, eax
	mov	DWORD PTR __Base$[esp+104], eax
$LN44@Getifld:

; 617  : 
; 618  : 		bool _Seendigit = false;	// seen a digit in input
; 619  : 		bool _Nonzero = false;	// seen a nonzero digit in input
; 620  : 
; 621  : 		if (_First != _Last && *_First == _E0)

	push	edi
	push	esi
	mov	BYTE PTR __Seendigit$[esp+108], bl
	mov	BYTE PTR __Nonzero$[esp+108], bl
	call	??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ; std::operator!=<char,std::char_traits<char> >
	add	esp, 8
	test	al, al
	je	$LN28@Getifld
	cmp	BYTE PTR [esi+12], bl
	jne	SHORT $LN83@Getifld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN83@Getifld:
	cmp	DWORD PTR [esi+8], ebx
	jne	SHORT $LN82@Getifld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN82@Getifld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jne	$LN28@Getifld

; 622  : 			{	// leading zero, look for 0x, 0X
; 623  : 			_Seendigit = true, ++_First;

	cmp	DWORD PTR [esi+8], ebx
	mov	BYTE PTR __Seendigit$[esp+100], 1
	jne	SHORT $LN86@Getifld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN86@Getifld:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc

; 624  : 			if (_First != _Last && (*_First == _MAKLOCCHR(_Elem, 'x', _Cvt)
; 625  : 					|| *_First == _MAKLOCCHR(_Elem, 'X', _Cvt))
; 626  : 				&& (_Base == 0 || _Base == 16))

	push	edi
	push	esi
	call	??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ; std::operator!=<char,std::char_traits<char> >
	add	esp, 8
	test	al, al
	je	SHORT $LN32@Getifld
	mov	ecx, esi
	call	??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*
	cmp	al, 120					; 00000078H
	je	SHORT $LN31@Getifld
	mov	ecx, esi
	call	??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*
	cmp	al, 88					; 00000058H
	jne	SHORT $LN32@Getifld
$LN31@Getifld:
	cmp	ebp, ebx
	je	SHORT $LN318@Getifld
	cmp	ebp, 16					; 00000010H
	jne	SHORT $LN32@Getifld
$LN318@Getifld:

; 627  : 				_Base = 16, _Seendigit = false, ++_First;

	mov	ebp, 16					; 00000010H
	mov	ecx, esi
	mov	DWORD PTR __Base$[esp+104], ebp
	mov	BYTE PTR __Seendigit$[esp+100], bl
	call	??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator++

; 630  : 			}
; 631  : 
; 632  : 		int _Dlen = _Base == 0 || _Base == 10 ? 10
; 633  : 			: _Base == 8 ? 8 : 16 + 6;

	sub	ebp, 8
	neg	ebp
	sbb	ebp, ebp
	and	ebp, 14					; 0000000eH
	add	ebp, 8
	jmp	SHORT $LN48@Getifld
$LN32@Getifld:

; 628  : 			else if (_Base == 0)

	cmp	ebp, ebx
	jne	SHORT $LN307@Getifld

; 629  : 				_Base = 8;

	mov	ebp, 8
	mov	DWORD PTR __Base$[esp+104], ebp

; 630  : 			}
; 631  : 
; 632  : 		int _Dlen = _Base == 0 || _Base == 10 ? 10
; 633  : 			: _Base == 8 ? 8 : 16 + 6;

	sub	ebp, 8
	neg	ebp
	sbb	ebp, ebp
	and	ebp, 14					; 0000000eH
	add	ebp, 8
	jmp	SHORT $LN48@Getifld
$LN28@Getifld:
	cmp	ebp, ebx
	je	SHORT $LN47@Getifld
$LN307@Getifld:
	cmp	ebp, 10					; 0000000aH
	je	SHORT $LN47@Getifld
	sub	ebp, 8
	neg	ebp
	sbb	ebp, ebp
	and	ebp, 14					; 0000000eH
	add	ebp, 8
	jmp	SHORT $LN48@Getifld
$LN47@Getifld:
	mov	ebp, 10					; 0000000aH
$LN48@Getifld:

; 634  : 		string _Groups((size_t)1, (char)_Seendigit);

	mov	ecx, DWORD PTR __Seendigit$[esp+100]
	push	ecx
	push	1
	lea	ecx, DWORD PTR __Groups$[esp+112]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
	mov	BYTE PTR __$EHRec$[esp+112], 1

; 635  : 		size_t _Group = 0;

	xor	edi, edi
	npad	6

; 636  : 
; 637  : 		for (char *const _Pe = &_Ac[_MAX_INT_DIG - 1];
; 638  : 			_First != _Last; ++_First)

$LL96@Getifld:
	cmp	BYTE PTR [esi+12], bl
	jne	SHORT $LN132@Getifld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, ebx
	je	SHORT $LN130@Getifld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN136@Getifld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN136@Getifld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN137@Getifld
$LN136@Getifld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN137@Getifld:
	cmp	eax, -1
	je	SHORT $LN130@Getifld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN129@Getifld
$LN130@Getifld:
	mov	DWORD PTR [esi+8], ebx
$LN129@Getifld:
	mov	BYTE PTR [esi+12], 1
$LN132@Getifld:
	mov	edx, DWORD PTR __Last$[esp+100]
	cmp	BYTE PTR [edx+12], bl
	jne	SHORT $LN155@Getifld
	mov	ecx, DWORD PTR [edx+8]
	cmp	ecx, ebx
	je	SHORT $LN153@Getifld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN159@Getifld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN159@Getifld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN160@Getifld
$LN159@Getifld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN160@Getifld:
	cmp	eax, -1
	mov	edx, DWORD PTR __Last$[esp+100]
	je	SHORT $LN153@Getifld
	mov	BYTE PTR [edx+13], al
	jmp	SHORT $LN152@Getifld
$LN153@Getifld:
	mov	DWORD PTR [edx+8], ebx
$LN152@Getifld:
	mov	BYTE PTR [edx+12], 1
$LN155@Getifld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, ebx
	jne	SHORT $LN312@Getifld
	cmp	DWORD PTR [edx+8], ebx
	jne	SHORT $LN126@Getifld
$LN127@Getifld:

; 656  : 				}
; 657  : 
; 658  : 		if (_Group == 0)

	cmp	edi, ebx
	je	$LN316@Getifld

; 659  : 			;	// no thousands separators seen
; 660  : 		else if ('\0' < _Groups[_Group])

	push	edi
	lea	ecx, DWORD PTR __Groups$[esp+108]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], bl
	jle	$LN14@Getifld

; 661  : 			++_Group;	// add trailing group to group count

	add	edi, 1

; 662  : 		else

	jmp	$LN316@Getifld
$LN312@Getifld:

; 636  : 
; 637  : 		for (char *const _Pe = &_Ac[_MAX_INT_DIG - 1];
; 638  : 			_First != _Last; ++_First)

	cmp	DWORD PTR [edx+8], ebx
	jne	SHORT $LN127@Getifld
$LN126@Getifld:

; 639  : 			if (::memchr("0123456789abcdefABCDEF",
; 640  : 				*_Ptr = _MAKLOCBYTE(_Elem, *_First, _Cvt), _Dlen) != 0)

	cmp	BYTE PTR [esi+12], bl
	jne	SHORT $LN182@Getifld
	cmp	ecx, ebx
	je	SHORT $LN180@Getifld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN186@Getifld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN186@Getifld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN187@Getifld
$LN186@Getifld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN187@Getifld:
	cmp	eax, -1
	je	SHORT $LN180@Getifld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN179@Getifld
$LN180@Getifld:
	mov	DWORD PTR [esi+8], ebx
$LN179@Getifld:
	mov	BYTE PTR [esi+12], 1
$LN182@Getifld:
	cmp	DWORD PTR [esi+8], ebx
	jne	SHORT $LN175@Getifld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN175@Getifld:
	mov	al, BYTE PTR [esi+13]
	mov	ecx, DWORD PTR __Ptr$[esp+104]
	movsx	edx, al
	push	ebp
	push	edx
	push	OFFSET ??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@
	mov	BYTE PTR [ecx], al
	call	_memchr
	add	esp, 12					; 0000000cH
	test	eax, eax
	je	SHORT $LN24@Getifld

; 641  : 				{	// got a digit, characterize it and add to group size
; 642  : 				if ((_Nonzero || *_Ptr != '0') && _Ptr < _Pe)

	cmp	BYTE PTR __Nonzero$[esp+100], bl
	jne	SHORT $LN315@Getifld
	mov	eax, DWORD PTR __Ptr$[esp+104]
	cmp	BYTE PTR [eax], 48			; 00000030H
	je	SHORT $LN23@Getifld
$LN315@Getifld:
	mov	eax, DWORD PTR __Ac$[esp+100]
	add	eax, 31					; 0000001fH
	cmp	DWORD PTR __Ptr$[esp+104], eax
	jae	SHORT $LN23@Getifld

; 643  : 					++_Ptr, _Nonzero = true;

	add	DWORD PTR __Ptr$[esp+104], 1
	mov	BYTE PTR __Nonzero$[esp+100], 1
$LN23@Getifld:

; 644  : 				_Seendigit = true;
; 645  : 				if (_Groups[_Group] != CHAR_MAX)

	push	edi
	lea	ecx, DWORD PTR __Groups$[esp+108]
	mov	BYTE PTR __Seendigit$[esp+104], 1
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], 127			; 0000007fH
	je	SHORT $LN26@Getifld

; 646  : 					++_Groups[_Group];

	push	edi
	lea	ecx, DWORD PTR __Groups$[esp+108]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	add	BYTE PTR [eax], 1

; 647  : 				}
; 648  : 			else if (_Groups[_Group] == '\0'

	jmp	SHORT $LN26@Getifld
$LN24@Getifld:

; 649  : 				|| _Kseparator == (_Elem)0
; 650  : 				|| *_First != _Kseparator)

	push	edi
	lea	ecx, DWORD PTR __Groups$[esp+108]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], bl
	je	$LN127@Getifld
	cmp	BYTE PTR __Kseparator$[esp+104], bl
	je	$LN127@Getifld
	cmp	BYTE PTR [esi+12], bl
	jne	SHORT $LN205@Getifld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN205@Getifld:
	cmp	DWORD PTR [esi+8], ebx
	jne	SHORT $LN204@Getifld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN204@Getifld:
	mov	cl, BYTE PTR __Kseparator$[esp+104]
	cmp	BYTE PTR [esi+13], cl
	jne	$LN127@Getifld

; 651  : 				break;	// not a group separator, done
; 652  : 			else
; 653  : 				{	// add a new group to _Groups string
; 654  : 				_Groups.append((string::size_type)1, '\0');

	push	ebx
	push	1
	lea	ecx, DWORD PTR __Groups$[esp+112]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 655  : 				++_Group;

	add	edi, 1
$LN26@Getifld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, ebx
	jne	SHORT $LN313@Getifld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	mov	ecx, DWORD PTR [esi+8]
	add	esp, 12					; 0000000cH
	cmp	ecx, ebx
	je	SHORT $LN97@Getifld
$LN313@Getifld:

; 636  : 
; 637  : 		for (char *const _Pe = &_Ac[_MAX_INT_DIG - 1];
; 638  : 			_First != _Last; ++_First)

	mov	edx, DWORD PTR [ecx+32]
	cmp	DWORD PTR [edx], ebx
	je	SHORT $LN103@Getifld
	mov	eax, DWORD PTR [ecx+48]
	cmp	DWORD PTR [eax], ebx
	jle	SHORT $LN103@Getifld
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN104@Getifld
$LN103@Getifld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN104@Getifld:
	cmp	eax, -1
	je	SHORT $LN97@Getifld
	mov	BYTE PTR [esi+12], bl
	jmp	$LL96@Getifld
$LN97@Getifld:
	mov	DWORD PTR [esi+8], ebx
	mov	BYTE PTR [esi+12], 1
	jmp	$LL96@Getifld
$LN14@Getifld:

; 663  : 			_Seendigit = false;	// trailing separator, fail

	mov	BYTE PTR __Seendigit$[esp+100], bl
$LN316@Getifld:

; 664  : 
; 665  : 		for (const char *_Pg = _Grouping.c_str(); _Seendigit && 0 < _Group; )

	mov	esi, DWORD PTR __Grouping$[esp+112]
	mov	ebp, 16					; 00000010H
	cmp	DWORD PTR __Grouping$[esp+132], ebp
	jae	SHORT $LN213@Getifld
	lea	esi, DWORD PTR __Grouping$[esp+112]
$LN213@Getifld:
	cmp	BYTE PTR __Seendigit$[esp+100], bl
	je	SHORT $LN306@Getifld
	npad	4
$LL12@Getifld:
	cmp	edi, ebx
	jbe	SHORT $LN303@Getifld

; 666  : 			if (*_Pg == CHAR_MAX)

	cmp	BYTE PTR [esi], 127			; 0000007fH
	je	SHORT $LN303@Getifld

; 667  : 				break;	// end of grouping constraints to check
; 668  : 			else if (0 < --_Group && *_Pg != _Groups[_Group]
; 669  : 				|| 0 == _Group && *_Pg < _Groups[_Group])

	sub	edi, 1
	je	SHORT $LN6@Getifld
	push	edi
	lea	ecx, DWORD PTR __Groups$[esp+108]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	mov	cl, BYTE PTR [esi]
	cmp	cl, BYTE PTR [eax]
	jne	SHORT $LN306@Getifld
$LN6@Getifld:
	cmp	edi, ebx
	jne	SHORT $LN8@Getifld
	push	edi
	lea	ecx, DWORD PTR __Groups$[esp+108]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	mov	dl, BYTE PTR [esi]
	cmp	dl, BYTE PTR [eax]
	jl	SHORT $LN306@Getifld
$LN8@Getifld:

; 670  : 				_Seendigit = false;	// bad group size, fail
; 671  : 			else if ('\0' < _Pg[1])

	cmp	BYTE PTR [esi+1], bl
	jle	SHORT $LL12@Getifld

; 664  : 
; 665  : 		for (const char *_Pg = _Grouping.c_str(); _Seendigit && 0 < _Group; )

	add	esi, 1
	jmp	SHORT $LL12@Getifld
$LN303@Getifld:

; 672  : 				++_Pg;	// group size okay, advance to next test
; 673  : 
; 674  : 		if (_Seendigit && !_Nonzero)

	cmp	BYTE PTR __Nonzero$[esp+100], bl

; 675  : 			*_Ptr++ = '0';	// zero field, replace stripped zero(s)

	mov	eax, DWORD PTR __Ptr$[esp+104]
	jne	SHORT $LN1@Getifld
	mov	BYTE PTR [eax], 48			; 00000030H
	add	eax, 1
	jmp	SHORT $LN1@Getifld
$LN306@Getifld:

; 676  : 		else if (!_Seendigit)
; 677  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ac$[esp+100]
$LN1@Getifld:

; 678  : 		*_Ptr = '\0';
; 679  : 		return (_Base);

	cmp	DWORD PTR __Groups$[esp+132], ebp
	mov	BYTE PTR [eax], bl
	mov	BYTE PTR __$EHRec$[esp+112], bl
	pop	edi
	jb	SHORT $LN231@Getifld
	mov	eax, DWORD PTR __Groups$[esp+108]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN231@Getifld:
	mov	esi, 15					; 0000000fH
	push	3
	lea	ecx, DWORD PTR __Lock$37199[esp+100]
	mov	DWORD PTR __Groups$[esp+132], esi
	mov	DWORD PTR __Groups$[esp+128], ebx
	mov	BYTE PTR __Groups$[esp+112], bl
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR __Groups$[esp+100]
	cmp	eax, -3					; fffffffdH
	je	SHORT $LN252@Getifld
	cmp	eax, ebx
	je	SHORT $LN249@Getifld
$LL251@Getifld:
	mov	DWORD PTR [eax], ebx
	mov	ecx, DWORD PTR __Groups$[esp+100]
	mov	eax, DWORD PTR [ecx+4]
	cmp	eax, ebx
	mov	DWORD PTR __Groups$[esp+100], eax
	jne	SHORT $LL251@Getifld
$LN249@Getifld:
	mov	DWORD PTR __Groups$[esp+100], ebx
$LN252@Getifld:
	lea	ecx, DWORD PTR __Lock$37199[esp+96]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	cmp	DWORD PTR __Grouping$[esp+128], ebp
	mov	DWORD PTR __$EHRec$[esp+108], -1
	pop	ebp
	jb	SHORT $LN273@Getifld
	mov	edx, DWORD PTR __Grouping$[esp+104]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN273@Getifld:
	push	3
	lea	ecx, DWORD PTR __Lock$37376[esp+96]
	mov	DWORD PTR __Grouping$[esp+128], esi
	mov	DWORD PTR __Grouping$[esp+124], ebx
	mov	BYTE PTR __Grouping$[esp+108], bl
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR __Grouping$[esp+96]
	cmp	eax, -3					; fffffffdH
	je	SHORT $LN294@Getifld
	cmp	eax, ebx
	je	SHORT $LN291@Getifld
$LL293@Getifld:
	mov	DWORD PTR [eax], ebx
	mov	eax, DWORD PTR __Grouping$[esp+96]
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebx
	mov	DWORD PTR __Grouping$[esp+96], eax
	jne	SHORT $LL293@Getifld
$LN291@Getifld:
	mov	DWORD PTR __Grouping$[esp+96], ebx
$LN294@Getifld:
	lea	ecx, DWORD PTR __Lock$37376[esp+92]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 680  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+96]
	mov	eax, DWORD PTR __Base$[esp+96]
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 88					; 00000058H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z$0:
	lea	ecx, DWORD PTR __Grouping$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z$1:
	lea	ecx, DWORD PTR __Groups$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
PUBLIC	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xutility
xdata$x	SEGMENT
__unwindtable$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z$1
__ehfuncinfo$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
_TEXT	SEGMENT
__Bad$ = -94						; size = 1
__Kseparator$23092 = -93				; size = 1
__Ptr$ = -92						; size = 4
__Significant$ = -88					; size = 4
__Pten$ = -84						; size = 4
__Lock$38322 = -80					; size = 4
__Groups$23094 = -76					; size = 32
__Grouping$ = -44					; size = 32
__$EHRec$ = -12						; size = 12
_this$ = 8						; size = 4
__Ac$ = 12						; size = 4
__Seendigit$ = 16					; size = 1
__First$ = 16						; size = 4
__Last$ = 20						; size = 4
__Loc$ = 24						; size = 4
?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld, COMDAT

; 684  : 		{	// get floating-point field from [_First, _Last) into _Ac

	push	-1
	push	__ehhandler$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 84					; 00000054H

; 685  : 		const _Mypunct& _Punct_fac = _USE(_Loc, _Mypunct);

	mov	eax, DWORD PTR __Loc$[esp+92]
	push	ebx
	push	ebp
	push	esi
	push	edi
	push	eax
	call	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
	add	esp, 4

; 686  : 		const string _Grouping = _Punct_fac.grouping();

	lea	ecx, DWORD PTR __Grouping$[esp+112]
	mov	ebp, eax
	push	ecx
	mov	ecx, ebp
	call	?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::grouping

; 687  : 		const _Elem _E0 = _MAKLOCCHR(_Elem, '0', _Cvt);
; 688  : 		char *_Ptr = _Ac;
; 689  : 		bool _Bad = false;
; 690  : 
; 691  : 		if (_First == _Last)

	mov	esi, DWORD PTR __First$[esp+108]
	mov	ebx, DWORD PTR __Ac$[esp+108]
	xor	edi, edi
	cmp	BYTE PTR [esi+12], 0
	mov	DWORD PTR __$EHRec$[esp+120], edi
	mov	DWORD PTR __Ptr$[esp+112], ebx
	mov	BYTE PTR __Bad$[esp+112], 0
	jne	SHORT $LN78@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN78@Getffld:
	mov	edx, DWORD PTR __Last$[esp+108]
	cmp	BYTE PTR [edx+12], 0
	jne	SHORT $LN77@Getffld
	mov	ecx, edx
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN77@Getffld:
	mov	eax, DWORD PTR [esi+8]
	cmp	eax, edi
	jne	SHORT $LN1415@Getffld
	mov	ecx, DWORD PTR __Last$[esp+108]
	cmp	DWORD PTR [ecx+8], edi
	je	$LN64@Getffld
	cmp	eax, edi
	je	SHORT $LN82@Getffld
$LN1415@Getffld:
	mov	edx, DWORD PTR __Last$[esp+108]
	cmp	DWORD PTR [edx+8], edi
	jne	$LN64@Getffld
$LN82@Getffld:

; 692  : 			;	// empty field
; 693  : 		else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN86@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN86@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN85@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN85@Getffld:
	cmp	BYTE PTR [esi+13], 43			; 0000002bH
	jne	SHORT $LN66@Getffld

; 694  : 			*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [ebx], 43			; 0000002bH
	add	ebx, 1
	cmp	DWORD PTR [esi+8], edi
	mov	DWORD PTR __Ptr$[esp+112], ebx
	jne	SHORT $LN91@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN91@Getffld:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	jmp	SHORT $LN64@Getffld
$LN66@Getffld:

; 695  : 		else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN95@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN95@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN94@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN94@Getffld:
	cmp	BYTE PTR [esi+13], 45			; 0000002dH
	jne	SHORT $LN64@Getffld

; 696  : 			*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [ebx], 45			; 0000002dH
	add	ebx, 1
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+112], ebx
	call	??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator++
$LN64@Getffld:

; 697  : 
; 698  : 		bool _Seendigit = false;	// seen a digit in input
; 699  : 		int _Significant = 0;	// number of significant digits
; 700  : 		int _Pten = 0;	// power of 10 multiplier
; 701  : 
; 702  : 		if (*_Grouping.c_str() == CHAR_MAX || *_Grouping.c_str() <= '\0')

	mov	ecx, DWORD PTR __Grouping$[esp+140]
	cmp	ecx, 16					; 00000010H
	mov	edx, DWORD PTR __Grouping$[esp+120]
	mov	BYTE PTR __Seendigit$[esp+108], 0
	mov	DWORD PTR __Significant$[esp+112], edi
	mov	DWORD PTR __Pten$[esp+112], edi
	mov	eax, edx
	jae	SHORT $LN105@Getffld
	lea	eax, DWORD PTR __Grouping$[esp+120]
$LN105@Getffld:
	cmp	BYTE PTR [eax], 127			; 0000007fH
	je	$LN1360@Getffld
	cmp	ecx, 16					; 00000010H
	mov	eax, edx
	jae	SHORT $LN111@Getffld
	lea	eax, DWORD PTR __Grouping$[esp+120]
$LN111@Getffld:
	cmp	BYTE PTR [eax], 0
	jle	$LN1360@Getffld

; 714  : 					}
; 715  : 		else
; 716  : 			{	// grouping specified, gather digits and group sizes
; 717  : 			const _Elem _Kseparator = _Punct_fac.thousands_sep();

	mov	eax, DWORD PTR [ebp]
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, ebp
	call	edx

; 718  : 
; 719  : 			string _Groups((size_t)1, '\0');

	push	edi
	push	1
	lea	ecx, DWORD PTR __Groups$23094[esp+120]
	mov	BYTE PTR __Kseparator$23092[esp+120], al
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 720  : 			size_t _Group = 0;
; 721  : 
; 722  : 			for (; _First != _Last; ++_First)

	mov	eax, DWORD PTR __Last$[esp+108]
	push	eax
	push	esi
	mov	BYTE PTR __$EHRec$[esp+128], 1
	xor	ebx, ebx
	call	??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ; std::operator!=<char,std::char_traits<char> >
	add	esp, 8
	test	al, al
	je	$LN37@Getffld
	npad	1
$LL238@Getffld:

; 723  : 				if (_E0 <= *_First && *_First <= _E0 + 9)

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN247@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN245@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN251@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN251@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN252@Getffld
$LN251@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN252@Getffld:
	cmp	eax, -1
	je	SHORT $LN245@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN244@Getffld
$LN245@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN244@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN247@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN240@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN240@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jl	$LN50@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN268@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN268@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN267@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN267@Getffld:
	cmp	BYTE PTR [esi+13], 57			; 00000039H
	jg	SHORT $LN50@Getffld

; 724  : 					{	// got a digit, add to group size
; 725  : 					_Seendigit = true;
; 726  : 					if (_MAX_SIG_DIG <= _Significant)

	cmp	DWORD PTR __Significant$[esp+112], 36	; 00000024H
	mov	BYTE PTR __Seendigit$[esp+108], 1
	jl	SHORT $LN49@Getffld

; 727  : 						++_Pten;	// just scale by 10

	add	DWORD PTR __Pten$[esp+112], 1
	jmp	SHORT $LN46@Getffld
$LN49@Getffld:

; 728  : 					else if (*_First == _E0 && _Significant == 0)

	mov	ecx, esi
	call	??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*
	cmp	al, 48					; 00000030H
	jne	SHORT $LN47@Getffld
	cmp	DWORD PTR __Significant$[esp+112], edi
	je	SHORT $LN46@Getffld
$LN47@Getffld:

; 729  : 						;	// drop leading zeros
; 730  : 					else
; 731  : 						{	// save a significant digit
; 732  : 						*_Ptr++ = (char)((*_First - _E0) + '0');

	mov	ecx, esi
	call	??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::operator*
	mov	ecx, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [ecx], al
	add	ecx, 1

; 733  : 						++_Significant;

	add	DWORD PTR __Significant$[esp+112], 1
	mov	DWORD PTR __Ptr$[esp+112], ecx
$LN46@Getffld:

; 734  : 						}
; 735  : 					if (_Groups[_Group] != CHAR_MAX)

	push	ebx
	lea	ecx, DWORD PTR __Groups$23094[esp+116]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], 127			; 0000007fH
	je	SHORT $LN52@Getffld

; 736  : 						++_Groups[_Group];

	push	ebx
	lea	ecx, DWORD PTR __Groups$23094[esp+116]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	add	BYTE PTR [eax], 1

; 737  : 					}
; 738  : 				else if (_Groups[_Group] == '\0'

	jmp	SHORT $LN52@Getffld
$LN50@Getffld:

; 739  : 					|| _Kseparator == (_Elem)0
; 740  : 					|| *_First != _Kseparator)

	push	ebx
	lea	ecx, DWORD PTR __Groups$23094[esp+116]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], 0
	je	$LN1323@Getffld
	cmp	BYTE PTR __Kseparator$23092[esp+112], 0
	je	SHORT $LN1323@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN272@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN272@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN271@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN271@Getffld:
	mov	al, BYTE PTR __Kseparator$23092[esp+112]
	cmp	BYTE PTR [esi+13], al
	jne	SHORT $LN1323@Getffld

; 741  : 					break;	// not a group separator, done
; 742  : 				else
; 743  : 					{	// add a new group to _Groups string
; 744  : 					_Groups.append((size_t)1, '\0');

	push	edi
	push	1
	lea	ecx, DWORD PTR __Groups$23094[esp+120]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 745  : 					++_Group;

	add	ebx, 1
$LN52@Getffld:

; 720  : 			size_t _Group = 0;
; 721  : 
; 722  : 			for (; _First != _Last; ++_First)

	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN237@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN237@Getffld:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	mov	ecx, DWORD PTR __Last$[esp+108]
	push	ecx
	push	esi
	call	??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z ; std::operator!=<char,std::char_traits<char> >
	add	esp, 8
	test	al, al
	jne	$LL238@Getffld
$LN1323@Getffld:

; 746  : 					}
; 747  : 			if (_Group == 0)

	cmp	ebx, edi
	je	SHORT $LN37@Getffld

; 748  : 				;	// no thousands separators seen
; 749  : 			else if ('\0' < _Groups[_Group])

	push	ebx
	lea	ecx, DWORD PTR __Groups$23094[esp+116]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	cmp	BYTE PTR [eax], 0
	jle	SHORT $LN38@Getffld

; 750  : 				++_Group;	// add trailing group to group count

	add	ebx, 1

; 751  : 			else

	jmp	SHORT $LN37@Getffld
$LN38@Getffld:

; 752  : 				_Bad = true;	// trailing separator, fail

	mov	BYTE PTR __Bad$[esp+112], 1
$LN37@Getffld:

; 753  : 
; 754  : 			for (const char *_Pg = _Grouping.c_str();

	cmp	DWORD PTR __Grouping$[esp+140], 16	; 00000010H
	mov	edi, DWORD PTR __Grouping$[esp+120]
	jae	SHORT $LN280@Getffld
	lea	edi, DWORD PTR __Grouping$[esp+120]
$LN280@Getffld:

; 755  : 				!_Bad && 0 < _Group; )

	cmp	BYTE PTR __Bad$[esp+112], 0
	jne	SHORT $LN1324@Getffld
$LL36@Getffld:
	test	ebx, ebx
	jbe	SHORT $LN1324@Getffld

; 756  : 				if (*_Pg == CHAR_MAX)

	cmp	BYTE PTR [edi], 127			; 0000007fH
	je	SHORT $LN1324@Getffld

; 757  : 					break;	// end of grouping constraints to check
; 758  : 				else if (0 < --_Group && *_Pg != _Groups[_Group]
; 759  : 					|| 0 == _Group && *_Pg < _Groups[_Group])

	sub	ebx, 1
	je	SHORT $LN30@Getffld
	push	ebx
	lea	ecx, DWORD PTR __Groups$23094[esp+116]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	mov	dl, BYTE PTR [edi]
	cmp	dl, BYTE PTR [eax]
	jne	SHORT $LN31@Getffld
$LN30@Getffld:
	test	ebx, ebx
	jne	SHORT $LN32@Getffld
	push	ebx
	lea	ecx, DWORD PTR __Groups$23094[esp+116]
	call	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
	mov	cl, BYTE PTR [edi]
	cmp	cl, BYTE PTR [eax]
	jl	SHORT $LN31@Getffld
$LN32@Getffld:

; 761  : 				else if ('\0' < _Pg[1])

	cmp	BYTE PTR [edi+1], 0
	jle	SHORT $LL36@Getffld

; 755  : 				!_Bad && 0 < _Group; )

	add	edi, 1
	jmp	SHORT $LL36@Getffld
$LN31@Getffld:

; 760  : 					_Bad = true;	// bad group size, fail

	mov	BYTE PTR __Bad$[esp+112], 1
$LN1324@Getffld:

; 762  : 					++_Pg;	// group size okay, advance to next test
; 763  : 			}

	cmp	DWORD PTR __Groups$23094[esp+140], 16	; 00000010H
	mov	BYTE PTR __$EHRec$[esp+120], 0
	jb	SHORT $LN298@Getffld
	mov	edx, DWORD PTR __Groups$23094[esp+120]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN298@Getffld:
	xor	edi, edi
	push	3
	lea	ecx, DWORD PTR __Lock$38322[esp+116]
	mov	DWORD PTR __Groups$23094[esp+144], 15	; 0000000fH
	mov	DWORD PTR __Groups$23094[esp+140], edi
	mov	BYTE PTR __Groups$23094[esp+124], 0
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR __Groups$23094[esp+112]
	cmp	eax, -3					; fffffffdH
	je	SHORT $LN319@Getffld
	cmp	eax, edi
	je	SHORT $LN316@Getffld
	npad	6
$LL318@Getffld:
	mov	DWORD PTR [eax], edi
	mov	eax, DWORD PTR __Groups$23094[esp+112]
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, edi
	mov	DWORD PTR __Groups$23094[esp+112], eax
	jne	SHORT $LL318@Getffld
$LN316@Getffld:
	mov	DWORD PTR __Groups$23094[esp+112], edi
$LN319@Getffld:
	lea	ecx, DWORD PTR __Lock$38322[esp+112]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	ebx, DWORD PTR __Last$[esp+108]
	xor	edi, edi
$LN125@Getffld:

; 764  : 
; 765  : 		if (_Seendigit && _Significant == 0)

	cmp	BYTE PTR __Seendigit$[esp+108], 0
	je	SHORT $LN27@Getffld
	cmp	DWORD PTR __Significant$[esp+112], edi
	jne	SHORT $LN27@Getffld

; 766  : 			*_Ptr++ = '0';	// save at least one leading digit

	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], 48			; 00000030H
	add	eax, 1
	mov	DWORD PTR __Ptr$[esp+112], eax
$LN27@Getffld:

; 767  : 
; 768  : 		if (_First != _Last && *_First == _Punct_fac.decimal_point())

	cmp	BYTE PTR [esi+12], 0
	jne	$LN338@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	$LN336@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	$LN342@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	$LN342@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	$LN343@Getffld
$LN1360@Getffld:

; 762  : 					++_Pg;	// group size okay, advance to next test
; 763  : 			}

	mov	ebx, DWORD PTR __Last$[esp+108]
	npad	2
$LL1355@Getffld:

; 703  : 			for (; _First != _Last
; 704  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 705  : 					_Seendigit = true, ++_First)

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN130@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1370@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN134@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN134@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN135@Getffld
$LN134@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN135@Getffld:
	cmp	eax, -1
	je	SHORT $LN1370@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN127@Getffld
$LN1370@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN127@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN130@Getffld:
	cmp	BYTE PTR [ebx+12], 0
	jne	SHORT $LN153@Getffld
	mov	ecx, DWORD PTR [ebx+8]
	cmp	ecx, edi
	je	SHORT $LN1371@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN157@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN157@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN158@Getffld
$LN157@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN158@Getffld:
	cmp	eax, -1
	je	SHORT $LN1371@Getffld
	mov	BYTE PTR [ebx+13], al
	jmp	SHORT $LN150@Getffld
$LN1371@Getffld:
	mov	DWORD PTR [ebx+8], edi
$LN150@Getffld:
	mov	BYTE PTR [ebx+12], 1
$LN153@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1346@Getffld
	cmp	DWORD PTR [ebx+8], edi
	je	$LN125@Getffld
	jmp	SHORT $LN124@Getffld
$LN1346@Getffld:
	cmp	DWORD PTR [ebx+8], edi
	jne	$LN125@Getffld
$LN124@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN180@Getffld
	cmp	ecx, edi
	je	SHORT $LN1372@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN184@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN184@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN185@Getffld
$LN184@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN185@Getffld:
	cmp	eax, -1
	je	SHORT $LN1372@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN177@Getffld
$LN1372@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN177@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN180@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN173@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN173@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jl	$LN125@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN207@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1373@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN211@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN211@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN212@Getffld
$LN211@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN212@Getffld:
	cmp	eax, -1
	je	SHORT $LN1373@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN204@Getffld
$LN1373@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN204@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN207@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN200@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN200@Getffld:
	cmp	BYTE PTR [esi+13], 57			; 00000039H
	jg	$LN125@Getffld

; 706  : 				if (_MAX_SIG_DIG <= _Significant)

	cmp	DWORD PTR __Significant$[esp+112], 36	; 00000024H
	jl	SHORT $LN58@Getffld

; 707  : 					++_Pten;	// just scale by 10

	add	DWORD PTR __Pten$[esp+112], 1
	jmp	SHORT $LN60@Getffld
$LN58@Getffld:

; 708  : 				else if (*_First == _E0 && _Significant == 0)

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN228@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN228@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN227@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN227@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jne	SHORT $LN56@Getffld
	cmp	DWORD PTR __Significant$[esp+112], edi
	je	SHORT $LN60@Getffld
$LN56@Getffld:

; 709  : 					;	// drop leading zeros
; 710  : 				else
; 711  : 					{	// save a significant digit
; 712  : 					*_Ptr++ = (char)((*_First - _E0) + '0');

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN232@Getffld
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$LN232@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN231@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN231@Getffld:
	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	cl, BYTE PTR [esi+13]
	mov	BYTE PTR [eax], cl
	add	eax, 1

; 713  : 					++_Significant;

	add	DWORD PTR __Significant$[esp+112], 1
	mov	DWORD PTR __Ptr$[esp+112], eax
$LN60@Getffld:
	cmp	DWORD PTR [esi+8], edi
	mov	BYTE PTR __Seendigit$[esp+108], 1
	jne	SHORT $LN112@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN112@Getffld:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	jmp	$LL1355@Getffld

; 767  : 
; 768  : 		if (_First != _Last && *_First == _Punct_fac.decimal_point())

$LN342@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN343@Getffld:
	cmp	eax, -1
	je	SHORT $LN336@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN335@Getffld
$LN336@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN335@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN338@Getffld:
	cmp	BYTE PTR [ebx+12], 0
	jne	SHORT $LN361@Getffld
	mov	ecx, DWORD PTR [ebx+8]
	cmp	ecx, edi
	je	SHORT $LN359@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN365@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN365@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN366@Getffld
$LN365@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN366@Getffld:
	cmp	eax, -1
	je	SHORT $LN359@Getffld
	mov	BYTE PTR [ebx+13], al
	jmp	SHORT $LN358@Getffld
$LN359@Getffld:
	mov	DWORD PTR [ebx+8], edi
$LN358@Getffld:
	mov	BYTE PTR [ebx+12], 1
$LN361@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1417@Getffld
	cmp	DWORD PTR [ebx+8], edi
	je	$LN1366@Getffld
	cmp	ecx, edi
	mov	ebx, DWORD PTR __Last$[esp+108]
	je	SHORT $LN1374@Getffld
$LN1417@Getffld:
	cmp	DWORD PTR [ebx+8], edi
	jne	$LN1366@Getffld
$LN1374@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN388@Getffld
	cmp	ecx, edi
	je	SHORT $LN386@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN392@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN392@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN393@Getffld
$LN392@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN393@Getffld:
	cmp	eax, -1
	je	SHORT $LN386@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN385@Getffld
$LN386@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN385@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN388@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN381@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN381@Getffld:
	mov	eax, DWORD PTR [ebp]
	mov	edx, DWORD PTR [eax+4]
	mov	bl, BYTE PTR [esi+13]
	mov	ecx, ebp
	call	edx
	cmp	bl, al
	jne	SHORT $LN1366@Getffld

; 769  : 			*_Ptr++ = localeconv()->decimal_point[0], ++_First;	// add .

	call	_localeconv
	mov	eax, DWORD PTR [eax]
	mov	cl, BYTE PTR [eax]
	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], cl
	add	eax, 1
	cmp	DWORD PTR [esi+8], edi
	mov	DWORD PTR __Ptr$[esp+112], eax
	jne	SHORT $LN410@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN410@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN414@Getffld
	mov	edx, DWORD PTR [ecx+32]
	cmp	DWORD PTR [edx], edi
	je	SHORT $LN420@Getffld
	mov	eax, DWORD PTR [ecx+48]
	cmp	DWORD PTR [eax], edi
	jle	SHORT $LN420@Getffld
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN421@Getffld
$LN420@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN421@Getffld:
	cmp	eax, -1
	je	SHORT $LN414@Getffld
	mov	BYTE PTR [esi+12], 0
	jmp	SHORT $LN1366@Getffld
$LN414@Getffld:
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], 1
$LN1366@Getffld:

; 770  : 
; 771  : 		if (_Significant == 0)

	mov	ebx, DWORD PTR __Significant$[esp+112]
	cmp	ebx, edi
	mov	ebp, DWORD PTR __Last$[esp+108]
	jne	$LL1369@Getffld
	npad	7

; 772  : 			{	// 0000. so far
; 773  : 			for (; _First != _Last && *_First == _E0;
; 774  : 				_Seendigit = true, ++_First)

$LL437@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN473@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1375@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN477@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN477@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN478@Getffld
$LN477@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN478@Getffld:
	cmp	eax, -1
	je	SHORT $LN1375@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN470@Getffld
$LN1375@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN470@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN473@Getffld:
	cmp	BYTE PTR [ebp+12], 0
	jne	SHORT $LN496@Getffld
	mov	ecx, DWORD PTR [ebp+8]
	cmp	ecx, edi
	je	SHORT $LN1376@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN500@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN500@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN501@Getffld
$LN500@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN501@Getffld:
	cmp	eax, -1
	je	SHORT $LN1376@Getffld
	mov	BYTE PTR [ebp+13], al
	jmp	SHORT $LN493@Getffld
$LN1376@Getffld:
	mov	DWORD PTR [ebp+8], edi
$LN493@Getffld:
	mov	BYTE PTR [ebp+12], 1
$LN496@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1347@Getffld
	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN467@Getffld
$LN468@Getffld:

; 776  : 			if (_Pten < 0)

	cmp	DWORD PTR __Pten$[esp+112], edi
	jge	SHORT $LL1369@Getffld

; 777  : 				*_Ptr++ = '0', ++_Pten;	// put one back

	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], 48			; 00000030H
	add	eax, 1
	add	DWORD PTR __Pten$[esp+112], 1
	mov	DWORD PTR __Ptr$[esp+112], eax
	npad	7
$LL1369@Getffld:

; 778  : 			}
; 779  : 
; 780  : 		for (; _First != _Last
; 781  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 782  : 				_Seendigit = true, ++_First)

	cmp	BYTE PTR [esi+12], 0
	jne	$LN582@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	$LN1379@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	$LN586@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	$LN586@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	$LN587@Getffld
$LN1347@Getffld:

; 772  : 			{	// 0000. so far
; 773  : 			for (; _First != _Last && *_First == _E0;
; 774  : 				_Seendigit = true, ++_First)

	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN468@Getffld
$LN467@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN523@Getffld
	cmp	ecx, edi
	je	SHORT $LN1377@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN527@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN527@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN528@Getffld
$LN527@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN528@Getffld:
	cmp	eax, -1
	je	SHORT $LN1377@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN520@Getffld
$LN1377@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN520@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN523@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN516@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN516@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jne	$LN468@Getffld
	mov	ecx, DWORD PTR [esi+8]

; 775  : 				--_Pten;	// just count leading fraction zeros

	sub	DWORD PTR __Pten$[esp+112], 1
	cmp	ecx, edi
	mov	BYTE PTR __Seendigit$[esp+108], 1
	jne	SHORT $LN1348@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	mov	ecx, DWORD PTR [esi+8]
	add	esp, 12					; 0000000cH
	cmp	ecx, edi
	je	SHORT $LN1378@Getffld
$LN1348@Getffld:

; 772  : 			{	// 0000. so far
; 773  : 			for (; _First != _Last && *_First == _E0;
; 774  : 				_Seendigit = true, ++_First)

	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN444@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN444@Getffld
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN445@Getffld
$LN444@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN445@Getffld:
	cmp	eax, -1
	je	SHORT $LN1378@Getffld
	mov	BYTE PTR [esi+12], 0
	jmp	$LL437@Getffld
$LN1378@Getffld:
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], 1
	jmp	$LL437@Getffld

; 778  : 			}
; 779  : 
; 780  : 		for (; _First != _Last
; 781  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 782  : 				_Seendigit = true, ++_First)

$LN586@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN587@Getffld:
	cmp	eax, -1
	je	SHORT $LN1379@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN579@Getffld
$LN1379@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN579@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN582@Getffld:
	cmp	BYTE PTR [ebp+12], 0
	jne	SHORT $LN605@Getffld
	mov	ecx, DWORD PTR [ebp+8]
	cmp	ecx, edi
	je	SHORT $LN1380@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN609@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN609@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN610@Getffld
$LN609@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN610@Getffld:
	cmp	eax, -1
	je	SHORT $LN1380@Getffld
	mov	BYTE PTR [ebp+13], al
	jmp	SHORT $LN602@Getffld
$LN1380@Getffld:
	mov	DWORD PTR [ebp+8], edi
$LN602@Getffld:
	mov	BYTE PTR [ebp+12], 1
$LN605@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1349@Getffld
	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN576@Getffld
$LN1402@Getffld:

; 787  : 				}
; 788  : 
; 789  : 		if (_Seendigit && _First != _Last
; 790  : 			&& (*_First == _MAKLOCCHR(_Elem, 'e', _Cvt)
; 791  : 				|| *_First == _MAKLOCCHR(_Elem, 'E', _Cvt)))

	cmp	BYTE PTR __Seendigit$[esp+108], 0
	je	$LN1408@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	$LN721@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	$LN719@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	$LN725@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	$LN725@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	$LN726@Getffld
$LN1349@Getffld:

; 778  : 			}
; 779  : 
; 780  : 		for (; _First != _Last
; 781  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 782  : 				_Seendigit = true, ++_First)

	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN1402@Getffld
$LN576@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN632@Getffld
	cmp	ecx, edi
	je	SHORT $LN1381@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN636@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN636@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN637@Getffld
$LN636@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN637@Getffld:
	cmp	eax, -1
	je	SHORT $LN1381@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN629@Getffld
$LN1381@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN629@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN632@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN625@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN625@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jl	$LN1402@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN659@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1382@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN663@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN663@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN664@Getffld
$LN663@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN664@Getffld:
	cmp	eax, -1
	je	SHORT $LN1382@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN656@Getffld
$LN1382@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN656@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN659@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN652@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN652@Getffld:
	cmp	BYTE PTR [esi+13], 57			; 00000039H
	jg	$LN1402@Getffld

; 783  : 			if (_Significant < _MAX_SIG_DIG)

	cmp	ebx, 36					; 00000024H
	jge	SHORT $LN19@Getffld

; 784  : 				{	// save a significant fraction digit
; 785  : 				*_Ptr++ = (char)((*_First - _E0) + '0');

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN686@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1383@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN690@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN690@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN691@Getffld
$LN690@Getffld:
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+16]
	call	eax
$LN691@Getffld:
	cmp	eax, -1
	je	SHORT $LN1383@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN683@Getffld
$LN1383@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN683@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN686@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN679@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN679@Getffld:
	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	cl, BYTE PTR [esi+13]
	mov	BYTE PTR [eax], cl
	add	eax, 1
	mov	DWORD PTR __Ptr$[esp+112], eax

; 786  : 				++_Significant;

	add	ebx, 1
$LN19@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	mov	BYTE PTR __Seendigit$[esp+108], 1
	jne	SHORT $LN1350@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	mov	ecx, DWORD PTR [esi+8]
	add	esp, 12					; 0000000cH
	cmp	ecx, edi
	je	SHORT $LN1384@Getffld
$LN1350@Getffld:

; 778  : 			}
; 779  : 
; 780  : 		for (; _First != _Last
; 781  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 782  : 				_Seendigit = true, ++_First)

	mov	edx, DWORD PTR [ecx+32]
	cmp	DWORD PTR [edx], edi
	je	SHORT $LN553@Getffld
	mov	eax, DWORD PTR [ecx+48]
	cmp	DWORD PTR [eax], edi
	jle	SHORT $LN553@Getffld
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN554@Getffld
$LN553@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN554@Getffld:
	cmp	eax, -1
	je	SHORT $LN1384@Getffld
	mov	BYTE PTR [esi+12], 0
	jmp	$LL1369@Getffld
$LN1384@Getffld:
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], 1
	jmp	$LL1369@Getffld

; 787  : 				}
; 788  : 
; 789  : 		if (_Seendigit && _First != _Last
; 790  : 			&& (*_First == _MAKLOCCHR(_Elem, 'e', _Cvt)
; 791  : 				|| *_First == _MAKLOCCHR(_Elem, 'E', _Cvt)))

$LN725@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN726@Getffld:
	cmp	eax, -1
	je	SHORT $LN719@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN718@Getffld
$LN719@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN718@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN721@Getffld:
	cmp	BYTE PTR [ebp+12], 0
	jne	SHORT $LN744@Getffld
	mov	ecx, DWORD PTR [ebp+8]
	cmp	ecx, edi
	je	SHORT $LN742@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN748@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN748@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN749@Getffld
$LN748@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN749@Getffld:
	cmp	eax, -1
	je	SHORT $LN742@Getffld
	mov	BYTE PTR [ebp+13], al
	jmp	SHORT $LN741@Getffld
$LN742@Getffld:
	mov	DWORD PTR [ebp+8], edi
$LN741@Getffld:
	mov	BYTE PTR [ebp+12], 1
$LN744@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1419@Getffld
	cmp	DWORD PTR [ebp+8], edi
	je	$LN1408@Getffld
	cmp	ecx, edi
	je	SHORT $LN715@Getffld
$LN1419@Getffld:
	cmp	DWORD PTR [ebp+8], edi
	jne	$LN1408@Getffld
$LN715@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN771@Getffld
	cmp	ecx, edi
	je	SHORT $LN769@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN775@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN775@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN776@Getffld
$LN775@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN776@Getffld:
	cmp	eax, -1
	je	SHORT $LN769@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN768@Getffld
$LN769@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN768@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN771@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN764@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN764@Getffld:
	mov	al, BYTE PTR [esi+13]
	cmp	al, 101					; 00000065H
	je	SHORT $LN15@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN800@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN798@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN804@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN804@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN805@Getffld
$LN804@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN805@Getffld:
	cmp	eax, -1
	je	SHORT $LN798@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN797@Getffld
$LN798@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN797@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN800@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN793@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN793@Getffld:
	cmp	BYTE PTR [esi+13], 69			; 00000045H
	jne	$LN1408@Getffld
$LN15@Getffld:

; 792  : 			{	// 'e' or 'E', collect exponent
; 793  : 			*_Ptr++ = 'e', ++_First;

	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], 101			; 00000065H
	add	eax, 1
	cmp	DWORD PTR [esi+8], edi
	mov	DWORD PTR __Ptr$[esp+112], eax
	jne	SHORT $LN822@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN822@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1403@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN832@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN832@Getffld
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN833@Getffld
$LN832@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN833@Getffld:
	cmp	eax, -1
	je	SHORT $LN1403@Getffld
	mov	BYTE PTR [esi+12], 0
	jmp	SHORT $LN825@Getffld
$LN1403@Getffld:
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], 1
$LN825@Getffld:

; 794  : 			_Seendigit = false, _Significant = 0;

	xor	ebx, ebx

; 795  : 
; 796  : 			if (_First == _Last)

	cmp	BYTE PTR [esi+12], bl
	mov	BYTE PTR __Seendigit$[esp+108], 0
	jne	SHORT $LN859@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1385@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN863@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN863@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN864@Getffld
$LN863@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN864@Getffld:
	cmp	eax, -1
	je	SHORT $LN1385@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN856@Getffld
$LN1385@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN856@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN859@Getffld:
	cmp	BYTE PTR [ebp+12], 0
	jne	SHORT $LN882@Getffld
	mov	ecx, DWORD PTR [ebp+8]
	cmp	ecx, edi
	je	SHORT $LN1386@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN886@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN886@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN887@Getffld
$LN886@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN887@Getffld:
	cmp	eax, -1
	je	SHORT $LN1386@Getffld
	mov	BYTE PTR [ebp+13], al
	jmp	SHORT $LN879@Getffld
$LN1386@Getffld:
	mov	DWORD PTR [ebp+8], edi
$LN879@Getffld:
	mov	BYTE PTR [ebp+12], 1
$LN882@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1421@Getffld
	cmp	DWORD PTR [ebp+8], edi
	je	$LL9@Getffld
	cmp	ecx, edi
	je	SHORT $LN853@Getffld
$LN1421@Getffld:
	cmp	DWORD PTR [ebp+8], edi
	jne	$LL9@Getffld
$LN853@Getffld:

; 797  : 				;	// 'e' or 'E' is last element
; 798  : 			else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN909@Getffld
	cmp	ecx, edi
	je	SHORT $LN1387@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN913@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN913@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN914@Getffld
$LN913@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN914@Getffld:
	cmp	eax, -1
	je	SHORT $LN1387@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN906@Getffld
$LN1387@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN906@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN909@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN902@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN902@Getffld:
	cmp	BYTE PTR [esi+13], 43			; 0000002bH
	jne	SHORT $LN12@Getffld

; 799  : 				*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], 43			; 0000002bH
	add	eax, 1
	cmp	DWORD PTR [esi+8], edi
	mov	DWORD PTR __Ptr$[esp+112], eax
	jne	SHORT $LN931@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN931@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	$LN1390@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	$LN994@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	$LN994@Getffld
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	$LN995@Getffld
$LN12@Getffld:

; 800  : 			else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN962@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1389@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN966@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN966@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN967@Getffld
$LN966@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN967@Getffld:
	cmp	eax, -1
	je	SHORT $LN1389@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN959@Getffld
$LN1389@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN959@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN962@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN955@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN955@Getffld:
	cmp	BYTE PTR [esi+13], 45			; 0000002dH
	jne	SHORT $LL9@Getffld

; 801  : 				*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], 45			; 0000002dH
	add	eax, 1
	cmp	DWORD PTR [esi+8], edi
	mov	DWORD PTR __Ptr$[esp+112], eax
	jne	SHORT $LN984@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN984@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1390@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN994@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN994@Getffld
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN995@Getffld
$LN994@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN995@Getffld:
	cmp	eax, -1
	je	SHORT $LN1390@Getffld
	mov	BYTE PTR [esi+12], 0
	jmp	SHORT $LL9@Getffld
$LN1390@Getffld:
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], 1
$LL9@Getffld:

; 802  : 			for (; _First != _Last && *_First == _E0; )

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN1023@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1391@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1027@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1027@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1028@Getffld
$LN1027@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1028@Getffld:
	cmp	eax, -1
	je	SHORT $LN1391@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN1020@Getffld
$LN1391@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN1020@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN1023@Getffld:
	cmp	BYTE PTR [ebp+12], 0
	jne	SHORT $LN1046@Getffld
	mov	ecx, DWORD PTR [ebp+8]
	cmp	ecx, edi
	je	SHORT $LN1392@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1050@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1050@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1051@Getffld
$LN1050@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1051@Getffld:
	cmp	eax, -1
	je	SHORT $LN1392@Getffld
	mov	BYTE PTR [ebp+13], al
	jmp	SHORT $LN1043@Getffld
$LN1392@Getffld:
	mov	DWORD PTR [ebp+8], edi
$LN1043@Getffld:
	mov	BYTE PTR [ebp+12], 1
$LN1046@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1351@Getffld
	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN1017@Getffld
$LN1407@Getffld:

; 804  : 			if (_Seendigit)

	cmp	BYTE PTR __Seendigit$[esp+108], 0
	je	SHORT $LL1364@Getffld

; 805  : 				*_Ptr++ = '0';	// put one back

	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	BYTE PTR [eax], 48			; 00000030H
	add	eax, 1
	mov	DWORD PTR __Ptr$[esp+112], eax
$LL1364@Getffld:

; 806  : 			for (; _First != _Last
; 807  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 808  : 				_Seendigit = true, ++_First)

	cmp	BYTE PTR [esi+12], 0
	jne	$LN1156@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	$LN1395@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	$LN1160@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	$LN1160@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	$LN1161@Getffld
$LN1351@Getffld:

; 802  : 			for (; _First != _Last && *_First == _E0; )

	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN1407@Getffld
$LN1017@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN1073@Getffld
	cmp	ecx, edi
	je	SHORT $LN1393@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1077@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1077@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1078@Getffld
$LN1077@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1078@Getffld:
	cmp	eax, -1
	je	SHORT $LN1393@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN1070@Getffld
$LN1393@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN1070@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN1073@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN1066@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN1066@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jne	$LN1407@Getffld

; 803  : 				_Seendigit = true, ++_First;	// strip leading zeros

	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	mov	BYTE PTR __Seendigit$[esp+108], 1
	jne	SHORT $LN1352@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	mov	ecx, DWORD PTR [esi+8]
	add	esp, 12					; 0000000cH
	cmp	ecx, edi
	je	$LN1390@Getffld
$LN1352@Getffld:
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	$LN994@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	$LN994@Getffld
	mov	eax, edx
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	$LN995@Getffld

; 806  : 			for (; _First != _Last
; 807  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 808  : 				_Seendigit = true, ++_First)

$LN1160@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1161@Getffld:
	cmp	eax, -1
	je	SHORT $LN1395@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN1153@Getffld
$LN1395@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN1153@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN1156@Getffld:
	cmp	BYTE PTR [ebp+12], 0
	jne	SHORT $LN1179@Getffld
	mov	ecx, DWORD PTR [ebp+8]
	cmp	ecx, edi
	je	SHORT $LN1396@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1183@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1183@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1184@Getffld
$LN1183@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1184@Getffld:
	cmp	eax, -1
	je	SHORT $LN1396@Getffld
	mov	BYTE PTR [ebp+13], al
	jmp	SHORT $LN1176@Getffld
$LN1396@Getffld:
	mov	DWORD PTR [ebp+8], edi
$LN1176@Getffld:
	mov	BYTE PTR [ebp+12], 1
$LN1179@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	jne	SHORT $LN1353@Getffld
	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN1150@Getffld
$LN1408@Getffld:

; 813  : 					}
; 814  : 			}
; 815  : 
; 816  : 		if (_Bad || !_Seendigit)

	cmp	BYTE PTR __Bad$[esp+112], 0
	jne	SHORT $LN1@Getffld
	cmp	BYTE PTR __Seendigit$[esp+108], 0
	jne	$LN1401@Getffld
$LN1@Getffld:

; 817  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ac$[esp+108]
	jmp	$LN2@Getffld
$LN1353@Getffld:

; 806  : 			for (; _First != _Last
; 807  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 808  : 				_Seendigit = true, ++_First)

	cmp	DWORD PTR [ebp+8], edi
	jne	SHORT $LN1408@Getffld
$LN1150@Getffld:
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN1206@Getffld
	cmp	ecx, edi
	je	SHORT $LN1397@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1210@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1210@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1211@Getffld
$LN1210@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1211@Getffld:
	cmp	eax, -1
	je	SHORT $LN1397@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN1203@Getffld
$LN1397@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN1203@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN1206@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN1199@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN1199@Getffld:
	cmp	BYTE PTR [esi+13], 48			; 00000030H
	jl	SHORT $LN1408@Getffld
	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN1233@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1398@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1237@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1237@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1238@Getffld
$LN1237@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
$LN1238@Getffld:
	cmp	eax, -1
	je	SHORT $LN1398@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN1230@Getffld
$LN1398@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN1230@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN1233@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN1226@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN1226@Getffld:
	cmp	BYTE PTR [esi+13], 57			; 00000039H
	jg	$LN1408@Getffld

; 809  : 				if (_Significant < _MAX_EXP_DIG)

	cmp	ebx, 8
	jge	SHORT $LN5@Getffld

; 810  : 					{	// save a significant exponent digit
; 811  : 					*_Ptr++ = (char)((*_First - _E0) + '0');

	cmp	BYTE PTR [esi+12], 0
	jne	SHORT $LN1260@Getffld
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	je	SHORT $LN1399@Getffld
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], edi
	je	SHORT $LN1264@Getffld
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], edi
	jle	SHORT $LN1264@Getffld
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1265@Getffld
$LN1264@Getffld:
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+16]
	call	eax
$LN1265@Getffld:
	cmp	eax, -1
	je	SHORT $LN1399@Getffld
	mov	BYTE PTR [esi+13], al
	jmp	SHORT $LN1257@Getffld
$LN1399@Getffld:
	mov	DWORD PTR [esi+8], edi
$LN1257@Getffld:
	mov	BYTE PTR [esi+12], 1
$LN1260@Getffld:
	cmp	DWORD PTR [esi+8], edi
	jne	SHORT $LN1253@Getffld
	push	2112					; 00000840H
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FE@NIBPPHHA@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAd?$AAe?$AAr?$AAe?$AAf@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN1253@Getffld:
	mov	eax, DWORD PTR __Ptr$[esp+112]
	mov	cl, BYTE PTR [esi+13]
	mov	BYTE PTR [eax], cl
	add	eax, 1
	mov	DWORD PTR __Ptr$[esp+112], eax

; 812  : 					++_Significant;

	add	ebx, 1
$LN5@Getffld:
	mov	ecx, DWORD PTR [esi+8]
	cmp	ecx, edi
	mov	BYTE PTR __Seendigit$[esp+108], 1
	jne	SHORT $LN1354@Getffld
	push	2123					; 0000084bH
	push	OFFSET ??_C@_1HO@DIMJPEED@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1FC@CLFDMKBM@?$AAi?$AAs?$AAt?$AAr?$AAe?$AAa?$AAm?$AAb?$AAu?$AAf?$AA_?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAi?$AAn?$AAc?$AAr?$AAe@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	mov	ecx, DWORD PTR [esi+8]
	add	esp, 12					; 0000000cH
	cmp	ecx, edi
	je	SHORT $LN1400@Getffld
$LN1354@Getffld:

; 806  : 			for (; _First != _Last
; 807  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 808  : 				_Seendigit = true, ++_First)

	mov	edx, DWORD PTR [ecx+32]
	cmp	DWORD PTR [edx], edi
	je	SHORT $LN1127@Getffld
	mov	eax, DWORD PTR [ecx+48]
	cmp	DWORD PTR [eax], edi
	jle	SHORT $LN1127@Getffld
	add	DWORD PTR [eax], -1
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN1128@Getffld
$LN1127@Getffld:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	call	edx
$LN1128@Getffld:
	cmp	eax, -1
	je	SHORT $LN1400@Getffld
	mov	BYTE PTR [esi+12], 0
	jmp	$LL1364@Getffld
$LN1400@Getffld:
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], 1
	jmp	$LL1364@Getffld
$LN1401@Getffld:

; 817  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ptr$[esp+112]
$LN2@Getffld:

; 818  : 		*_Ptr = '\0';
; 819  : 		return (_Pten);

	cmp	DWORD PTR __Grouping$[esp+140], 16	; 00000010H
	mov	BYTE PTR [eax], 0
	mov	DWORD PTR __$EHRec$[esp+120], -1
	jb	SHORT $LN1297@Getffld
	mov	eax, DWORD PTR __Grouping$[esp+120]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN1297@Getffld:
	lea	ecx, DWORD PTR __Grouping$[esp+112]
	mov	DWORD PTR __Grouping$[esp+140], 15	; 0000000fH
	mov	DWORD PTR __Grouping$[esp+136], edi
	mov	BYTE PTR __Grouping$[esp+120], 0
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all

; 820  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+112]
	mov	eax, DWORD PTR __Pten$[esp+112]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 96					; 00000060H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z$0:
	lea	ecx, DWORD PTR __Grouping$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z$1:
	lea	ecx, DWORD PTR __Groups$23094[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z:
	mov	eax, OFFSET __ehfuncinfo$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
PUBLIC	??_C@_1HM@HILPCDJB@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ ; `string'
PUBLIC	??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ; std::operator>><char,std::char_traits<char> >
;	COMDAT ??_C@_1HM@HILPCDJB@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
CONST	SEGMENT
??_C@_1HM@HILPCDJB@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ DB 'C'
	DB	00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H
	DB	'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l'
	DB	00H, 'e', 00H, 's', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H
	DB	'r', 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' '
	DB	00H, 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H
	DB	' ', 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o'
	DB	00H, ' ', 00H, '8', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H
	DB	'i', 00H, 'n', 00H, 'c', 00H, 'l', 00H, 'u', 00H, 'd', 00H, 'e'
	DB	00H, '\', 00H, 'i', 00H, 's', 00H, 't', 00H, 'r', 00H, 'e', 00H
	DB	'a', 00H, 'm', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__catchsym$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$17 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$0
__tryblocktable$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z DD 02H
	DD	02H
	DD	09H
	DD	01H
	DD	FLAT:__catchsym$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$17
__ehfuncinfo$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z DD 019930522H
	DD	0aH
	DD	FLAT:__unwindtable$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$3
	DD	00H
	DD	00H
	DD	00H
	DD	00H
	DD	03H
	DD	00H
	DD	04H
	DD	00H
	DD	03H
	DD	00H
	DD	06H
	DD	00H
	DD	03H
	DD	00H
	DD	08H
	DD	00H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
xdata$x	ENDS
;	COMDAT ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
_TEXT	SEGMENT
__Ok$ = -40						; size = 8
__Str0$ = -32						; size = 4
__Ctype_fac$23875 = -28					; size = 4
$T42743 = -24						; size = 4
__State$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Istr$ = 8						; size = 4
__Str$ = 12						; size = 4
??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z PROC ; std::operator>><char,std::char_traits<char> >, COMDAT

; 932  : 	{	// extract NTBS

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@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

; 933  : 	_DEBUG_POINTER(_Str);

	mov	edi, DWORD PTR __Str$[ebp]
	test	edi, edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	jne	SHORT $LN23@operator@11
	push	933					; 000003a5H
	push	OFFSET ??_C@_1HM@HILPCDJB@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	push	OFFSET ??_C@_1CK@EOPGIILJ@?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAn?$AAu?$AAl?$AAl?$AA?5?$AAp?$AAo?$AAi?$AAn?$AAt?$AAe?$AAr?$AA?$AA@
	call	?_Debug_message@std@@YAXPB_W0I@Z	; std::_Debug_message
	add	esp, 12					; 0000000cH
$LN23@operator@11:

; 934  : 	typedef basic_istream<_Elem, _Traits> _Myis;
; 935  : 	typedef ctype<_Elem> _Ctype;
; 936  : 	ios_base::iostate _State = ios_base::goodbit;
; 937  : 	_Elem *_Str0 = _Str;
; 938  : 	const typename _Myis::sentry _Ok(_Istr);

	mov	esi, DWORD PTR __Istr$[ebp]
	xor	ebx, ebx
	push	ebx
	push	esi
	lea	ecx, DWORD PTR __Ok$[ebp]
	mov	DWORD PTR __State$[ebp], ebx
	mov	DWORD PTR __Str0$[ebp], edi
	call	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry

; 939  : 
; 940  : 	if (_Ok)

	cmp	BYTE PTR __Ok$[ebp+4], bl
	mov	DWORD PTR __$EHRec$[ebp+12], ebx
	je	SHORT $LN21@operator@11

; 941  : 		{	// state okay, extract characters
; 942  : 		const _Ctype& _Ctype_fac = _USE(_Istr.getloc(), _Ctype);

	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR $T42743[ebp]
	push	eax
	add	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	BYTE PTR __$EHRec$[ebp+12], 1
	call	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
	add	esp, 4
	lea	ecx, DWORD PTR $T42743[ebp]
	mov	DWORD PTR __Ctype_fac$23875[ebp], eax
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 943  : 
; 944  : 		_TRY_IO_BEGIN
; 945  : 		streamsize _Count = 0 < _Istr.width() ? _Istr.width() : INT_MAX;

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, DWORD PTR [eax+esi+24]
	add	eax, esi
	test	ecx, ecx
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	jg	SHORT $LN14@operator@11
	mov	ecx, 2147483647				; 7fffffffH
$LN14@operator@11:
	mov	ebx, ecx

; 946  : 		typename _Myis::int_type _Meta = _Istr.rdbuf()->sgetc();

	mov	ecx, DWORD PTR [eax+40]
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN36@operator@11
	mov	edx, DWORD PTR [ecx+48]
	cmp	DWORD PTR [edx], 0
	jle	SHORT $LN36@operator@11
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LL129@operator@11
$LN36@operator@11:
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+16]
	call	edx
	npad	1
$LL129@operator@11:

; 947  : 		_Elem _Ch;
; 948  : 		for (; 0 < --_Count; _Meta = _Istr.rdbuf()->snextc())

	sub	ebx, 1
	test	ebx, ebx
	jle	SHORT $LN2@operator@11

; 949  : 			if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	cmp	eax, -1
	jne	SHORT $LN5@operator@11

; 950  : 				{	// end of file, quit
; 951  : 				_State |= ios_base::eofbit;

	or	DWORD PTR __State$[ebp], 1
$LN2@operator@11:

; 960  : 		_CATCH_IO_(_Istr)

	mov	DWORD PTR __$EHRec$[ebp+12], 0
$LN136@operator@11:
	mov	ebx, DWORD PTR __State$[ebp]
$LN21@operator@11:

; 961  : 		}
; 962  : 
; 963  : 	*_Str = _Elem();	// add terminating null character

	mov	BYTE PTR [edi], 0

; 964  : 	_Istr.width(0);

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

; 965  : 	_Istr.setstate(_Str == _Str0 ? _State | ios_base::failbit : _State);

	cmp	edi, DWORD PTR __Str0$[ebp]
	mov	DWORD PTR [eax+24], 0
	jne	SHORT $LN15@operator@11
	or	ebx, 2
$LN15@operator@11:
	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	mov	eax, ebx
	add	ecx, esi
	test	eax, eax
	je	SHORT $LN111@operator@11
	or	eax, DWORD PTR [ecx+8]
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN113@operator@11
	or	eax, 4
$LN113@operator@11:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN111@operator@11:

; 966  : 	return (_Istr);

	mov	eax, DWORD PTR __Ok$[ebp]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx+eax+40]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $LN125@operator@11
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$LN125@operator@11:

; 967  : 	}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN5@operator@11:

; 952  : 				break;
; 953  : 				}
; 954  : 			else if (_Ctype_fac.is(_Ctype::space,
; 955  : 				_Ch = _Traits::to_char_type(_Meta))
; 956  : 					|| _Ch == _Elem())

	mov	edx, DWORD PTR __Ctype_fac$23875[ebp]
	mov	edx, DWORD PTR [edx+16]
	movzx	ecx, al
	test	BYTE PTR [edx+ecx*2], 72		; 00000048H
	jne	$LN2@operator@11
	test	al, al
	je	$LN2@operator@11

; 957  : 				break;	// whitespace or nul, quit
; 958  : 			else
; 959  : 				*_Str++ = _Traits::to_char_type(_Meta);	// add it to string

	mov	BYTE PTR [edi], al
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [ecx+esi+40]
	add	edi, 1
	mov	DWORD PTR __Str$[ebp], edi
	call	?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::snextc
	jmp	$LL129@operator@11
__catch$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$0:

; 960  : 		_CATCH_IO_(_Istr)

	mov	ecx, DWORD PTR __Istr$[ebp]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	add	eax, ecx
	mov	ecx, DWORD PTR [eax+8]
	or	ecx, 4
	cmp	DWORD PTR [eax+40], 0
	jne	SHORT $LN65@operator@11
	or	ecx, 4
$LN65@operator@11:
	and	ecx, 23					; 00000017H
	test	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+8], ecx
	jne	SHORT $LN74@operator@11
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	mov	eax, $LN22@operator@11
	ret	0
$LN22@operator@11:
	mov	edi, DWORD PTR __Str$[ebp]
	mov	esi, DWORD PTR __Istr$[ebp]
	jmp	$LN136@operator@11
$LN74@operator@11:
	push	0
	push	0
	call	__CxxThrowException@8
$LN137@operator@11:
$LN135@operator@11:
	int	3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$2:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z$3:
	lea	ecx, DWORD PTR $T42743[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z:
	mov	eax, OFFSET __ehfuncinfo$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ENDP ; std::operator>><char,std::char_traits<char> >
PUBLIC	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\streambuf
xdata$x	SEGMENT
__catchsym$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$22 DD 040H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$0
__tryblocktable$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z DD 02H
	DD	02H
	DD	09H
	DD	01H
	DD	FLAT:__catchsym$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$22
__ehfuncinfo$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z DD 019930522H
	DD	0aH
	DD	FLAT:__unwindtable$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
	DD	01H
	DD	FLAT:__tryblocktable$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$3
	DD	00H
	DD	00H
	DD	00H
	DD	00H
	DD	03H
	DD	00H
	DD	04H
	DD	00H
	DD	03H
	DD	00H
	DD	06H
	DD	00H
	DD	03H
	DD	00H
	DD	08H
	DD	00H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\istream
xdata$x	ENDS
;	COMDAT ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
_TEXT	SEGMENT
$T43066 = -60						; size = 16
__Ok$ = -44						; size = 8
$T43065 = -36						; size = 4
$T43064 = -36						; size = 4
$T43061 = -32						; size = 4
__Tmp$21116 = -28					; size = 4
_this$ = -24						; size = 4
__State$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Val$ = 8						; size = 4
??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z PROC ; std::basic_istream<char,std::char_traits<char> >::operator>>, COMDAT
; _this$ = ecx

; 248  : 		{	// extract an int

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 48					; 00000030H
	push	ebx
	push	esi
	push	edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	esi, ecx

; 249  : 		ios_base::iostate _State = ios_base::goodbit;

	xor	ebx, ebx

; 250  : 		const sentry _Ok(*this);

	push	ebx
	push	esi
	lea	ecx, DWORD PTR __Ok$[ebp]
	mov	DWORD PTR _this$[ebp], esi
	mov	DWORD PTR __State$[ebp], ebx
	call	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry

; 251  : 
; 252  : 		if (_Ok)

	cmp	BYTE PTR __Ok$[ebp+4], bl
	mov	DWORD PTR __$EHRec$[ebp+12], ebx
	je	$LN111@operator@12

; 253  : 			{	// state okay, use facet to extract
; 254  : 			long _Tmp = 0;
; 255  : 			const _Nget& _Nget_fac = _USE(ios_base::getloc(), _Nget);

	mov	ecx, DWORD PTR [esi]
	mov	DWORD PTR __Tmp$21116[ebp], ebx
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR $T43061[ebp]
	push	eax
	add	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	BYTE PTR __$EHRec$[ebp+12], 1
	call	??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
	add	esp, 4
	lea	ecx, DWORD PTR $T43061[ebp]
	mov	edi, eax
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 256  : 
; 257  : 			_TRY_IO_BEGIN
; 258  : 			_Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0),
; 259  : 				*this, _State, _Tmp);

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	add	eax, esi
	lea	ecx, DWORD PTR __Tmp$21116[ebp]
	push	ecx
	lea	edx, DWORD PTR __State$[ebp]
	push	edx
	push	eax
	sub	esp, 16					; 00000010H
	mov	eax, esp
	mov	DWORD PTR [eax], ebx
	mov	DWORD PTR [eax+4], ebx
	mov	DWORD PTR [eax+8], ebx
	mov	BYTE PTR [eax+12], 1
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [ecx+esi+40]
	mov	DWORD PTR $T43064[ebp], esp
	sub	esp, 16					; 00000010H
	mov	eax, esp
	cmp	ecx, ebx
	sete	dl
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax], ebx
	mov	DWORD PTR [eax+4], ebx
	mov	BYTE PTR [eax+12], dl
	lea	eax, DWORD PTR $T43066[ebp]
	mov	DWORD PTR $T43065[ebp], esp
	push	eax
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	call	?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
	lea	ecx, DWORD PTR $T43066[ebp]
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 260  : 			_CATCH_IO_END

	mov	DWORD PTR __$EHRec$[ebp+12], ebx
	jmp	SHORT $LN18@operator@12
__catch$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	add	eax, ecx
	mov	ecx, DWORD PTR [eax+8]
	xor	ebx, ebx
	or	ecx, 4
	cmp	DWORD PTR [eax+40], ebx
	jne	SHORT $LN48@operator@12
	or	ecx, 4
$LN48@operator@12:
	and	ecx, 23					; 00000017H
	test	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+8], ecx
	jne	SHORT $LN57@operator@12
	mov	DWORD PTR __$EHRec$[ebp+12], ebx
	mov	eax, $LN109@operator@12
	ret	0
$LN109@operator@12:
	mov	esi, DWORD PTR _this$[ebp]
	xor	ebx, ebx
$LN18@operator@12:

; 261  : 
; 262  : 			if (_State & ios_base::failbit
; 263  : 				|| _Tmp < INT_MIN || INT_MAX < _Tmp)

	mov	edx, DWORD PTR __State$[ebp]
	test	dl, 2
	jne	SHORT $LN2@operator@12
	mov	eax, DWORD PTR __Tmp$21116[ebp]
	lea	ecx, DWORD PTR [eax-2147483648]
	cmp	ecx, -1
	ja	SHORT $LN2@operator@12

; 266  : 				_Val = _Tmp;

	mov	ecx, DWORD PTR __Val$[ebp]
	mov	DWORD PTR [ecx], eax
	jmp	SHORT $LN1@operator@12
$LN2@operator@12:

; 264  : 				_State |= ios_base::failbit;

	or	edx, 2
	mov	DWORD PTR __State$[ebp], edx

; 265  : 			else

	jmp	SHORT $LN1@operator@12

; 260  : 			_CATCH_IO_END

$LN57@operator@12:
	push	ebx
	push	ebx
	call	__CxxThrowException@8
$LN114@operator@12:
$LN111@operator@12:
	mov	edx, DWORD PTR __State$[ebp]
$LN1@operator@12:

; 267  : 			}
; 268  : 
; 269  : 		_Myios::setstate(_State);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	add	ecx, esi
	cmp	edx, ebx
	je	SHORT $LN92@operator@12
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	cmp	DWORD PTR [ecx+40], ebx
	jne	SHORT $LN94@operator@12
	or	eax, 4
$LN94@operator@12:
	push	ebx
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN92@operator@12:

; 270  : 		return (*this);

	mov	eax, DWORD PTR __Ok$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $LN106@operator@12
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$LN106@operator@12:

; 271  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$LN113@operator@12:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$2:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z$3:
	lea	ecx, DWORD PTR $T43061[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z:
	mov	eax, OFFSET __ehfuncinfo$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::operator>>
PUBLIC	??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_ifstream<char,std::char_traits<char> >::`vbtable'
PUBLIC	??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >
;	COMDAT ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@
; File c:\program files\microsoft visual studio 8\vc\include\ios
CONST	SEGMENT
??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ DD 00H ; std::basic_ifstream<char,std::char_traits<char> >::`vbtable'
	DD	058H
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z$0
	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:__unwindfunclet$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z$2
__ehfuncinfo$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\fstream
xdata$x	ENDS
;	COMDAT ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
_TEXT	SEGMENT
$T43355 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Filename$ = 8						; size = 4
__Mode$ = 12						; size = 4
__Prot$ = 16						; size = 4
_$initVBases$ = 20					; size = 4
??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z PROC ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 582  : 		{	// construct with named file and specified mode

	push	-1
	push	__ehhandler$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebx
	xor	ebx, ebx
	cmp	DWORD PTR _$initVBases$[esp+20], ebx
	push	ebp
	mov	ebp, ecx
	mov	DWORD PTR _this$[esp+28], ebp
	mov	DWORD PTR $T43355[esp+28], ebx
	je	SHORT $LN2@basic_ifst
	mov	DWORD PTR [ebp], OFFSET ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@
	mov	DWORD PTR [ebp+88], OFFSET ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+36], ebx
	mov	DWORD PTR $T43355[esp+28], 1
$LN2@basic_ifst:
	mov	eax, DWORD PTR [ebp]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+ebp], OFFSET ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	edx, DWORD PTR [ebp]
	push	esi
	mov	DWORD PTR [ebp+4], ebx
	mov	esi, DWORD PTR [edx+4]
	add	esi, ebp
	push	edi
	mov	ecx, esi
	call	?_Init@ios_base@std@@IAEXXZ		; std::ios_base::_Init
	lea	edi, DWORD PTR [ebp+8]
	push	32					; 00000020H
	mov	ecx, esi
	mov	DWORD PTR [esi+40], edi
	mov	DWORD PTR [esi+44], ebx
	call	?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ; std::basic_ios<char,std::char_traits<char> >::widen
	cmp	DWORD PTR [esi+40], ebx
	mov	BYTE PTR [esi+48], al
	jne	SHORT $LN32@basic_ifst
	mov	eax, DWORD PTR [esi+8]
	or	eax, 4
	or	eax, 4
	push	ebx
	push	eax
	mov	ecx, esi
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN32@basic_ifst:
	mov	DWORD PTR [esi+4], ebx
	mov	eax, DWORD PTR [ebp]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+ebp], OFFSET ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+44], 2
	call	??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >
	mov	ecx, edi
	mov	DWORD PTR [edi], OFFSET ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
	mov	BYTE PTR [edi+72], bl
	mov	BYTE PTR [edi+65], bl
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	mov	DWORD PTR [edi+76], ebx
	mov	edx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
	mov	DWORD PTR [edi+68], edx
	mov	DWORD PTR [edi+60], ebx

; 583  : 		if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0)

	mov	eax, DWORD PTR __Prot$[esp+32]
	mov	ecx, DWORD PTR __Mode$[esp+32]
	mov	edx, DWORD PTR __Filename$[esp+32]
	push	eax
	or	ecx, 1
	push	ecx
	push	edx
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[esp+56], 3
	call	?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::open
	test	eax, eax
	pop	edi
	pop	esi
	jne	SHORT $LN53@basic_ifst

; 584  : 			_Myios::setstate(ios_base::failbit);

	mov	eax, DWORD PTR [ebp]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+ebp+8]
	add	ecx, ebp
	or	eax, 2
	cmp	DWORD PTR [ecx+40], ebx
	jne	SHORT $LN51@basic_ifst
	or	eax, 4
$LN51@basic_ifst:
	push	ebx
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN53@basic_ifst:

; 585  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z$0:
	mov	eax, DWORD PTR $T43355[ebp]
	and	eax, 1
	je	$LN6@basic_ifst
	and	DWORD PTR $T43355[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 88					; 00000058H
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
$LN6@basic_ifst:
	ret	0
__unwindfunclet$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 8
	jmp	??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
__unwindfunclet$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z$2:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 8
	jmp	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
__ehhandler$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z:
	mov	eax, OFFSET __ehfuncinfo$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ENDP ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >
PUBLIC	??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ ; `string'
EXTRN	__Stoulx:PROC
;	COMDAT ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
; File c:\program files\microsoft visual studio 8\vc\include\xstring
CONST	SEGMENT
??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@ DB 'C'
	DB	00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H
	DB	'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l'
	DB	00H, 'e', 00H, 's', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H
	DB	'r', 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' '
	DB	00H, 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H
	DB	' ', 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o'
	DB	00H, ' ', 00H, '8', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H
	DB	'i', 00H, 'n', 00H, 'c', 00H, 'l', 00H, 'u', 00H, 'd', 00H, 'e'
	DB	00H, '\', 00H, 'x', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'n', 00H
	DB	'u', 00H, 'm', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z DD 019930522H
	DD	09H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$9
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$4
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$5
	DD	05H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$6
	DD	05H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$7
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$8
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
_TEXT	SEGMENT
$T43507 = -88						; size = 4
$T43503 = -88						; size = 4
__Ep$22639 = -84					; size = 4
$T43502 = -84						; size = 4
$T43518 = -80						; size = 4
__Str$22573 = -76					; size = 32
__Ac$22638 = -44					; size = 32
$T43506 = -44						; size = 32
$T43505 = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
__Errno$22640 = 44					; size = 4
$T43504 = 44						; size = 4
__Ans$ = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 342  : 		{	// get bool from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 76					; 0000004cH
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T43518[esp+104], ebx

; 343  : 		_DEBUG_RANGE(_First, _Last);

	push	343					; 00000157H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+124]
	mov	DWORD PTR $T43502[esp+128], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+140], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+132]
	mov	dl, BYTE PTR __Last$[esp+136]
	mov	al, BYTE PTR __Last$[esp+137]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+140]
	mov	DWORD PTR $T43503[esp+144], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+156], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+148]
	mov	al, BYTE PTR __First$[esp+152]
	mov	cl, BYTE PTR __First$[esp+153]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+152], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 344  : 		int _Ans = -1;	// negative answer indicates failure
; 345  : 
; 346  : 		if (_Iosbase.flags() & ios_base::boolalpha)

	mov	esi, DWORD PTR __Iosbase$[esp+140]
	mov	eax, DWORD PTR [esi+16]
	add	esp, 40					; 00000028H
	or	ebp, -1
	test	eax, 16384				; 00004000H
	je	$LN6@do_get

; 347  : 			{	// get false name or true name
; 348  : 			typedef typename _Mystr::size_type _Mystrsize;
; 349  : 			const _Mypunct& _Punct_fac = _USE(_Iosbase.getloc(), _Mypunct);

	lea	edx, DWORD PTR $T43504[esp+100]
	push	edx
	mov	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	BYTE PTR __$EHRec$[esp+116], 4
	call	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
	add	esp, 4
	lea	ecx, DWORD PTR $T43504[esp+100]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+112], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 350  : 			_Mystr _Str((_Mystrsize)1, (char_type)0);

	push	ebx
	push	1
	lea	ecx, DWORD PTR __Str$22573[esp+112]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 351  : 			_Str += _Punct_fac.falsename();

	lea	eax, DWORD PTR $T43505[esp+104]
	push	eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+116], 5
	call	?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::falsename
	push	ebp
	push	ebx
	push	eax
	lea	ecx, DWORD PTR __Str$22573[esp+116]
	mov	BYTE PTR __$EHRec$[esp+124], 6
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
	mov	edi, 16					; 00000010H
	cmp	DWORD PTR $T43505[esp+132], edi
	mov	BYTE PTR __$EHRec$[esp+112], 5
	jb	SHORT $LN59@do_get
	mov	ecx, DWORD PTR $T43505[esp+112]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN59@do_get:
	mov	ebp, 15					; 0000000fH
	lea	ecx, DWORD PTR $T43505[esp+104]
	mov	DWORD PTR $T43505[esp+132], ebp
	mov	DWORD PTR $T43505[esp+128], ebx
	mov	BYTE PTR $T43505[esp+112], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all

; 352  : 			_Str += (char_type)0;

	push	ebx
	push	1
	lea	ecx, DWORD PTR __Str$22573[esp+112]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 353  : 			_Str += _Punct_fac.truename();	// construct "\0false\0true"

	lea	edx, DWORD PTR $T43506[esp+104]
	push	edx
	mov	ecx, esi
	call	?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::truename
	push	-1
	push	ebx
	push	eax
	lea	ecx, DWORD PTR __Str$22573[esp+116]
	mov	BYTE PTR __$EHRec$[esp+124], 7
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
	cmp	DWORD PTR $T43506[esp+132], edi
	mov	BYTE PTR __$EHRec$[esp+112], 5
	jb	SHORT $LN100@do_get
	mov	eax, DWORD PTR $T43506[esp+112]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN100@do_get:
	lea	ecx, DWORD PTR $T43506[esp+104]
	mov	DWORD PTR $T43506[esp+132], ebp
	mov	DWORD PTR $T43506[esp+128], ebx
	mov	BYTE PTR $T43506[esp+112], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all

; 354  : 			_Ans = _Getloctxt(_First, _Last, (size_t)2, _Str.c_str());

	cmp	DWORD PTR __Str$22573[esp+132], edi
	mov	eax, DWORD PTR __Str$22573[esp+112]
	jae	SHORT $LN123@do_get
	lea	eax, DWORD PTR __Str$22573[esp+112]
$LN123@do_get:
	push	eax
	push	2
	lea	ecx, DWORD PTR __Last$[esp+108]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+112]
	push	edx
	call	??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >
	add	esp, 16					; 00000010H

; 355  : 			}

	cmp	DWORD PTR __Str$22573[esp+132], edi
	mov	DWORD PTR __Ans$[esp+100], eax
	mov	BYTE PTR __$EHRec$[esp+112], 2
	jb	SHORT $LN141@do_get
	mov	eax, DWORD PTR __Str$22573[esp+112]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN141@do_get:
	lea	ecx, DWORD PTR __Str$22573[esp+104]
	mov	DWORD PTR __Str$22573[esp+132], ebp
	mov	DWORD PTR __Str$22573[esp+128], ebx
	mov	BYTE PTR __Str$22573[esp+112], bl
	call	?_Orphan_all@_Container_base@std@@QBEXXZ ; std::_Container_base::_Orphan_all

; 356  : 		else

	mov	ebp, DWORD PTR __Ans$[esp+100]
	jmp	$LN4@do_get
$LN6@do_get:

; 357  : 			{	// get zero or nonzero integer
; 358  : 			char _Ac[_MAX_INT_DIG], *_Ep;
; 359  : 			int _Errno = 0;
; 360  : 			const unsigned long _Ulo = ::_Stoulx(_Ac, &_Ep,
; 361  : 				_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 362  : 					_Iosbase.getloc()), &_Errno);

	lea	ecx, DWORD PTR $T43507[esp+104]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __Errno$22640[esp+104], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	lea	edx, DWORD PTR __Errno$22640[esp+100]
	push	edx
	push	eax
	push	esi
	lea	eax, DWORD PTR __Last$[esp+112]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+116]
	push	ecx
	lea	edx, DWORD PTR __Ac$22638[esp+124]
	push	edx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+140], 8
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	add	esp, 24					; 00000018H
	push	eax
	lea	eax, DWORD PTR __Ep$22639[esp+112]
	push	eax
	lea	ecx, DWORD PTR __Ac$22638[esp+116]
	push	ecx
	call	__Stoulx
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T43507[esp+104]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+112], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 363  : 			if (_Ep != _Ac && _Errno == 0 && _Ulo <= 1)

	lea	edx, DWORD PTR __Ac$22638[esp+104]
	cmp	DWORD PTR __Ep$22639[esp+104], edx
	je	SHORT $LN4@do_get
	cmp	DWORD PTR __Errno$22640[esp+100], ebx
	jne	SHORT $LN4@do_get
	cmp	esi, 1
	ja	SHORT $LN4@do_get

; 364  : 				_Ans = _Ulo;

	mov	ebp, esi
$LN4@do_get:

; 365  : 			}
; 366  : 
; 367  : 		if (_First == _Last)

	cmp	BYTE PTR __First$[esp+112], bl
	mov	edi, DWORD PTR __First$[esp+108]
	jne	SHORT $LN174@do_get
	cmp	edi, ebx
	je	SHORT $LN172@do_get
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN178@do_get
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN178@do_get
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN179@do_get
$LN178@do_get:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN179@do_get:
	cmp	eax, -1
	je	SHORT $LN172@do_get
	mov	BYTE PTR __First$[esp+113], al
	jmp	SHORT $LN171@do_get
$LN172@do_get:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+108], edi
$LN171@do_get:
	mov	BYTE PTR __First$[esp+112], 1
$LN174@do_get:
	cmp	BYTE PTR __Last$[esp+112], bl
	mov	esi, DWORD PTR __Last$[esp+108]
	jne	SHORT $LN197@do_get
	cmp	esi, ebx
	je	SHORT $LN195@do_get
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN201@do_get
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN201@do_get
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN202@do_get
$LN201@do_get:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN202@do_get:
	cmp	eax, -1
	je	SHORT $LN195@do_get
	mov	BYTE PTR __Last$[esp+113], al
	jmp	SHORT $LN194@do_get
$LN195@do_get:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+108], esi
$LN194@do_get:
	mov	BYTE PTR __Last$[esp+112], 1
$LN197@do_get:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+100]
	jne	SHORT $LN237@do_get
	cmp	esi, ebx
	je	SHORT $LN238@do_get
	jmp	SHORT $LN3@do_get
$LN237@do_get:
	cmp	esi, ebx
	je	SHORT $LN3@do_get
$LN238@do_get:

; 368  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN3@do_get:

; 369  : 		if (_Ans < 0)

	cmp	ebp, ebx
	jge	SHORT $LN245@do_get

; 370  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2

; 371  : 		else

	jmp	SHORT $LN1@do_get
$LN245@do_get:

; 372  : 			_Val = _Ans != 0;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+100]
	setne	cl
	mov	BYTE PTR [edx], cl
$LN1@do_get:

; 373  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+100]
	lea	eax, DWORD PTR __First$[esp+100]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+112]
	mov	dl, BYTE PTR __First$[esp+113]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+100]
	mov	DWORD PTR $T43518[esp+104], 1
	mov	BYTE PTR __$EHRec$[esp+112], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+100]
	mov	BYTE PTR __$EHRec$[esp+112], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 374  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+104]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 88					; 00000058H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$2:
	mov	ecx, DWORD PTR $T43502[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$4:
	lea	ecx, DWORD PTR $T43504[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$5:
	lea	ecx, DWORD PTR __Str$22573[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$6:
	lea	ecx, DWORD PTR $T43505[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$7:
	lea	ecx, DWORD PTR $T43506[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$8:
	lea	ecx, DWORD PTR $T43507[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z$9:
	mov	eax, DWORD PTR $T43518[ebp]
	and	eax, 1
	je	$LN19@do_get
	and	DWORD PTR $T43518[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN19@do_get:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
_TEXT	SEGMENT
__Errno$ = -64						; size = 4
__Ep$ = -60						; size = 4
$T44324 = -56						; size = 4
$T44311 = -52						; size = 4
$T44312 = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
__Ptr$ = 44						; size = 4
$T44313 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 379  : 		{	// get unsigned short from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 52					; 00000034H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T44324[esp+80], ebx

; 380  : 		_DEBUG_RANGE(_First, _Last);

	push	380					; 0000017cH
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+100]
	mov	DWORD PTR $T44311[esp+104], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+108]
	mov	dl, BYTE PTR __Last$[esp+112]
	mov	al, BYTE PTR __Last$[esp+113]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+116]
	mov	DWORD PTR $T44312[esp+120], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+124]
	mov	al, BYTE PTR __First$[esp+128]
	mov	cl, BYTE PTR __First$[esp+129]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+128], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 381  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 382  : 		int _Errno = 0;
; 383  : 		int _Base = _Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 384  : 			_Iosbase.getloc());	// gather field into _Ac

	mov	esi, DWORD PTR __Iosbase$[esp+116]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T44313[esp+76]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __Errno$[esp+84], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	push	eax
	push	esi
	lea	eax, DWORD PTR __Last$[esp+84]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+112], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	add	esp, 24					; 00000018H
	lea	ecx, DWORD PTR $T44313[esp+76]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+88], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 385  : 		char *_Ptr = _Ac[0] == '-' ? _Ac + 1 : _Ac;	// point past any sign

	cmp	BYTE PTR __Ac$[esp+80], 45		; 0000002dH
	jne	SHORT $LN7@do_get@2
	lea	eax, DWORD PTR __Ac$[esp+81]
	mov	DWORD PTR __Ptr$[esp+76], eax
	jmp	SHORT $LN8@do_get@2
$LN7@do_get@2:
	lea	ecx, DWORD PTR __Ac$[esp+80]
	mov	DWORD PTR __Ptr$[esp+76], ecx
$LN8@do_get@2:

; 386  : 		const unsigned long _Ans =
; 387  : 			::_Stoulx(_Ptr, &_Ep, _Base, &_Errno);	// convert

	mov	ecx, DWORD PTR __Ptr$[esp+76]
	lea	edx, DWORD PTR __Errno$[esp+80]
	push	edx
	push	esi
	lea	eax, DWORD PTR __Ep$[esp+88]
	push	eax
	push	ecx
	call	__Stoulx

; 388  : 
; 389  : 		if (_First == _Last)

	mov	edi, DWORD PTR __First$[esp+100]
	add	esp, 16					; 00000010H
	cmp	BYTE PTR __First$[esp+88], bl
	mov	ebp, eax
	jne	SHORT $LN49@do_get@2
	cmp	edi, ebx
	je	SHORT $LN47@do_get@2
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN53@do_get@2
	mov	edx, DWORD PTR [edi+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN53@do_get@2
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN54@do_get@2
$LN53@do_get@2:
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+16]
	mov	ecx, edi
	call	edx
$LN54@do_get@2:
	cmp	eax, -1
	je	SHORT $LN47@do_get@2
	mov	BYTE PTR __First$[esp+89], al
	jmp	SHORT $LN46@do_get@2
$LN47@do_get@2:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+84], edi
$LN46@do_get@2:
	mov	BYTE PTR __First$[esp+88], 1
$LN49@do_get@2:
	cmp	BYTE PTR __Last$[esp+88], bl
	mov	esi, DWORD PTR __Last$[esp+84]
	jne	SHORT $LN72@do_get@2
	cmp	esi, ebx
	je	SHORT $LN70@do_get@2
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN76@do_get@2
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN76@do_get@2
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN77@do_get@2
$LN76@do_get@2:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN77@do_get@2:
	cmp	eax, -1
	je	SHORT $LN70@do_get@2
	mov	BYTE PTR __Last$[esp+89], al
	jmp	SHORT $LN69@do_get@2
$LN70@do_get@2:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+84], esi
$LN69@do_get@2:
	mov	BYTE PTR __Last$[esp+88], 1
$LN72@do_get@2:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+76]
	jne	SHORT $LN112@do_get@2
	cmp	esi, ebx
	je	SHORT $LN113@do_get@2
	jmp	SHORT $LN4@do_get@2
$LN112@do_get@2:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@2
$LN113@do_get@2:

; 390  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@2:

; 391  : 		if (_Ep == _Ptr || _Errno != 0 || USHRT_MAX < _Ans)

	mov	ecx, DWORD PTR __Ptr$[esp+76]
	cmp	DWORD PTR __Ep$[esp+80], ecx
	je	SHORT $LN2@do_get@2
	cmp	DWORD PTR __Errno$[esp+80], ebx
	jne	SHORT $LN2@do_get@2
	cmp	ebp, 65535				; 0000ffffH
	ja	SHORT $LN2@do_get@2

; 393  : 		else
; 394  : 			_Val = (unsigned short)(_Ac[0] == '-'
; 395  : 				? 0 -_Ans : _Ans);	// deliver value

	cmp	BYTE PTR __Ac$[esp+80], 45		; 0000002dH
	jne	SHORT $LN9@do_get@2
	neg	ebp
$LN9@do_get@2:
	mov	edx, DWORD PTR __Val$[esp+76]
	mov	eax, ebp
	mov	WORD PTR [edx], ax
	jmp	SHORT $LN1@do_get@2
$LN2@do_get@2:

; 392  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@2:

; 396  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+76]
	lea	eax, DWORD PTR __First$[esp+76]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+88]
	mov	dl, BYTE PTR __First$[esp+89]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+76]
	mov	DWORD PTR $T44324[esp+80], 1
	mov	BYTE PTR __$EHRec$[esp+88], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+76]
	mov	BYTE PTR __$EHRec$[esp+88], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 397  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+80]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 64					; 00000040H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$2:
	mov	ecx, DWORD PTR $T44311[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$4:
	lea	ecx, DWORD PTR $T44313[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z$5:
	mov	eax, DWORD PTR $T44324[ebp]
	and	eax, 1
	je	$LN17@do_get@2
	and	DWORD PTR $T44324[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN17@do_get@2:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
_TEXT	SEGMENT
__Errno$ = -64						; size = 4
__Ep$ = -60						; size = 4
$T44687 = -56						; size = 4
$T44674 = -52						; size = 4
$T44675 = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
__Ptr$ = 44						; size = 4
$T44676 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 402  : 		{	// get unsigned int from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 52					; 00000034H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T44687[esp+80], ebx

; 403  : 		_DEBUG_RANGE(_First, _Last);

	push	403					; 00000193H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+100]
	mov	DWORD PTR $T44674[esp+104], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+108]
	mov	dl, BYTE PTR __Last$[esp+112]
	mov	al, BYTE PTR __Last$[esp+113]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+116]
	mov	DWORD PTR $T44675[esp+120], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+124]
	mov	al, BYTE PTR __First$[esp+128]
	mov	cl, BYTE PTR __First$[esp+129]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+128], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 404  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 405  : 		int _Errno = 0;
; 406  : 		int _Base = _Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 407  : 			_Iosbase.getloc());	// gather field into _Ac

	mov	esi, DWORD PTR __Iosbase$[esp+116]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T44676[esp+76]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __Errno$[esp+84], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	push	eax
	push	esi
	lea	eax, DWORD PTR __Last$[esp+84]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+112], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	add	esp, 24					; 00000018H
	lea	ecx, DWORD PTR $T44676[esp+76]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+88], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 408  : 		char *_Ptr = _Ac[0] == '-' ? _Ac + 1 : _Ac;	// point past any sign

	cmp	BYTE PTR __Ac$[esp+80], 45		; 0000002dH
	jne	SHORT $LN7@do_get@3
	lea	eax, DWORD PTR __Ac$[esp+81]
	mov	DWORD PTR __Ptr$[esp+76], eax
	jmp	SHORT $LN8@do_get@3
$LN7@do_get@3:
	lea	ecx, DWORD PTR __Ac$[esp+80]
	mov	DWORD PTR __Ptr$[esp+76], ecx
$LN8@do_get@3:

; 409  : 		const unsigned long _Ans =
; 410  : 			::_Stoulx(_Ptr, &_Ep, _Base, &_Errno);	// convert

	mov	ecx, DWORD PTR __Ptr$[esp+76]
	lea	edx, DWORD PTR __Errno$[esp+80]
	push	edx
	push	esi
	lea	eax, DWORD PTR __Ep$[esp+88]
	push	eax
	push	ecx
	call	__Stoulx

; 411  : 
; 412  : 		if (_First == _Last)

	mov	edi, DWORD PTR __First$[esp+100]
	add	esp, 16					; 00000010H
	cmp	BYTE PTR __First$[esp+88], bl
	mov	ebp, eax
	jne	SHORT $LN49@do_get@3
	cmp	edi, ebx
	je	SHORT $LN47@do_get@3
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN53@do_get@3
	mov	edx, DWORD PTR [edi+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN53@do_get@3
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN54@do_get@3
$LN53@do_get@3:
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+16]
	mov	ecx, edi
	call	edx
$LN54@do_get@3:
	cmp	eax, -1
	je	SHORT $LN47@do_get@3
	mov	BYTE PTR __First$[esp+89], al
	jmp	SHORT $LN46@do_get@3
$LN47@do_get@3:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+84], edi
$LN46@do_get@3:
	mov	BYTE PTR __First$[esp+88], 1
$LN49@do_get@3:
	cmp	BYTE PTR __Last$[esp+88], bl
	mov	esi, DWORD PTR __Last$[esp+84]
	jne	SHORT $LN72@do_get@3
	cmp	esi, ebx
	je	SHORT $LN70@do_get@3
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN76@do_get@3
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN76@do_get@3
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN77@do_get@3
$LN76@do_get@3:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN77@do_get@3:
	cmp	eax, -1
	je	SHORT $LN70@do_get@3
	mov	BYTE PTR __Last$[esp+89], al
	jmp	SHORT $LN69@do_get@3
$LN70@do_get@3:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+84], esi
$LN69@do_get@3:
	mov	BYTE PTR __Last$[esp+88], 1
$LN72@do_get@3:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+76]
	jne	SHORT $LN112@do_get@3
	cmp	esi, ebx
	je	SHORT $LN113@do_get@3
	jmp	SHORT $LN4@do_get@3
$LN112@do_get@3:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@3
$LN113@do_get@3:

; 413  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@3:

; 414  : 		if (_Ep == _Ptr || _Errno != 0 || UINT_MAX < _Ans)

	mov	ecx, DWORD PTR __Ptr$[esp+76]
	cmp	DWORD PTR __Ep$[esp+80], ecx
	je	SHORT $LN2@do_get@3
	cmp	DWORD PTR __Errno$[esp+80], ebx
	jne	SHORT $LN2@do_get@3
	cmp	ebp, -1
	ja	SHORT $LN2@do_get@3

; 416  : 		else
; 417  : 			_Val = _Ac[0] == '-' ? 0 -_Ans : _Ans;	// deliver value

	cmp	BYTE PTR __Ac$[esp+80], 45		; 0000002dH
	jne	SHORT $LN9@do_get@3
	neg	ebp
$LN9@do_get@3:
	mov	edx, DWORD PTR __Val$[esp+76]
	mov	eax, ebp
	mov	DWORD PTR [edx], eax
	jmp	SHORT $LN1@do_get@3
$LN2@do_get@3:

; 415  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@3:

; 418  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+76]
	lea	eax, DWORD PTR __First$[esp+76]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+88]
	mov	dl, BYTE PTR __First$[esp+89]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+76]
	mov	DWORD PTR $T44687[esp+80], 1
	mov	BYTE PTR __$EHRec$[esp+88], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+76]
	mov	BYTE PTR __$EHRec$[esp+88], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 419  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+80]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 64					; 00000040H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$2:
	mov	ecx, DWORD PTR $T44674[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$4:
	lea	ecx, DWORD PTR $T44676[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z$5:
	mov	eax, DWORD PTR $T44687[ebp]
	and	eax, 1
	je	$LN17@do_get@3
	and	DWORD PTR $T44687[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN17@do_get@3:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__Stolx:PROC
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
_TEXT	SEGMENT
__Errno$ = -64						; size = 4
__Ep$ = -60						; size = 4
$T45047 = -56						; size = 4
$T45038 = -52						; size = 4
$T45039 = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T45040 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 424  : 		{	// get long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 52					; 00000034H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T45047[esp+80], ebx

; 425  : 		_DEBUG_RANGE(_First, _Last);

	push	425					; 000001a9H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+100]
	mov	DWORD PTR $T45038[esp+104], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+108]
	mov	dl, BYTE PTR __Last$[esp+112]
	mov	al, BYTE PTR __Last$[esp+113]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+116]
	mov	DWORD PTR $T45039[esp+120], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+124]
	mov	al, BYTE PTR __First$[esp+128]
	mov	cl, BYTE PTR __First$[esp+129]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+128], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 426  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 427  : 		int _Errno = 0;
; 428  : 		const long _Ans = ::_Stolx(_Ac, &_Ep,
; 429  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 430  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert

	mov	esi, DWORD PTR __Iosbase$[esp+116]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T45040[esp+76]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __Errno$[esp+84], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	lea	ecx, DWORD PTR __Errno$[esp+80]
	push	ecx
	push	eax
	push	esi
	lea	edx, DWORD PTR __Last$[esp+88]
	push	edx
	lea	eax, DWORD PTR __First$[esp+92]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+100]
	push	ecx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+116], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	add	esp, 24					; 00000018H
	push	eax
	lea	edx, DWORD PTR __Ep$[esp+88]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+92]
	push	eax
	call	__Stolx
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T45040[esp+76]
	mov	ebp, eax
	mov	BYTE PTR __$EHRec$[esp+88], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 431  : 
; 432  : 		if (_First == _Last)

	mov	edi, DWORD PTR __First$[esp+84]
	cmp	BYTE PTR __First$[esp+88], bl
	jne	SHORT $LN45@do_get@4
	cmp	edi, ebx
	je	SHORT $LN43@do_get@4
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN49@do_get@4
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN49@do_get@4
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN50@do_get@4
$LN49@do_get@4:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN50@do_get@4:
	cmp	eax, -1
	je	SHORT $LN43@do_get@4
	mov	BYTE PTR __First$[esp+89], al
	jmp	SHORT $LN42@do_get@4
$LN43@do_get@4:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+84], edi
$LN42@do_get@4:
	mov	BYTE PTR __First$[esp+88], 1
$LN45@do_get@4:
	cmp	BYTE PTR __Last$[esp+88], bl
	mov	esi, DWORD PTR __Last$[esp+84]
	jne	SHORT $LN68@do_get@4
	cmp	esi, ebx
	je	SHORT $LN66@do_get@4
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN72@do_get@4
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN72@do_get@4
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN73@do_get@4
$LN72@do_get@4:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN73@do_get@4:
	cmp	eax, -1
	je	SHORT $LN66@do_get@4
	mov	BYTE PTR __Last$[esp+89], al
	jmp	SHORT $LN65@do_get@4
$LN66@do_get@4:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+84], esi
$LN65@do_get@4:
	mov	BYTE PTR __Last$[esp+88], 1
$LN68@do_get@4:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+76]
	jne	SHORT $LN108@do_get@4
	cmp	esi, ebx
	je	SHORT $LN109@do_get@4
	jmp	SHORT $LN4@do_get@4
$LN108@do_get@4:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@4
$LN109@do_get@4:

; 433  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@4:

; 434  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+80]
	cmp	DWORD PTR __Ep$[esp+80], ecx
	je	SHORT $LN2@do_get@4
	cmp	DWORD PTR __Errno$[esp+80], ebx
	jne	SHORT $LN2@do_get@4

; 436  : 		else
; 437  : 			_Val = _Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+76]
	mov	DWORD PTR [edx], ebp
	jmp	SHORT $LN1@do_get@4
$LN2@do_get@4:

; 435  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@4:

; 438  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+76]
	lea	eax, DWORD PTR __First$[esp+76]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+88]
	mov	dl, BYTE PTR __First$[esp+89]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+76]
	mov	DWORD PTR $T45047[esp+80], 1
	mov	BYTE PTR __$EHRec$[esp+88], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+76]
	mov	BYTE PTR __$EHRec$[esp+88], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 439  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+80]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 64					; 00000040H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$2:
	mov	ecx, DWORD PTR $T45038[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$4:
	lea	ecx, DWORD PTR $T45040[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z$5:
	mov	eax, DWORD PTR $T45047[ebp]
	and	eax, 1
	je	$LN13@do_get@4
	and	DWORD PTR $T45047[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@4:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
_TEXT	SEGMENT
__Errno$ = -64						; size = 4
__Ep$ = -60						; size = 4
$T45406 = -56						; size = 4
$T45397 = -52						; size = 4
$T45398 = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T45399 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 444  : 		{	// get unsigned long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 52					; 00000034H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T45406[esp+80], ebx

; 445  : 		_DEBUG_RANGE(_First, _Last);

	push	445					; 000001bdH
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+100]
	mov	DWORD PTR $T45397[esp+104], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+108]
	mov	dl, BYTE PTR __Last$[esp+112]
	mov	al, BYTE PTR __Last$[esp+113]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+116]
	mov	DWORD PTR $T45398[esp+120], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+124]
	mov	al, BYTE PTR __First$[esp+128]
	mov	cl, BYTE PTR __First$[esp+129]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+128], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 446  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 447  : 		int _Errno = 0;
; 448  : 		const unsigned long _Ans = ::_Stoulx(_Ac, &_Ep,
; 449  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 450  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert

	mov	esi, DWORD PTR __Iosbase$[esp+116]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T45399[esp+76]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __Errno$[esp+84], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	lea	ecx, DWORD PTR __Errno$[esp+80]
	push	ecx
	push	eax
	push	esi
	lea	edx, DWORD PTR __Last$[esp+88]
	push	edx
	lea	eax, DWORD PTR __First$[esp+92]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+100]
	push	ecx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+116], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	add	esp, 24					; 00000018H
	push	eax
	lea	edx, DWORD PTR __Ep$[esp+88]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+92]
	push	eax
	call	__Stoulx
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T45399[esp+76]
	mov	ebp, eax
	mov	BYTE PTR __$EHRec$[esp+88], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 451  : 
; 452  : 		if (_First == _Last)

	mov	edi, DWORD PTR __First$[esp+84]
	cmp	BYTE PTR __First$[esp+88], bl
	jne	SHORT $LN45@do_get@5
	cmp	edi, ebx
	je	SHORT $LN43@do_get@5
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN49@do_get@5
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN49@do_get@5
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN50@do_get@5
$LN49@do_get@5:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN50@do_get@5:
	cmp	eax, -1
	je	SHORT $LN43@do_get@5
	mov	BYTE PTR __First$[esp+89], al
	jmp	SHORT $LN42@do_get@5
$LN43@do_get@5:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+84], edi
$LN42@do_get@5:
	mov	BYTE PTR __First$[esp+88], 1
$LN45@do_get@5:
	cmp	BYTE PTR __Last$[esp+88], bl
	mov	esi, DWORD PTR __Last$[esp+84]
	jne	SHORT $LN68@do_get@5
	cmp	esi, ebx
	je	SHORT $LN66@do_get@5
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN72@do_get@5
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN72@do_get@5
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN73@do_get@5
$LN72@do_get@5:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN73@do_get@5:
	cmp	eax, -1
	je	SHORT $LN66@do_get@5
	mov	BYTE PTR __Last$[esp+89], al
	jmp	SHORT $LN65@do_get@5
$LN66@do_get@5:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+84], esi
$LN65@do_get@5:
	mov	BYTE PTR __Last$[esp+88], 1
$LN68@do_get@5:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+76]
	jne	SHORT $LN108@do_get@5
	cmp	esi, ebx
	je	SHORT $LN109@do_get@5
	jmp	SHORT $LN4@do_get@5
$LN108@do_get@5:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@5
$LN109@do_get@5:

; 453  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@5:

; 454  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+80]
	cmp	DWORD PTR __Ep$[esp+80], ecx
	je	SHORT $LN2@do_get@5
	cmp	DWORD PTR __Errno$[esp+80], ebx
	jne	SHORT $LN2@do_get@5

; 456  : 		else
; 457  : 			_Val = _Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+76]
	mov	DWORD PTR [edx], ebp
	jmp	SHORT $LN1@do_get@5
$LN2@do_get@5:

; 455  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@5:

; 458  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+76]
	lea	eax, DWORD PTR __First$[esp+76]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+88]
	mov	dl, BYTE PTR __First$[esp+89]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+76]
	mov	DWORD PTR $T45406[esp+80], 1
	mov	BYTE PTR __$EHRec$[esp+88], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+76]
	mov	BYTE PTR __$EHRec$[esp+88], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 459  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+80]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 64					; 00000040H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$2:
	mov	ecx, DWORD PTR $T45397[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$4:
	lea	ecx, DWORD PTR $T45399[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z$5:
	mov	eax, DWORD PTR $T45406[ebp]
	and	eax, 1
	je	$LN13@do_get@5
	and	DWORD PTR $T45406[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@5:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__strtoi64:PROC
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
_TEXT	SEGMENT
__Ep$ = -64						; size = 4
$T45765 = -60						; size = 4
$T45756 = -56						; size = 4
__Ans$ = -52						; size = 8
$T45757 = -52						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T45758 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 465  : 		{	// get long long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 52					; 00000034H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T45765[esp+80], ebx

; 466  : 		_DEBUG_RANGE(_First, _Last);

	push	466					; 000001d2H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+100]
	mov	DWORD PTR $T45756[esp+104], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+108]
	mov	dl, BYTE PTR __Last$[esp+112]
	mov	al, BYTE PTR __Last$[esp+113]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+116]
	mov	DWORD PTR $T45757[esp+120], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+124]
	mov	al, BYTE PTR __First$[esp+128]
	mov	cl, BYTE PTR __First$[esp+129]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+128], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 467  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 468  : 		int _Errno = 0;
; 469  : 		const _LONGLONG _Ans = ::_STOLL(_Ac, &_Ep,

	mov	esi, DWORD PTR __Iosbase$[esp+116]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T45758[esp+76]
	push	edx
	mov	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	push	eax
	push	esi
	lea	eax, DWORD PTR __Last$[esp+84]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+112], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	eax, DWORD PTR __Ep$[esp+108]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+112]
	push	ecx
	call	__strtoi64
	add	esp, 36					; 00000024H
	lea	ecx, DWORD PTR $T45758[esp+76]
	mov	ebp, eax
	mov	DWORD PTR __Ans$[esp+84], edx
	mov	BYTE PTR __$EHRec$[esp+88], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 470  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 471  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert
; 472  : 
; 473  : 		if (_First == _Last)

	cmp	BYTE PTR __First$[esp+88], bl
	mov	edi, DWORD PTR __First$[esp+84]
	jne	SHORT $LN45@do_get@6
	cmp	edi, ebx
	je	SHORT $LN43@do_get@6
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN49@do_get@6
	mov	edx, DWORD PTR [edi+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN49@do_get@6
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN50@do_get@6
$LN49@do_get@6:
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+16]
	mov	ecx, edi
	call	edx
$LN50@do_get@6:
	cmp	eax, -1
	je	SHORT $LN43@do_get@6
	mov	BYTE PTR __First$[esp+89], al
	jmp	SHORT $LN42@do_get@6
$LN43@do_get@6:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+84], edi
$LN42@do_get@6:
	mov	BYTE PTR __First$[esp+88], 1
$LN45@do_get@6:
	cmp	BYTE PTR __Last$[esp+88], bl
	mov	esi, DWORD PTR __Last$[esp+84]
	jne	SHORT $LN68@do_get@6
	cmp	esi, ebx
	je	SHORT $LN66@do_get@6
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN72@do_get@6
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN72@do_get@6
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN73@do_get@6
$LN72@do_get@6:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN73@do_get@6:
	cmp	eax, -1
	je	SHORT $LN66@do_get@6
	mov	BYTE PTR __Last$[esp+89], al
	jmp	SHORT $LN65@do_get@6
$LN66@do_get@6:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+84], esi
$LN65@do_get@6:
	mov	BYTE PTR __Last$[esp+88], 1
$LN68@do_get@6:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+76]
	jne	SHORT $LN108@do_get@6
	cmp	esi, ebx
	je	SHORT $LN109@do_get@6
	jmp	SHORT $LN4@do_get@6
$LN108@do_get@6:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@6
$LN109@do_get@6:

; 474  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@6:

; 475  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+80]
	cmp	DWORD PTR __Ep$[esp+80], ecx
	je	SHORT $LN2@do_get@6

; 477  : 		else
; 478  : 			_Val = _Ans;	// deliver value

	mov	eax, DWORD PTR __Val$[esp+76]
	mov	edx, DWORD PTR __Ans$[esp+84]
	mov	DWORD PTR [eax], ebp
	mov	DWORD PTR [eax+4], edx
	jmp	SHORT $LN1@do_get@6
$LN2@do_get@6:

; 476  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@6:

; 479  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+76]
	lea	eax, DWORD PTR __First$[esp+76]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+88]
	mov	dl, BYTE PTR __First$[esp+89]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+76]
	mov	DWORD PTR $T45765[esp+80], 1
	mov	BYTE PTR __$EHRec$[esp+88], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+76]
	mov	BYTE PTR __$EHRec$[esp+88], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 480  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+80]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 64					; 00000040H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$2:
	mov	ecx, DWORD PTR $T45756[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$4:
	lea	ecx, DWORD PTR $T45758[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z$5:
	mov	eax, DWORD PTR $T45765[ebp]
	and	eax, 1
	je	$LN13@do_get@6
	and	DWORD PTR $T45765[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@6:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__strtoui64:PROC
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
_TEXT	SEGMENT
__Ep$ = -64						; size = 4
$T46125 = -60						; size = 4
$T46116 = -56						; size = 4
__Ans$ = -52						; size = 8
$T46117 = -52						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T46118 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 485  : 		{	// get unsigned long long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 52					; 00000034H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T46125[esp+80], ebx

; 486  : 		_DEBUG_RANGE(_First, _Last);

	push	486					; 000001e6H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+100]
	mov	DWORD PTR $T46116[esp+104], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+108]
	mov	dl, BYTE PTR __Last$[esp+112]
	mov	al, BYTE PTR __Last$[esp+113]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+116]
	mov	DWORD PTR $T46117[esp+120], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+132], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+124]
	mov	al, BYTE PTR __First$[esp+128]
	mov	cl, BYTE PTR __First$[esp+129]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+128], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 487  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 488  : 		int _Errno = 0;
; 489  : 		const _ULONGLONG _Ans = ::_STOULL(_Ac, &_Ep,

	mov	esi, DWORD PTR __Iosbase$[esp+116]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T46118[esp+76]
	push	edx
	mov	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	push	eax
	push	esi
	lea	eax, DWORD PTR __Last$[esp+84]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+112], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	eax, DWORD PTR __Ep$[esp+108]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+112]
	push	ecx
	call	__strtoui64
	add	esp, 36					; 00000024H
	lea	ecx, DWORD PTR $T46118[esp+76]
	mov	ebp, eax
	mov	DWORD PTR __Ans$[esp+84], edx
	mov	BYTE PTR __$EHRec$[esp+88], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 490  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 491  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert
; 492  : 
; 493  : 		if (_First == _Last)

	cmp	BYTE PTR __First$[esp+88], bl
	mov	edi, DWORD PTR __First$[esp+84]
	jne	SHORT $LN45@do_get@7
	cmp	edi, ebx
	je	SHORT $LN43@do_get@7
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN49@do_get@7
	mov	edx, DWORD PTR [edi+48]
	cmp	DWORD PTR [edx], ebx
	jle	SHORT $LN49@do_get@7
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN50@do_get@7
$LN49@do_get@7:
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+16]
	mov	ecx, edi
	call	edx
$LN50@do_get@7:
	cmp	eax, -1
	je	SHORT $LN43@do_get@7
	mov	BYTE PTR __First$[esp+89], al
	jmp	SHORT $LN42@do_get@7
$LN43@do_get@7:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+84], edi
$LN42@do_get@7:
	mov	BYTE PTR __First$[esp+88], 1
$LN45@do_get@7:
	cmp	BYTE PTR __Last$[esp+88], bl
	mov	esi, DWORD PTR __Last$[esp+84]
	jne	SHORT $LN68@do_get@7
	cmp	esi, ebx
	je	SHORT $LN66@do_get@7
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN72@do_get@7
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN72@do_get@7
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN73@do_get@7
$LN72@do_get@7:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN73@do_get@7:
	cmp	eax, -1
	je	SHORT $LN66@do_get@7
	mov	BYTE PTR __Last$[esp+89], al
	jmp	SHORT $LN65@do_get@7
$LN66@do_get@7:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+84], esi
$LN65@do_get@7:
	mov	BYTE PTR __Last$[esp+88], 1
$LN68@do_get@7:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+76]
	jne	SHORT $LN108@do_get@7
	cmp	esi, ebx
	je	SHORT $LN109@do_get@7
	jmp	SHORT $LN4@do_get@7
$LN108@do_get@7:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@7
$LN109@do_get@7:

; 494  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@7:

; 495  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+80]
	cmp	DWORD PTR __Ep$[esp+80], ecx
	je	SHORT $LN2@do_get@7

; 497  : 		else
; 498  : 			_Val = _Ans;	// deliver value

	mov	eax, DWORD PTR __Val$[esp+76]
	mov	edx, DWORD PTR __Ans$[esp+84]
	mov	DWORD PTR [eax], ebp
	mov	DWORD PTR [eax+4], edx
	jmp	SHORT $LN1@do_get@7
$LN2@do_get@7:

; 496  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@7:

; 499  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+76]
	lea	eax, DWORD PTR __First$[esp+76]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+88]
	mov	dl, BYTE PTR __First$[esp+89]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+76]
	mov	DWORD PTR $T46125[esp+80], 1
	mov	BYTE PTR __$EHRec$[esp+88], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+76]
	mov	BYTE PTR __$EHRec$[esp+88], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 500  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+80]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 64					; 00000040H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$2:
	mov	ecx, DWORD PTR $T46116[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$4:
	lea	ecx, DWORD PTR $T46118[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z$5:
	mov	eax, DWORD PTR $T46125[ebp]
	and	eax, 1
	je	$LN13@do_get@7
	and	DWORD PTR $T46125[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@7:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__Stofx:PROC
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
_TEXT	SEGMENT
__Errno$ = -92						; size = 4
__Ep$ = -88						; size = 4
__Ans$ = -84						; size = 4
$T46476 = -84						; size = 4
$T46485 = -80						; size = 4
$T46477 = -76						; size = 4
__Ac$ = -72						; size = 60
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T46478 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 506  : 		{	// get float from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 80					; 00000050H
	push	ebx
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T46485[esp+104], ebx

; 507  : 		_DEBUG_RANGE(_First, _Last);

	push	507					; 000001fbH
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+124]
	mov	DWORD PTR $T46476[esp+128], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+140], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+132]
	mov	dl, BYTE PTR __Last$[esp+136]
	mov	al, BYTE PTR __Last$[esp+137]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+140]
	mov	DWORD PTR $T46477[esp+144], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+156], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+148]
	mov	al, BYTE PTR __First$[esp+152]
	mov	cl, BYTE PTR __First$[esp+153]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+152], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 508  : 		char _Ac[_MAX_EXP_DIG + _MAX_SIG_DIG + 16], *_Ep;
; 509  : 		int _Errno = 0;
; 510  : 		const float _Ans = ::_Stofx(_Ac, &_Ep,
; 511  : 			_Getffld(_Ac, _First, _Last,
; 512  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert

	mov	ecx, DWORD PTR __Iosbase$[esp+140]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T46478[esp+100]
	push	edx
	mov	DWORD PTR __Errno$[esp+108], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	lea	ecx, DWORD PTR __Errno$[esp+104]
	push	ecx
	push	eax
	lea	edx, DWORD PTR __Last$[esp+108]
	push	edx
	lea	eax, DWORD PTR __First$[esp+112]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+120]
	push	ecx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+136], 4
	call	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
	add	esp, 20					; 00000014H
	push	eax
	lea	edx, DWORD PTR __Ep$[esp+112]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+116]
	push	eax
	call	__Stofx
	fstp	DWORD PTR __Ans$[esp+120]
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T46478[esp+100]
	mov	BYTE PTR __$EHRec$[esp+112], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 513  : 
; 514  : 		if (_First == _Last)

	cmp	BYTE PTR __First$[esp+112], bl
	mov	edi, DWORD PTR __First$[esp+108]
	jne	SHORT $LN43@do_get@8
	cmp	edi, ebx
	je	SHORT $LN41@do_get@8
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN47@do_get@8
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN47@do_get@8
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN48@do_get@8
$LN47@do_get@8:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN48@do_get@8:
	cmp	eax, -1
	je	SHORT $LN41@do_get@8
	mov	BYTE PTR __First$[esp+113], al
	jmp	SHORT $LN40@do_get@8
$LN41@do_get@8:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+108], edi
$LN40@do_get@8:
	mov	BYTE PTR __First$[esp+112], 1
$LN43@do_get@8:
	cmp	BYTE PTR __Last$[esp+112], bl
	mov	esi, DWORD PTR __Last$[esp+108]
	jne	SHORT $LN66@do_get@8
	cmp	esi, ebx
	je	SHORT $LN64@do_get@8
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN70@do_get@8
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN70@do_get@8
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN71@do_get@8
$LN70@do_get@8:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN71@do_get@8:
	cmp	eax, -1
	je	SHORT $LN64@do_get@8
	mov	BYTE PTR __Last$[esp+113], al
	jmp	SHORT $LN63@do_get@8
$LN64@do_get@8:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+108], esi
$LN63@do_get@8:
	mov	BYTE PTR __Last$[esp+112], 1
$LN66@do_get@8:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+100]
	jne	SHORT $LN106@do_get@8
	cmp	esi, ebx
	je	SHORT $LN107@do_get@8
	jmp	SHORT $LN4@do_get@8
$LN106@do_get@8:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@8
$LN107@do_get@8:

; 515  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@8:

; 516  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+104]
	cmp	DWORD PTR __Ep$[esp+104], ecx
	je	SHORT $LN2@do_get@8
	cmp	DWORD PTR __Errno$[esp+104], ebx
	jne	SHORT $LN2@do_get@8

; 518  : 		else
; 519  : 			_Val = _Ans;	// deliver value

	fld	DWORD PTR __Ans$[esp+104]
	mov	edx, DWORD PTR __Val$[esp+100]
	fstp	DWORD PTR [edx]
	jmp	SHORT $LN1@do_get@8
$LN2@do_get@8:

; 517  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@8:

; 520  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+100]
	lea	eax, DWORD PTR __First$[esp+100]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+112]
	mov	dl, BYTE PTR __First$[esp+113]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+100]
	mov	DWORD PTR $T46485[esp+104], 1
	mov	BYTE PTR __$EHRec$[esp+112], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+100]
	mov	BYTE PTR __$EHRec$[esp+112], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 521  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+104]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 92					; 0000005cH
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$2:
	mov	ecx, DWORD PTR $T46476[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$4:
	lea	ecx, DWORD PTR $T46478[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z$5:
	mov	eax, DWORD PTR $T46485[ebp]
	and	eax, 1
	je	$LN13@do_get@8
	and	DWORD PTR $T46485[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@8:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__Stodx:PROC
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
_TEXT	SEGMENT
__Errno$ = -96						; size = 4
__Ep$ = -92						; size = 4
$T46839 = -88						; size = 4
$T46830 = -84						; size = 4
__Ans$ = -80						; size = 8
$T46831 = -80						; size = 4
__Ac$ = -72						; size = 60
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T46832 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 526  : 		{	// get double from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 84					; 00000054H
	push	ebx
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T46839[esp+108], ebx

; 527  : 		_DEBUG_RANGE(_First, _Last);

	push	527					; 0000020fH
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+128]
	mov	DWORD PTR $T46830[esp+132], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+144], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+136]
	mov	dl, BYTE PTR __Last$[esp+140]
	mov	al, BYTE PTR __Last$[esp+141]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+144]
	mov	DWORD PTR $T46831[esp+148], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+160], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+152]
	mov	al, BYTE PTR __First$[esp+156]
	mov	cl, BYTE PTR __First$[esp+157]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+156], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 528  : 		char _Ac[_MAX_EXP_DIG + _MAX_SIG_DIG + 16], *_Ep;
; 529  : 		int _Errno = 0;
; 530  : 		const double _Ans = ::_Stodx(_Ac, &_Ep,
; 531  : 			_Getffld(_Ac, _First, _Last,
; 532  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert

	mov	ecx, DWORD PTR __Iosbase$[esp+144]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T46832[esp+104]
	push	edx
	mov	DWORD PTR __Errno$[esp+112], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	lea	ecx, DWORD PTR __Errno$[esp+108]
	push	ecx
	push	eax
	lea	edx, DWORD PTR __Last$[esp+112]
	push	edx
	lea	eax, DWORD PTR __First$[esp+116]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+124]
	push	ecx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+140], 4
	call	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
	add	esp, 20					; 00000014H
	push	eax
	lea	edx, DWORD PTR __Ep$[esp+116]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+120]
	push	eax
	call	__Stodx
	fstp	QWORD PTR __Ans$[esp+124]
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T46832[esp+104]
	mov	BYTE PTR __$EHRec$[esp+116], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 533  : 
; 534  : 		if (_First == _Last)

	cmp	BYTE PTR __First$[esp+116], bl
	mov	edi, DWORD PTR __First$[esp+112]
	jne	SHORT $LN43@do_get@9
	cmp	edi, ebx
	je	SHORT $LN41@do_get@9
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN47@do_get@9
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN47@do_get@9
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN48@do_get@9
$LN47@do_get@9:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN48@do_get@9:
	cmp	eax, -1
	je	SHORT $LN41@do_get@9
	mov	BYTE PTR __First$[esp+117], al
	jmp	SHORT $LN40@do_get@9
$LN41@do_get@9:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+112], edi
$LN40@do_get@9:
	mov	BYTE PTR __First$[esp+116], 1
$LN43@do_get@9:
	cmp	BYTE PTR __Last$[esp+116], bl
	mov	esi, DWORD PTR __Last$[esp+112]
	jne	SHORT $LN66@do_get@9
	cmp	esi, ebx
	je	SHORT $LN64@do_get@9
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN70@do_get@9
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN70@do_get@9
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN71@do_get@9
$LN70@do_get@9:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN71@do_get@9:
	cmp	eax, -1
	je	SHORT $LN64@do_get@9
	mov	BYTE PTR __Last$[esp+117], al
	jmp	SHORT $LN63@do_get@9
$LN64@do_get@9:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+112], esi
$LN63@do_get@9:
	mov	BYTE PTR __Last$[esp+116], 1
$LN66@do_get@9:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+104]
	jne	SHORT $LN106@do_get@9
	cmp	esi, ebx
	je	SHORT $LN107@do_get@9
	jmp	SHORT $LN4@do_get@9
$LN106@do_get@9:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@9
$LN107@do_get@9:

; 535  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@9:

; 536  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+108]
	cmp	DWORD PTR __Ep$[esp+108], ecx
	je	SHORT $LN2@do_get@9
	cmp	DWORD PTR __Errno$[esp+108], ebx
	jne	SHORT $LN2@do_get@9

; 538  : 		else
; 539  : 			_Val = _Ans;	// deliver value

	fld	QWORD PTR __Ans$[esp+108]
	mov	edx, DWORD PTR __Val$[esp+104]
	fstp	QWORD PTR [edx]
	jmp	SHORT $LN1@do_get@9
$LN2@do_get@9:

; 537  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@9:

; 540  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+104]
	lea	eax, DWORD PTR __First$[esp+104]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+116]
	mov	dl, BYTE PTR __First$[esp+117]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+104]
	mov	DWORD PTR $T46839[esp+108], 1
	mov	BYTE PTR __$EHRec$[esp+116], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+104]
	mov	BYTE PTR __$EHRec$[esp+116], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 541  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 96					; 00000060H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$2:
	mov	ecx, DWORD PTR $T46830[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$4:
	lea	ecx, DWORD PTR $T46832[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z$5:
	mov	eax, DWORD PTR $T46839[ebp]
	and	eax, 1
	je	$LN13@do_get@9
	and	DWORD PTR $T46839[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@9:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__Stoldx:PROC
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
_TEXT	SEGMENT
__Errno$ = -96						; size = 4
__Ep$ = -92						; size = 4
$T47193 = -88						; size = 4
$T47184 = -84						; size = 4
__Ans$ = -80						; size = 8
$T47185 = -80						; size = 4
__Ac$ = -72						; size = 60
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T47186 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 546  : 		{	// get long double from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 84					; 00000054H
	push	ebx
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T47193[esp+108], ebx

; 547  : 		_DEBUG_RANGE(_First, _Last);

	push	547					; 00000223H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+128]
	mov	DWORD PTR $T47184[esp+132], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+144], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+136]
	mov	dl, BYTE PTR __Last$[esp+140]
	mov	al, BYTE PTR __Last$[esp+141]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+144]
	mov	DWORD PTR $T47185[esp+148], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+160], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+152]
	mov	al, BYTE PTR __First$[esp+156]
	mov	cl, BYTE PTR __First$[esp+157]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+156], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 548  : 		char _Ac[_MAX_EXP_DIG + _MAX_SIG_DIG + 16], *_Ep;
; 549  : 		int _Errno = 0;
; 550  : 		const long double _Ans = ::_Stoldx(_Ac, &_Ep,
; 551  : 			_Getffld(_Ac, _First, _Last,
; 552  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert

	mov	ecx, DWORD PTR __Iosbase$[esp+144]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T47186[esp+104]
	push	edx
	mov	DWORD PTR __Errno$[esp+112], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	lea	ecx, DWORD PTR __Errno$[esp+108]
	push	ecx
	push	eax
	lea	edx, DWORD PTR __Last$[esp+112]
	push	edx
	lea	eax, DWORD PTR __First$[esp+116]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+124]
	push	ecx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+140], 4
	call	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
	add	esp, 20					; 00000014H
	push	eax
	lea	edx, DWORD PTR __Ep$[esp+116]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+120]
	push	eax
	call	__Stoldx
	fstp	QWORD PTR __Ans$[esp+124]
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T47186[esp+104]
	mov	BYTE PTR __$EHRec$[esp+116], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 553  : 
; 554  : 		if (_First == _Last)

	cmp	BYTE PTR __First$[esp+116], bl
	mov	edi, DWORD PTR __First$[esp+112]
	jne	SHORT $LN43@do_get@10
	cmp	edi, ebx
	je	SHORT $LN41@do_get@10
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN47@do_get@10
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN47@do_get@10
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN48@do_get@10
$LN47@do_get@10:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN48@do_get@10:
	cmp	eax, -1
	je	SHORT $LN41@do_get@10
	mov	BYTE PTR __First$[esp+117], al
	jmp	SHORT $LN40@do_get@10
$LN41@do_get@10:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+112], edi
$LN40@do_get@10:
	mov	BYTE PTR __First$[esp+116], 1
$LN43@do_get@10:
	cmp	BYTE PTR __Last$[esp+116], bl
	mov	esi, DWORD PTR __Last$[esp+112]
	jne	SHORT $LN66@do_get@10
	cmp	esi, ebx
	je	SHORT $LN64@do_get@10
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN70@do_get@10
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN70@do_get@10
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN71@do_get@10
$LN70@do_get@10:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN71@do_get@10:
	cmp	eax, -1
	je	SHORT $LN64@do_get@10
	mov	BYTE PTR __Last$[esp+117], al
	jmp	SHORT $LN63@do_get@10
$LN64@do_get@10:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+112], esi
$LN63@do_get@10:
	mov	BYTE PTR __Last$[esp+116], 1
$LN66@do_get@10:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+104]
	jne	SHORT $LN106@do_get@10
	cmp	esi, ebx
	je	SHORT $LN107@do_get@10
	jmp	SHORT $LN4@do_get@10
$LN106@do_get@10:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@10
$LN107@do_get@10:

; 555  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@10:

; 556  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+108]
	cmp	DWORD PTR __Ep$[esp+108], ecx
	je	SHORT $LN2@do_get@10
	cmp	DWORD PTR __Errno$[esp+108], ebx
	jne	SHORT $LN2@do_get@10

; 558  : 		else
; 559  : 			_Val = _Ans;	// deliver value

	fld	QWORD PTR __Ans$[esp+108]
	mov	edx, DWORD PTR __Val$[esp+104]
	fstp	QWORD PTR [edx]
	jmp	SHORT $LN1@do_get@10
$LN2@do_get@10:

; 557  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@10:

; 560  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+104]
	lea	eax, DWORD PTR __First$[esp+104]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+116]
	mov	dl, BYTE PTR __First$[esp+117]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+104]
	mov	DWORD PTR $T47193[esp+108], 1
	mov	BYTE PTR __$EHRec$[esp+116], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+104]
	mov	BYTE PTR __$EHRec$[esp+116], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 561  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+108]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 96					; 00000060H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$2:
	mov	ecx, DWORD PTR $T47184[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$4:
	lea	ecx, DWORD PTR $T47186[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z$5:
	mov	eax, DWORD PTR $T47193[ebp]
	and	eax, 1
	je	$LN13@do_get@10
	and	DWORD PTR $T47193[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN13@do_get@10:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xstring
xdata$x	SEGMENT
__ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$0
	DD	01H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$1
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$4
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
_TEXT	SEGMENT
__Errno$ = -68						; size = 4
__Ep$ = -64						; size = 4
$T47549 = -60						; size = 4
$T47538 = -56						; size = 4
__Ans$ = -52						; size = 8
$T47539 = -52						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 16
__Last$ = 28						; size = 16
$T47540 = 44						; size = 4
__Iosbase$ = 44						; size = 4
__State$ = 48						; size = 4
__Val$ = 52						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z PROC ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 566  : 		{	// get void pointer from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 56					; 00000038H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T47549[esp+84], ebx

; 567  : 		_DEBUG_RANGE(_First, _Last);

	push	567					; 00000237H
	push	OFFSET ??_C@_1HM@HABNPLPL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAs?$AA?2?$AAM?$AAi?$AAc?$AAr?$AAo?$AAs?$AAo?$AAf?$AAt?$AA?5?$AAV?$AAi?$AAs?$AAu?$AAa@
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	eax, DWORD PTR __Last$[esp+104]
	mov	DWORD PTR $T47538[esp+108], esp
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+120], 2
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	ecx, DWORD PTR __Last$[esp+112]
	mov	dl, BYTE PTR __Last$[esp+116]
	mov	al, BYTE PTR __Last$[esp+117]
	mov	DWORD PTR [esi+8], ecx
	mov	BYTE PTR [esi+12], dl
	mov	BYTE PTR [esi+13], al
	sub	esp, 16					; 00000010H
	mov	esi, esp
	lea	ecx, DWORD PTR __First$[esp+120]
	mov	DWORD PTR $T47539[esp+124], esp
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+136], 3
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	edx, DWORD PTR __First$[esp+128]
	mov	al, BYTE PTR __First$[esp+132]
	mov	cl, BYTE PTR __First$[esp+133]
	mov	DWORD PTR [esi+8], edx
	mov	BYTE PTR [esi+12], al
	mov	BYTE PTR [esi+13], cl
	mov	BYTE PTR __$EHRec$[esp+132], 2
	call	??$_Debug_range@V?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAXV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0PB_WI@Z ; std::_Debug_range<std::istreambuf_iterator<char,std::char_traits<char> > >

; 568  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 569  : 		int _Errno = 0;
; 570  : 
; 571  :  #ifdef _LONGLONG
; 572  : 		int _Base = _Getifld(_Ac, _First, _Last, ios_base::hex,
; 573  : 			_Iosbase.getloc());	// gather field

	mov	ecx, DWORD PTR __Iosbase$[esp+120]
	add	esp, 40					; 00000028H
	lea	edx, DWORD PTR $T47540[esp+80]
	push	edx
	mov	DWORD PTR __Errno$[esp+88], ebx
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	push	2048					; 00000800H
	lea	eax, DWORD PTR __Last$[esp+88]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+92]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+100]
	push	edx
	push	edi
	mov	BYTE PTR __$EHRec$[esp+116], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	add	esp, 24					; 00000018H
	lea	ecx, DWORD PTR $T47540[esp+80]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+92], 2
	call	??1locale@std@@QAE@XZ			; std::locale::~locale

; 574  : 		const _ULONGLONG _Ans =
; 575  : 			(sizeof (void *) == sizeof (unsigned long))
; 576  : 				? (_ULONGLONG)::_Stoulx(_Ac, &_Ep, _Base, &_Errno)
; 577  : 				: ::_STOULL(_Ac, &_Ep, _Base, &_Errno);

	lea	eax, DWORD PTR __Errno$[esp+84]
	push	eax
	push	esi
	lea	ecx, DWORD PTR __Ep$[esp+92]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	call	__Stoulx

; 578  : 
; 579  :  #else /* _LONGLONG */
; 580  : 		const unsigned long _Ans = ::_Stoulx(_Ac, &_Ep,
; 581  : 			_Getifld(_Ac, _First, _Last, ios_base::hex,
; 582  : 				_Iosbase.getloc()), &_Errno);	// gather field, convert
; 583  :  #endif /* _LONGLONG */
; 584  : 
; 585  : 		if (_First == _Last)

	mov	edi, DWORD PTR __First$[esp+104]
	add	esp, 16					; 00000010H
	mov	ebp, eax
	mov	DWORD PTR __Ans$[esp+88], ebx
	cmp	BYTE PTR __First$[esp+92], bl
	jne	SHORT $LN45@do_get@11
	cmp	edi, ebx
	je	SHORT $LN43@do_get@11
	mov	eax, DWORD PTR [edi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN49@do_get@11
	mov	ecx, DWORD PTR [edi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN49@do_get@11
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN50@do_get@11
$LN49@do_get@11:
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, edi
	call	eax
$LN50@do_get@11:
	cmp	eax, -1
	je	SHORT $LN43@do_get@11
	mov	BYTE PTR __First$[esp+93], al
	jmp	SHORT $LN42@do_get@11
$LN43@do_get@11:
	xor	edi, edi
	mov	DWORD PTR __First$[esp+88], edi
$LN42@do_get@11:
	mov	BYTE PTR __First$[esp+92], 1
$LN45@do_get@11:
	cmp	BYTE PTR __Last$[esp+92], bl
	mov	esi, DWORD PTR __Last$[esp+88]
	jne	SHORT $LN68@do_get@11
	cmp	esi, ebx
	je	SHORT $LN66@do_get@11
	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], ebx
	je	SHORT $LN72@do_get@11
	mov	ecx, DWORD PTR [esi+48]
	cmp	DWORD PTR [ecx], ebx
	jle	SHORT $LN72@do_get@11
	mov	eax, DWORD PTR [eax]
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $LN73@do_get@11
$LN72@do_get@11:
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, esi
	call	eax
$LN73@do_get@11:
	cmp	eax, -1
	je	SHORT $LN66@do_get@11
	mov	BYTE PTR __Last$[esp+93], al
	jmp	SHORT $LN65@do_get@11
$LN66@do_get@11:
	xor	esi, esi
	mov	DWORD PTR __Last$[esp+88], esi
$LN65@do_get@11:
	mov	BYTE PTR __Last$[esp+92], 1
$LN68@do_get@11:
	cmp	edi, ebx
	mov	eax, DWORD PTR __State$[esp+80]
	jne	SHORT $LN108@do_get@11
	cmp	esi, ebx
	je	SHORT $LN109@do_get@11
	jmp	SHORT $LN4@do_get@11
$LN108@do_get@11:
	cmp	esi, ebx
	je	SHORT $LN4@do_get@11
$LN109@do_get@11:

; 586  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$LN4@do_get@11:

; 587  : 		if (_Ep == _Ac || _Errno != 0)

	lea	ecx, DWORD PTR __Ac$[esp+84]
	cmp	DWORD PTR __Ep$[esp+84], ecx
	je	SHORT $LN2@do_get@11
	cmp	DWORD PTR __Errno$[esp+84], ebx
	jne	SHORT $LN2@do_get@11

; 589  : 		else
; 590  : 			_Val = (void *)(uintptr_t)_Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+80]
	mov	DWORD PTR [edx], ebp
	jmp	SHORT $LN1@do_get@11
$LN2@do_get@11:

; 588  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2
$LN1@do_get@11:

; 591  : 		return (_First);

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+80]
	lea	eax, DWORD PTR __First$[esp+80]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR [esi], ebx
	mov	DWORD PTR [esi+4], ebx
	call	??4_Iterator_base@std@@QAEAAV01@ABV01@@Z ; std::_Iterator_base::operator=
	mov	cl, BYTE PTR __First$[esp+92]
	mov	dl, BYTE PTR __First$[esp+93]
	mov	DWORD PTR [esi+8], edi
	mov	BYTE PTR [esi+12], cl
	mov	BYTE PTR [esi+13], dl
	lea	ecx, DWORD PTR __First$[esp+80]
	mov	DWORD PTR $T47549[esp+84], 1
	mov	BYTE PTR __$EHRec$[esp+92], 1
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base
	lea	ecx, DWORD PTR __Last$[esp+80]
	mov	BYTE PTR __$EHRec$[esp+92], bl
	call	??1_Iterator_base@std@@QAE@XZ		; std::_Iterator_base::~_Iterator_base

; 592  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+84]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	add	esp, 68					; 00000044H
	ret	48					; 00000030H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$0:
	lea	ecx, DWORD PTR __Last$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$1:
	lea	ecx, DWORD PTR __First$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$2:
	mov	ecx, DWORD PTR $T47538[ebp]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$4:
	lea	ecx, DWORD PTR $T47540[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__unwindfunclet$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z$5:
	mov	eax, DWORD PTR $T47549[ebp]
	and	eax, 1
	je	$LN15@do_get@11
	and	DWORD PTR $T47549[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@XZ
$LN15@do_get@11:
	ret	0
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z:
	mov	eax, OFFSET __ehfuncinfo$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@ ; `string'
PUBLIC	??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@	; `string'
;	COMDAT ??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
CONST	SEGMENT
??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@ DB 'ERROR! '
	DB	'Sensor can not find file for sensor list', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
CONST	SEGMENT
??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@ DB 'Sensor_List_File', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z$0
__ehfuncinfo$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
xdata$x	ENDS
;	COMDAT ?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
_TEXT	SEGMENT
_detectCount$ = -256					; size = 4
_sensorFile$ = -252					; size = 140
_detectName$ = -112					; size = 100
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
_enter$ = 12						; size = 4
?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z PROC		; NHP_Sensor_Array_Zone::Entered, COMDAT
; _this$ = ecx

; 178  : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 244				; 000000f4H
	push	edi
	mov	edi, ecx

; 179  : 	if (!SensorIsAlive)

	cmp	BYTE PTR [edi+28], 0
	je	$LN59@Entered
	push	ebp
	push	esi

; 180  : 		return;
; 181  : 	if (Get_Int_Parameter("Check_Team") == Commands->Get_Player_Type(enter))

	push	OFFSET ??_C@_0L@HNDGGODA@Check_Team?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	ebp, DWORD PTR _enter$[esp+264]
	mov	esi, eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	push	ebp
	call	ecx
	add	esp, 4
	cmp	esi, eax
	je	$LN65@Entered

; 182  : 		return;
; 183  : 	std::ifstream sensorFile(Get_Parameter("Sensor_List_File"));

	push	1
	push	64					; 00000040H
	push	1
	push	OFFSET ??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
	mov	ecx, edi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+284]
	call	??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >
	xor	esi, esi

; 184  : 	int detectCount;
; 185  : 	char detectName[100];
; 186  : 	if (!sensorFile.is_open())

	cmp	DWORD PTR _sensorFile$[esp+352], esi
	mov	DWORD PTR __$EHRec$[esp+276], esi
	jne	SHORT $LN6@Entered

; 187  : 	{
; 188  : 		Commands->Display_Int(0,"ERROR! Sensor can not find file for sensor list");

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+316]
	push	OFFSET ??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
	push	esi
	call	eax
	add	esp, 8

; 189  : 		return;

	lea	ecx, DWORD PTR _sensorFile$[esp+356]
	mov	DWORD PTR __$EHRec$[esp+276], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	ecx, DWORD PTR _sensorFile$[esp+356]
	push	ecx
	mov	DWORD PTR _sensorFile$[esp+360], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	jmp	$LN65@Entered
$LN6@Entered:
	push	ebx

; 190  : 	}
; 191  : 	sensorFile >> detectCount;

	lea	edx, DWORD PTR _detectCount$[esp+272]
	push	edx
	lea	ecx, DWORD PTR _sensorFile$[esp+276]
	call	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>

; 192  : 	for (int i=0;i<=detectCount;i++)

	mov	ebx, DWORD PTR _detectCount$[esp+272]
	test	ebx, ebx
	jl	SHORT $LN3@Entered
	npad	3
$LL5@Entered:

; 193  : 	{
; 194  : 		sensorFile >> detectName;

	lea	eax, DWORD PTR _detectName$[esp+272]
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+276]
	push	ecx
	call	??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ; std::operator>><char,std::char_traits<char> >

; 195  : 		if (!_stricmp(Commands->Get_Preset_Name(enter),detectName))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	add	esp, 8
	lea	edx, DWORD PTR _detectName$[esp+272]
	push	edx
	push	ebp
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN62@Entered
	add	esi, 1
	cmp	esi, ebx
	jle	SHORT $LL5@Entered
$LN3@Entered:

; 206  : 		}
; 207  : 	}
; 208  : 	sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+280]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $LN50@Entered
	mov	ecx, DWORD PTR _sensorFile$[esp+272]
	mov	ecx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR _sensorFile$[esp+ecx+280]
	lea	ecx, DWORD PTR _sensorFile$[esp+ecx+272]
	or	eax, 2
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN52@Entered
	or	eax, 4
$LN52@Entered:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN50@Entered:

; 209  : }

	lea	ecx, DWORD PTR _sensorFile$[esp+360]
	mov	DWORD PTR __$EHRec$[esp+280], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	edx, DWORD PTR _sensorFile$[esp+360]
	push	edx
$LN68@Entered:
	mov	DWORD PTR _sensorFile$[esp+364], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	pop	ebx
$LN65@Entered:
	pop	esi
	pop	ebp
$LN59@Entered:
	mov	ecx, DWORD PTR __$EHRec$[esp+260]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	add	esp, 256				; 00000100H
	ret	8
$LN62@Entered:

; 196  : 		{
; 197  : 			count++;

	mov	eax, 1
	add	DWORD PTR [edi+32], eax

; 198  : 			if (count == 1)

	cmp	DWORD PTR [edi+32], eax
	jne	SHORT $LN1@Entered

; 199  : 			{
; 200  : 				Commands->Start_Sound(soundId);

	mov	edx, DWORD PTR [edi+36]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+196]
	push	edx
	call	ecx
	add	esp, 4
$LN1@Entered:

; 201  : 			}
; 202  : 			//Tell the object that it has entered
; 203  : 			Commands->Send_Custom_Event(obj,enter,20103020,0,0);

	fldz
	mov	edx, DWORD PTR _obj$[esp+268]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	ecx, DWORD PTR [eax+140]
	fstp	DWORD PTR [esp]
	push	0
	push	20103020				; 0132bf6cH
	push	ebp
	push	edx
	call	ecx
	add	esp, 20					; 00000014H

; 204  : 			sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+280]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $LN31@Entered
	mov	edx, DWORD PTR _sensorFile$[esp+272]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR _sensorFile$[esp+ecx+280]
	lea	ecx, DWORD PTR _sensorFile$[esp+ecx+272]
	or	eax, 2
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN33@Entered
	or	eax, 4
$LN33@Entered:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN31@Entered:

; 205  : 			return;

	lea	ecx, DWORD PTR _sensorFile$[esp+360]
	mov	DWORD PTR __$EHRec$[esp+280], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	eax, DWORD PTR _sensorFile$[esp+360]
	push	eax
	jmp	$LN68@Entered
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z$0:
	lea	ecx, DWORD PTR _sensorFile$[ebp]
	jmp	??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
__ehhandler$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z:
	mov	eax, OFFSET __ehfuncinfo$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z ENDP		; NHP_Sensor_Array_Zone::Entered
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio 8\vc\include\xiosbase
xdata$x	SEGMENT
__unwindtable$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z$0
__ehfuncinfo$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
xdata$x	ENDS
;	COMDAT ?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
_TEXT	SEGMENT
_detectCount$ = -256					; size = 4
_sensorFile$ = -252					; size = 140
_detectName$ = -112					; size = 100
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
_exit$ = 12						; size = 4
?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z PROC		; NHP_Sensor_Array_Zone::Exited, COMDAT
; _this$ = ecx

; 212  : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 244				; 000000f4H
	push	edi
	mov	edi, ecx

; 213  : 	if (!SensorIsAlive)

	cmp	BYTE PTR [edi+28], 0
	je	$LN60@Exited
	push	ebx
	push	esi

; 214  : 		return;
; 215  : 	if (Get_Int_Parameter("Check_Team") == Commands->Get_Player_Type(exit))

	push	OFFSET ??_C@_0L@HNDGGODA@Check_Team?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	ebx, DWORD PTR _exit$[esp+264]
	mov	esi, eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	push	ebx
	call	ecx
	add	esp, 4
	cmp	esi, eax
	je	$LN67@Exited

; 216  : 		return;
; 217  : 	std::ifstream sensorFile(Get_Parameter("Sensor_List_File"));

	push	1
	push	64					; 00000040H
	push	1
	push	OFFSET ??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
	mov	ecx, edi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+284]
	call	??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >
	xor	esi, esi

; 218  : 	int detectCount;
; 219  : 	char detectName[100];
; 220  : 	if (!sensorFile.is_open())

	cmp	DWORD PTR _sensorFile$[esp+352], esi
	mov	DWORD PTR __$EHRec$[esp+276], esi
	jne	SHORT $LN7@Exited

; 221  : 	{
; 222  : 		Commands->Display_Int(0,"ERROR! Sensor can not find file for sensor list");

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+316]
	push	OFFSET ??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
	push	esi
	call	eax
	add	esp, 8

; 223  : 		return;

	lea	ecx, DWORD PTR _sensorFile$[esp+356]
	mov	DWORD PTR __$EHRec$[esp+276], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	ecx, DWORD PTR _sensorFile$[esp+356]
	push	ecx
	mov	DWORD PTR _sensorFile$[esp+360], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	jmp	$LN67@Exited
$LN7@Exited:
	push	ebp

; 224  : 	}
; 225  : 	sensorFile >> detectCount;

	lea	edx, DWORD PTR _detectCount$[esp+272]
	push	edx
	lea	ecx, DWORD PTR _sensorFile$[esp+276]
	call	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>

; 226  : 	for (int i=0;i<=detectCount;i++)

	mov	ebp, DWORD PTR _detectCount$[esp+272]
	test	ebp, ebp
	jl	SHORT $LN4@Exited
	npad	3
$LL6@Exited:

; 227  : 	{
; 228  : 		sensorFile >> detectName;

	lea	eax, DWORD PTR _detectName$[esp+272]
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+276]
	push	ecx
	call	??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ; std::operator>><char,std::char_traits<char> >

; 229  : 		if (!_stricmp(Commands->Get_Preset_Name(exit),detectName))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	add	esp, 8
	lea	edx, DWORD PTR _detectName$[esp+272]
	push	edx
	push	ebx
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN63@Exited
	add	esi, 1
	cmp	esi, ebp
	jle	SHORT $LL6@Exited
$LN4@Exited:

; 242  : 		}
; 243  : 	}
; 244  : 	sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+280]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $LN51@Exited
	mov	ecx, DWORD PTR _sensorFile$[esp+272]
	mov	ecx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR _sensorFile$[esp+ecx+280]
	lea	ecx, DWORD PTR _sensorFile$[esp+ecx+272]
	or	eax, 2
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN53@Exited
	or	eax, 4
$LN53@Exited:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN51@Exited:

; 245  : }

	lea	ecx, DWORD PTR _sensorFile$[esp+360]
	mov	DWORD PTR __$EHRec$[esp+280], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	edx, DWORD PTR _sensorFile$[esp+360]
	push	edx
$LN70@Exited:
	mov	DWORD PTR _sensorFile$[esp+364], OFFSET ??_7ios_base@std@@6B@
	call	?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z ; std::ios_base::_Ios_base_dtor
	add	esp, 4
	pop	ebp
$LN67@Exited:
	pop	esi
	pop	ebx
$LN60@Exited:
	mov	ecx, DWORD PTR __$EHRec$[esp+260]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	add	esp, 256				; 00000100H
	ret	8
$LN63@Exited:

; 230  : 		{
; 231  : 			count--;

	or	esi, -1
	add	DWORD PTR [edi+32], esi

; 232  : 			if (count < 0)

	jns	SHORT $LN65@Exited

; 233  : 				count = 0;

	mov	DWORD PTR [edi+32], 0
$LN65@Exited:

; 234  : 			if (!count)

	cmp	DWORD PTR [edi+32], 0
	jne	SHORT $LN1@Exited

; 235  : 			{
; 236  : 				Commands->Stop_Sound(soundId,false);

	mov	edx, DWORD PTR [edi+36]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+200]
	push	0
	push	edx
	call	ecx
	add	esp, 8
$LN1@Exited:

; 237  : 			}
; 238  : 			//Tell the object that it has left
; 239  : 			Commands->Send_Custom_Event(obj,exit,20103020,1,0);

	fldz
	mov	edx, DWORD PTR _obj$[esp+268]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	ecx, DWORD PTR [eax+140]
	fstp	DWORD PTR [esp]
	push	1
	push	20103020				; 0132bf6cH
	push	ebx
	push	edx
	call	ecx
	add	esp, 20					; 00000014H

; 240  : 			sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+280]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $LN32@Exited
	mov	edx, DWORD PTR _sensorFile$[esp+272]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR _sensorFile$[esp+ecx+280]
	lea	ecx, DWORD PTR _sensorFile$[esp+ecx+272]
	or	eax, 2
	cmp	DWORD PTR [ecx+40], 0
	jne	SHORT $LN34@Exited
	or	eax, 4
$LN34@Exited:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$LN32@Exited:

; 241  : 			return;

	lea	ecx, DWORD PTR _sensorFile$[esp+360]
	mov	DWORD PTR __$EHRec$[esp+280], esi
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	eax, DWORD PTR _sensorFile$[esp+360]
	push	eax
	jmp	$LN70@Exited
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z$0:
	lea	ecx, DWORD PTR _sensorFile$[ebp]
	jmp	??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
__ehhandler$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z:
	mov	eax, OFFSET __ehfuncinfo$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z ENDP		; NHP_Sensor_Array_Zone::Exited
PUBLIC	??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@	; `string'
PUBLIC	??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@ ; `string'
EXTRN	_atexit:PROC
;	COMDAT ??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@ DB 'NHP_Construction_AI', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@
CONST	SEGMENT
??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@ DB 'Money_Gen:str'
	DB	'ing,Guard_Inf:string,Attack_Unit:string,Money_Limit:int,Guard'
	DB	'_Limit:int,Attack_Limit:int,Time_Delay:float,Money_Waypath:in'
	DB	't,Guard_Waypath:int,Attack_Waypath:int', 00H ; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ??__ENHP_Construction_AI_Registrant@@YAXXZ
text$yc	SEGMENT
??__ENHP_Construction_AI_Registrant@@YAXXZ PROC		; `dynamic initializer for 'NHP_Construction_AI_Registrant'', COMDAT

; 290  : ScriptRegistrant<NHP_Construction_AI> NHP_Construction_AI_Registrant("NHP_Construction_AI","Money_Gen:string,Guard_Inf:string,Attack_Unit:string,Money_Limit:int,Guard_Limit:int,Attack_Limit:int,Time_Delay:float,Money_Waypath:int,Guard_Waypath:int,Attack_Waypath:int");

	push	OFFSET ??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@
	push	OFFSET ??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@
	mov	ecx, OFFSET ?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A ; NHP_Construction_AI_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FNHP_Construction_AI_Registrant@@YAXXZ ; `dynamic atexit destructor for 'NHP_Construction_AI_Registrant''
	mov	DWORD PTR ?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A, OFFSET ??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__ENHP_Construction_AI_Registrant@@YAXXZ ENDP		; `dynamic initializer for 'NHP_Construction_AI_Registrant''
text$yc	ENDS
PUBLIC	??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@	; `string'
PUBLIC	??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@ ; `string'
;	COMDAT ??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@ DB 'NHP_Smart_Targetting', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@
CONST	SEGMENT
??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@ DB 'Presets_1-4_W'
	DB	'eapon:string,Presets_5-6_Weapon:string,Other_Weapon:string,Pr'
	DB	'eset_One:string,Preset_Two:string,Preset_Three:string,Preset_'
	DB	'Four:string,Preset_Five:string,Preset_Six:string,Preset_Seven'
	DB	':string,Preset_Eight:string', 00H		; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ??__ENHP_Smart_Targetting_Registrant@@YAXXZ
text$yc	SEGMENT
??__ENHP_Smart_Targetting_Registrant@@YAXXZ PROC	; `dynamic initializer for 'NHP_Smart_Targetting_Registrant'', COMDAT

; 291  : ScriptRegistrant<NHP_Smart_Targetting> NHP_Smart_Targetting_Registrant("NHP_Smart_Targetting","Presets_1-4_Weapon:string,Presets_5-6_Weapon:string,Other_Weapon:string,Preset_One:string,Preset_Two:string,Preset_Three:string,Preset_Four:string,Preset_Five:string,Preset_Six:string,Preset_Seven:string,Preset_Eight:string");

	push	OFFSET ??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@
	push	OFFSET ??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@
	mov	ecx, OFFSET ?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A ; NHP_Smart_Targetting_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FNHP_Smart_Targetting_Registrant@@YAXXZ ; `dynamic atexit destructor for 'NHP_Smart_Targetting_Registrant''
	mov	DWORD PTR ?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A, OFFSET ??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__ENHP_Smart_Targetting_Registrant@@YAXXZ ENDP	; `dynamic initializer for 'NHP_Smart_Targetting_Registrant''
text$yc	ENDS
PUBLIC	??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@		; `string'
PUBLIC	??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@ ; `string'
;	COMDAT ??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@ DB 'NHP_Guard_Bot', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@
CONST	SEGMENT
??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@ DB 'Distance:float,'
	DB	'Speed:float', 00H				; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ??__ENHP_Guard_Bot_Registrant@@YAXXZ
text$yc	SEGMENT
??__ENHP_Guard_Bot_Registrant@@YAXXZ PROC		; `dynamic initializer for 'NHP_Guard_Bot_Registrant'', COMDAT

; 292  : ScriptRegistrant<NHP_Guard_Bot> NHP_Guard_Bot_Registrant("NHP_Guard_Bot","Distance:float,Speed:float");

	push	OFFSET ??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@
	push	OFFSET ??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@
	mov	ecx, OFFSET ?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A ; NHP_Guard_Bot_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FNHP_Guard_Bot_Registrant@@YAXXZ ; `dynamic atexit destructor for 'NHP_Guard_Bot_Registrant''
	mov	DWORD PTR ?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A, OFFSET ??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__ENHP_Guard_Bot_Registrant@@YAXXZ ENDP		; `dynamic initializer for 'NHP_Guard_Bot_Registrant''
text$yc	ENDS
PUBLIC	??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@	; `string'
PUBLIC	??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@ ; `string'
;	COMDAT ??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@ DB 'NHP_Sensor_Array_Zone', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@
CONST	SEGMENT
??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@ DB 'Sensor_List_Fi'
	DB	'le:string,Sound_Preset:string,Sound_Position:vector3,Check_Te'
	DB	'am:int', 00H				; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ??__ENHP_Sensor_Array_Zone_Registrant@@YAXXZ
text$yc	SEGMENT
??__ENHP_Sensor_Array_Zone_Registrant@@YAXXZ PROC	; `dynamic initializer for 'NHP_Sensor_Array_Zone_Registrant'', COMDAT

; 293  : ScriptRegistrant<NHP_Sensor_Array_Zone> NHP_Sensor_Array_Zone_Registrant("NHP_Sensor_Array_Zone","Sensor_List_File:string,Sound_Preset:string,Sound_Position:vector3,Check_Team:int");

	push	OFFSET ??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@
	push	OFFSET ??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@
	mov	ecx, OFFSET ?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A ; NHP_Sensor_Array_Zone_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FNHP_Sensor_Array_Zone_Registrant@@YAXXZ ; `dynamic atexit destructor for 'NHP_Sensor_Array_Zone_Registrant''
	mov	DWORD PTR ?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A, OFFSET ??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__ENHP_Sensor_Array_Zone_Registrant@@YAXXZ ENDP	; `dynamic initializer for 'NHP_Sensor_Array_Zone_Registrant''
text$yc	ENDS
PUBLIC	??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@	; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
;	COMDAT ??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@ DB 'NHP_Sensorable_Object', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\nhp.cpp
CONST	ENDS
;	COMDAT ??__ENHP_Sensorable_Object_Registrant@@YAXXZ
text$yc	SEGMENT
??__ENHP_Sensorable_Object_Registrant@@YAXXZ PROC	; `dynamic initializer for 'NHP_Sensorable_Object_Registrant'', COMDAT

; 294  : ScriptRegistrant<NHP_Sensorable_Object> NHP_Sensorable_Object_Registrant("NHP_Sensorable_Object","");

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	OFFSET ??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@
	mov	ecx, OFFSET ?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A ; NHP_Sensorable_Object_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FNHP_Sensorable_Object_Registrant@@YAXXZ ; `dynamic atexit destructor for 'NHP_Sensorable_Object_Registrant''
	mov	DWORD PTR ?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A, OFFSET ??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__ENHP_Sensorable_Object_Registrant@@YAXXZ ENDP	; `dynamic initializer for 'NHP_Sensorable_Object_Registrant''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FNHP_Construction_AI_Registrant@@YAXXZ
text$yd	SEGMENT
??__FNHP_Construction_AI_Registrant@@YAXXZ PROC		; `dynamic atexit destructor for 'NHP_Construction_AI_Registrant'', COMDAT
	mov	ecx, OFFSET ?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A ; NHP_Construction_AI_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FNHP_Construction_AI_Registrant@@YAXXZ ENDP		; `dynamic atexit destructor for 'NHP_Construction_AI_Registrant''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FNHP_Smart_Targetting_Registrant@@YAXXZ
text$yd	SEGMENT
??__FNHP_Smart_Targetting_Registrant@@YAXXZ PROC	; `dynamic atexit destructor for 'NHP_Smart_Targetting_Registrant'', COMDAT
	mov	ecx, OFFSET ?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A ; NHP_Smart_Targetting_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FNHP_Smart_Targetting_Registrant@@YAXXZ ENDP	; `dynamic atexit destructor for 'NHP_Smart_Targetting_Registrant''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FNHP_Guard_Bot_Registrant@@YAXXZ
text$yd	SEGMENT
??__FNHP_Guard_Bot_Registrant@@YAXXZ PROC		; `dynamic atexit destructor for 'NHP_Guard_Bot_Registrant'', COMDAT
	mov	ecx, OFFSET ?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A ; NHP_Guard_Bot_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FNHP_Guard_Bot_Registrant@@YAXXZ ENDP		; `dynamic atexit destructor for 'NHP_Guard_Bot_Registrant''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FNHP_Sensor_Array_Zone_Registrant@@YAXXZ
text$yd	SEGMENT
??__FNHP_Sensor_Array_Zone_Registrant@@YAXXZ PROC	; `dynamic atexit destructor for 'NHP_Sensor_Array_Zone_Registrant'', COMDAT
	mov	ecx, OFFSET ?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A ; NHP_Sensor_Array_Zone_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FNHP_Sensor_Array_Zone_Registrant@@YAXXZ ENDP	; `dynamic atexit destructor for 'NHP_Sensor_Array_Zone_Registrant''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FNHP_Sensorable_Object_Registrant@@YAXXZ
text$yd	SEGMENT
??__FNHP_Sensorable_Object_Registrant@@YAXXZ PROC	; `dynamic atexit destructor for 'NHP_Sensorable_Object_Registrant'', COMDAT
	mov	ecx, OFFSET ?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A ; NHP_Sensorable_Object_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FNHP_Sensorable_Object_Registrant@@YAXXZ ENDP	; `dynamic atexit destructor for 'NHP_Sensorable_Object_Registrant''
text$yd	ENDS
PUBLIC	?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A ; NHP_Smart_Targetting_Registrant
PUBLIC	?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A ; NHP_Sensorable_Object_Registrant
PUBLIC	?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A ; NHP_Sensor_Array_Zone_Registrant
PUBLIC	?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A ; NHP_Guard_Bot_Registrant
PUBLIC	?id@?$numpunct@D@std@@2V0locale@2@A		; std::numpunct<char>::id
PUBLIC	?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A ; NHP_Construction_AI_Registrant
PUBLIC	?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
PUBLIC	?id@?$codecvt@DDH@std@@2V0locale@2@A		; std::codecvt<char,char,int>::id
_BSS	SEGMENT
?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A DB 010H DUP (?) ; NHP_Smart_Targetting_Registrant
?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A DB 010H DUP (?) ; NHP_Sensorable_Object_Registrant
?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A DB 010H DUP (?) ; NHP_Sensor_Array_Zone_Registrant
?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A DB 010H DUP (?) ; NHP_Guard_Bot_Registrant
_BSS	ENDS
;	COMDAT ?id@?$numpunct@D@std@@2V0locale@2@A
_BSS	SEGMENT
?id@?$numpunct@D@std@@2V0locale@2@A DD 01H DUP (?)	; std::numpunct<char>::id
_BSS	ENDS
_BSS	SEGMENT
?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A DB 010H DUP (?) ; NHP_Construction_AI_Registrant
_BSS	ENDS
;	COMDAT ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A
_BSS	SEGMENT
?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A DD 01H DUP (?) ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
_BSS	ENDS
;	COMDAT ?id@?$codecvt@DDH@std@@2V0locale@2@A
_BSS	SEGMENT
?id@?$codecvt@DDH@std@@2V0locale@2@A DD 01H DUP (?)	; std::codecvt<char,char,int>::id
_BSS	ENDS
CRT$XCU	SEGMENT
_NHP_Construction_AI_Registrant$initializer$ DD FLAT:??__ENHP_Construction_AI_Registrant@@YAXXZ
_NHP_Smart_Targetting_Registrant$initializer$ DD FLAT:??__ENHP_Smart_Targetting_Registrant@@YAXXZ
_NHP_Guard_Bot_Registrant$initializer$ DD FLAT:??__ENHP_Guard_Bot_Registrant@@YAXXZ
_NHP_Sensor_Array_Zone_Registrant$initializer$ DD FLAT:??__ENHP_Sensor_Array_Zone_Registrant@@YAXXZ
_NHP_Sensorable_Object_Registrant$initializer$ DD FLAT:??__ENHP_Sensorable_Object_Registrant@@YAXXZ
CRT$XCU	ENDS
END
