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

	TITLE	d:\Source Code\STGM\stmisc.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
EXTRN	__time64:PROC
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\time.inl
;	COMDAT _time
_TEXT	SEGMENT
_time	PROC						; COMDAT
; __Time$ = eax

; 135  :     return _time64(_Time);

	push	eax
	call	__time64
	add	esp, 4

; 136  : }

	ret	0
_time	ENDP
_TEXT	ENDS
PUBLIC	??_7bad_alloc@std@@6B@				; std::bad_alloc::`vftable'
PUBLIC	??0bad_alloc@std@@QAE@PBD@Z			; std::bad_alloc::bad_alloc
PUBLIC	??_R4bad_alloc@std@@6B@				; std::bad_alloc::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVbad_alloc@std@@@8			; std::bad_alloc `RTTI Type Descriptor'
PUBLIC	??_R3bad_alloc@std@@8				; std::bad_alloc::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2bad_alloc@std@@8				; std::bad_alloc::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@bad_alloc@std@@8			; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@exception@std@@8			; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVexception@std@@@8			; std::exception `RTTI Type Descriptor'
PUBLIC	??_R3exception@std@@8				; std::exception::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2exception@std@@8				; std::exception::`RTTI Base Class Array'
EXTRN	??0exception@std@@QAE@ABQBD@Z:PROC		; std::exception::exception
EXTRN	??_7type_info@@6B@:QWORD			; type_info::`vftable'
EXTRN	??_Ebad_alloc@std@@UAEPAXI@Z:PROC		; std::bad_alloc::`vector deleting destructor'
EXTRN	?what@exception@std@@UBEPBDXZ:PROC		; std::exception::what
;	COMDAT ??_R2exception@std@@8
; File c:\program files (x86)\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	??0aCriticalSection@@QAE@XZ			; aCriticalSection::aCriticalSection
EXTRN	__imp__InitializeCriticalSection@4:PROC
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\acriticalsection.h
;	COMDAT ??0aCriticalSection@@QAE@XZ
_TEXT	SEGMENT
??0aCriticalSection@@QAE@XZ PROC			; aCriticalSection::aCriticalSection, COMDAT
; _this$ = ecx

; 7    : 	aCriticalSection()

	push	esi
	mov	esi, ecx

; 8    : 	{
; 9    : 		InitializeCriticalSection(&this->m_session);

	push	esi
	call	DWORD PTR __imp__InitializeCriticalSection@4

; 10   : 	};

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

; 13   : 		DeleteCriticalSection(&this->m_session);

	push	ecx
	call	DWORD PTR __imp__DeleteCriticalSection@4

; 14   : 	};

	ret	0
??1aCriticalSection@@QAE@XZ ENDP			; aCriticalSection::~aCriticalSection
_TEXT	ENDS
PUBLIC	?Enter@aCriticalSection@@QAEXXZ			; aCriticalSection::Enter
EXTRN	__imp__EnterCriticalSection@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Enter@aCriticalSection@@QAEXXZ
_TEXT	SEGMENT
?Enter@aCriticalSection@@QAEXXZ PROC			; aCriticalSection::Enter, COMDAT
; _this$ = ecx

; 17   : 		EnterCriticalSection(&this->m_session);

	push	ecx
	call	DWORD PTR __imp__EnterCriticalSection@4

; 18   : 	};

	ret	0
?Enter@aCriticalSection@@QAEXXZ ENDP			; aCriticalSection::Enter
_TEXT	ENDS
PUBLIC	?Leave@aCriticalSection@@QAEXXZ			; aCriticalSection::Leave
EXTRN	__imp__LeaveCriticalSection@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Leave@aCriticalSection@@QAEXXZ
_TEXT	SEGMENT
?Leave@aCriticalSection@@QAEXXZ PROC			; aCriticalSection::Leave, COMDAT
; _this$ = ecx

; 21   : 		LeaveCriticalSection(&this->m_session);

	push	ecx
	call	DWORD PTR __imp__LeaveCriticalSection@4

; 22   : 	};

	ret	0
?Leave@aCriticalSection@@QAEXXZ ENDP			; aCriticalSection::Leave
_TEXT	ENDS
PUBLIC	?GetBuffer@aStringData@@QAEPAXXZ		; aStringData::GetBuffer
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\astring.h
;	COMDAT ?GetBuffer@aStringData@@QAEPAXXZ
_TEXT	SEGMENT
?GetBuffer@aStringData@@QAEPAXXZ PROC			; aStringData::GetBuffer, COMDAT
; _this$ = ecx

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

	mov	eax, DWORD PTR [ecx]
	ret	0
?GetBuffer@aStringData@@QAEPAXXZ ENDP			; aStringData::GetBuffer
_TEXT	ENDS
PUBLIC	??_7aString@@6B@				; aString::`vftable'
PUBLIC	??0aString@@QAE@ABV0@@Z				; aString::aString
PUBLIC	??_R4aString@@6B@				; aString::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVaString@@@8				; aString `RTTI Type Descriptor'
PUBLIC	??_R3aString@@8					; aString::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aString@@8					; aString::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@aString@@8			; aString::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@aStringBase@@8			; aStringBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVaStringBase@@@8				; aStringBase `RTTI Type Descriptor'
PUBLIC	??_R3aStringBase@@8				; aStringBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aStringBase@@8				; aStringBase::`RTTI Base Class Array'
PUBLIC	?CharSize@aString@@UBEIXZ			; aString::CharSize
EXTRN	??0aStringBase@@QAE@ABV0@@Z:PROC		; aStringBase::aStringBase
EXTRN	??_EaString@@UAEPAXI@Z:PROC			; aString::`vector deleting destructor'
;	COMDAT ??_R2aStringBase@@8
rdata$r	SEGMENT
??_R2aStringBase@@8 DD FLAT:??_R1A@?0A@EA@aStringBase@@8 ; aStringBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3aStringBase@@8
rdata$r	SEGMENT
??_R3aStringBase@@8 DD 00H				; aStringBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaStringBase@@@8
_DATA	SEGMENT
??_R0?AVaStringBase@@@8 DD FLAT:??_7type_info@@6B@	; aStringBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaStringBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@aStringBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aStringBase@@8 DD FLAT:??_R0?AVaStringBase@@@8 ; aStringBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@aString@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aString@@8 DD FLAT:??_R0?AVaString@@@8	; aString::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aString@@8
rdata$r	ENDS
;	COMDAT ??_R2aString@@8
rdata$r	SEGMENT
??_R2aString@@8 DD FLAT:??_R1A@?0A@EA@aString@@8	; aString::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R3aString@@8
rdata$r	SEGMENT
??_R3aString@@8 DD 00H					; aString::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2aString@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaString@@@8
_DATA	SEGMENT
??_R0?AVaString@@@8 DD FLAT:??_7type_info@@6B@		; aString `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaString@@', 00H
_DATA	ENDS
;	COMDAT ??_R4aString@@6B@
rdata$r	SEGMENT
??_R4aString@@6B@ DD 00H				; aString::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVaString@@@8
	DD	FLAT:??_R3aString@@8
