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

	TITLE	d:\Source Code\STGM\engine_common.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?HasSSE@@3PA_NA					; HasSSE
PUBLIC	?Has3DNow@@3PA_NA				; Has3DNow
PUBLIC	?Parse_Console_Input@@3P6AXPBD@ZA		; Parse_Console_Input
PUBLIC	?RenVecDelete@@3P6AXPAX@ZA			; RenVecDelete
PUBLIC	?RenDelete@@3P6AXPAX@ZA				; RenDelete
PUBLIC	?Output_To_Console@@3PAXA			; Output_To_Console
PUBLIC	?collate@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::collate
PUBLIC	?ctype@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::ctype
PUBLIC	?monetary@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::monetary
PUBLIC	?numeric@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::numeric
PUBLIC	?time@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::time
PUBLIC	?messages@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::messages
PUBLIC	?all@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::all
PUBLIC	?none@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::none
PUBLIC	?table_size@?$ctype@D@std@@2IB			; std::ctype<char>::table_size
PUBLIC	?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::skipws
PUBLIC	?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::unitbuf
PUBLIC	?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::uppercase
PUBLIC	?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showbase
PUBLIC	?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpoint
PUBLIC	?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpos
PUBLIC	?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::left
PUBLIC	?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::right
PUBLIC	?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::internal
PUBLIC	?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::dec
PUBLIC	?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::oct
PUBLIC	?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::hex
PUBLIC	?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::scientific
PUBLIC	?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::fixed
PUBLIC	?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::boolalpha
PUBLIC	?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::_Stdio
PUBLIC	?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::adjustfield
PUBLIC	?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::basefield
PUBLIC	?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::floatfield
PUBLIC	?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::goodbit
PUBLIC	?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::eofbit
PUBLIC	?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::failbit
PUBLIC	?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::badbit
PUBLIC	?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::_Hardfail
PUBLIC	?in@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::in
PUBLIC	?out@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::out
PUBLIC	?ate@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::ate
PUBLIC	?app@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::app
PUBLIC	?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::trunc
PUBLIC	?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Nocreate
PUBLIC	?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Noreplace
PUBLIC	?binary@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::binary
PUBLIC	?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::beg
PUBLIC	?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::cur
PUBLIC	?end@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::end
PUBLIC	?Exe@@3HA					; Exe
PUBLIC	?RenNew@@3P6APAXK@ZA				; RenNew
PUBLIC	?RenVecNew@@3P6APAXK@ZA				; RenVecNew
_BSS	SEGMENT
?HasSSE@@3PA_NA DD 01H DUP (?)				; HasSSE
?Has3DNow@@3PA_NA DD 01H DUP (?)			; Has3DNow
?Parse_Console_Input@@3P6AXPBD@ZA DD 01H DUP (?)	; Parse_Console_Input
?RenVecDelete@@3P6AXPAX@ZA DD 01H DUP (?)		; RenVecDelete
?RenDelete@@3P6AXPAX@ZA DD 01H DUP (?)			; RenDelete
?Output_To_Console@@3PAXA DD 01H DUP (?)		; Output_To_Console
?RenNew@@3P6APAXK@ZA DD 01H DUP (?)			; RenNew
?RenVecNew@@3P6APAXK@ZA DD 01H DUP (?)			; RenVecNew
_BSS	ENDS
CONST	SEGMENT
_Code	DB	06aH
	DB	040H
	DB	0ffH
	DB	074H
	DB	024H
	DB	0cH
	DB	0ffH
	DB	074H
	DB	024H
	DB	0cH
	DB	0e8H
	DB	0c0H
	DB	0ffH
	DB	0ffH
	DB	0ffH
	DB	083H
	DB	0c4H
	DB	0cH
	DB	0c3H