rdata$r	ENDS
;	COMDAT ??_7aString@@6B@
CONST	SEGMENT
??_7aString@@6B@ DD FLAT:??_R4aString@@6B@		; aString::`vftable'
	DD	FLAT:??_EaString@@UAEPAXI@Z
	DD	FLAT:?CharSize@aString@@UBEIXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0aString@@QAE@ABV0@@Z
_TEXT	SEGMENT
_str$ = 8						; size = 4
??0aString@@QAE@ABV0@@Z PROC				; aString::aString, COMDAT
; _this$ = ecx

; 134  : 	aString(const aString& str) : aStringBase(str) { };

	mov	eax, DWORD PTR _str$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	mov	DWORD PTR [esi], OFFSET ??_7aString@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0aString@@QAE@ABV0@@Z ENDP				; aString::aString
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?CharSize@aString@@UBEIXZ
_TEXT	SEGMENT
?CharSize@aString@@UBEIXZ PROC				; aString::CharSize, COMDAT
; _this$ = ecx

; 143  : 	unsigned int CharSize() const { return 1; };

	mov	eax, 1
	ret	0
?CharSize@aString@@UBEIXZ ENDP				; aString::CharSize
_TEXT	ENDS
PUBLIC	?GetString@aString@@QBEPBDXZ			; aString::GetString
; Function compile flags: /Ogtpy
;	COMDAT ?GetString@aString@@QBEPBDXZ
_TEXT	SEGMENT
?GetString@aString@@QBEPBDXZ PROC			; aString::GetString, COMDAT
; _this$ = ecx

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

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString
	mov	eax, DWORD PTR [eax]
	ret	0
$LN3@GetString:
	xor	eax, eax
	ret	0
?GetString@aString@@QBEPBDXZ ENDP			; aString::GetString
_TEXT	ENDS
PUBLIC	?Free_String@aString@@QAEXXZ			; aString::Free_String
EXTRN	?Clear@aStringBase@@QAEXXZ:PROC			; aStringBase::Clear
; Function compile flags: /Ogtpy
;	COMDAT ?Free_String@aString@@QAEXXZ
_TEXT	SEGMENT
?Free_String@aString@@QAEXXZ PROC			; aString::Free_String, COMDAT
; _this$ = ecx

; 192  : 	aDEPRECATED inline void Free_String() { this->Clear(); };

	jmp	?Clear@aStringBase@@QAEXXZ		; aStringBase::Clear
?Free_String@aString@@QAEXXZ ENDP			; aString::Free_String
_TEXT	ENDS
PUBLIC	??1aString@@UAE@XZ				; aString::~aString
EXTRN	??1aStringBase@@UAE@XZ:PROC			; aStringBase::~aStringBase
; Function compile flags: /Ogtpy
;	COMDAT ??1aString@@UAE@XZ
_TEXT	SEGMENT
??1aString@@UAE@XZ PROC					; aString::~aString, COMDAT
; _this$ = ecx
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??1aString@@UAE@XZ ENDP					; aString::~aString
_TEXT	ENDS
PUBLIC	??0aRandom@@QAE@XZ				; aRandom::aRandom
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\arandom.h
;	COMDAT ??0aRandom@@QAE@XZ
_TEXT	SEGMENT
??0aRandom@@QAE@XZ PROC					; aRandom::aRandom, COMDAT
; _this$ = ecx

; 18   : 	aRandom()

	push	esi

; 19   : 	{
; 20   : 		this->m_seed = (unsigned int)time(0);

	push	0
	mov	esi, ecx
	call	__time64
	mov	DWORD PTR [esi+4], eax
	add	esp, 4

; 21   : 		this->m_count = 0;

	mov	DWORD PTR [esi], 0

; 22   : 	};

	mov	eax, esi
	pop	esi
	ret	0
??0aRandom@@QAE@XZ ENDP					; aRandom::aRandom
_TEXT	ENDS
PUBLIC	?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ ; gzManagerClass::Get_Explosion_Obj
EXTRN	?m_ExplosionObj@gzManagerClass@@2PAVnc_ScriptableGameObj@@A:DWORD ; gzManagerClass::m_ExplosionObj
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmanager.h
;	COMDAT ?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ
_TEXT	SEGMENT
?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ PROC ; gzManagerClass::Get_Explosion_Obj, COMDAT

; 53   : 		if (gzManagerClass::m_ExplosionObj)

	mov	eax, DWORD PTR ?m_ExplosionObj@gzManagerClass@@2PAVnc_ScriptableGameObj@@A ; gzManagerClass::m_ExplosionObj
	test	eax, eax
	je	SHORT $LN1@Get_Explos

; 54   : 			return *(nc_ScriptableGameObj **)gzManagerClass::m_ExplosionObj;

	mov	eax, DWORD PTR [eax]

; 56   : 	};

	ret	0
$LN1@Get_Explos:

; 55   : 		return NULL;

	xor	eax, eax

; 56   : 	};

	ret	0
?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ ENDP ; gzManagerClass::Get_Explosion_Obj
_TEXT	ENDS
PUBLIC	?GetSettings@gzGameManager@@QAEPAVgzSettingsGameClass@@XZ ; gzGameManager::GetSettings
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stgame.h
;	COMDAT ?GetSettings@gzGameManager@@QAEPAVgzSettingsGameClass@@XZ
_TEXT	SEGMENT
?GetSettings@gzGameManager@@QAEPAVgzSettingsGameClass@@XZ PROC ; gzGameManager::GetSettings, COMDAT
; _this$ = ecx

; 111  : 	gzSettingsGameClass *GetSettings() { return this->m_settings; };

	mov	eax, DWORD PTR [ecx+72]
	ret	0
?GetSettings@gzGameManager@@QAEPAVgzSettingsGameClass@@XZ ENDP ; gzGameManager::GetSettings
_TEXT	ENDS
PUBLIC	?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ	; gzPlayer::GetPlayerData
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stplayer.h
;	COMDAT ?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ
_TEXT	SEGMENT
?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ PROC	; gzPlayer::GetPlayerData, COMDAT
; _this$ = ecx

; 88   : 	inline nc_cPlayer *GetPlayerData() { return this->m_gameData; };

	mov	eax, DWORD PTR [ecx+76]
	ret	0
?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ ENDP	; gzPlayer::GetPlayerData
_TEXT	ENDS
PUBLIC	?IsActive@gzPlayer@@QAE_NXZ			; gzPlayer::IsActive
; Function compile flags: /Ogtpy
;	COMDAT ?IsActive@gzPlayer@@QAE_NXZ
_TEXT	SEGMENT
?IsActive@gzPlayer@@QAE_NXZ PROC			; gzPlayer::IsActive, COMDAT
; _this$ = ecx

; 89   : 	inline bool IsActive() { return this->m_isActive; };

	mov	al, BYTE PTR [ecx+88]
	ret	0
?IsActive@gzPlayer@@QAE_NXZ ENDP			; gzPlayer::IsActive
_TEXT	ENDS
PUBLIC	?GetBHSVersion@gzPlayer@@QAEMXZ			; gzPlayer::GetBHSVersion
EXTRN	__fltused:DWORD
; Function compile flags: /Ogtpy
;	COMDAT ?GetBHSVersion@gzPlayer@@QAEMXZ
_TEXT	SEGMENT
?GetBHSVersion@gzPlayer@@QAEMXZ PROC			; gzPlayer::GetBHSVersion, COMDAT
; _this$ = ecx

; 102  : 	inline float GetBHSVersion() { return this->m_bhsVersion; };

	fld	DWORD PTR [ecx+128]
	ret	0
?GetBHSVersion@gzPlayer@@QAEMXZ ENDP			; gzPlayer::GetBHSVersion
_TEXT	ENDS
PUBLIC	??_C@_01MCMALHOG@a?$AA@				; `string'
PUBLIC	??_C@_01FHEEJDEE@A?$AA@				; `string'
PUBLIC	??_C@_05ILKKMDLJ@aeiou?$AA@			; `string'
PUBLIC	??_C@_02LCNFMBND@an?$AA@			; `string'
PUBLIC	??_C@_02IKJIIHDD@An?$AA@			; `string'
PUBLIC	??_C@_04LMOJGCPE@hour?$AA@			; `string'
PUBLIC	?A_Or_An@@YAPADPBD_N@Z				; A_Or_An
EXTRN	_tolower:PROC
EXTRN	_stricmp:PROC
;	COMDAT ??_C@_01MCMALHOG@a?$AA@
; File d:\source code\stgm\stmisc.cpp
CONST	SEGMENT
??_C@_01MCMALHOG@a?$AA@ DB 'a', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_01FHEEJDEE@A?$AA@
CONST	SEGMENT
??_C@_01FHEEJDEE@A?$AA@ DB 'A', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_05ILKKMDLJ@aeiou?$AA@
CONST	SEGMENT
??_C@_05ILKKMDLJ@aeiou?$AA@ DB 'aeiou', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_02LCNFMBND@an?$AA@
CONST	SEGMENT
??_C@_02LCNFMBND@an?$AA@ DB 'an', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_02IKJIIHDD@An?$AA@
CONST	SEGMENT
??_C@_02IKJIIHDD@An?$AA@ DB 'An', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_04LMOJGCPE@hour?$AA@
CONST	SEGMENT
??_C@_04LMOJGCPE@hour?$AA@ DB 'hour', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?A_Or_An@@YAPADPBD_N@Z
_TEXT	SEGMENT
_String$ = 8						; size = 4
_captial$ = 12						; size = 1
?A_Or_An@@YAPADPBD_N@Z PROC				; A_Or_An, COMDAT

; 19   : {

	push	edi

; 20   : 	if (!String || !*String)

	mov	edi, DWORD PTR _String$[esp]
	test	edi, edi
	je	SHORT $LN5@A_Or_An
	cmp	BYTE PTR [edi], 0
	je	SHORT $LN5@A_Or_An

; 22   : 	if (!stricmp(String,"hour"))

	push	OFFSET ??_C@_04LMOJGCPE@hour?$AA@
	push	edi
	call	_stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN4@A_Or_An

; 23   : 		return (captial ? "An" : "an");

	cmp	BYTE PTR _captial$[esp], al
	mov	eax, OFFSET ??_C@_02IKJIIHDD@An?$AA@
	jne	SHORT $LN7@A_Or_An
	mov	eax, OFFSET ??_C@_02LCNFMBND@an?$AA@
	pop	edi

; 32   : }

	ret	0
$LN4@A_Or_An:
	push	esi

; 24   : 	const char *aeiou = "aeiou";

	mov	esi, OFFSET ??_C@_05ILKKMDLJ@aeiou?$AA@
	npad	8
$LL3@A_Or_An:

; 25   : 	while (*aeiou)
; 26   : 	{
; 27   : 		if (tolower(*String) == *aeiou)

	movsx	eax, BYTE PTR [edi]
	push	eax
	call	_tolower
	movsx	ecx, BYTE PTR [esi]
	add	esp, 4
	cmp	eax, ecx
	je	SHORT $LN18@A_Or_An

; 29   : 		*aeiou++;

	add	esi, 1
	cmp	BYTE PTR [esi], 0
	jne	SHORT $LL3@A_Or_An

; 30   : 	}
; 31   : 	return (captial ? "A" : "a");

	cmp	BYTE PTR _captial$[esp+4], 0
	mov	eax, OFFSET ??_C@_01FHEEJDEE@A?$AA@
	jne	SHORT $LN20@A_Or_An
	mov	eax, OFFSET ??_C@_01MCMALHOG@a?$AA@
$LN20@A_Or_An:
	pop	esi
$LN7@A_Or_An:
	pop	edi

; 32   : }

	ret	0
$LN18@A_Or_An:

; 28   : 			return (captial ? "An" : "an");

	cmp	BYTE PTR _captial$[esp+4], 0
	mov	eax, OFFSET ??_C@_02IKJIIHDD@An?$AA@
	jne	SHORT $LN20@A_Or_An
	pop	esi
	mov	eax, OFFSET ??_C@_02LCNFMBND@an?$AA@
	pop	edi

; 32   : }

	ret	0
$LN5@A_Or_An:

; 21   : 		return (captial ? "A" : "a");

	cmp	BYTE PTR _captial$[esp], 0
	mov	eax, OFFSET ??_C@_01FHEEJDEE@A?$AA@
	jne	SHORT $LN7@A_Or_An
	mov	eax, OFFSET ??_C@_01MCMALHOG@a?$AA@
	pop	edi

; 32   : }

	ret	0
?A_Or_An@@YAPADPBD_N@Z ENDP				; A_Or_An
_TEXT	ENDS
PUBLIC	?PatchData@@YAXPAXKK@Z				; PatchData
EXTRN	__imp__CloseHandle@4:PROC
EXTRN	__imp__WriteProcessMemory@20:PROC
EXTRN	__imp__OpenProcess@12:PROC
EXTRN	__imp__GetCurrentProcessId@0:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?PatchData@@YAXPAXKK@Z
_TEXT	SEGMENT
_buf$ = 8						; size = 4
_size$ = 12						; size = 4
_addr$ = 16						; size = 4
?PatchData@@YAXPAXKK@Z PROC				; PatchData, COMDAT

; 34   : void PatchData(void *buf, unsigned long size, unsigned long addr){

	push	esi

; 35   : 	unsigned long PID = GetCurrentProcessId();

	call	DWORD PTR __imp__GetCurrentProcessId@0

; 36   : 	HANDLE PHandle = OpenProcess(PROCESS_ALL_ACCESS, false, PID);

	push	eax
	push	0
	push	2035711					; 001f0fffH
	call	DWORD PTR __imp__OpenProcess@12

; 37   : 	WriteProcessMemory(PHandle, (void *)addr, buf, size, NULL);

	mov	ecx, DWORD PTR _buf$[esp]
	mov	edx, DWORD PTR _addr$[esp]
	push	0
	mov	esi, eax
	mov	eax, DWORD PTR _size$[esp+4]
	push	eax
	push	ecx
	push	edx
	push	esi
	call	DWORD PTR __imp__WriteProcessMemory@20

; 38   : 	CloseHandle(PHandle);

	push	esi
	call	DWORD PTR __imp__CloseHandle@4
	pop	esi

; 39   : }

	ret	0
?PatchData@@YAXPAXKK@Z ENDP				; PatchData
_TEXT	ENDS
PUBLIC	?PatchByte@@YAXEKK@Z				; PatchByte
; Function compile flags: /Ogtpy
;	COMDAT ?PatchByte@@YAXEKK@Z
_TEXT	SEGMENT
_Byte$ = 8						; size = 1
_size$ = 12						; size = 4
_addr$ = 16						; size = 4
?PatchByte@@YAXEKK@Z PROC				; PatchByte, COMDAT

; 41   : void PatchByte(unsigned char Byte, unsigned long size, unsigned long addr) {

	push	edi

; 42   : 	for (unsigned long i = 0; i < size; i++)

	xor	edi, edi
	cmp	DWORD PTR _size$[esp], edi
	jbe	SHORT $LN1@PatchByte
	push	ebx
	mov	ebx, DWORD PTR _addr$[esp+4]
	push	ebp
	mov	ebp, DWORD PTR __imp__GetCurrentProcessId@0
	push	esi
$LL10@PatchByte:

; 43   : 		PatchData(&Byte,1,addr +i);

	call	ebp
	push	eax
	push	0
	push	2035711					; 001f0fffH
	call	DWORD PTR __imp__OpenProcess@12
	push	0
	mov	esi, eax
	push	1
	lea	eax, DWORD PTR _Byte$[esp+20]
	push	eax
	lea	ecx, DWORD PTR [edi+ebx]
	push	ecx
	push	esi
	call	DWORD PTR __imp__WriteProcessMemory@20
	push	esi
	call	DWORD PTR __imp__CloseHandle@4
	add	edi, 1
	cmp	edi, DWORD PTR _size$[esp+12]
	jb	SHORT $LL10@PatchByte
	pop	esi
	pop	ebp
	pop	ebx
$LN1@PatchByte:
	pop	edi

; 44   : }

	ret	0
?PatchByte@@YAXEKK@Z ENDP				; PatchByte
_TEXT	ENDS
PUBLIC	??_C@_0BI@ODOABGBJ@?$FL?$CF02d?3?$CF02d?3?$CF02d?$FN?5?$CFs?5?$CFs?6?$AA@ ; `string'
PUBLIC	??_C@_03OFAPEBGM@?$CFs?6?$AA@			; `string'
PUBLIC	??_C@_0N@FMEEKKK@?4?2stmisc?4cpp?$AA@		; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	??_C@_0BC@FJGHMCHK@?$CFs_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@ ; `string'
PUBLIC	?gzLogger@@YAXPBD0ZZ				; gzLogger
EXTRN	??1aFile@@UAE@XZ:PROC				; aFile::~aFile
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	?Write@aFile@@QAEIABVaString@@I@Z:PROC		; aFile::Write
EXTRN	?GetHour@aDateTime@@QAEIXZ:PROC			; aDateTime::GetHour
EXTRN	?GetMinute@aDateTime@@QAEIXZ:PROC		; aDateTime::GetMinute
EXTRN	?GetSecond@aDateTime@@QAEIXZ:PROC		; aDateTime::GetSecond
EXTRN	_printf:PROC
EXTRN	_vsprintf:PROC
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
EXTRN	__vscprintf:PROC
EXTRN	?IsOpened@aFile@@UAE_NXZ:PROC			; aFile::IsOpened
EXTRN	??0aFile@@QAE@ABVaString@@PBD@Z:PROC		; aFile::aFile
EXTRN	?Format@aString@@SA?AV1@PBDZZ:PROC		; aString::Format
EXTRN	?GetMonth@aDateTime@@QAEIXZ:PROC		; aDateTime::GetMonth
EXTRN	?GetDay@aDateTime@@QAEIXZ:PROC			; aDateTime::GetDay
EXTRN	?GetYear@aDateTime@@QAEIXZ:PROC			; aDateTime::GetYear
EXTRN	?gzGameMgr@@3PAVgzGameManager@@A:DWORD		; gzGameMgr
EXTRN	?Now@aDateTime@@SA?AV1@XZ:PROC			; aDateTime::Now
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT ??_C@_0BI@ODOABGBJ@?$FL?$CF02d?3?$CF02d?3?$CF02d?$FN?5?$CFs?5?$CFs?6?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0BI@ODOABGBJ@?$FL?$CF02d?3?$CF02d?3?$CF02d?$FN?5?$CFs?5?$CFs?6?$AA@ DB '['
	DB	'%02d:%02d:%02d] %s %s', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_03OFAPEBGM@?$CFs?6?$AA@
CONST	SEGMENT
??_C@_03OFAPEBGM@?$CFs?6?$AA@ DB '%s', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@FMEEKKK@?4?2stmisc?4cpp?$AA@
CONST	SEGMENT
??_C@_0N@FMEEKKK@?4?2stmisc?4cpp?$AA@ DB '.\stmisc.cpp', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@FJGHMCHK@?$CFs_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@
CONST	SEGMENT
??_C@_0BC@FJGHMCHK@?$CFs_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@ DB '%s_%d-%d-%04'
	DB	'd.txt', 00H					; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?gzLogger@@YAXPBD0ZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?gzLogger@@YAXPBD0ZZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?gzLogger@@YAXPBD0ZZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?gzLogger@@YAXPBD0ZZ$1
	DD	02H
	DD	FLAT:__unwindfunclet$?gzLogger@@YAXPBD0ZZ$2
__ehfuncinfo$?gzLogger@@YAXPBD0ZZ DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$?gzLogger@@YAXPBD0ZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmisc.cpp
xdata$x	ENDS
;	COMDAT ?gzLogger@@YAXPBD0ZZ
_TEXT	SEGMENT
$T64063 = -72						; size = 8
$T64067 = -64						; size = 8
_log$ = -56						; size = 20
_now$ = -36						; size = 24
__$EHRec$ = -12						; size = 12
_header$ = 8						; size = 4
_msg$ = 12						; size = 4
?gzLogger@@YAXPBD0ZZ PROC				; gzLogger, COMDAT

; 47   : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?gzLogger@@YAXPBD0ZZ
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 60					; 0000003cH

; 48   : 	aDateTime now = aDateTime::Now();

	lea	eax, DWORD PTR _now$[esp+72]
	push	esi
	push	eax
	call	?Now@aDateTime@@SA?AV1@XZ		; aDateTime::Now

; 49   : 	aFile log(aString::Format("%s_%d-%d-%04d.txt", gzGameMgr->GetSettings()->m_LogRoot.GetString(),	now.GetMonth(),	now.GetDay(), now.GetYear()), "a");

	mov	ecx, DWORD PTR ?gzGameMgr@@3PAVgzGameManager@@A ; gzGameMgr
	mov	eax, DWORD PTR [ecx+72]
	mov	eax, DWORD PTR [eax+108]
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@gzLogger
	mov	esi, DWORD PTR [eax]
	jmp	SHORT $LN16@gzLogger
$LN15@gzLogger:
	xor	esi, esi
$LN16@gzLogger:
	lea	ecx, DWORD PTR _now$[esp+76]
	call	?GetYear@aDateTime@@QAEIXZ		; aDateTime::GetYear
	push	eax
	lea	ecx, DWORD PTR _now$[esp+80]
	call	?GetDay@aDateTime@@QAEIXZ		; aDateTime::GetDay
	push	eax
	lea	ecx, DWORD PTR _now$[esp+84]
	call	?GetMonth@aDateTime@@QAEIXZ		; aDateTime::GetMonth
	push	eax
	push	esi
	lea	edx, DWORD PTR $T64063[esp+92]
	push	OFFSET ??_C@_0BC@FJGHMCHK@?$CFs_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 24					; 00000018H
	push	OFFSET ??_C@_01MCMALHOG@a?$AA@
	push	eax
	lea	ecx, DWORD PTR _log$[esp+84]
	mov	DWORD PTR __$EHRec$[esp+92], 0
	call	??0aFile@@QAE@ABVaString@@PBD@Z		; aFile::aFile
	lea	ecx, DWORD PTR $T64063[esp+76]
	mov	BYTE PTR __$EHRec$[esp+84], 2
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 50   : 	if (log.IsOpened())

	lea	ecx, DWORD PTR _log$[esp+76]
	call	?IsOpened@aFile@@UAE_NXZ		; aFile::IsOpened
	test	al, al
	je	$LN7@gzLogger