CONST	ENDS
;	COMDAT ?end@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?end@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 02H		; std::_Iosb<int>::end
CONST	ENDS
;	COMDAT ?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 01H		; std::_Iosb<int>::cur
CONST	ENDS
;	COMDAT ?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 00H		; std::_Iosb<int>::beg
CONST	ENDS
;	COMDAT ?binary@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?binary@?$_Iosb@H@std@@2W4_Openmode@12@B DD 020H	; std::_Iosb<int>::binary
CONST	ENDS
;	COMDAT ?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B DD 080H	; std::_Iosb<int>::_Noreplace
CONST	ENDS
;	COMDAT ?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 040H	; std::_Iosb<int>::_Nocreate
CONST	ENDS
;	COMDAT ?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B DD 010H		; std::_Iosb<int>::trunc
CONST	ENDS
;	COMDAT ?app@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?app@?$_Iosb@H@std@@2W4_Openmode@12@B DD 08H		; std::_Iosb<int>::app
CONST	ENDS
;	COMDAT ?ate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?ate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 04H		; std::_Iosb<int>::ate
CONST	ENDS
;	COMDAT ?out@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?out@?$_Iosb@H@std@@2W4_Openmode@12@B DD 02H		; std::_Iosb<int>::out
CONST	ENDS
;	COMDAT ?in@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?in@?$_Iosb@H@std@@2W4_Openmode@12@B DD 01H		; std::_Iosb<int>::in
CONST	ENDS
;	COMDAT ?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B DD 010H	; std::_Iosb<int>::_Hardfail
CONST	ENDS
;	COMDAT ?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 04H		; std::_Iosb<int>::badbit
CONST	ENDS
;	COMDAT ?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 02H		; std::_Iosb<int>::failbit
CONST	ENDS
;	COMDAT ?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 01H		; std::_Iosb<int>::eofbit
CONST	ENDS
;	COMDAT ?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 00H		; std::_Iosb<int>::goodbit
CONST	ENDS
;	COMDAT ?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 03000H	; std::_Iosb<int>::floatfield
CONST	ENDS
;	COMDAT ?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0e00H	; std::_Iosb<int>::basefield
CONST	ENDS
;	COMDAT ?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01c0H	; std::_Iosb<int>::adjustfield
CONST	ENDS
;	COMDAT ?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08000H	; std::_Iosb<int>::_Stdio
CONST	ENDS
;	COMDAT ?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04000H	; std::_Iosb<int>::boolalpha
CONST	ENDS
;	COMDAT ?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02000H	; std::_Iosb<int>::fixed
CONST	ENDS
;	COMDAT ?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01000H	; std::_Iosb<int>::scientific
CONST	ENDS
;	COMDAT ?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0800H		; std::_Iosb<int>::hex
CONST	ENDS
;	COMDAT ?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0400H		; std::_Iosb<int>::oct
CONST	ENDS
;	COMDAT ?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0200H		; std::_Iosb<int>::dec
CONST	ENDS
;	COMDAT ?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0100H	; std::_Iosb<int>::internal
CONST	ENDS
;	COMDAT ?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 080H		; std::_Iosb<int>::right
CONST	ENDS
;	COMDAT ?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 040H		; std::_Iosb<int>::left
CONST	ENDS
;	COMDAT ?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 020H	; std::_Iosb<int>::showpos
CONST	ENDS
;	COMDAT ?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 010H	; std::_Iosb<int>::showpoint
CONST	ENDS
;	COMDAT ?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08H	; std::_Iosb<int>::showbase
CONST	ENDS
;	COMDAT ?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04H	; std::_Iosb<int>::uppercase
CONST	ENDS
;	COMDAT ?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02H	; std::_Iosb<int>::unitbuf
CONST	ENDS
;	COMDAT ?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01H		; std::_Iosb<int>::skipws
CONST	ENDS
;	COMDAT ?table_size@?$ctype@D@std@@2IB
CONST	SEGMENT
?table_size@?$ctype@D@std@@2IB DD 0100H			; std::ctype<char>::table_size
CONST	ENDS
;	COMDAT ?none@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?none@?$_Locbase@H@std@@2HB DD 00H			; std::_Locbase<int>::none
CONST	ENDS
;	COMDAT ?all@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?all@?$_Locbase@H@std@@2HB DD 03fH			; std::_Locbase<int>::all
CONST	ENDS
;	COMDAT ?messages@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?messages@?$_Locbase@H@std@@2HB DD 020H			; std::_Locbase<int>::messages
CONST	ENDS
;	COMDAT ?time@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?time@?$_Locbase@H@std@@2HB DD 010H			; std::_Locbase<int>::time
CONST	ENDS
;	COMDAT ?numeric@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?numeric@?$_Locbase@H@std@@2HB DD 08H			; std::_Locbase<int>::numeric
CONST	ENDS
;	COMDAT ?monetary@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?monetary@?$_Locbase@H@std@@2HB DD 04H			; std::_Locbase<int>::monetary
CONST	ENDS
;	COMDAT ?ctype@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?ctype@?$_Locbase@H@std@@2HB DD 02H			; std::_Locbase<int>::ctype
CONST	ENDS
;	COMDAT ?collate@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?collate@?$_Locbase@H@std@@2HB DD 01H			; std::_Locbase<int>::collate
CONST	ENDS
_DATA	SEGMENT
__bad_alloc_Message DD FLAT:??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
?Exe@@3HA DD	06H					; Exe
_DATA	ENDS
;	COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
CONST	SEGMENT
??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string'
CONST	ENDS
PUBLIC	??_7bad_alloc@std@@6B@				; std::bad_alloc::`vftable'
PUBLIC	??0bad_alloc@std@@QAE@PBD@Z			; std::bad_alloc::bad_alloc
PUBLIC	??_R4bad_alloc@std@@6B@				; std::bad_alloc::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVbad_alloc@std@@@8			; std::bad_alloc `RTTI Type Descriptor'
PUBLIC	??_R3bad_alloc@std@@8				; std::bad_alloc::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2bad_alloc@std@@8				; std::bad_alloc::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@bad_alloc@std@@8			; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@exception@std@@8			; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVexception@std@@@8			; std::exception `RTTI Type Descriptor'
PUBLIC	??_R3exception@std@@8				; std::exception::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2exception@std@@8				; std::exception::`RTTI Base Class Array'
EXTRN	??0exception@std@@QAE@ABQBD@Z:PROC		; std::exception::exception
EXTRN	??_7type_info@@6B@:QWORD			; type_info::`vftable'
EXTRN	??_Ebad_alloc@std@@UAEPAXI@Z:PROC		; std::bad_alloc::`vector deleting destructor'
EXTRN	?what@exception@std@@UBEPBDXZ:PROC		; std::exception::what
;	COMDAT ??_R2exception@std@@8
; File c:\program files\microsoft visual studio 8\vc\include\exception
rdata$r	SEGMENT
??_R2exception@std@@8 DD FLAT:??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3exception@std@@8
rdata$r	SEGMENT
??_R3exception@std@@8 DD 00H				; std::exception::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVexception@std@@@8
_DATA	SEGMENT
??_R0?AVexception@std@@@8 DD FLAT:??_7type_info@@6B@	; std::exception `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVexception@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@exception@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@exception@std@@8 DD FLAT:??_R0?AVexception@std@@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@bad_alloc@std@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@bad_alloc@std@@8 DD FLAT:??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3bad_alloc@std@@8
rdata$r	ENDS
;	COMDAT ??_R2bad_alloc@std@@8
rdata$r	SEGMENT
??_R2bad_alloc@std@@8 DD FLAT:??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@exception@std@@8
rdata$r	ENDS
;	COMDAT ??_R3bad_alloc@std@@8
rdata$r	SEGMENT
??_R3bad_alloc@std@@8 DD 00H				; std::bad_alloc::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2bad_alloc@std@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVbad_alloc@std@@@8
_DATA	SEGMENT
??_R0?AVbad_alloc@std@@@8 DD FLAT:??_7type_info@@6B@	; std::bad_alloc `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVbad_alloc@std@@', 00H
_DATA	ENDS
;	COMDAT ??_R4bad_alloc@std@@6B@
rdata$r	SEGMENT
??_R4bad_alloc@std@@6B@ DD 00H				; std::bad_alloc::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	FLAT:??_R3bad_alloc@std@@8
rdata$r	ENDS
;	COMDAT ??_7bad_alloc@std@@6B@
CONST	SEGMENT
??_7bad_alloc@std@@6B@ DD FLAT:??_R4bad_alloc@std@@6B@	; std::bad_alloc::`vftable'
	DD	FLAT:??_Ebad_alloc@std@@UAEPAXI@Z
	DD	FLAT:?what@exception@std@@UBEPBDXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@PBD@Z
_TEXT	SEGMENT
__Message$ = 8						; size = 4
??0bad_alloc@std@@QAE@PBD@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx

; 371  : 		{	// construct from message string

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

; 372  : 		}

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

; 380  : 		{	// destroy the object

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

; 381  : 		}

	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
??1bad_alloc@std@@UAE@XZ ENDP				; std::bad_alloc::~bad_alloc
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:PROC				; operator delete
; Function compile flags: /Ogtpy
;	COMDAT ??_Gbad_alloc@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gbad_alloc@std@@UAEPAXI@Z PROC			; std::bad_alloc::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	call	??1exception@std@@UAE@XZ		; std::exception::~exception
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN6@scalar
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar:
	mov	eax, esi
	pop	esi
	ret	4
??_Gbad_alloc@std@@UAEPAXI@Z ENDP			; std::bad_alloc::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?InitEngineCommon@@YAXI@Z			; InitEngineCommon
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_common.cpp
;	COMDAT ?InitEngineCommon@@YAXI@Z
_TEXT	SEGMENT
_exe$ = 8						; size = 4
?InitEngineCommon@@YAXI@Z PROC				; InitEngineCommon, COMDAT

; 47   : 	switch (Exe)

	mov	eax, DWORD PTR ?Exe@@3HA		; Exe
	cmp	eax, 4
	ja	$LN1@InitEngine
	jmp	DWORD PTR $LN12@InitEngine[eax*4]
$LN6@InitEngine:

; 48   : 	{
; 49   : 	case 0: //game.exe
; 50   : 		{
; 51   : 			RenNew = (rennew)0x00672B70;

	mov	eax, 6761328				; 00672b70H
	mov	DWORD PTR ?RenNew@@3P6APAXK@ZA, eax	; RenNew

; 52   : 			RenVecNew = (rennew)0x00672B70;

	mov	DWORD PTR ?RenVecNew@@3P6APAXK@ZA, eax	; RenVecNew

; 53   : 			RenDelete = (rendelete)0x00672C80;

	mov	eax, 6761600				; 00672c80H

; 54   : 			RenVecDelete = (rendelete)0x00672C80;
; 55   : 			Parse_Console_Input = (ConsoleInput)0x004287E0;

	mov	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA, 4360160 ; Parse_Console_Input, 004287e0H

; 56   : 			Output_To_Console = (void *)0x00428B50;

	mov	DWORD PTR ?Output_To_Console@@3PAXA, 4361040 ; Output_To_Console, 00428b50H

; 57   : 			HasSSE = (bool *)0x0084F702;

	mov	DWORD PTR ?HasSSE@@3PA_NA, 8713986	; HasSSE, 0084f702H

; 58   : 			Has3DNow = (bool *)0x0084F706;

	mov	DWORD PTR ?Has3DNow@@3PA_NA, 8713990	; Has3DNow, 0084f706H

; 113  : 			RenDelete = (rendelete)0x0;

	mov	DWORD PTR ?RenDelete@@3P6AXPAX@ZA, eax	; RenDelete

; 114  : 			RenVecDelete = (rendelete)0x0;

	mov	DWORD PTR ?RenVecDelete@@3P6AXPAX@ZA, eax ; RenVecDelete

; 119  : 		}
; 120  : 		break;
; 121  : 	}
; 122  : }

	ret	0
$LN5@InitEngine:

; 59   : 		}
; 60   : 		break;
; 61   : 	case 1: //server.dat
; 62   : 		{
; 63   : 			RenNew = (rennew)0x00672410;

	mov	eax, 6759440				; 00672410H
	mov	DWORD PTR ?RenNew@@3P6APAXK@ZA, eax	; RenNew

; 64   : 			RenVecNew = (rennew)0x00672410;

	mov	DWORD PTR ?RenVecNew@@3P6APAXK@ZA, eax	; RenVecNew

; 65   : 			RenDelete = (rendelete)0x00672520;

	mov	eax, 6759712				; 00672520H

; 66   : 			RenVecDelete = (rendelete)0x00672520;
; 67   : 			Parse_Console_Input = (ConsoleInput)0x00428960;

	mov	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA, 4360544 ; Parse_Console_Input, 00428960H

; 68   : 			Output_To_Console = (void *)0x00428CD0;

	mov	DWORD PTR ?Output_To_Console@@3PAXA, 4361424 ; Output_To_Console, 00428cd0H

; 69   : 			HasSSE = (bool *)0x0084E8EA;

	mov	DWORD PTR ?HasSSE@@3PA_NA, 8710378	; HasSSE, 0084e8eaH

; 70   : 			Has3DNow = (bool *)0x0084E8EE;

	mov	DWORD PTR ?Has3DNow@@3PA_NA, 8710382	; Has3DNow, 0084e8eeH

; 113  : 			RenDelete = (rendelete)0x0;

	mov	DWORD PTR ?RenDelete@@3P6AXPAX@ZA, eax	; RenDelete

; 114  : 			RenVecDelete = (rendelete)0x0;

	mov	DWORD PTR ?RenVecDelete@@3P6AXPAX@ZA, eax ; RenVecDelete

; 119  : 		}
; 120  : 		break;
; 121  : 	}
; 122  : }

	ret	0
$LN4@InitEngine:

; 71   : 		}
; 72   : 		break;
; 73   : 	case 2: //RH73
; 74   : 		{
; 75   : 			RenNew = (rennew)0x0804AA48;

	mov	DWORD PTR ?RenNew@@3P6APAXK@ZA, 134523464 ; RenNew, 0804aa48H

; 76   : 			RenVecNew = (rennew)0x0804A7B8;

	mov	DWORD PTR ?RenVecNew@@3P6APAXK@ZA, 134522808 ; RenVecNew, 0804a7b8H

; 77   : 			RenDelete = (rendelete)0x0804A8F8;

	mov	DWORD PTR ?RenDelete@@3P6AXPAX@ZA, 134523128 ; RenDelete, 0804a8f8H

; 78   : 			RenVecDelete = (rendelete)0x0804AA08;

	mov	DWORD PTR ?RenVecDelete@@3P6AXPAX@ZA, 134523400 ; RenVecDelete, 0804aa08H

; 79   : 			Parse_Console_Input = (ConsoleInput)0x0805BBB8;

	mov	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA, 134593464 ; Parse_Console_Input, 0805bbb8H

; 80   : 			Output_To_Console = (void *)0x0805BF40;

	mov	DWORD PTR ?Output_To_Console@@3PAXA, 134594368 ; Output_To_Console, 0805bf40H

; 81   : 			HasSSE = (bool *)0x086E5302;

	mov	DWORD PTR ?HasSSE@@3PA_NA, 141447938	; HasSSE, 086e5302H

; 82   : 			Has3DNow = (bool *)0x086E5306;

	mov	DWORD PTR ?Has3DNow@@3PA_NA, 141447942	; Has3DNow, 086e5306H

; 119  : 		}
; 120  : 		break;
; 121  : 	}
; 122  : }

	ret	0
$LN3@InitEngine:

; 83   : 		}
; 84   : 		break;
; 85   : 	case 3: //RH8
; 86   : 		{
; 87   : 			RenNew = (rennew)0x08053B04;

	mov	DWORD PTR ?RenNew@@3P6APAXK@ZA, 134560516 ; RenNew, 08053b04H

; 88   : 			RenVecNew = (rennew)0x08053A14;

	mov	DWORD PTR ?RenVecNew@@3P6APAXK@ZA, 134560276 ; RenVecNew, 08053a14H

; 89   : 			RenDelete = (rendelete)0x08053434;

	mov	DWORD PTR ?RenDelete@@3P6AXPAX@ZA, 134558772 ; RenDelete, 08053434H

; 90   : 			RenVecDelete = (rendelete)0x08053A54;

	mov	DWORD PTR ?RenVecDelete@@3P6AXPAX@ZA, 134560340 ; RenVecDelete, 08053a54H

; 91   : 			Parse_Console_Input = (ConsoleInput)0x08063F56;

	mov	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA, 134627158 ; Parse_Console_Input, 08063f56H

; 92   : 			Output_To_Console = (void *)0x080642B2;

	mov	DWORD PTR ?Output_To_Console@@3PAXA, 134628018 ; Output_To_Console, 080642b2H

; 93   : 			HasSSE = (bool *)0x0860DDA2;

	mov	DWORD PTR ?HasSSE@@3PA_NA, 140565922	; HasSSE, 0860dda2H

; 94   : 			Has3DNow = (bool *)0x0860DDA6;

	mov	DWORD PTR ?Has3DNow@@3PA_NA, 140565926	; Has3DNow, 0860dda6H

; 119  : 		}
; 120  : 		break;
; 121  : 	}
; 122  : }

	ret	0
$LN2@InitEngine:

; 95   : 		}
; 96   : 		break;
; 97   : 	case 4: //leveledit, if this isnt here, things will break bigtime
; 98   : 		{
; 99   : 			RenNew = (rennew)0x007A783D;

	mov	eax, 8026173				; 007a783dH
	mov	DWORD PTR ?RenNew@@3P6APAXK@ZA, eax	; RenNew

; 100  : 			RenVecNew = (rennew)0x007A783D;

	mov	DWORD PTR ?RenVecNew@@3P6APAXK@ZA, eax	; RenVecNew

; 101  : 			RenDelete = (rendelete)0x007A7866;

	mov	eax, 8026214				; 007a7866H
	mov	DWORD PTR ?RenDelete@@3P6AXPAX@ZA, eax	; RenDelete

; 102  : 			RenVecDelete = (rendelete)0x007A7866;

	mov	DWORD PTR ?RenVecDelete@@3P6AXPAX@ZA, eax ; RenVecDelete

; 103  : 			Parse_Console_Input = (ConsoleInput)0;

	xor	eax, eax
	mov	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA, eax ; Parse_Console_Input

; 104  : 			Output_To_Console = (void *)0;

	mov	DWORD PTR ?Output_To_Console@@3PAXA, eax ; Output_To_Console

; 105  : 			HasSSE = (bool *)0;

	mov	DWORD PTR ?HasSSE@@3PA_NA, eax		; HasSSE

; 106  : 			Has3DNow = (bool *)0;

	mov	DWORD PTR ?Has3DNow@@3PA_NA, eax	; Has3DNow

; 119  : 		}
; 120  : 		break;
; 121  : 	}
; 122  : }

	ret	0
$LN1@InitEngine:

; 107  : 		}
; 108  : 		break;
; 109  : 	default:
; 110  : 		{
; 111  : 			RenNew = (rennew)0x0;

	xor	eax, eax
	mov	DWORD PTR ?RenNew@@3P6APAXK@ZA, eax	; RenNew

; 112  : 			RenVecNew = (rennew)0x0;

	mov	DWORD PTR ?RenVecNew@@3P6APAXK@ZA, eax	; RenVecNew

; 115  : 			Parse_Console_Input = (ConsoleInput)0;

	mov	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA, eax ; Parse_Console_Input

; 116  : 			Output_To_Console = (void *)0;

	mov	DWORD PTR ?Output_To_Console@@3PAXA, eax ; Output_To_Console

; 117  : 			HasSSE = (bool *)0;

	mov	DWORD PTR ?HasSSE@@3PA_NA, eax		; HasSSE

; 118  : 			Has3DNow = (bool *)0;

	mov	DWORD PTR ?Has3DNow@@3PA_NA, eax	; Has3DNow
	mov	DWORD PTR ?RenDelete@@3P6AXPAX@ZA, eax	; RenDelete
	mov	DWORD PTR ?RenVecDelete@@3P6AXPAX@ZA, eax ; RenVecDelete

; 119  : 		}
; 120  : 		break;
; 121  : 	}
; 122  : }

	ret	0
	npad	3
$LN12@InitEngine:
	DD	$LN6@InitEngine
	DD	$LN5@InitEngine
	DD	$LN4@InitEngine
	DD	$LN3@InitEngine
	DD	$LN2@InitEngine
?InitEngineCommon@@YAXI@Z ENDP				; InitEngineCommon
_TEXT	ENDS
PUBLIC	?Console_Input@@YAXPBD@Z			; Console_Input
; Function compile flags: /Ogtpy
;	COMDAT ?Console_Input@@YAXPBD@Z
_TEXT	SEGMENT
_Input$ = 8						; size = 4
?Console_Input@@YAXPBD@Z PROC				; Console_Input, COMDAT

; 125  : {

	push	esi

; 126  : 	if (strlen(Input) > 255)

	mov	esi, DWORD PTR _Input$[esp]
	mov	eax, esi
	lea	edx, DWORD PTR [eax+1]
	npad	6
$LL4@Console_In:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL4@Console_In
	sub	eax, edx
	cmp	eax, 255				; 000000ffH
	ja	SHORT $LN2@Console_In

; 127  : 	{
; 128  : 		return;
; 129  : 	}
; 130  : 	Parse_Console_Input(Input);

	push	esi
	call	DWORD PTR ?Parse_Console_Input@@3P6AXPBD@ZA ; Parse_Console_Input
	add	esp, 4
$LN2@Console_In:
	pop	esi

; 131  : }

	ret	0
?Console_Input@@YAXPBD@Z ENDP				; Console_Input
_TEXT	ENDS
PUBLIC	?Console_Output@@YAXPBDZZ			; Console_Output
; Function compile flags: /Odtpy
;	COMDAT ?Console_Output@@YAXPBDZZ
_TEXT	SEGMENT
_Output$ = 8						; size = 4
?Console_Output@@YAXPBDZZ PROC				; Console_Output, COMDAT

; 134  : IMPLEMENT_THUNK(Output_To_Console)

	mov	eax, DWORD PTR ?Output_To_Console@@3PAXA ; Output_To_Console
	jmp	eax
?Console_Output@@YAXPBDZZ ENDP				; Console_Output
_TEXT	ENDS
PUBLIC	?DeallocMemory@@YAXPAX@Z			; DeallocMemory
; Function compile flags: /Ogtpy
;	COMDAT ?DeallocMemory@@YAXPAX@Z
_TEXT	SEGMENT
_reportedAddress$ = 8					; size = 4
?DeallocMemory@@YAXPAX@Z PROC				; DeallocMemory, COMDAT

; 184  : 	RenDelete(reportedAddress);

	jmp	DWORD PTR ?RenDelete@@3P6AXPAX@ZA	; RenDelete
?DeallocMemory@@YAXPAX@Z ENDP				; DeallocMemory
_TEXT	ENDS
PUBLIC	?AppInvalidParameterHandler@@YAXPB_W00II@Z	; AppInvalidParameterHandler
EXTRN	__imp__DebugBreak@0:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?AppInvalidParameterHandler@@YAXPB_W00II@Z
_TEXT	SEGMENT
_expression$ = 8					; size = 4
_function$ = 12						; size = 4
_file$ = 16						; size = 4
_line$ = 20						; size = 4
_pReserved$ = 24					; size = 4
?AppInvalidParameterHandler@@YAXPB_W00II@Z PROC		; AppInvalidParameterHandler, COMDAT

; 197  : 	DebugBreak();

	jmp	DWORD PTR __imp__DebugBreak@0
?AppInvalidParameterHandler@@YAXPB_W00II@Z ENDP		; AppInvalidParameterHandler
_TEXT	ENDS
PUBLIC	?InitEngine@@YAXXZ				; InitEngine
EXTRN	?InitEngineIO@@YAXI@Z:PROC			; InitEngineIO
EXTRN	?InitEnginePhys@@YAXI@Z:PROC			; InitEnginePhys
EXTRN	?InitEngineDmg@@YAXI@Z:PROC			; InitEngineDmg
EXTRN	?InitEngineTDB@@YAXI@Z:PROC			; InitEngineTDB
EXTRN	?InitEngineObj2@@YAXI@Z:PROC			; InitEngineObj2
EXTRN	?InitEngineObj@@YAXI@Z:PROC			; InitEngineObj
EXTRN	?InitEnginePT@@YAXI@Z:PROC			; InitEnginePT
EXTRN	?InitEngineWeap@@YAXI@Z:PROC			; InitEngineWeap
EXTRN	?InitEngineGame@@YAXI@Z:PROC			; InitEngineGame
EXTRN	?InitEnginePlayer@@YAXI@Z:PROC			; InitEnginePlayer
EXTRN	?InitEngineDef@@YAXI@Z:PROC			; InitEngineDef
EXTRN	?InitEngineNet@@YAXI@Z:PROC			; InitEngineNet
EXTRN	?InitEngineMath@@YAXXZ:PROC			; InitEngineMath
EXTRN	?InitEngineThreading@@YAXI@Z:PROC		; InitEngineThreading
EXTRN	?InitEngineString@@YAXI@Z:PROC			; InitEngineString
EXTRN	__set_invalid_parameter_handler:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?InitEngine@@YAXXZ
_TEXT	SEGMENT
?InitEngine@@YAXXZ PROC					; InitEngine, COMDAT

; 203  : #ifdef WIN32
; 204  : #if (_MSC_VER == 1400)
; 205  : 	_set_invalid_parameter_handler(AppInvalidParameterHandler);

	push	OFFSET ?AppInvalidParameterHandler@@YAXPB_W00II@Z ; AppInvalidParameterHandler
	call	__set_invalid_parameter_handler
	add	esp, 4
	push	ebx
	push	esi

; 206  : #endif
; 207  : 	if (!memcmp((void *)0x0078CE49,(void *)Code,19))

	mov	edx, 19					; 00000013H
	mov	eax, OFFSET _Code
	mov	ecx, 7917129				; 0078ce49H
	push	edi
	npad	1
$LL7@InitEngine@2:
	mov	esi, DWORD PTR [ecx]
	cmp	esi, DWORD PTR [eax]
	jne	SHORT $LN8@InitEngine@2
	sub	edx, 4
	add	eax, 4
	add	ecx, 4
	cmp	edx, 4
	jae	SHORT $LL7@InitEngine@2
	test	edx, edx
	je	SHORT $LN9@InitEngine@2
$LN8@InitEngine@2:
	movzx	edi, BYTE PTR [eax]
	movzx	esi, BYTE PTR [ecx]
	sub	esi, edi
	jne	SHORT $LN10@InitEngine@2
	sub	edx, 1
	add	eax, 1
	add	ecx, 1
	test	edx, edx
	je	SHORT $LN9@InitEngine@2
	movzx	edi, BYTE PTR [eax]
	movzx	esi, BYTE PTR [ecx]
	sub	esi, edi
	jne	SHORT $LN10@InitEngine@2
	sub	edx, 1
	add	eax, 1
	add	ecx, 1
	test	edx, edx
	je	SHORT $LN9@InitEngine@2
	movzx	edi, BYTE PTR [eax]
	movzx	esi, BYTE PTR [ecx]
	sub	esi, edi
	jne	SHORT $LN10@InitEngine@2
	sub	edx, 1
	add	eax, 1
	add	ecx, 1
	test	edx, edx
	je	SHORT $LN9@InitEngine@2
	movzx	eax, BYTE PTR [eax]
	movzx	esi, BYTE PTR [ecx]
	sub	esi, eax
	je	SHORT $LN9@InitEngine@2
$LN10@InitEngine@2:
	test	esi, esi
	mov	eax, 1
	jg	SHORT $LN11@InitEngine@2
	or	eax, -1
	jmp	SHORT $LN11@InitEngine@2
$LN9@InitEngine@2:
	xor	eax, eax
$LN11@InitEngine@2:
	test	eax, eax
	jne	SHORT $LN36@InitEngine@2

; 208  : 	{
; 209  : 		Exe = 0;

	xor	edi, edi
	mov	DWORD PTR ?Exe@@3HA, edi		; Exe
	jmp	SHORT $LN3@InitEngine@2
$LN36@InitEngine@2:
	mov	edi, DWORD PTR ?Exe@@3HA		; Exe
$LN3@InitEngine@2:

; 210  : 	}
; 211  : 	if (!memcmp((void *)0x0078C6E9,(void *)Code,19))

	mov	eax, 19					; 00000013H
	mov	ecx, OFFSET _Code
	mov	edx, 7915241				; 0078c6e9H
	npad	6
$LL13@InitEngine@2:
	mov	esi, DWORD PTR [edx]
	cmp	esi, DWORD PTR [ecx]
	jne	SHORT $LN14@InitEngine@2
	sub	eax, 4
	add	ecx, 4
	add	edx, 4
	cmp	eax, 4
	jae	SHORT $LL13@InitEngine@2
	test	eax, eax
	je	SHORT $LN15@InitEngine@2
$LN14@InitEngine@2:
	movzx	esi, BYTE PTR [edx]
	movzx	ebx, BYTE PTR [ecx]
	sub	esi, ebx
	jne	SHORT $LN16@InitEngine@2
	sub	eax, 1
	add	ecx, 1
	add	edx, 1
	test	eax, eax
	je	SHORT $LN15@InitEngine@2
	movzx	esi, BYTE PTR [edx]
	movzx	ebx, BYTE PTR [ecx]
	sub	esi, ebx
	jne	SHORT $LN16@InitEngine@2
	sub	eax, 1
	add	ecx, 1
	add	edx, 1
	test	eax, eax
	je	SHORT $LN15@InitEngine@2
	movzx	esi, BYTE PTR [edx]
	movzx	ebx, BYTE PTR [ecx]
	sub	esi, ebx
	jne	SHORT $LN16@InitEngine@2
	sub	eax, 1
	add	ecx, 1
	add	edx, 1
	test	eax, eax
	je	SHORT $LN15@InitEngine@2
	movzx	esi, BYTE PTR [edx]
	movzx	ecx, BYTE PTR [ecx]
	sub	esi, ecx
	je	SHORT $LN15@InitEngine@2
$LN16@InitEngine@2:
	test	esi, esi
	mov	eax, 1
	jg	SHORT $LN17@InitEngine@2
	or	eax, -1
	jmp	SHORT $LN17@InitEngine@2
$LN15@InitEngine@2:
	xor	eax, eax
$LN17@InitEngine@2:
	test	eax, eax
	jne	SHORT $LN2@InitEngine@2

; 212  : 	{
; 213  : 		Exe = 1;

	mov	edi, 1
	mov	DWORD PTR ?Exe@@3HA, edi		; Exe
$LN2@InitEngine@2:

; 214  : 	}
; 215  : 	if (!memcmp((void *)0x0078790C,(void *)Code,19))

	mov	eax, 19					; 00000013H
	mov	ecx, OFFSET _Code
	mov	edx, 7895308				; 0078790cH
$LL19@InitEngine@2:
	mov	esi, DWORD PTR [edx]
	cmp	esi, DWORD PTR [ecx]
	jne	SHORT $LN20@InitEngine@2
	sub	eax, 4
	add	ecx, 4
	add	edx, 4
	cmp	eax, 4
	jae	SHORT $LL19@InitEngine@2
	test	eax, eax
	je	SHORT $LN21@InitEngine@2
$LN20@InitEngine@2:
	movzx	ebx, BYTE PTR [ecx]
	movzx	esi, BYTE PTR [edx]
	sub	esi, ebx
	jne	SHORT $LN22@InitEngine@2
	sub	eax, 1
	add	ecx, 1
	add	edx, 1
	test	eax, eax
	je	SHORT $LN21@InitEngine@2
	movzx	ebx, BYTE PTR [ecx]
	movzx	esi, BYTE PTR [edx]
	sub	esi, ebx
	jne	SHORT $LN22@InitEngine@2
	sub	eax, 1
	add	ecx, 1
	add	edx, 1
	test	eax, eax
	je	SHORT $LN21@InitEngine@2
	movzx	ebx, BYTE PTR [ecx]
	movzx	esi, BYTE PTR [edx]
	sub	esi, ebx
	jne	SHORT $LN22@InitEngine@2
	sub	eax, 1
	add	ecx, 1
	add	edx, 1
	test	eax, eax
	je	SHORT $LN21@InitEngine@2
	movzx	eax, BYTE PTR [ecx]
	movzx	esi, BYTE PTR [edx]
	sub	esi, eax
	je	SHORT $LN21@InitEngine@2
$LN22@InitEngine@2:
	test	esi, esi
	mov	eax, 1
	jg	SHORT $LN23@InitEngine@2
	or	eax, -1
	jmp	SHORT $LN23@InitEngine@2
$LN21@InitEngine@2:
	xor	eax, eax
$LN23@InitEngine@2:
	test	eax, eax
	jne	SHORT $LN1@InitEngine@2

; 216  : 	{
; 217  : 		Exe = 4;

	mov	edi, 4
	mov	DWORD PTR ?Exe@@3HA, edi		; Exe
$LN1@InitEngine@2:

; 218  : 	}
; 219  : #endif
; 220  : 	InitEngineCommon(Exe);

	push	edi
	call	?InitEngineCommon@@YAXI@Z		; InitEngineCommon

; 221  : 	InitEngineString(Exe);

	push	edi
	call	?InitEngineString@@YAXI@Z		; InitEngineString

; 222  : 	InitEngineThreading(Exe);

	mov	ecx, DWORD PTR ?Exe@@3HA		; Exe
	push	ecx
	call	?InitEngineThreading@@YAXI@Z		; InitEngineThreading

; 223  : #ifdef SHADERS_EXPORTS
; 224  : 	InitEngineMath();
; 225  : 	InitEngineNet(Exe);
; 226  : 	InitEngineDef(Exe);
; 227  : 	InitEngineGame(Exe);
; 228  : 	InitEngineWeap(Exe);
; 229  : 	InitEngineObj(Exe);
; 230  : 	InitEngineObj2(Exe);
; 231  : 	InitEngineTDB(Exe);
; 232  : 	InitEngineIO(Exe);
; 233  : 	InitEngine3DRE(Exe);
; 234  : 	InitEngine3D(Exe);
; 235  : #else
; 236  : #ifndef PROXYDLL_EXPORTS
; 237  : 	InitEngineMath();

	call	?InitEngineMath@@YAXXZ			; InitEngineMath

; 238  : 	InitEngineNet(Exe);

	mov	edx, DWORD PTR ?Exe@@3HA		; Exe
	push	edx
	call	?InitEngineNet@@YAXI@Z			; InitEngineNet

; 239  : 	InitEngineDef(Exe);

	mov	eax, DWORD PTR ?Exe@@3HA		; Exe
	push	eax
	call	?InitEngineDef@@YAXI@Z			; InitEngineDef

; 240  : 	InitEnginePlayer(Exe);

	mov	ecx, DWORD PTR ?Exe@@3HA		; Exe
	push	ecx
	call	?InitEnginePlayer@@YAXI@Z		; InitEnginePlayer

; 241  : 	InitEngineGame(Exe);

	mov	edx, DWORD PTR ?Exe@@3HA		; Exe
	push	edx
	call	?InitEngineGame@@YAXI@Z			; InitEngineGame

; 242  : 	InitEngineWeap(Exe);

	mov	eax, DWORD PTR ?Exe@@3HA		; Exe
	push	eax
	call	?InitEngineWeap@@YAXI@Z			; InitEngineWeap

; 243  : 	InitEnginePT(Exe);

	mov	ecx, DWORD PTR ?Exe@@3HA		; Exe
	push	ecx
	call	?InitEnginePT@@YAXI@Z			; InitEnginePT

; 244  : 	InitEngineObj(Exe);

	mov	edx, DWORD PTR ?Exe@@3HA		; Exe
	push	edx
	call	?InitEngineObj@@YAXI@Z			; InitEngineObj

; 245  : 	InitEngineObj2(Exe);

	mov	eax, DWORD PTR ?Exe@@3HA		; Exe
	push	eax
	call	?InitEngineObj2@@YAXI@Z			; InitEngineObj2

; 246  : 	InitEngineTDB(Exe);

	mov	ecx, DWORD PTR ?Exe@@3HA		; Exe
	push	ecx
	call	?InitEngineTDB@@YAXI@Z			; InitEngineTDB

; 247  : 	InitEngineDmg(Exe);

	mov	edx, DWORD PTR ?Exe@@3HA		; Exe
	push	edx
	call	?InitEngineDmg@@YAXI@Z			; InitEngineDmg

; 248  : 	InitEnginePhys(Exe);

	mov	eax, DWORD PTR ?Exe@@3HA		; Exe
	push	eax
	call	?InitEnginePhys@@YAXI@Z			; InitEnginePhys

; 249  : 	InitEngineIO(Exe);

	mov	ecx, DWORD PTR ?Exe@@3HA		; Exe
	push	ecx
	call	?InitEngineIO@@YAXI@Z			; InitEngineIO
	add	esp, 60					; 0000003cH
	pop	edi
	pop	esi
	pop	ebx

; 250  : #endif
; 251  : #ifdef BHS_EXPORTS
; 252  : #ifdef WIN32
; 253  : 	InitEngine3DRE(Exe);
; 254  : #endif
; 255  : #endif
; 256  : #endif
; 257  : }

	ret	0
?InitEngine@@YAXXZ ENDP					; InitEngine
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ; std::_DebugHeapAllocator<char>::allocate
PUBLIC	__CTA2?AVbad_alloc@std@@
PUBLIC	__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
PUBLIC	??0bad_alloc@std@@QAE@ABV01@@Z			; std::bad_alloc::bad_alloc
PUBLIC	__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
EXTRN	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z:PROC	; operator new[]
EXTRN	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ:PROC ; std::_DebugHeapTag_func
EXTRN	__CxxThrowException@8:PROC
EXTRN	??0exception@std@@QAE@ABV01@@Z:PROC		; std::exception::exception
;	COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
; File c:\program files\microsoft visual studio 8\vc\include\exception
xdata$x	SEGMENT
__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVexception@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0exception@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_alloc@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_alloc@std@@
xdata$x	SEGMENT
__CTA2?AVbad_alloc@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVbad_alloc@std@@
xdata$x	SEGMENT
__TI2?AVbad_alloc@std@@ DD 00H
	DD	FLAT:??1bad_alloc@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_alloc@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xdebug', 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T60378 = -12						; size = 12
_this$ = 8						; size = 4
$T60384 = 12						; size = 4
__Count$ = 12						; size = 4
___formal$ = 16						; size = 4
?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z PROC ; std::_DebugHeapAllocator<char>::allocate, COMDAT

; 79   : 		{	// check for integer overflow

	sub	esp, 12					; 0000000cH
	push	esi

; 80   : 		if (_Count <= 0)

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

; 81   : 			_Count = 0;

	xor	esi, esi
$LN1@allocate:

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

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

; 87   : 		}

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

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

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

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

	lea	eax, DWORD PTR $T60384[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T60378[esp+20]
	mov	DWORD PTR $T60384[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T60378[esp+20]
	push	ecx
	mov	DWORD PTR $T60378[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
$T60390 = -12						; size = 12
$T60395 = 8						; size = 4
__Count$ = 8						; size = 4
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z PROC	; std::_DebugHeapAllocator<char>::allocate, COMDAT
; _this$ = ecx

; 90   : 		{	// check for integer overflow

	sub	esp, 12					; 0000000cH
	push	esi

; 91   : 		if (_Count <= 0)

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

; 92   : 			_Count = 0;

	xor	esi, esi
$LN1@allocate@2:

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

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

; 98   : 		}

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

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

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

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

	lea	eax, DWORD PTR $T60395[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T60390[esp+20]
	mov	DWORD PTR $T60395[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T60390[esp+20]
	push	ecx
	mov	DWORD PTR $T60390[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate@2:
$LN8@allocate@2:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ENDP	; std::_DebugHeapAllocator<char>::allocate
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
_TEXT	ENDS
PUBLIC	?AllocMemory@@YAPAXI@Z				; AllocMemory
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_common.cpp
;	COMDAT ?AllocMemory@@YAPAXI@Z
_TEXT	SEGMENT
_reportedSize$ = 8					; size = 4
?AllocMemory@@YAPAXI@Z PROC				; AllocMemory, COMDAT

; 174  : 	if (!RenNew)

	cmp	DWORD PTR ?RenNew@@3P6APAXK@ZA, 0	; RenNew
	jne	SHORT $LN1@AllocMemor

; 175  : 	{
; 176  : 		InitEngine();

	call	?InitEngine@@YAXXZ			; InitEngine
$LN1@AllocMemor:

; 177  : 	}
; 178  : 	void *x = RenNew(reportedSize);

	jmp	DWORD PTR ?RenNew@@3P6APAXK@ZA		; RenNew
?AllocMemory@@YAPAXI@Z ENDP				; AllocMemory
_TEXT	ENDS
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z PROC ; std::_DebugHeapAllocator<char>::deallocate, COMDAT
; _this$ = ecx

; 102  : 		_DELETE_CRT_VEC(_Ptr);

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

; 103  : 		}

	ret	8
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ENDP ; std::_DebugHeapAllocator<char>::deallocate
_TEXT	ENDS
PUBLIC	??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
END