; 51   : 	{
; 52   : 		va_list arg;
; 53   : 		va_start(arg, msg);
; 54   : 		int len = _vscprintf(msg, arg);

	mov	ecx, DWORD PTR _msg$[esp+72]
	lea	eax, DWORD PTR _msg$[esp+76]
	push	eax
	push	ecx
	call	__vscprintf

; 55   : 		char *fmsg = new char[len + 1];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	55					; 00000037H
	push	OFFSET ??_C@_0N@FMEEKKK@?4?2stmisc?4cpp?$AA@
	mov	esi, eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	add	esi, 1
	push	esi
	call	??_U@YAPAXI@Z				; operator new[]
	mov	esi, eax

; 56   : 		vsprintf(fmsg, msg, arg);

	mov	eax, DWORD PTR _msg$[esp+96]
	lea	edx, DWORD PTR _msg$[esp+100]
	push	edx
	push	eax
	push	esi
	call	_vsprintf

; 57   : 		va_end(arg);
; 58   : 		printf("%s\n", fmsg);

	push	esi
	push	OFFSET ??_C@_03OFAPEBGM@?$CFs?6?$AA@
	call	_printf

; 59   : 		log.Write(aString::Format("[%02d:%02d:%02d] %s %s\n",	now.GetHour(), now.GetMinute(),now.GetSecond(), header, fmsg));

	mov	ecx, DWORD PTR _header$[esp+116]
	add	esp, 44					; 0000002cH
	push	esi
	push	ecx
	lea	ecx, DWORD PTR _now$[esp+84]
	call	?GetSecond@aDateTime@@QAEIXZ		; aDateTime::GetSecond
	push	eax
	lea	ecx, DWORD PTR _now$[esp+88]
	call	?GetMinute@aDateTime@@QAEIXZ		; aDateTime::GetMinute
	push	eax
	lea	ecx, DWORD PTR _now$[esp+92]
	call	?GetHour@aDateTime@@QAEIXZ		; aDateTime::GetHour
	push	eax
	lea	edx, DWORD PTR $T64067[esp+96]
	push	OFFSET ??_C@_0BI@ODOABGBJ@?$FL?$CF02d?3?$CF02d?3?$CF02d?$FN?5?$CFs?5?$CFs?6?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 28					; 0000001cH
	push	0
	push	eax
	lea	ecx, DWORD PTR _log$[esp+84]
	mov	BYTE PTR __$EHRec$[esp+92], 3
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write
	lea	ecx, DWORD PTR $T64067[esp+76]
	mov	BYTE PTR __$EHRec$[esp+84], 2
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 60   : 		delete[] fmsg;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	60					; 0000003cH
	push	OFFSET ??_C@_0N@FMEEKKK@?4?2stmisc?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN7@gzLogger:

; 61   : 	}
; 62   : }

	lea	ecx, DWORD PTR _log$[esp+76]
	mov	DWORD PTR __$EHRec$[esp+84], -1
	call	??1aFile@@UAE@XZ			; aFile::~aFile
	mov	ecx, DWORD PTR __$EHRec$[esp+76]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 72					; 00000048H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?gzLogger@@YAXPBD0ZZ$0:
	lea	ecx, DWORD PTR $T64063[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?gzLogger@@YAXPBD0ZZ$1:
	lea	ecx, DWORD PTR _log$[ebp]
	jmp	??1aFile@@UAE@XZ			; aFile::~aFile
__unwindfunclet$?gzLogger@@YAXPBD0ZZ$2:
	lea	ecx, DWORD PTR $T64067[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?gzLogger@@YAXPBD0ZZ:
	mov	eax, OFFSET __ehfuncinfo$?gzLogger@@YAXPBD0ZZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?gzLogger@@YAXPBD0ZZ ENDP				; gzLogger
PUBLIC	??_C@_03KHPNBODO@sec?$AA@			; `string'
PUBLIC	??_C@_04MFNEMKIA@secs?$AA@			; `string'
PUBLIC	??_C@_03KLIPLJLL@min?$AA@			; `string'
PUBLIC	??_C@_04FIAKMPII@mins?$AA@			; `string'
PUBLIC	??_C@_02FLHDKHAB@hr?$AA@			; `string'
PUBLIC	??_C@_03HDEOGJAE@hrs?$AA@			; `string'
PUBLIC	??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@		; `string'
PUBLIC	??_C@_03NNBHCDBP@day?$AA@			; `string'
PUBLIC	??_C@_04IJMHDAOD@days?$AA@			; `string'
PUBLIC	??_C@_04OBLKIOLJ@0sec?$AA@			; `string'
PUBLIC	?SecsToAscTime@@YA?AVaString@@I@Z		; SecsToAscTime
EXTRN	?Resize@aStringBase@@QAEXI@Z:PROC		; aStringBase::Resize
EXTRN	?GetLength@aStringBase@@QBEIXZ:PROC		; aStringBase::GetLength
EXTRN	??YaString@@QAEAAV0@ABV0@@Z:PROC		; aString::operator+=
EXTRN	??0aString@@QAE@XZ:PROC				; aString::aString
EXTRN	??0aString@@QAE@PBD@Z:PROC			; aString::aString
;	COMDAT ??_C@_03KHPNBODO@sec?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_03KHPNBODO@sec?$AA@ DB 'sec', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_04MFNEMKIA@secs?$AA@
CONST	SEGMENT
??_C@_04MFNEMKIA@secs?$AA@ DB 'secs', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_03KLIPLJLL@min?$AA@
CONST	SEGMENT
??_C@_03KLIPLJLL@min?$AA@ DB 'min', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_04FIAKMPII@mins?$AA@
CONST	SEGMENT
??_C@_04FIAKMPII@mins?$AA@ DB 'mins', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_02FLHDKHAB@hr?$AA@
CONST	SEGMENT
??_C@_02FLHDKHAB@hr?$AA@ DB 'hr', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_03HDEOGJAE@hrs?$AA@
CONST	SEGMENT
??_C@_03HDEOGJAE@hrs?$AA@ DB 'hrs', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@
CONST	SEGMENT
??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@ DB '%d%s ', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_03NNBHCDBP@day?$AA@
CONST	SEGMENT
??_C@_03NNBHCDBP@day?$AA@ DB 'day', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_04IJMHDAOD@days?$AA@
CONST	SEGMENT
??_C@_04IJMHDAOD@days?$AA@ DB 'days', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_04OBLKIOLJ@0sec?$AA@
CONST	SEGMENT
??_C@_04OBLKIOLJ@0sec?$AA@ DB '0sec', 00H		; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?SecsToAscTime@@YA?AVaString@@I@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?SecsToAscTime@@YA?AVaString@@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?SecsToAscTime@@YA?AVaString@@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$2
	DD	01H
	DD	FLAT:__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$3
	DD	01H
	DD	FLAT:__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$4
	DD	01H
	DD	FLAT:__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$5
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmisc.cpp
xdata$x	ENDS
;	COMDAT ?SecsToAscTime@@YA?AVaString@@I@Z
_TEXT	SEGMENT
$T64126 = -32						; size = 4
_ret$ = -28						; size = 8
$T64124 = -20						; size = 8
$T64121 = -20						; size = 8
$T64118 = -20						; size = 8
$T64115 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_secs$ = 12						; size = 4
?SecsToAscTime@@YA?AVaString@@I@Z PROC			; SecsToAscTime, COMDAT

; 102  : {

	push	-1
	push	__ehhandler$?SecsToAscTime@@YA?AVaString@@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	esi
	push	edi

; 103  : 	if (secs == 0)

	mov	edi, DWORD PTR _secs$[esp+36]
	test	edi, edi
	mov	DWORD PTR $T64126[esp+40], 0
	jne	SHORT $LN5@SecsToAscT

; 104  : 		return "0sec";

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+36]
	push	OFFSET ??_C@_04OBLKIOLJ@0sec?$AA@
	mov	ecx, esi
	call	??0aString@@QAE@PBD@Z			; aString::aString
	pop	edi

; 126  : 	return ret;

	mov	eax, esi
	pop	esi

; 127  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	0
$LN5@SecsToAscT:
	push	ebx

; 105  : 
; 106  : 	aString ret;

	lea	ecx, DWORD PTR _ret$[esp+44]
	call	??0aString@@QAE@XZ			; aString::aString

; 107  : 	if ((secs / 86400) >= 1)

	mov	eax, -1037155065			; c22e4507H
	mul	edi
	mov	esi, edx
	mov	ebx, 1
	shr	esi, 16					; 00000010H
	cmp	esi, ebx
	mov	DWORD PTR __$EHRec$[esp+52], ebx
	jb	SHORT $LN4@SecsToAscT

; 108  : 	{
; 109  : 		ret += aString::Format("%d%s ", (secs / 86400), ((secs / 86400) > 1 ? "days" : "day"));

	mov	eax, OFFSET ??_C@_04IJMHDAOD@days?$AA@
	ja	SHORT $LN9@SecsToAscT
	mov	eax, OFFSET ??_C@_03NNBHCDBP@day?$AA@
$LN9@SecsToAscT:
	push	eax
	push	esi
	lea	eax, DWORD PTR $T64115[esp+52]
	push	OFFSET ??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@
	push	eax
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _ret$[esp+48]
	mov	BYTE PTR __$EHRec$[esp+56], 2
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T64115[esp+44]
	mov	BYTE PTR __$EHRec$[esp+52], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 110  : 		secs = (secs % 86400);

	imul	esi, -86400				; fffeae80H
	add	edi, esi
$LN4@SecsToAscT:

; 111  : 	}
; 112  : 	if ((secs / 3600) >= 1)

	mov	eax, -1851608123			; 91a2b3c5H
	mul	edi
	mov	esi, edx
	shr	esi, 11					; 0000000bH
	cmp	esi, ebx
	jb	SHORT $LN3@SecsToAscT

; 113  : 	{
; 114  : 		ret += aString::Format("%d%s ", (secs / 3600), ((secs / 3600) > 1 ? "hrs" : "hr"));

	mov	eax, OFFSET ??_C@_03HDEOGJAE@hrs?$AA@
	ja	SHORT $LN11@SecsToAscT
	mov	eax, OFFSET ??_C@_02FLHDKHAB@hr?$AA@
$LN11@SecsToAscT:
	push	eax
	push	esi
	lea	ecx, DWORD PTR $T64118[esp+52]
	push	OFFSET ??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@
	push	ecx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _ret$[esp+48]
	mov	BYTE PTR __$EHRec$[esp+56], 3
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T64118[esp+44]
	mov	BYTE PTR __$EHRec$[esp+52], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 115  : 		secs = (secs % 3600);

	imul	esi, -3600				; fffff1f0H
	add	edi, esi
$LN3@SecsToAscT:

; 116  : 	}
; 117  : 	if ((secs / 60) >= 1)

	mov	eax, -2004318071			; 88888889H
	mul	edi
	mov	esi, edx
	shr	esi, 5
	cmp	esi, ebx
	jb	SHORT $LN2@SecsToAscT

; 118  : 	{
; 119  : 		ret += aString::Format("%d%s ", (secs / 60), ((secs / 60) > 1 ? "mins" : "min"));

	mov	eax, OFFSET ??_C@_04FIAKMPII@mins?$AA@
	ja	SHORT $LN13@SecsToAscT
	mov	eax, OFFSET ??_C@_03KLIPLJLL@min?$AA@
$LN13@SecsToAscT:
	push	eax
	push	esi
	lea	edx, DWORD PTR $T64121[esp+52]
	push	OFFSET ??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _ret$[esp+48]
	mov	BYTE PTR __$EHRec$[esp+56], 4
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T64121[esp+44]
	mov	BYTE PTR __$EHRec$[esp+52], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 120  : 		secs = (secs % 60);

	mov	eax, esi
	shl	eax, 4
	sub	eax, esi
	neg	eax
	lea	edi, DWORD PTR [edi+eax*4]
$LN2@SecsToAscT:

; 121  : 	}
; 122  : 	if (secs >= 1)

	cmp	edi, ebx
	jb	SHORT $LN1@SecsToAscT

; 123  : 		ret += aString::Format("%d%s ", secs, (secs > 1) ? "secs" : "sec");

	mov	eax, OFFSET ??_C@_04MFNEMKIA@secs?$AA@
	ja	SHORT $LN15@SecsToAscT
	mov	eax, OFFSET ??_C@_03KHPNBODO@sec?$AA@
$LN15@SecsToAscT:
	push	eax
	push	edi
	lea	ecx, DWORD PTR $T64124[esp+52]
	push	OFFSET ??_C@_05CBDBLGPD@?$CFd?$CFs?5?$AA@
	push	ecx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _ret$[esp+48]
	mov	BYTE PTR __$EHRec$[esp+56], 5
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T64124[esp+44]
	mov	BYTE PTR __$EHRec$[esp+52], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN1@SecsToAscT:

; 124  : 	
; 125  : 	ret.Resize(ret.GetLength() - 1);

	lea	ecx, DWORD PTR _ret$[esp+44]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	sub	eax, ebx
	push	eax
	lea	ecx, DWORD PTR _ret$[esp+48]
	call	?Resize@aStringBase@@QAEXI@Z		; aStringBase::Resize

; 126  : 	return ret;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+40]
	lea	edx, DWORD PTR _ret$[esp+44]
	push	edx
	mov	ecx, esi
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	lea	ecx, DWORD PTR _ret$[esp+44]
	mov	DWORD PTR [esi], OFFSET ??_7aString@@6B@
	mov	DWORD PTR $T64126[esp+44], ebx
	mov	BYTE PTR __$EHRec$[esp+52], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 127  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	pop	ebx
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$0:
	mov	eax, DWORD PTR $T64126[ebp]
	and	eax, 1
	je	$LN17@SecsToAscT
	and	DWORD PTR $T64126[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1aString@@UAE@XZ
$LN17@SecsToAscT:
	ret	0
__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$1:
	lea	ecx, DWORD PTR _ret$[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$2:
	lea	ecx, DWORD PTR $T64115[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$3:
	lea	ecx, DWORD PTR $T64118[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$4:
	lea	ecx, DWORD PTR $T64121[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?SecsToAscTime@@YA?AVaString@@I@Z$5:
	lea	ecx, DWORD PTR $T64124[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?SecsToAscTime@@YA?AVaString@@I@Z:
	mov	eax, OFFSET __ehfuncinfo$?SecsToAscTime@@YA?AVaString@@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?SecsToAscTime@@YA?AVaString@@I@Z ENDP			; SecsToAscTime
PUBLIC	?Send_Purchase_Response@@YAXHH@Z		; Send_Purchase_Response
EXTRN	?Init@nc_cPurchaseResponseEvent@@QAEXHH@Z:PROC	; nc_cPurchaseResponseEvent::Init
EXTRN	?Create@nc_cPurchaseResponseEvent@@SAPAV1@XZ:PROC ; nc_cPurchaseResponseEvent::Create
; Function compile flags: /Ogtpy
;	COMDAT ?Send_Purchase_Response@@YAXHH@Z
_TEXT	SEGMENT
_pID$ = 8						; size = 4
_value$ = 12						; size = 4
?Send_Purchase_Response@@YAXHH@Z PROC			; Send_Purchase_Response, COMDAT

; 130  : {

	push	esi

; 131  : 	nc_cPurchaseResponseEvent *Response = nc_cPurchaseResponseEvent::Create();

	call	?Create@nc_cPurchaseResponseEvent@@SAPAV1@XZ ; nc_cPurchaseResponseEvent::Create

; 132  : 	Response->Init(value,pID);

	mov	ecx, DWORD PTR _value$[esp]
	mov	esi, eax
	mov	eax, DWORD PTR _pID$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	?Init@nc_cPurchaseResponseEvent@@QAEXHH@Z ; nc_cPurchaseResponseEvent::Init

; 133  : 	Response->Set_Delete_Pending();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+44]
	mov	ecx, esi
	pop	esi
	jmp	eax
?Send_Purchase_Response@@YAXHH@Z ENDP			; Send_Purchase_Response
_TEXT	ENDS
PUBLIC	?AddFrameTime@@YAXAAM_N@Z			; AddFrameTime
EXTRN	?FrameSeconds@nc_TimeManager@@2AAMA:DWORD	; nc_TimeManager::FrameSeconds
; Function compile flags: /Ogtpy
;	COMDAT ?AddFrameTime@@YAXAAM_N@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_condition$ = 12					; size = 1
?AddFrameTime@@YAXAAM_N@Z PROC				; AddFrameTime, COMDAT

; 138  : 	if (condition)

	cmp	BYTE PTR _condition$[esp-4], 0
	je	SHORT $LN1@AddFrameTi

; 139  : 		data += nc_TimeManager::FrameSeconds;

	mov	eax, DWORD PTR _data$[esp-4]
	fld	DWORD PTR [eax]
	mov	ecx, DWORD PTR ?FrameSeconds@nc_TimeManager@@2AAMA ; nc_TimeManager::FrameSeconds
	fadd	DWORD PTR [ecx]
	fstp	DWORD PTR [eax]
$LN1@AddFrameTi:

; 140  : }

	ret	0
?AddFrameTime@@YAXAAM_N@Z ENDP				; AddFrameTime
_TEXT	ENDS
PUBLIC	?SubFrameTime@@YAXAAM_N@Z			; SubFrameTime
; Function compile flags: /Ogtpy
;	COMDAT ?SubFrameTime@@YAXAAM_N@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_condition$ = 12					; size = 1
?SubFrameTime@@YAXAAM_N@Z PROC				; SubFrameTime, COMDAT

; 143  : 	if (condition)

	cmp	BYTE PTR _condition$[esp-4], 0
	je	SHORT $LN1@SubFrameTi

; 144  : 		data -= nc_TimeManager::FrameSeconds;

	mov	eax, DWORD PTR _data$[esp-4]
	fld	DWORD PTR [eax]
	mov	ecx, DWORD PTR ?FrameSeconds@nc_TimeManager@@2AAMA ; nc_TimeManager::FrameSeconds
	fsub	DWORD PTR [ecx]
	fstp	DWORD PTR [eax]
$LN1@SubFrameTi:

; 145  : }

	ret	0
?SubFrameTime@@YAXAAM_N@Z ENDP				; SubFrameTime
_TEXT	ENDS
PUBLIC	__real@40266666
PUBLIC	??_C@_0BI@HGAJMGEN@j?644?6?$CF?40f?6?$CF?40f?6?$CF?40f?6?$CFs?6?$AA@ ; `string'
PUBLIC	?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ		; SendBhsColorMsg
EXTRN	?Send_Object_Update@nc_cNetwork@@SAXPAVnc_NetworkObjectClass@@H@Z:PROC ; nc_cNetwork::Send_Object_Update
EXTRN	?Find@gzPlayerManager@@SAPAVgzPlayer@@H@Z:PROC	; gzPlayerManager::Find
EXTRN	__snprintf:PROC
EXTRN	?Convert_From@nc_WideStringClass@@QAEXPBD@Z:PROC ; nc_WideStringClass::Convert_From
EXTRN	?Get_String@nc_WideStringClass@@QAE_WH_N@Z:PROC	; nc_WideStringClass::Get_String
EXTRN	?Create@nc_cScTextObj@@SAPAV1@XZ:PROC		; nc_cScTextObj::Create
EXTRN	?Format_Args@aString@@QAEXPBDPAD@Z:PROC		; aString::Format_Args
;	COMDAT __real@40266666
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
__real@40266666 DD 040266666r			; 2.6
CONST	ENDS
;	COMDAT ??_C@_0BI@HGAJMGEN@j?644?6?$CF?40f?6?$CF?40f?6?$CF?40f?6?$CFs?6?$AA@
CONST	SEGMENT
??_C@_0BI@HGAJMGEN@j?644?6?$CF?40f?6?$CF?40f?6?$CF?40f?6?$CFs?6?$AA@ DB 'j'
	DB	0aH, '44', 0aH, '%.0f', 0aH, '%.0f', 0aH, '%.0f', 0aH, '%s', 0aH
	DB	00H						; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ$0
__ehfuncinfo$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmisc.cpp
xdata$x	ENDS
;	COMDAT ?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ
_TEXT	SEGMENT
_fmtMsg$ = -1044					; size = 8
_bhsMsgStr$ = -1036					; size = 1024
__$EHRec$ = -12						; size = 12
_color$ = 8						; size = 12
_msg$ = 20						; size = 4
?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ PROC		; SendBhsColorMsg, COMDAT

; 148  : {

	push	-1
	push	__ehhandler$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 1032				; 00000408H
	push	ebx
	push	ebp
	push	esi
	push	edi

; 149  : 	va_list arg;
; 150  : 	va_start(arg, msg);
; 151  : 	aString fmtMsg;

	lea	ecx, DWORD PTR _fmtMsg$[esp+1060]
	call	??0aString@@QAE@XZ			; aString::aString

; 152  : 	fmtMsg.Format_Args(msg, arg);

	mov	ecx, DWORD PTR _msg$[esp+1056]
	lea	eax, DWORD PTR _msg$[esp+1060]
	push	eax
	push	ecx
	xor	ebx, ebx
	lea	ecx, DWORD PTR _fmtMsg$[esp+1068]
	mov	DWORD PTR __$EHRec$[esp+1076], ebx
	call	?Format_Args@aString@@QAEXPBDPAD@Z	; aString::Format_Args

; 153  : 	va_end(arg);
; 154  : 
; 155  : 	nc_cScTextObj *hostMsg = nc_cScTextObj::Create();

	call	?Create@nc_cScTextObj@@SAPAV1@XZ	; nc_cScTextObj::Create
	mov	ebp, eax

; 156  : 	hostMsg->SenderId = -1;
; 157  : 	hostMsg->Type = 0;
; 158  : 	hostMsg->IsPopup = false;
; 159  : 	hostMsg->Message.Get_String(0, false);

	push	ebx
	lea	esi, DWORD PTR [ebp+1728]
	push	ebx
	mov	ecx, esi
	mov	DWORD PTR [ebp+1716], -1
	mov	DWORD PTR [ebp+1724], ebx
	mov	BYTE PTR [ebp+1732], bl
	call	?Get_String@nc_WideStringClass@@QAE_WH_N@Z ; nc_WideStringClass::Get_String

; 160  : 	hostMsg->Message.Convert_From(fmtMsg.GetString());

	mov	eax, DWORD PTR _fmtMsg$[esp+1064]
	cmp	eax, ebx
	je	SHORT $LN12@SendBhsCol
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN13@SendBhsCol
$LN12@SendBhsCol:
	xor	eax, eax
$LN13@SendBhsCol:
	push	eax
	mov	ecx, esi
	call	?Convert_From@nc_WideStringClass@@QAEXPBD@Z ; nc_WideStringClass::Convert_From

; 161  : 
; 162  : 	char bhsMsgStr[1024];
; 163  : 	_snprintf(bhsMsgStr, 1023, "j\n44\n%.0f\n%.0f\n%.0f\n%s\n",
; 164  : 		color.X,
; 165  : 		color.Y,
; 166  : 		color.Z,
; 167  : 		fmtMsg.GetString()
; 168  : 	);

	mov	eax, DWORD PTR _fmtMsg$[esp+1064]
	cmp	eax, ebx
	je	SHORT $LN18@SendBhsCol
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN19@SendBhsCol
$LN18@SendBhsCol:
	xor	eax, eax
$LN19@SendBhsCol:
	fld	DWORD PTR _color$[esp+1064]
	push	eax
	sub	esp, 24					; 00000018H
	fstp	QWORD PTR [esp+16]
	lea	edx, DWORD PTR _bhsMsgStr$[esp+1088]
	fld	DWORD PTR _color$[esp+1088]
	fstp	QWORD PTR [esp+8]
	fld	DWORD PTR _color$[esp+1084]
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0BI@HGAJMGEN@j?644?6?$CF?40f?6?$CF?40f?6?$CF?40f?6?$CFs?6?$AA@
	push	1023					; 000003ffH
	push	edx
	call	__snprintf
	add	esp, 40					; 00000028H

; 169  : 	nc_cScTextObj *bhsMsg = nc_cScTextObj::Create();

	call	?Create@nc_cScTextObj@@SAPAV1@XZ	; nc_cScTextObj::Create
	mov	edi, eax

; 170  : 	bhsMsg->SenderId = -2;
; 171  : 	bhsMsg->ReceiverId = -1;
; 172  : 	bhsMsg->Type = 0;
; 173  : 	bhsMsg->IsPopup = false;
; 174  : 	bhsMsg->Message.Convert_From(bhsMsgStr);

	lea	eax, DWORD PTR _bhsMsgStr$[esp+1060]
	push	eax
	lea	ecx, DWORD PTR [edi+1728]
	mov	DWORD PTR [edi+1716], -2		; fffffffeH
	mov	DWORD PTR [edi+1720], -1
	mov	DWORD PTR [edi+1724], ebx
	mov	BYTE PTR [edi+1732], bl
	call	?Convert_From@nc_WideStringClass@@QAEXPBD@Z ; nc_WideStringClass::Convert_From

; 175  : 
; 176  : 	for (int i = 1; i <= 127; i++)

	mov	esi, 1
$LL6@SendBhsCol:

; 177  : 	{
; 178  : 		gzPlayer *gzData = gzPlayerManager::Find(i);

	push	esi
	call	?Find@gzPlayerManager@@SAPAVgzPlayer@@H@Z ; gzPlayerManager::Find
	add	esp, 4

; 179  : 
; 180  : 		if (gzData && gzData->GetPlayerData()->IsActive && gzData->IsActive())

	cmp	eax, ebx
	je	SHORT $LN5@SendBhsCol
	mov	ecx, DWORD PTR [eax+76]
	cmp	BYTE PTR [ecx+1981], bl
	je	SHORT $LN5@SendBhsCol
	cmp	BYTE PTR [eax+88], bl
	je	SHORT $LN5@SendBhsCol

; 181  : 		{
; 182  : 			// Players with BHS.dll version lower than 2.6 or without bhs.dll will see "msg" as a host message
; 183  : 			if (gzData->GetBHSVersion() < 2.6f)

	fld	DWORD PTR [eax+128]

; 184  : 			{
; 185  : 				hostMsg->Set_Object_Dirty_Bit(i, nc_DB_CREATION, true);

	push	1
	fcomp	DWORD PTR __real@40266666
	push	15					; 0000000fH
	push	esi
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN2@SendBhsCol
	mov	edx, DWORD PTR [ebp]
	mov	eax, DWORD PTR [edx+52]
	mov	ecx, ebp
	call	eax

; 186  : 				nc_cNetwork::Send_Object_Update(hostMsg, i);

	push	esi
	push	ebp

; 187  : 			}
; 188  : 			else

	jmp	SHORT $LN36@SendBhsCol
$LN2@SendBhsCol:

; 189  : 			{
; 190  : 				bhsMsg->Set_Object_Dirty_Bit(i, nc_DB_CREATION, true);

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+52]
	mov	ecx, edi
	call	eax

; 191  : 				nc_cNetwork::Send_Object_Update(bhsMsg, i);

	push	esi
	push	edi
$LN36@SendBhsCol:
	call	?Send_Object_Update@nc_cNetwork@@SAXPAVnc_NetworkObjectClass@@H@Z ; nc_cNetwork::Send_Object_Update
	add	esp, 8
$LN5@SendBhsCol:
	add	esi, 1
	cmp	esi, 127				; 0000007fH
	jle	SHORT $LL6@SendBhsCol

; 192  : 			}
; 193  : 		}
; 194  : 	}
; 195  : 	fmtMsg.Free_String();

	lea	ecx, DWORD PTR _fmtMsg$[esp+1060]
	call	?Clear@aStringBase@@QAEXXZ		; aStringBase::Clear

; 196  : 	hostMsg->Set_Delete_Pending();

	mov	edx, DWORD PTR [ebp]
	mov	eax, DWORD PTR [edx+44]
	mov	ecx, ebp
	call	eax

; 197  : 	bhsMsg->Set_Delete_Pending();

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+44]
	mov	ecx, edi
	call	eax

; 198  : }

	lea	ecx, DWORD PTR _fmtMsg$[esp+1060]
	mov	DWORD PTR __$EHRec$[esp+1068], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, DWORD PTR __$EHRec$[esp+1060]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 1044				; 00000414H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ$0:
	lea	ecx, DWORD PTR _fmtMsg$[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ:
	mov	eax, OFFSET __ehfuncinfo$?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?SendBhsColorMsg@@YAXUnc_Vector3@@PBDZZ ENDP		; SendBhsColorMsg
PUBLIC	??_C@_01EEMJAFIK@?6?$AA@			; `string'
PUBLIC	??_C@_02PBFOLPKM@?$FN?5?$AA@			; `string'
PUBLIC	??_C@_0BC@HOECMGHJ@?$CFd?9?$CFm?9?$CFY?5?$CFH?3?$CFM?3?$CFS?$AA@ ; `string'
PUBLIC	??_C@_01OHGJGJJP@?$FL?$AA@			; `string'
PUBLIC	??_C@_09INNEDIGD@debug?4log?$AA@		; `string'
PUBLIC	?DebugLog@@YAXPBDZZ				; DebugLog
EXTRN	?Format@aDateTime@@QAE?AVaString@@PBD@Z:PROC	; aDateTime::Format
;	COMDAT ??_C@_01EEMJAFIK@?6?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_01EEMJAFIK@?6?$AA@ DB 0aH, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_02PBFOLPKM@?$FN?5?$AA@
CONST	SEGMENT
??_C@_02PBFOLPKM@?$FN?5?$AA@ DB '] ', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@HOECMGHJ@?$CFd?9?$CFm?9?$CFY?5?$CFH?3?$CFM?3?$CFS?$AA@
CONST	SEGMENT
??_C@_0BC@HOECMGHJ@?$CFd?9?$CFm?9?$CFY?5?$CFH?3?$CFM?3?$CFS?$AA@ DB '%d-%'
	DB	'm-%Y %H:%M:%S', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_01OHGJGJJP@?$FL?$AA@
CONST	SEGMENT
??_C@_01OHGJGJJP@?$FL?$AA@ DB '[', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_09INNEDIGD@debug?4log?$AA@
CONST	SEGMENT
??_C@_09INNEDIGD@debug?4log?$AA@ DB 'debug.log', 00H	; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?DebugLog@@YAXPBDZZ DD 019930522H
	DD	08H
	DD	FLAT:__unwindtable$?DebugLog@@YAXPBDZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?DebugLog@@YAXPBDZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$2
	DD	00H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$2
	DD	03H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$3
	DD	03H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$4
	DD	03H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$5
	DD	03H
	DD	FLAT:__unwindfunclet$?DebugLog@@YAXPBDZZ$6
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmisc.cpp
xdata$x	ENDS
;	COMDAT ?DebugLog@@YAXPBDZZ
_TEXT	SEGMENT
_tmp$ = -84						; size = 8
$T64239 = -76						; size = 8
$T64244 = -68						; size = 8
$T64243 = -68						; size = 8
$T64242 = -68						; size = 8
$T64240 = -68						; size = 8
_file$ = -60						; size = 20
$T64241 = -40						; size = 24
__$EHRec$ = -12						; size = 12
_message$ = 8						; size = 4
?DebugLog@@YAXPBDZZ PROC				; DebugLog, COMDAT

; 202  : {

	push	ebp
	mov	ebp, esp
	and	esp, -8					; fffffff8H
	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?DebugLog@@YAXPBDZZ
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 72					; 00000048H
	push	ebx

; 203  : 	gzCritical.Enter();

	push	OFFSET _gzCritical
	call	DWORD PTR __imp__EnterCriticalSection@4

; 204  : 	if (message == NULL || !*message)

	mov	eax, DWORD PTR _message$[ebp]
	test	eax, eax
	je	$LN2@DebugLog
	cmp	BYTE PTR [eax], 0
	je	$LN2@DebugLog

; 205  : 		return;
; 206  : 
; 207  : 	va_list args;
; 208  : 	va_start(args, message);
; 209  : 	aString tmp;

	lea	ecx, DWORD PTR _tmp$[esp+88]
	call	??0aString@@QAE@XZ			; aString::aString

; 210  : 	tmp.Format_Args(message, args);

	mov	ecx, DWORD PTR _message$[ebp]
	lea	eax, DWORD PTR _message$[ebp+4]
	push	eax
	push	ecx
	lea	ecx, DWORD PTR _tmp$[esp+96]
	mov	DWORD PTR __$EHRec$[esp+104], 0
	call	?Format_Args@aString@@QAEXPBDPAD@Z	; aString::Format_Args

; 211  : 	va_end(args);
; 212  : 	aFile file("debug.log", "a");

	push	OFFSET ??_C@_09INNEDIGD@debug?4log?$AA@
	lea	ecx, DWORD PTR $T64239[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	OFFSET ??_C@_01MCMALHOG@a?$AA@
	lea	edx, DWORD PTR $T64239[esp+92]
	push	edx
	lea	ecx, DWORD PTR _file$[esp+96]
	mov	BYTE PTR __$EHRec$[esp+104], 1
	call	??0aFile@@QAE@ABVaString@@PBD@Z		; aFile::aFile
	mov	bl, 3
	lea	ecx, DWORD PTR $T64239[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 213  : 	if (file.IsOpened())

	lea	ecx, DWORD PTR _file$[esp+88]
	call	?IsOpened@aFile@@UAE_NXZ		; aFile::IsOpened
	test	al, al
	je	$LN1@DebugLog

; 214  : 	{
; 215  : 		file.Write("[", 1);

	push	OFFSET ??_C@_01OHGJGJJP@?$FL?$AA@
	lea	ecx, DWORD PTR $T64240[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	1
	lea	eax, DWORD PTR $T64240[esp+92]
	push	eax
	lea	ecx, DWORD PTR _file$[esp+96]
	mov	BYTE PTR __$EHRec$[esp+104], 4
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write
	lea	ecx, DWORD PTR $T64240[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 216  : 		file.Write(aDateTime::Now().Format("%d-%m-%Y %H:%M:%S"));

	push	OFFSET ??_C@_0BC@HOECMGHJ@?$CFd?9?$CFm?9?$CFY?5?$CFH?3?$CFM?3?$CFS?$AA@
	lea	ecx, DWORD PTR $T64242[esp+92]
	push	ecx
	lea	edx, DWORD PTR $T64241[esp+96]
	push	edx
	call	?Now@aDateTime@@SA?AV1@XZ		; aDateTime::Now
	add	esp, 4
	mov	ecx, eax
	call	?Format@aDateTime@@QAE?AVaString@@PBD@Z	; aDateTime::Format
	push	0
	push	eax
	lea	ecx, DWORD PTR _file$[esp+96]
	mov	BYTE PTR __$EHRec$[esp+104], 5
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write
	lea	ecx, DWORD PTR $T64242[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 217  : 		file.Write("] ", 2);

	push	OFFSET ??_C@_02PBFOLPKM@?$FN?5?$AA@
	lea	ecx, DWORD PTR $T64243[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	2
	lea	eax, DWORD PTR $T64243[esp+92]
	push	eax
	lea	ecx, DWORD PTR _file$[esp+96]
	mov	BYTE PTR __$EHRec$[esp+104], 6
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write
	lea	ecx, DWORD PTR $T64243[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 218  : 		file.Write(tmp);

	push	0
	lea	ecx, DWORD PTR _tmp$[esp+92]
	push	ecx
	lea	ecx, DWORD PTR _file$[esp+96]
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write

; 219  : 		file.Write("\n", 1);

	push	OFFSET ??_C@_01EEMJAFIK@?6?$AA@
	lea	ecx, DWORD PTR $T64244[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	1
	lea	edx, DWORD PTR $T64244[esp+92]
	push	edx
	lea	ecx, DWORD PTR _file$[esp+96]
	mov	BYTE PTR __$EHRec$[esp+104], 7
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write
	lea	ecx, DWORD PTR $T64244[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN1@DebugLog:

; 220  : 	}
; 221  : 	printf("%s\n", tmp.GetString());

	mov	eax, DWORD PTR _tmp$[esp+92]
	test	eax, eax
	je	SHORT $LN32@DebugLog
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN33@DebugLog
$LN32@DebugLog:
	xor	eax, eax
$LN33@DebugLog:
	push	eax
	push	OFFSET ??_C@_03OFAPEBGM@?$CFs?6?$AA@
	call	_printf
	add	esp, 8

; 222  : 	gzCritical.Leave();

	push	OFFSET _gzCritical
	call	DWORD PTR __imp__LeaveCriticalSection@4

; 223  : }

	lea	ecx, DWORD PTR _file$[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], 0
	call	??1aFile@@UAE@XZ			; aFile::~aFile
	lea	ecx, DWORD PTR _tmp$[esp+88]
	mov	DWORD PTR __$EHRec$[esp+96], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN2@DebugLog:
	mov	ecx, DWORD PTR __$EHRec$[esp+88]
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?DebugLog@@YAXPBDZZ$0:
	lea	ecx, DWORD PTR _tmp$[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?DebugLog@@YAXPBDZZ$1:
	lea	ecx, DWORD PTR $T64239[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?DebugLog@@YAXPBDZZ$2:
	lea	ecx, DWORD PTR _file$[ebp]
	jmp	??1aFile@@UAE@XZ			; aFile::~aFile
__unwindfunclet$?DebugLog@@YAXPBDZZ$3:
	lea	ecx, DWORD PTR $T64240[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?DebugLog@@YAXPBDZZ$4:
	lea	ecx, DWORD PTR $T64242[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?DebugLog@@YAXPBDZZ$5:
	lea	ecx, DWORD PTR $T64243[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?DebugLog@@YAXPBDZZ$6:
	lea	ecx, DWORD PTR $T64244[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?DebugLog@@YAXPBDZZ:
	mov	eax, OFFSET __ehfuncinfo$?DebugLog@@YAXPBDZZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?DebugLog@@YAXPBDZZ ENDP				; DebugLog
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@ ; `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 (x86)\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@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@
CONST	SEGMENT
??_C@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@ DB 'C:\Pr'
	DB	'ogram Files (x86)\Microsoft Visual Studio 8\VC\include\xdebug'
	DB	00H						; `string'
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T64304 = -12						; size = 12
_this$ = 8						; size = 4
$T64310 = 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@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@
	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 $T64310[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T64304[esp+20]
	mov	DWORD PTR $T64310[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T64304[esp+20]
	push	ecx
	mov	DWORD PTR $T64304[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
$T64316 = -12						; size = 12
$T64321 = 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@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@
	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 $T64321[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T64316[esp+20]
	mov	DWORD PTR $T64321[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T64316[esp+20]
	push	ecx
	mov	DWORD PTR $T64316[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	??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z ; nc_VectorClass<nc_WeaponClass *>::operator[]
; Function compile flags: /Ogtpy
; File d:\source code\fds lib\new\fds_vector.h
;	COMDAT ??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z PROC ; nc_VectorClass<nc_WeaponClass *>::operator[], COMDAT
; _this$ = ecx

; 341  : 		return Vector[index];

	mov	eax, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR _index$[esp-4]
	lea	eax, DWORD PTR [eax+ecx*4]

; 342  : 	}

	ret	4
??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z ENDP ; nc_VectorClass<nc_WeaponClass *>::operator[]
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaString@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaString@@UAEPAXI@Z PROC				; aString::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_GaString@@UAEPAXI@Z ENDP				; aString::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_04HIBGFPH@NULL?$AA@			; `string'
PUBLIC	??_C@_03LHHPEPLD@?5C4?$AA@			; `string'
PUBLIC	??_C@_09IAKIBBN@Proximity?$AA@			; `string'
PUBLIC	??_C@_05MLMBIJDH@Timed?$AA@			; `string'
PUBLIC	??_C@_06MHHFENDB@Remote?$AA@			; `string'
PUBLIC	?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z ; GetPresetInfo
EXTRN	?Get@nc_IntDataSafeClass@@QAEHXZ:PROC		; nc_IntDataSafeClass::Get
EXTRN	??0aString@@QAE@D@Z:PROC			; aString::aString
EXTRN	??4aString@@QAEAAV0@ABV0@@Z:PROC		; aString::operator=
EXTRN	?Get@gzTranslateManager@@QAEPBDPBD@Z:PROC	; gzTranslateManager::Get
EXTRN	?gzTranslator@@3PAVgzTranslateManager@@A:DWORD	; gzTranslator
;	COMDAT ??_C@_04HIBGFPH@NULL?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_04HIBGFPH@NULL?$AA@ DB 'NULL', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_03LHHPEPLD@?5C4?$AA@
CONST	SEGMENT
??_C@_03LHHPEPLD@?5C4?$AA@ DB ' C4', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_09IAKIBBN@Proximity?$AA@
CONST	SEGMENT
??_C@_09IAKIBBN@Proximity?$AA@ DB 'Proximity', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_05MLMBIJDH@Timed?$AA@
CONST	SEGMENT
??_C@_05MLMBIJDH@Timed?$AA@ DB 'Timed', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_06MHHFENDB@Remote?$AA@
CONST	SEGMENT
??_C@_06MHHFENDB@Remote?$AA@ DB 'Remote', 00H		; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z DD 019930522H
	DD	0aH
	DD	FLAT:__unwindtable$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$3
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$4
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$5
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$6
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$7
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$8
	DD	00H
	DD	FLAT:__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$9
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmisc.cpp
xdata$x	ENDS
;	COMDAT ?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z
_TEXT	SEGMENT
$T64362 = -36						; size = 4
$T64360 = -32						; size = 8
$T64359 = -32						; size = 8
$T64358 = -32						; size = 8
$T64357 = -32						; size = 8
$T64356 = -32						; size = 8
$T64355 = -32						; size = 8
$T64354 = -32						; size = 8
$T64353 = -32						; size = 8
$T64352 = -32						; size = 8
_name$57659 = -24					; size = 12
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_obj$ = 12						; size = 4
_checkExplosion$ = 16					; size = 1
?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z PROC ; GetPresetInfo, COMDAT

; 65   : {

	push	-1
	push	__ehhandler$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	DWORD PTR $T64362[esp+52], ebx

; 66   : 	aString ret;

	mov	edi, DWORD PTR ___$ReturnUdt$[esp+48]
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+60], ebx
	call	??0aString@@QAE@XZ			; aString::aString

; 94   : 			}
; 95   : 		}
; 96   : 	}
; 97   : 	return ret;

	mov	esi, DWORD PTR _obj$[esp+48]
	cmp	esi, ebx
	mov	ebp, 1
	mov	DWORD PTR __$EHRec$[esp+60], ebx
	mov	DWORD PTR $T64362[esp+52], ebp
	je	$LN12@GetPresetI
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+148]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	$LN12@GetPresetI
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+148]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN8@GetPresetI
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+148]
	mov	ecx, esi
	call	edx
	mov	eax, DWORD PTR [eax+1968]
	cmp	DWORD PTR [eax+28], ebx
	je	SHORT $LN9@GetPresetI
$LN8@GetPresetI:

; 69   : 	else
; 70   : 	{
; 71   : 		if ((obj->As_ArmedGameObj() && obj->As_ArmedGameObj()->WeaponBag->current == 0) || obj->definition->Get_Class_ID() == 0xD001)

	mov	ecx, DWORD PTR [esi+1724]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+32]
	call	eax
	cmp	eax, 53249				; 0000d001H
	jne	SHORT $LN10@GetPresetI
$LN9@GetPresetI:

; 72   : 			ret = gzTranslator->Get(obj->definition->Get_Name());

	mov	ecx, DWORD PTR [esi+1724]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	ecx, DWORD PTR ?gzTranslator@@3PAVgzTranslateManager@@A ; gzTranslator
	push	eax
	call	?Get@gzTranslateManager@@QAEPBDPBD@Z	; gzTranslateManager::Get
	push	eax
	lea	ecx, DWORD PTR $T64353[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	mov	DWORD PTR __$EHRec$[esp+60], 2

; 73   : 		else

	jmp	$LN60@GetPresetI
$LN10@GetPresetI:

; 74   : 		{
; 75   : 			ret = gzTranslator->Get(obj->definition->Get_Name());

	mov	ecx, DWORD PTR [esi+1724]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	ecx, DWORD PTR ?gzTranslator@@3PAVgzTranslateManager@@A ; gzTranslator
	push	eax
	call	?Get@gzTranslateManager@@QAEPBDPBD@Z	; gzTranslateManager::Get
	push	eax
	lea	ecx, DWORD PTR $T64354[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	ecx, DWORD PTR $T64354[esp+52]
	push	ecx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 3
	call	??4aString@@QAEAAV0@ABV0@@Z		; aString::operator=
	lea	ecx, DWORD PTR $T64354[esp+52]
	mov	BYTE PTR __$EHRec$[esp+60], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 76   : 			ret += '/';

	push	47					; 0000002fH
	lea	ecx, DWORD PTR $T64355[esp+56]
	call	??0aString@@QAE@D@Z			; aString::aString
	lea	edx, DWORD PTR $T64355[esp+52]
	push	edx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 4
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T64355[esp+52]
	mov	BYTE PTR __$EHRec$[esp+60], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 77   : 			if (checkExplosion && gzManagerClass::Get_Explosion_Obj())

	cmp	BYTE PTR _checkExplosion$[esp+48], bl
	je	$LN6@GetPresetI
	mov	eax, DWORD PTR ?m_ExplosionObj@gzManagerClass@@2PAVnc_ScriptableGameObj@@A ; gzManagerClass::m_ExplosionObj
	cmp	eax, ebx
	je	$LN6@GetPresetI
	cmp	DWORD PTR [eax], ebx
	je	$LN6@GetPresetI

; 78   : 			{
; 79   : 				if (gzManagerClass::Get_Explosion_Obj()->definition->Get_Class_ID() == 0x3006)

	call	?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ ; gzManagerClass::Get_Explosion_Obj
	mov	eax, DWORD PTR [eax+1724]
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+32]
	call	eax
	cmp	eax, 12294				; 00003006H
	jne	$LN5@GetPresetI

; 80   : 				{
; 81   : 					const char *name[] = { "Remote", "Timed", "Proximity" };

	mov	DWORD PTR _name$57659[esp+52], OFFSET ??_C@_06MHHFENDB@Remote?$AA@
	mov	DWORD PTR _name$57659[esp+56], OFFSET ??_C@_05MLMBIJDH@Timed?$AA@
	mov	DWORD PTR _name$57659[esp+60], OFFSET ??_C@_09IAKIBBN@Proximity?$AA@

; 82   : 					ret += name[((nc_C4GameObj *)gzManagerClass::Get_Explosion_Obj())->AmmoDef->AmmoType.Get() - 1];

	call	?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ ; gzManagerClass::Get_Explosion_Obj
	mov	ecx, DWORD PTR [eax+1992]
	add	ecx, 140				; 0000008cH
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	ecx, DWORD PTR _name$57659[esp+eax*4+48]
	push	ecx
	lea	ecx, DWORD PTR $T64356[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	edx, DWORD PTR $T64356[esp+52]
	push	edx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 5
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T64356[esp+52]
	mov	BYTE PTR __$EHRec$[esp+60], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 83   : 					ret += " C4";

	push	OFFSET ??_C@_03LHHPEPLD@?5C4?$AA@
	lea	ecx, DWORD PTR $T64357[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	eax, DWORD PTR $T64357[esp+52]
	push	eax
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 6
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=

; 84   : 				}
; 85   : 				else

	jmp	$LN61@GetPresetI
$LN5@GetPresetI:

; 86   : 					ret += gzTranslator->Get(gzManagerClass::Get_Explosion_Obj()->definition->Get_Name());

	call	?Get_Explosion_Obj@gzManagerClass@@SAPAVnc_ScriptableGameObj@@XZ ; gzManagerClass::Get_Explosion_Obj
	mov	eax, DWORD PTR [eax+1724]
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	ecx, DWORD PTR ?gzTranslator@@3PAVgzTranslateManager@@A ; gzTranslator
	push	eax
	call	?Get@gzTranslateManager@@QAEPBDPBD@Z	; gzTranslateManager::Get
	push	eax
	lea	ecx, DWORD PTR $T64358[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	ecx, DWORD PTR $T64358[esp+52]
	push	ecx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 7
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	jmp	$LN61@GetPresetI
$LN6@GetPresetI:

; 87   : 			}
; 88   : 			else if (obj->As_SoldierGameObj() && obj->As_SoldierGameObj()->Vehicle)

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN2@GetPresetI
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, esi
	call	eax
	cmp	DWORD PTR [eax+2444], ebx
	je	SHORT $LN2@GetPresetI

; 89   : 				ret = gzTranslator->Get(obj->As_SoldierGameObj()->Vehicle->definition->Get_Name());

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR [eax+2444]
	mov	ecx, DWORD PTR [ecx+1724]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	ecx, DWORD PTR ?gzTranslator@@3PAVgzTranslateManager@@A ; gzTranslator
	push	eax
	call	?Get@gzTranslateManager@@QAEPBDPBD@Z	; gzTranslateManager::Get
	push	eax
	lea	ecx, DWORD PTR $T64359[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	mov	DWORD PTR __$EHRec$[esp+60], 8

; 90   : 			else

	jmp	SHORT $LN60@GetPresetI
$LN2@GetPresetI:

; 91   : 			{
; 92   : 				int curWeap = obj->As_ArmedGameObj()->WeaponBag->current;

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+148]
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR [eax+1968]

; 93   : 				ret += gzTranslator->Get(obj->As_ArmedGameObj()->WeaponBag->Vector[curWeap]->WeaponDef->Get_Name());

	mov	edx, DWORD PTR [esi]
	mov	ebp, DWORD PTR [ecx+28]
	mov	eax, DWORD PTR [edx+148]
	mov	ecx, esi
	call	eax
	mov	eax, DWORD PTR [eax+1968]
	mov	ecx, DWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+ebp*4]
	mov	ecx, DWORD PTR [edx]
	add	eax, 4
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	call	edx
	mov	ecx, DWORD PTR ?gzTranslator@@3PAVgzTranslateManager@@A ; gzTranslator
	push	eax
	call	?Get@gzTranslateManager@@QAEPBDPBD@Z	; gzTranslateManager::Get
	push	eax
	lea	ecx, DWORD PTR $T64360[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	eax, DWORD PTR $T64360[esp+52]
	push	eax
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+64], 9
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	jmp	SHORT $LN61@GetPresetI
$LN12@GetPresetI:

; 67   : 	if (obj == NULL || !obj->As_ArmedGameObj())
; 68   : 		ret = "NULL";

	push	OFFSET ??_C@_04HIBGFPH@NULL?$AA@
	lea	ecx, DWORD PTR $T64352[esp+56]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	mov	DWORD PTR __$EHRec$[esp+60], ebp
$LN60@GetPresetI:
	lea	ecx, DWORD PTR $T64352[esp+52]
	push	ecx
	mov	ecx, edi
	call	??4aString@@QAEAAV0@ABV0@@Z		; aString::operator=
$LN61@GetPresetI:
	lea	ecx, DWORD PTR $T64352[esp+52]
	mov	BYTE PTR __$EHRec$[esp+60], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 98   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$0:
	mov	eax, DWORD PTR $T64362[ebp]
	and	eax, 1
	je	$LN17@GetPresetI
	and	DWORD PTR $T64362[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1aString@@UAE@XZ
$LN17@GetPresetI:
	ret	0
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$2:
	lea	ecx, DWORD PTR $T64353[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$3:
	lea	ecx, DWORD PTR $T64354[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$4:
	lea	ecx, DWORD PTR $T64355[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$5:
	lea	ecx, DWORD PTR $T64356[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$6:
	lea	ecx, DWORD PTR $T64357[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$7:
	lea	ecx, DWORD PTR $T64358[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$8:
	lea	ecx, DWORD PTR $T64359[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$9:
	lea	ecx, DWORD PTR $T64360[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z$1:
	lea	ecx, DWORD PTR $T64352[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?GetPresetInfo@@YA?AVaString@@PAVnc_PhysicalGameObj@@_N@Z ENDP ; GetPresetInfo
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z PROC ; std::_DebugHeapAllocator<char>::deallocate, COMDAT
; _this$ = ecx

; 102  : 		_DELETE_CRT_VEC(_Ptr);

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

; 103  : 		}

	ret	8
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ENDP ; std::_DebugHeapAllocator<char>::deallocate
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@XZ		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_DebugHeapAllocator@D@std@@QAE@XZ PROC		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	0
??0?$_DebugHeapAllocator@D@std@@QAE@XZ ENDP		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z PROC	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z ENDP	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
EXTRN	_atexit:PROC
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stinc.h
;	COMDAT ??__EgzCritical@@YAXXZ
text$yc	SEGMENT
??__EgzCritical@@YAXXZ PROC				; `dynamic initializer for 'gzCritical'', COMDAT

; 67   : static aCriticalSection gzCritical;

	push	OFFSET _gzCritical
	call	DWORD PTR __imp__InitializeCriticalSection@4
	push	OFFSET ??__FgzCritical@@YAXXZ		; `dynamic atexit destructor for 'gzCritical''
	call	_atexit
	pop	ecx
	ret	0
??__EgzCritical@@YAXXZ ENDP				; `dynamic initializer for 'gzCritical''
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stmisc.cpp
text$yc	ENDS
;	COMDAT ??__EstRandom@@YAXXZ
text$yc	SEGMENT
??__EstRandom@@YAXXZ PROC				; `dynamic initializer for 'stRandom'', COMDAT

; 12   : aRandom stRandom;

	push	0
	call	__time64
	add	esp, 4
	mov	DWORD PTR ?stRandom@@3VaRandom@@A+4, eax
	mov	DWORD PTR ?stRandom@@3VaRandom@@A, 0
	ret	0
??__EstRandom@@YAXXZ ENDP				; `dynamic initializer for 'stRandom''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__EstVersion@@YAXXZ
text$yc	SEGMENT
??__EstVersion@@YAXXZ PROC				; `dynamic initializer for 'stVersion'', COMDAT

; 13   : aString stVersion;

	mov	ecx, OFFSET ?stVersion@@3VaString@@A	; stVersion
	call	??0aString@@QAE@XZ			; aString::aString
	push	OFFSET ??__FstVersion@@YAXXZ		; `dynamic atexit destructor for 'stVersion''
	call	_atexit
	pop	ecx
	ret	0
??__EstVersion@@YAXXZ ENDP				; `dynamic initializer for 'stVersion''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FgzCritical@@YAXXZ
text$yd	SEGMENT
??__FgzCritical@@YAXXZ PROC				; `dynamic atexit destructor for 'gzCritical'', COMDAT
	push	OFFSET _gzCritical
	call	DWORD PTR __imp__DeleteCriticalSection@4
	ret	0
??__FgzCritical@@YAXXZ ENDP				; `dynamic atexit destructor for 'gzCritical''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FstVersion@@YAXXZ
text$yd	SEGMENT
??__FstVersion@@YAXXZ PROC				; `dynamic atexit destructor for 'stVersion'', COMDAT
	mov	ecx, OFFSET ?stVersion@@3VaString@@A	; stVersion
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??__FstVersion@@YAXXZ ENDP				; `dynamic atexit destructor for 'stVersion''
text$yd	ENDS
PUBLIC	?stRandom@@3VaRandom@@A				; stRandom
PUBLIC	?stVersion@@3VaString@@A			; stVersion
_BSS	SEGMENT
?stRandom@@3VaRandom@@A DQ 01H DUP (?)			; stRandom
?stVersion@@3VaString@@A DQ 01H DUP (?)			; stVersion
_gzCritical DB	018H DUP (?)
_BSS	ENDS
CRT$XCU	SEGMENT
_gzCritical$initializer$ DD FLAT:??__EgzCritical@@YAXXZ
_stRandom$initializer$ DD FLAT:??__EstRandom@@YAXXZ
_stVersion$initializer$ DD FLAT:??__EstVersion@@YAXXZ
CRT$XCU	ENDS
END
