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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?SetCanGenerateVehicles@@3PAXA			; SetCanGenerateVehicles
PUBLIC	?Collect_Building_Components@@3P6AXXZA		; Collect_Building_Components
PUBLIC	?FindBase@@3PAXA				; FindBase
PUBLIC	?PublicMessageColor@@3PAMA			; PublicMessageColor
PUBLIC	?GameType@@3PAHA				; GameType
PUBLIC	?Cnc_Game@@3PAXA				; Cnc_Game
PUBLIC	?SetCanGenerateSoldiers@@3PAXA			; SetCanGenerateSoldiers
PUBLIC	?Game_Mode_Find@@3P6APAXPBD@ZA			; Game_Mode_Find
PUBLIC	?PowerBase@@3PAXA				; PowerBase
PUBLIC	?GameMode@@3PAIA				; GameMode
PUBLIC	?GetHarvester@@3PAXA				; GetHarvester
PUBLIC	?IsMapVTOL@@3PA_NA				; IsMapVTOL
PUBLIC	?NodHouseColor@@3PAMA				; NodHouseColor
PUBLIC	?Game@@3PAXA					; Game
PUBLIC	?PrivateMessageColor@@3PAMA			; PrivateMessageColor
PUBLIC	?SetBeaconDestroyedBase@@3PAXA			; SetBeaconDestroyedBase
PUBLIC	?Single_Player_Game@@3PAXA			; Single_Player_Game
PUBLIC	?GDIHouseColor@@3PAMA				; GDIHouseColor
PUBLIC	?DestroyBase@@3PAXA				; DestroyBase
PUBLIC	?Skirmish_Game@@3PAXA				; Skirmish_Game
PUBLIC	?IsListed@@3PA_NA				; IsListed
PUBLIC	?FindBuilding@@3PAXA				; FindBuilding
PUBLIC	?EnableRadar@@3PAXA				; EnableRadar
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
_BSS	SEGMENT
?SetCanGenerateVehicles@@3PAXA DD 01H DUP (?)		; SetCanGenerateVehicles
?Collect_Building_Components@@3P6AXXZA DD 01H DUP (?)	; Collect_Building_Components
?FindBase@@3PAXA DD 01H DUP (?)				; FindBase
?PublicMessageColor@@3PAMA DD 01H DUP (?)		; PublicMessageColor
?GameType@@3PAHA DD 01H DUP (?)				; GameType
?Cnc_Game@@3PAXA DD 01H DUP (?)				; Cnc_Game
?SetCanGenerateSoldiers@@3PAXA DD 01H DUP (?)		; SetCanGenerateSoldiers
?Game_Mode_Find@@3P6APAXPBD@ZA DD 01H DUP (?)		; Game_Mode_Find
?PowerBase@@3PAXA DD 01H DUP (?)			; PowerBase
?GameMode@@3PAIA DD 01H DUP (?)				; GameMode
?GetHarvester@@3PAXA DD 01H DUP (?)			; GetHarvester
?IsMapVTOL@@3PA_NA DD 01H DUP (?)			; IsMapVTOL
?NodHouseColor@@3PAMA DD 01H DUP (?)			; NodHouseColor
?Game@@3PAXA DD	01H DUP (?)				; Game
?PrivateMessageColor@@3PAMA DD 01H DUP (?)		; PrivateMessageColor
?SetBeaconDestroyedBase@@3PAXA DD 01H DUP (?)		; SetBeaconDestroyedBase
?Single_Player_Game@@3PAXA DD 01H DUP (?)		; Single_Player_Game
?GDIHouseColor@@3PAMA DD 01H DUP (?)			; GDIHouseColor
?DestroyBase@@3PAXA DD 01H DUP (?)			; DestroyBase
?Skirmish_Game@@3PAXA DD 01H DUP (?)			; Skirmish_Game
?IsListed@@3PA_NA DD 01H DUP (?)			; IsListed
?FindBuilding@@3PAXA DD 01H DUP (?)			; FindBuilding
?EnableRadar@@3PAXA DD 01H DUP (?)			; EnableRadar
_BSS	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@
_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	?The_Game@@YAPAVcGameData@@XZ			; The_Game
; Function compile flags: /Odtpy
; File d:\source code\stgm\engine_game.cpp
;	COMDAT ?The_Game@@YAPAVcGameData@@XZ
_TEXT	SEGMENT
?The_Game@@YAPAVcGameData@@XZ PROC			; The_Game, COMDAT

; 58   : IMPLEMENT_THUNK_RETURN(Game)

	mov	eax, DWORD PTR ?Game@@3PAXA		; Game
	jmp	eax
?The_Game@@YAPAVcGameData@@XZ ENDP			; The_Game
_TEXT	ENDS
PUBLIC	?Find_Base@BaseControllerClass@@SAPAV1@H@Z	; BaseControllerClass::Find_Base
; Function compile flags: /Odtpy
;	COMDAT ?Find_Base@BaseControllerClass@@SAPAV1@H@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Base@BaseControllerClass@@SAPAV1@H@Z PROC		; BaseControllerClass::Find_Base, COMDAT

; 60   : IMPLEMENT_THUNK_RETURN(FindBase)

	mov	eax, DWORD PTR ?FindBase@@3PAXA		; FindBase
	jmp	eax
?Find_Base@BaseControllerClass@@SAPAV1@H@Z ENDP		; BaseControllerClass::Find_Base
_TEXT	ENDS
PUBLIC	?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ ; BaseControllerClass::Get_Harvester_Vehicle
; Function compile flags: /Odtpy
;	COMDAT ?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ
_TEXT	SEGMENT
?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ PROC ; BaseControllerClass::Get_Harvester_Vehicle, COMDAT
; _this$ = ecx

; 62   : IMPLEMENT_THUNK_RETURN(GetHarvester)

	mov	eax, DWORD PTR ?GetHarvester@@3PAXA	; GetHarvester
	jmp	eax
?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ ENDP ; BaseControllerClass::Get_Harvester_Vehicle
_TEXT	ENDS
PUBLIC	?Power_Base@BaseControllerClass@@QAEX_N@Z	; BaseControllerClass::Power_Base
; Function compile flags: /Odtpy
;	COMDAT ?Power_Base@BaseControllerClass@@QAEX_N@Z
_TEXT	SEGMENT
_Power$ = 8						; size = 1
?Power_Base@BaseControllerClass@@QAEX_N@Z PROC		; BaseControllerClass::Power_Base, COMDAT
; _this$ = ecx

; 64   : IMPLEMENT_THUNK(PowerBase)

	mov	eax, DWORD PTR ?PowerBase@@3PAXA	; PowerBase
	jmp	eax
?Power_Base@BaseControllerClass@@QAEX_N@Z ENDP		; BaseControllerClass::Power_Base
_TEXT	ENDS
PUBLIC	?Set_Can_Generate_Soldiers@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Set_Can_Generate_Soldiers
; Function compile flags: /Odtpy
;	COMDAT ?Set_Can_Generate_Soldiers@BaseControllerClass@@QAEX_N@Z
_TEXT	SEGMENT
_CanGenerate$ = 8					; size = 1
?Set_Can_Generate_Soldiers@BaseControllerClass@@QAEX_N@Z PROC ; BaseControllerClass::Set_Can_Generate_Soldiers, COMDAT
; _this$ = ecx

; 66   : IMPLEMENT_THUNK(SetCanGenerateSoldiers)

	mov	eax, DWORD PTR ?SetCanGenerateSoldiers@@3PAXA ; SetCanGenerateSoldiers
	jmp	eax
?Set_Can_Generate_Soldiers@BaseControllerClass@@QAEX_N@Z ENDP ; BaseControllerClass::Set_Can_Generate_Soldiers
_TEXT	ENDS
PUBLIC	?Set_Can_Generate_Vehicles@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Set_Can_Generate_Vehicles
; Function compile flags: /Odtpy
;	COMDAT ?Set_Can_Generate_Vehicles@BaseControllerClass@@QAEX_N@Z
_TEXT	SEGMENT
_CanGenerate$ = 8					; size = 1
?Set_Can_Generate_Vehicles@BaseControllerClass@@QAEX_N@Z PROC ; BaseControllerClass::Set_Can_Generate_Vehicles, COMDAT
; _this$ = ecx

; 68   : IMPLEMENT_THUNK(SetCanGenerateVehicles)

	mov	eax, DWORD PTR ?SetCanGenerateVehicles@@3PAXA ; SetCanGenerateVehicles
	jmp	eax
?Set_Can_Generate_Vehicles@BaseControllerClass@@QAEX_N@Z ENDP ; BaseControllerClass::Set_Can_Generate_Vehicles
_TEXT	ENDS
PUBLIC	?Destroy_Base@BaseControllerClass@@QAEXXZ	; BaseControllerClass::Destroy_Base
; Function compile flags: /Odtpy
;	COMDAT ?Destroy_Base@BaseControllerClass@@QAEXXZ
_TEXT	SEGMENT
?Destroy_Base@BaseControllerClass@@QAEXXZ PROC		; BaseControllerClass::Destroy_Base, COMDAT
; _this$ = ecx

; 70   : IMPLEMENT_THUNK(DestroyBase)

	mov	eax, DWORD PTR ?DestroyBase@@3PAXA	; DestroyBase
	jmp	eax
?Destroy_Base@BaseControllerClass@@QAEXXZ ENDP		; BaseControllerClass::Destroy_Base
_TEXT	ENDS
PUBLIC	?Enable_Radar@BaseControllerClass@@QAEX_N@Z	; BaseControllerClass::Enable_Radar
; Function compile flags: /Odtpy
;	COMDAT ?Enable_Radar@BaseControllerClass@@QAEX_N@Z
_TEXT	SEGMENT
_Enable$ = 8						; size = 1
?Enable_Radar@BaseControllerClass@@QAEX_N@Z PROC	; BaseControllerClass::Enable_Radar, COMDAT
; _this$ = ecx

; 72   : IMPLEMENT_THUNK(EnableRadar)

	mov	eax, DWORD PTR ?EnableRadar@@3PAXA	; EnableRadar
	jmp	eax
?Enable_Radar@BaseControllerClass@@QAEX_N@Z ENDP	; BaseControllerClass::Enable_Radar
_TEXT	ENDS
PUBLIC	?Set_Beacon_Destroyed_Base@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Set_Beacon_Destroyed_Base
; Function compile flags: /Odtpy
;	COMDAT ?Set_Beacon_Destroyed_Base@BaseControllerClass@@QAEX_N@Z
_TEXT	SEGMENT
_BeaconDestroyed$ = 8					; size = 1
?Set_Beacon_Destroyed_Base@BaseControllerClass@@QAEX_N@Z PROC ; BaseControllerClass::Set_Beacon_Destroyed_Base, COMDAT
; _this$ = ecx

; 74   : IMPLEMENT_THUNK(SetBeaconDestroyedBase)

	mov	eax, DWORD PTR ?SetBeaconDestroyedBase@@3PAXA ; SetBeaconDestroyedBase
	jmp	eax
?Set_Beacon_Destroyed_Base@BaseControllerClass@@QAEX_N@Z ENDP ; BaseControllerClass::Set_Beacon_Destroyed_Base
_TEXT	ENDS
PUBLIC	?Find_Building@BaseControllerClass@@QAEPAEI@Z	; BaseControllerClass::Find_Building
; Function compile flags: /Odtpy
;	COMDAT ?Find_Building@BaseControllerClass@@QAEPAEI@Z
_TEXT	SEGMENT
_Type$ = 8						; size = 4
?Find_Building@BaseControllerClass@@QAEPAEI@Z PROC	; BaseControllerClass::Find_Building, COMDAT
; _this$ = ecx

; 76   : IMPLEMENT_THUNK_RETURN(FindBuilding)

	mov	eax, DWORD PTR ?FindBuilding@@3PAXA	; FindBuilding
	jmp	eax
?Find_Building@BaseControllerClass@@QAEPAEI@Z ENDP	; BaseControllerClass::Find_Building
_TEXT	ENDS
PUBLIC	?The_Skirmish_Game@@YAPAVcGameDataSkirmish@@XZ	; The_Skirmish_Game
; Function compile flags: /Odtpy
;	COMDAT ?The_Skirmish_Game@@YAPAVcGameDataSkirmish@@XZ
_TEXT	SEGMENT
?The_Skirmish_Game@@YAPAVcGameDataSkirmish@@XZ PROC	; The_Skirmish_Game, COMDAT

; 78   : IMPLEMENT_THUNK_RETURN(Skirmish_Game)

	mov	eax, DWORD PTR ?Skirmish_Game@@3PAXA	; Skirmish_Game
	jmp	eax
?The_Skirmish_Game@@YAPAVcGameDataSkirmish@@XZ ENDP	; The_Skirmish_Game
_TEXT	ENDS
PUBLIC	?The_Cnc_Game@@YAPAVcGameDataCnc@@XZ		; The_Cnc_Game
; Function compile flags: /Odtpy
;	COMDAT ?The_Cnc_Game@@YAPAVcGameDataCnc@@XZ
_TEXT	SEGMENT
?The_Cnc_Game@@YAPAVcGameDataCnc@@XZ PROC		; The_Cnc_Game, COMDAT

; 80   : IMPLEMENT_THUNK_RETURN(Cnc_Game)

	mov	eax, DWORD PTR ?Cnc_Game@@3PAXA		; Cnc_Game
	jmp	eax
?The_Cnc_Game@@YAPAVcGameDataCnc@@XZ ENDP		; The_Cnc_Game
_TEXT	ENDS
PUBLIC	?The_Single_Player_Game@@YAPAVcGameDataSinglePlayer@@XZ ; The_Single_Player_Game
; Function compile flags: /Odtpy
;	COMDAT ?The_Single_Player_Game@@YAPAVcGameDataSinglePlayer@@XZ
_TEXT	SEGMENT
?The_Single_Player_Game@@YAPAVcGameDataSinglePlayer@@XZ PROC ; The_Single_Player_Game, COMDAT

; 82   : IMPLEMENT_THUNK_RETURN(Single_Player_Game)

	mov	eax, DWORD PTR ?Single_Player_Game@@3PAXA ; Single_Player_Game
	jmp	eax
?The_Single_Player_Game@@YAPAVcGameDataSinglePlayer@@XZ ENDP ; The_Single_Player_Game
_TEXT	ENDS
PUBLIC	?InitEngineGame@@YAXI@Z				; InitEngineGame
; Function compile flags: /Ogtpy
;	COMDAT ?InitEngineGame@@YAXI@Z
_TEXT	SEGMENT
_exe$ = 8						; size = 4
?InitEngineGame@@YAXI@Z PROC				; InitEngineGame, COMDAT

; 86   : 	switch(exe)

	mov	eax, DWORD PTR _exe$[esp-4]
	cmp	eax, 3
	ja	$LN1@InitEngine
	jmp	DWORD PTR $LN10@InitEngine[eax*4]
$LN5@InitEngine:

; 87   : 	{
; 88   : 		case 0: //game.exe
; 89   : 			Game = (void *)0x00477CA0;

	mov	DWORD PTR ?Game@@3PAXA, 4684960		; Game, 00477ca0H

; 90   : 			FindBase = (void *)0x006EF790;

	mov	DWORD PTR ?FindBase@@3PAXA, 7272336	; FindBase, 006ef790H

; 91   : 			GetHarvester = (void *)0x006EFD60;

	mov	DWORD PTR ?GetHarvester@@3PAXA, 7273824	; GetHarvester, 006efd60H

; 92   : 			PowerBase = (void *)0x006EF310;

	mov	DWORD PTR ?PowerBase@@3PAXA, 7271184	; PowerBase, 006ef310H

; 93   : 			SetCanGenerateSoldiers = (void *)0x006EF420;

	mov	DWORD PTR ?SetCanGenerateSoldiers@@3PAXA, 7271456 ; SetCanGenerateSoldiers, 006ef420H

; 94   : 			SetCanGenerateVehicles = (void *)0x006EF440;

	mov	DWORD PTR ?SetCanGenerateVehicles@@3PAXA, 7271488 ; SetCanGenerateVehicles, 006ef440H

; 95   : 			DestroyBase = (void *)0x006EF840;

	mov	DWORD PTR ?DestroyBase@@3PAXA, 7272512	; DestroyBase, 006ef840H

; 96   : 			SetBeaconDestroyedBase = (void *)0x006EF8D0;

	mov	DWORD PTR ?SetBeaconDestroyedBase@@3PAXA, 7272656 ; SetBeaconDestroyedBase, 006ef8d0H

; 97   : 			EnableRadar = (void *)0x006EFD00;

	mov	DWORD PTR ?EnableRadar@@3PAXA, 7273728	; EnableRadar, 006efd00H

; 98   : 			FindBuilding = (void *)0x006EF6D0;

	mov	DWORD PTR ?FindBuilding@@3PAXA, 7272144	; FindBuilding, 006ef6d0H

; 99   : 			Skirmish_Game = (void *)0x00477CC0;

	mov	DWORD PTR ?Skirmish_Game@@3PAXA, 4684992 ; Skirmish_Game, 00477cc0H

; 100  : 			Cnc_Game = (void *)0x00477CD0;

	mov	DWORD PTR ?Cnc_Game@@3PAXA, 4685008	; Cnc_Game, 00477cd0H

; 101  : 			Single_Player_Game = (void *)0x00477CB0;

	mov	DWORD PTR ?Single_Player_Game@@3PAXA, 4684976 ; Single_Player_Game, 00477cb0H

; 102  : 			IsMapVTOL = (bool *)0x0085E31C;

	mov	DWORD PTR ?IsMapVTOL@@3PA_NA, 8774428	; IsMapVTOL, 0085e31cH

; 103  : 			Collect_Building_Components = (cbc)0x006843E0;

	mov	DWORD PTR ?Collect_Building_Components@@3P6AXXZA, 6833120 ; Collect_Building_Components, 006843e0H

; 104  : 			GameMode = (unsigned int *)0x0081F5F0;

	mov	DWORD PTR ?GameMode@@3PAIA, 8517104	; GameMode, 0081f5f0H

; 105  : 			PrivateMessageColor = (float *)0x0082FC20;

	mov	DWORD PTR ?PrivateMessageColor@@3PAMA, 8584224 ; PrivateMessageColor, 0082fc20H

; 106  : 			PublicMessageColor = (float *)0x0082FBA0;

	mov	DWORD PTR ?PublicMessageColor@@3PAMA, 8584096 ; PublicMessageColor, 0082fba0H

; 107  : 			GDIHouseColor = (float *)0x0085CAA8;

	mov	DWORD PTR ?GDIHouseColor@@3PAMA, 8768168 ; GDIHouseColor, 0085caa8H

; 108  : 			NodHouseColor = (float *)0x0085CA98;

	mov	DWORD PTR ?NodHouseColor@@3PAMA, 8768152 ; NodHouseColor, 0085ca98H

; 109  : 			GameType = (int *)0x00856518;

	mov	DWORD PTR ?GameType@@3PAHA, 8742168	; GameType, 00856518H

; 110  : 			IsListed = (bool *)0x0082FD94;

	mov	DWORD PTR ?IsListed@@3PA_NA, 8584596	; IsListed, 0082fd94H

; 111  : 			Game_Mode_Find = (GameModeFind)0x004372B0;

	mov	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA, 4420272 ; Game_Mode_Find, 004372b0H

; 212  : 			break;
; 213  : 	}
; 214  : }

	ret	0
$LN4@InitEngine:

; 112  : 			break;
; 113  : 		case 1: //server.dat
; 114  : 			Game = (void *)0x00477370;

	mov	DWORD PTR ?Game@@3PAXA, 4682608		; Game, 00477370H

; 115  : 			FindBase = (void *)0x006EED50;

	mov	DWORD PTR ?FindBase@@3PAXA, 7269712	; FindBase, 006eed50H

; 116  : 			GetHarvester = (void *)0x006EF320;

	mov	DWORD PTR ?GetHarvester@@3PAXA, 7271200	; GetHarvester, 006ef320H

; 117  : 			PowerBase = (void *)0x006EE8D0;

	mov	DWORD PTR ?PowerBase@@3PAXA, 7268560	; PowerBase, 006ee8d0H

; 118  : 			SetCanGenerateSoldiers = (void *)0x006EE9E0;

	mov	DWORD PTR ?SetCanGenerateSoldiers@@3PAXA, 7268832 ; SetCanGenerateSoldiers, 006ee9e0H

; 119  : 			SetCanGenerateVehicles = (void *)0x006EEA00;

	mov	DWORD PTR ?SetCanGenerateVehicles@@3PAXA, 7268864 ; SetCanGenerateVehicles, 006eea00H

; 120  : 			DestroyBase = (void *)0x006EEE00;

	mov	DWORD PTR ?DestroyBase@@3PAXA, 7269888	; DestroyBase, 006eee00H

; 121  : 			SetBeaconDestroyedBase = (void *)0x006EEE90;

	mov	DWORD PTR ?SetBeaconDestroyedBase@@3PAXA, 7270032 ; SetBeaconDestroyedBase, 006eee90H

; 122  : 			EnableRadar = (void *)0x006EF2C0;

	mov	DWORD PTR ?EnableRadar@@3PAXA, 7271104	; EnableRadar, 006ef2c0H

; 123  : 			FindBuilding = (void *)0x006EEC90;

	mov	DWORD PTR ?FindBuilding@@3PAXA, 7269520	; FindBuilding, 006eec90H

; 124  : 			Skirmish_Game = (void *)0x00477390;

	mov	DWORD PTR ?Skirmish_Game@@3PAXA, 4682640 ; Skirmish_Game, 00477390H

; 125  : 			Cnc_Game = (void *)0x004773A0;

	mov	DWORD PTR ?Cnc_Game@@3PAXA, 4682656	; Cnc_Game, 004773a0H

; 126  : 			Single_Player_Game = (void *)0x00477380;

	mov	DWORD PTR ?Single_Player_Game@@3PAXA, 4682624 ; Single_Player_Game, 00477380H

; 127  : 			IsMapVTOL = (bool *)0x0085D4F4;

	mov	DWORD PTR ?IsMapVTOL@@3PA_NA, 8770804	; IsMapVTOL, 0085d4f4H

; 128  : 			Collect_Building_Components = (cbc)0x00683C80;

	mov	DWORD PTR ?Collect_Building_Components@@3P6AXXZA, 6831232 ; Collect_Building_Components, 00683c80H

; 129  : 			GameMode = (unsigned int *)0x0081E7D8;

	mov	DWORD PTR ?GameMode@@3PAIA, 8513496	; GameMode, 0081e7d8H

; 130  : 			PrivateMessageColor = (float *)0x0082EE08;

	mov	DWORD PTR ?PrivateMessageColor@@3PAMA, 8580616 ; PrivateMessageColor, 0082ee08H

; 131  : 			PublicMessageColor = (float *)0x0082ED88;

	mov	DWORD PTR ?PublicMessageColor@@3PAMA, 8580488 ; PublicMessageColor, 0082ed88H

; 132  : 			GDIHouseColor = (float *)0x0085BC90;

	mov	DWORD PTR ?GDIHouseColor@@3PAMA, 8764560 ; GDIHouseColor, 0085bc90H

; 133  : 			NodHouseColor = (float *)0x0085BC80;

	mov	DWORD PTR ?NodHouseColor@@3PAMA, 8764544 ; NodHouseColor, 0085bc80H

; 134  : 			GameType = (int *)0x00855700;

	mov	DWORD PTR ?GameType@@3PAHA, 8738560	; GameType, 00855700H

; 135  : 			IsListed = (bool *)0x0082EF7C;

	mov	DWORD PTR ?IsListed@@3PA_NA, 8580988	; IsListed, 0082ef7cH

; 136  : 			Game_Mode_Find = (GameModeFind)0x00437350;

	mov	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA, 4420432 ; Game_Mode_Find, 00437350H

; 212  : 			break;
; 213  : 	}
; 214  : }

	ret	0
$LN3@InitEngine:

; 137  : 			break;
; 138  : 		case 2: //RH73
; 139  : 			Game = (void *)0x0807CCD0;

	mov	DWORD PTR ?Game@@3PAXA, 134728912	; Game, 0807ccd0H

; 140  : 			FindBase = (void *)0x080ED660;

	mov	DWORD PTR ?FindBase@@3PAXA, 135190112	; FindBase, 080ed660H

; 141  : 			GetHarvester = (void *)0x080EDB54;

	mov	DWORD PTR ?GetHarvester@@3PAXA, 135191380 ; GetHarvester, 080edb54H

; 142  : 			PowerBase = (void *)0x080ED15C;

	mov	DWORD PTR ?PowerBase@@3PAXA, 135188828	; PowerBase, 080ed15cH

; 143  : 			SetCanGenerateSoldiers = (void *)0x080ED28C;

	mov	DWORD PTR ?SetCanGenerateSoldiers@@3PAXA, 135189132 ; SetCanGenerateSoldiers, 080ed28cH

; 144  : 			SetCanGenerateVehicles = (void *)0x080ED2B0;

	mov	DWORD PTR ?SetCanGenerateVehicles@@3PAXA, 135189168 ; SetCanGenerateVehicles, 080ed2b0H

; 145  : 			DestroyBase = (void *)0x080ED720;

	mov	DWORD PTR ?DestroyBase@@3PAXA, 135190304 ; DestroyBase, 080ed720H

; 146  : 			SetBeaconDestroyedBase = (void *)0x080ED7B8;

	mov	DWORD PTR ?SetBeaconDestroyedBase@@3PAXA, 135190456 ; SetBeaconDestroyedBase, 080ed7b8H

; 147  : 			EnableRadar = (void *)0x080EDABC;

	mov	DWORD PTR ?EnableRadar@@3PAXA, 135191228 ; EnableRadar, 080edabcH

; 148  : 			FindBuilding = (void *)0x080ED548;

	mov	DWORD PTR ?FindBuilding@@3PAXA, 135189832 ; FindBuilding, 080ed548H

; 149  : 			Skirmish_Game = (void *)0x0807CCF0;

	mov	DWORD PTR ?Skirmish_Game@@3PAXA, 134728944 ; Skirmish_Game, 0807ccf0H

; 150  : 			Cnc_Game = (void *)0x0807CD08;

	mov	DWORD PTR ?Cnc_Game@@3PAXA, 134728968	; Cnc_Game, 0807cd08H

; 151  : 			Single_Player_Game = (void *)0x0807CCD8;

	mov	DWORD PTR ?Single_Player_Game@@3PAXA, 134728920 ; Single_Player_Game, 0807ccd8H

; 152  : 			IsMapVTOL = (bool *)0x086C9D94;

	mov	DWORD PTR ?IsMapVTOL@@3PA_NA, 141335956	; IsMapVTOL, 086c9d94H

; 153  : 			Collect_Building_Components = (cbc)0x080F55C4;

	mov	DWORD PTR ?Collect_Building_Components@@3P6AXXZA, 135222724 ; Collect_Building_Components, 080f55c4H

; 154  : 			GameMode = (unsigned int *)0x086C4A30;

	mov	DWORD PTR ?GameMode@@3PAIA, 141314608	; GameMode, 086c4a30H

; 155  : 			PrivateMessageColor = (float *)0x08B9B18C;

	mov	DWORD PTR ?PrivateMessageColor@@3PAMA, 146387340 ; PrivateMessageColor, 08b9b18cH

; 156  : 			PublicMessageColor = (float *)0x08B9B180;

	mov	DWORD PTR ?PublicMessageColor@@3PAMA, 146387328 ; PublicMessageColor, 08b9b180H

; 157  : 			GDIHouseColor = (float *)0x08B9FA40;

	mov	DWORD PTR ?GDIHouseColor@@3PAMA, 146405952 ; GDIHouseColor, 08b9fa40H

; 158  : 			NodHouseColor = (float *)0x08B9FA34;

	mov	DWORD PTR ?NodHouseColor@@3PAMA, 146405940 ; NodHouseColor, 08b9fa34H

; 159  : 			GameType = (int *)0x086C8F78;

	mov	DWORD PTR ?GameType@@3PAHA, 141332344	; GameType, 086c8f78H

; 160  : 			IsListed = (bool *)0x086C2BA8;

	mov	DWORD PTR ?IsListed@@3PA_NA, 141306792	; IsListed, 086c2ba8H

; 161  : 			Game_Mode_Find = (GameModeFind)0x0807FC90;

	mov	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA, 134741136 ; Game_Mode_Find, 0807fc90H

; 212  : 			break;
; 213  : 	}
; 214  : }

	ret	0
$LN2@InitEngine:

; 162  : 			break;
; 163  : 		case 3: //RH8
; 164  : 			Game = (void *)0x0807C7A8;

	mov	DWORD PTR ?Game@@3PAXA, 134727592	; Game, 0807c7a8H

; 165  : 			FindBase = (void *)0x080E2D3A;

	mov	DWORD PTR ?FindBase@@3PAXA, 135146810	; FindBase, 080e2d3aH

; 166  : 			GetHarvester = (void *)0x080E322C;

	mov	DWORD PTR ?GetHarvester@@3PAXA, 135148076 ; GetHarvester, 080e322cH

; 167  : 			PowerBase = (void *)0x080E28C8;

	mov	DWORD PTR ?PowerBase@@3PAXA, 135145672	; PowerBase, 080e28c8H

; 168  : 			SetCanGenerateSoldiers = (void *)0x080E29EE;

	mov	DWORD PTR ?SetCanGenerateSoldiers@@3PAXA, 135145966 ; SetCanGenerateSoldiers, 080e29eeH

; 169  : 			SetCanGenerateVehicles = (void *)0x080E2A0E;

	mov	DWORD PTR ?SetCanGenerateVehicles@@3PAXA, 135145998 ; SetCanGenerateVehicles, 080e2a0eH

; 170  : 			DestroyBase = (void *)0x080E2DEA;

	mov	DWORD PTR ?DestroyBase@@3PAXA, 135146986 ; DestroyBase, 080e2deaH

; 171  : 			SetBeaconDestroyedBase = (void *)0x080E2E78;

	mov	DWORD PTR ?SetBeaconDestroyedBase@@3PAXA, 135147128 ; SetBeaconDestroyedBase, 080e2e78H

; 172  : 			EnableRadar = (void *)0x080E319A;

	mov	DWORD PTR ?EnableRadar@@3PAXA, 135147930 ; EnableRadar, 080e319aH

; 173  : 			FindBuilding = (void *)0x080E2C52;

	mov	DWORD PTR ?FindBuilding@@3PAXA, 135146578 ; FindBuilding, 080e2c52H

; 174  : 			Skirmish_Game = (void *)0x0807C7C2;

	mov	DWORD PTR ?Skirmish_Game@@3PAXA, 134727618 ; Skirmish_Game, 0807c7c2H

; 175  : 			Cnc_Game = (void *)0x0807C7D6;

	mov	DWORD PTR ?Cnc_Game@@3PAXA, 134727638	; Cnc_Game, 0807c7d6H

; 176  : 			Single_Player_Game = (void *)0x0807C7AE;

	mov	DWORD PTR ?Single_Player_Game@@3PAXA, 134727598 ; Single_Player_Game, 0807c7aeH

; 177  : 			IsMapVTOL = (bool *)0x085F1554;

	mov	DWORD PTR ?IsMapVTOL@@3PA_NA, 140449108	; IsMapVTOL, 085f1554H

; 178  : 			Collect_Building_Components = (cbc)0x080EA1F2;

	mov	DWORD PTR ?Collect_Building_Components@@3P6AXXZA, 135176690 ; Collect_Building_Components, 080ea1f2H

; 179  : 			GameMode = (unsigned int *)0x085EBB70;

	mov	DWORD PTR ?GameMode@@3PAIA, 140426096	; GameMode, 085ebb70H

; 180  : 			PrivateMessageColor = (float *)0x089A36F4;

	mov	DWORD PTR ?PrivateMessageColor@@3PAMA, 144324340 ; PrivateMessageColor, 089a36f4H

; 181  : 			PublicMessageColor = (float *)0x089A36E8;

	mov	DWORD PTR ?PublicMessageColor@@3PAMA, 144324328 ; PublicMessageColor, 089a36e8H

; 182  : 			GDIHouseColor = (float *)0x089A8398;

	mov	DWORD PTR ?GDIHouseColor@@3PAMA, 144343960 ; GDIHouseColor, 089a8398H

; 183  : 			NodHouseColor = (float *)0x089A838C;

	mov	DWORD PTR ?NodHouseColor@@3PAMA, 144343948 ; NodHouseColor, 089a838cH

; 184  : 			GameType = (int *)0x085F0670;

	mov	DWORD PTR ?GameType@@3PAHA, 140445296	; GameType, 085f0670H

; 185  : 			IsListed = (bool *)0x085E9AB8;

	mov	DWORD PTR ?IsListed@@3PA_NA, 140417720	; IsListed, 085e9ab8H

; 186  : 			Game_Mode_Find = (GameModeFind)0x0807F36A;

	mov	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA, 134738794 ; Game_Mode_Find, 0807f36aH

; 212  : 			break;
; 213  : 	}
; 214  : }

	ret	0
$LN1@InitEngine:

; 187  : 			break;
; 188  : 		default:
; 189  : 			Game = (void *)0;

	xor	eax, eax
	mov	DWORD PTR ?Game@@3PAXA, eax		; Game

; 190  : 			FindBase = (void *)0;

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

; 191  : 			GetHarvester = (void *)0;

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

; 192  : 			PowerBase = (void *)0;

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

; 193  : 			SetCanGenerateSoldiers = (void *)0;

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

; 194  : 			SetCanGenerateVehicles = (void *)0;

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

; 195  : 			DestroyBase = (void *)0;

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

; 196  : 			SetBeaconDestroyedBase = (void *)0;

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

; 197  : 			EnableRadar = (void *)0;

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

; 198  : 			FindBuilding = (void *)0;

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

; 199  : 			Skirmish_Game = (void *)0;

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

; 200  : 			Cnc_Game = (void *)0;

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

; 201  : 			Single_Player_Game = (void *)0;

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

; 202  : 			IsMapVTOL = (bool *)0;

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

; 203  : 			Collect_Building_Components = (cbc)0;

	mov	DWORD PTR ?Collect_Building_Components@@3P6AXXZA, eax ; Collect_Building_Components

; 204  : 			GameMode = (unsigned int *)0;

	mov	DWORD PTR ?GameMode@@3PAIA, eax		; GameMode

; 205  : 			PrivateMessageColor = (float *)0;

	mov	DWORD PTR ?PrivateMessageColor@@3PAMA, eax ; PrivateMessageColor

; 206  : 			PublicMessageColor = (float *)0;

	mov	DWORD PTR ?PublicMessageColor@@3PAMA, eax ; PublicMessageColor

; 207  : 			GDIHouseColor = (float *)0;

	mov	DWORD PTR ?GDIHouseColor@@3PAMA, eax	; GDIHouseColor

; 208  : 			NodHouseColor = (float *)0;

	mov	DWORD PTR ?NodHouseColor@@3PAMA, eax	; NodHouseColor

; 209  : 			GameType = (int *)0;

	mov	DWORD PTR ?GameType@@3PAHA, eax		; GameType

; 210  : 			IsListed = (bool *)0;

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

; 211  : 			Game_Mode_Find = (GameModeFind)0;

	mov	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA, eax ; Game_Mode_Find

; 212  : 			break;
; 213  : 	}
; 214  : }

	ret	0
	npad	2
$LN10@InitEngine:
	DD	$LN5@InitEngine
	DD	$LN4@InitEngine
	DD	$LN3@InitEngine
	DD	$LN2@InitEngine
?InitEngineGame@@YAXI@Z ENDP				; InitEngineGame
_TEXT	ENDS
PUBLIC	?Power_Base@@YAXH_N@Z				; Power_Base
; Function compile flags: /Ogtpy
;	COMDAT ?Power_Base@@YAXH_N@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
_powered$ = 12						; size = 1
?Power_Base@@YAXH_N@Z PROC				; Power_Base, COMDAT

; 218  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 219  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Power_Base

; 220  : 	{
; 221  : 		c->Power_Base(powered);

	mov	ecx, DWORD PTR _powered$[esp-4]
	push	ecx
	mov	ecx, eax
	call	?Power_Base@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Power_Base
$LN1@Power_Base:

; 222  : 	}
; 223  : }

	ret	0
?Power_Base@@YAXH_N@Z ENDP				; Power_Base
_TEXT	ENDS
PUBLIC	?Set_Can_Generate_Soldiers@@YAXH_N@Z		; Set_Can_Generate_Soldiers
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Can_Generate_Soldiers@@YAXH_N@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
_cangenerate$ = 12					; size = 1
?Set_Can_Generate_Soldiers@@YAXH_N@Z PROC		; Set_Can_Generate_Soldiers, COMDAT

; 227  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 228  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Set_Can_Ge

; 229  : 	{
; 230  : 		c->Set_Can_Generate_Soldiers(cangenerate);

	mov	ecx, DWORD PTR _cangenerate$[esp-4]
	push	ecx
	mov	ecx, eax
	call	?Set_Can_Generate_Soldiers@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Set_Can_Generate_Soldiers
$LN1@Set_Can_Ge:

; 231  : 	}
; 232  : }

	ret	0
?Set_Can_Generate_Soldiers@@YAXH_N@Z ENDP		; Set_Can_Generate_Soldiers
_TEXT	ENDS
PUBLIC	?Set_Can_Generate_Vehicles@@YAXH_N@Z		; Set_Can_Generate_Vehicles
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Can_Generate_Vehicles@@YAXH_N@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
_cangenerate$ = 12					; size = 1
?Set_Can_Generate_Vehicles@@YAXH_N@Z PROC		; Set_Can_Generate_Vehicles, COMDAT

; 236  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 237  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Set_Can_Ge@2

; 238  : 	{
; 239  : 		c->Set_Can_Generate_Vehicles(cangenerate);

	mov	ecx, DWORD PTR _cangenerate$[esp-4]
	push	ecx
	mov	ecx, eax
	call	?Set_Can_Generate_Vehicles@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Set_Can_Generate_Vehicles
$LN1@Set_Can_Ge@2:

; 240  : 	}
; 241  : }

	ret	0
?Set_Can_Generate_Vehicles@@YAXH_N@Z ENDP		; Set_Can_Generate_Vehicles
_TEXT	ENDS
PUBLIC	?Destroy_Base@@YAXH@Z				; Destroy_Base
; Function compile flags: /Ogtpy
;	COMDAT ?Destroy_Base@@YAXH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Destroy_Base@@YAXH@Z PROC				; Destroy_Base, COMDAT

; 245  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 246  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Destroy_Ba

; 247  : 	{
; 248  : 		c->Destroy_Base();

	mov	ecx, eax
	jmp	?Destroy_Base@BaseControllerClass@@QAEXXZ ; BaseControllerClass::Destroy_Base
$LN1@Destroy_Ba:

; 249  : 	}
; 250  : }

	ret	0
?Destroy_Base@@YAXH@Z ENDP				; Destroy_Base
_TEXT	ENDS
PUBLIC	?Beacon_Destroyed_Base@@YAXH_N@Z		; Beacon_Destroyed_Base
; Function compile flags: /Ogtpy
;	COMDAT ?Beacon_Destroyed_Base@@YAXH_N@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
_destroyed$ = 12					; size = 1
?Beacon_Destroyed_Base@@YAXH_N@Z PROC			; Beacon_Destroyed_Base, COMDAT

; 254  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 255  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Beacon_Des

; 256  : 	{
; 257  : 		c->Set_Beacon_Destroyed_Base(destroyed);

	mov	ecx, DWORD PTR _destroyed$[esp-4]
	push	ecx
	mov	ecx, eax
	call	?Set_Beacon_Destroyed_Base@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Set_Beacon_Destroyed_Base
$LN1@Beacon_Des:

; 258  : 	}
; 259  : }

	ret	0
?Beacon_Destroyed_Base@@YAXH_N@Z ENDP			; Beacon_Destroyed_Base
_TEXT	ENDS
PUBLIC	?Enable_Base_Radar@@YAXH_N@Z			; Enable_Base_Radar
; Function compile flags: /Ogtpy
;	COMDAT ?Enable_Base_Radar@@YAXH_N@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
_enable$ = 12						; size = 1
?Enable_Base_Radar@@YAXH_N@Z PROC			; Enable_Base_Radar, COMDAT

; 263  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 264  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Enable_Bas

; 265  : 	{
; 266  : 		c->Enable_Radar(enable);

	mov	ecx, DWORD PTR _enable$[esp-4]
	push	ecx
	mov	ecx, eax
	call	?Enable_Radar@BaseControllerClass@@QAEX_N@Z ; BaseControllerClass::Enable_Radar
$LN1@Enable_Bas:

; 267  : 	}
; 268  : }

	ret	0
?Enable_Base_Radar@@YAXH_N@Z ENDP			; Enable_Base_Radar
_TEXT	ENDS
PUBLIC	?Is_Radar_Enabled@@YA_NH@Z			; Is_Radar_Enabled
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Radar_Enabled@@YA_NH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Is_Radar_Enabled@@YA_NH@Z PROC				; Is_Radar_Enabled, COMDAT

; 286  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 287  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Is_Radar_E

; 288  : 	{
; 289  : 		return c->RadarEnabled;

	mov	al, BYTE PTR [eax+1751]

; 292  : }

	ret	0
$LN1@Is_Radar_E:

; 290  : 	}
; 291  : 	return false;

	xor	al, al

; 292  : }

	ret	0
?Is_Radar_Enabled@@YA_NH@Z ENDP				; Is_Radar_Enabled
_TEXT	ENDS
PUBLIC	?Building_Type@@YAHPAE@Z			; Building_Type
EXTRN	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z:PROC ; Get_Definition
EXTRN	?As_BuildingGameObj@@YAPAEPAE@Z:PROC		; As_BuildingGameObj
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
; Function compile flags: /Ogtpy
;	COMDAT ?Building_Type@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Building_Type@@YAHPAE@Z PROC				; Building_Type, COMDAT

; 296  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Building_T
	test	esi, esi
	je	SHORT $LN2@Building_T

; 299  : 	}
; 300  : 	GameObject *o = As_BuildingGameObj(obj);

	push	esi
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	add	esp, 4

; 301  : 	if (!o)

	test	eax, eax

; 302  : 	{
; 303  : 		return 0;

	je	SHORT $LN2@Building_T

; 304  : 	}
; 305  : 	DefinitionClass *d = Get_Definition(obj);

	push	esi
	call	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Definition
	add	esp, 4

; 306  : 	char *c = (char *)d;
; 307  : 	c += 0x8C;

	add	eax, 140				; 0000008cH

; 308  : 	return *(int *)c;

	mov	eax, DWORD PTR [eax]
	pop	esi

; 309  : }

	ret	0
$LN2@Building_T:

; 297  : 	{
; 298  : 		return 0;

	xor	eax, eax
	pop	esi

; 309  : }

	ret	0
?Building_Type@@YAHPAE@Z ENDP				; Building_Type
_TEXT	ENDS
PUBLIC	?Is_Building_Dead@@YA_NPAE@Z			; Is_Building_Dead
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Building_Dead@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Is_Building_Dead@@YA_NPAE@Z PROC			; Is_Building_Dead, COMDAT

; 313  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Is_Buildin
	test	esi, esi
	je	SHORT $LN2@Is_Buildin

; 316  : 	}
; 317  : 	GameObject *o = As_BuildingGameObj(obj);

	push	esi
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	add	esp, 4

; 318  : 	if (!o)

	test	eax, eax

; 319  : 	{
; 320  : 		return 0;

	je	SHORT $LN2@Is_Buildin

; 321  : 	}
; 322  : 	char *c = (char *)obj;
; 323  : 	c += 0x778;
; 324  : 	return *(bool *)c;

	mov	al, BYTE PTR [esi+1912]
	pop	esi

; 325  : }

	ret	0
$LN2@Is_Buildin:

; 314  : 	{
; 315  : 		return 0;

	xor	al, al
	pop	esi

; 325  : }

	ret	0
?Is_Building_Dead@@YA_NPAE@Z ENDP			; Is_Building_Dead
_TEXT	ENDS
PUBLIC	?Find_Building@@YAPAEHH@Z			; Find_Building
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Building@@YAPAEHH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
_type$ = 12						; size = 4
?Find_Building@@YAPAEHH@Z PROC				; Find_Building, COMDAT

; 329  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 330  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Find_Build

; 331  : 	{
; 332  : 		return c->Find_Building(type);

	mov	ecx, DWORD PTR _type$[esp-4]
	push	ecx
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 335  : }

	ret	0
$LN1@Find_Build:

; 333  : 	}
; 334  : 	return 0;

	xor	eax, eax

; 335  : }

	ret	0
?Find_Building@@YAPAEHH@Z ENDP				; Find_Building
_TEXT	ENDS
PUBLIC	?Find_Base_Defense@@YAPAEH@Z			; Find_Base_Defense
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Base_Defense@@YAPAEH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Find_Base_Defense@@YAPAEH@Z PROC			; Find_Base_Defense, COMDAT

; 339  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 340  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Find_Base_

; 341  : 	{
; 342  : 		return c->Find_Building(BASE_DEFENSE);

	push	9
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 345  : }

	ret	0
$LN1@Find_Base_:

; 343  : 	}
; 344  : 	return 0;

	xor	eax, eax

; 345  : }

	ret	0
?Find_Base_Defense@@YAPAEH@Z ENDP			; Find_Base_Defense
_TEXT	ENDS
PUBLIC	?Is_Map_Flying@@YA_NXZ				; Is_Map_Flying
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Map_Flying@@YA_NXZ
_TEXT	SEGMENT
?Is_Map_Flying@@YA_NXZ PROC				; Is_Map_Flying, COMDAT

; 349  : 	return *IsMapVTOL;

	mov	eax, DWORD PTR ?IsMapVTOL@@3PA_NA	; IsMapVTOL
	mov	al, BYTE PTR [eax]

; 350  : }

	ret	0
?Is_Map_Flying@@YA_NXZ ENDP				; Is_Map_Flying
_TEXT	ENDS
PUBLIC	?Create_Building@@YAPAEPBDABUVector3@@@Z	; Create_Building
EXTRN	?Start_Observers@ScriptableGameObj@@QAEXXZ:PROC	; ScriptableGameObj::Start_Observers
EXTRN	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z:PROC ; Find_Named_Definition
EXTRN	__fltused:DWORD
; Function compile flags: /Ogtpy
;	COMDAT ?Create_Building@@YAPAEPBDABUVector3@@@Z
_TEXT	SEGMENT
_obj$ = -4						; size = 4
_preset$ = 8						; size = 4
_Position$ = 12						; size = 4
?Create_Building@@YAPAEPBDABUVector3@@@Z PROC		; Create_Building, COMDAT

; 353  : {

	push	ebp
	mov	ebp, esp
	push	ecx

; 354  : 	DefinitionClass *d = Find_Named_Definition(preset);

	mov	eax, DWORD PTR _preset$[ebp]
	push	ebx
	push	esi
	push	eax
	call	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition

; 355  : 	GameObject *obj = (GameObject *)d->Create();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+44]
	add	esp, 4
	call	eax
	mov	esi, eax

; 356  : 	if (As_BuildingGameObj(obj))

	push	esi
	mov	DWORD PTR _obj$[ebp], esi
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Create_Bui

; 357  : 	{
; 358  : 		char *c = (char *)obj;
; 359  : 		c += 0x77C;
; 360  : 		Vector3 *pos1 = (Vector3 *)c;
; 361  : 		c = (char *)obj;
; 362  : 		c += 0x7A4;
; 363  : 		Vector3 *pos2 = (Vector3 *)c;
; 364  : 		pos1->X = Position.X;

	mov	eax, DWORD PTR _Position$[ebp]
	fld	DWORD PTR [eax]
	fstp	DWORD PTR [esi+1916]

; 365  : 		pos1->Y = Position.Y;

	fld	DWORD PTR [eax+4]
	fstp	DWORD PTR [esi+1920]

; 366  : 		pos1->Z = Position.Z;

	fld	DWORD PTR [eax+8]
	fstp	DWORD PTR [esi+1924]

; 367  : 		pos2->X = Position.X;

	fld	DWORD PTR [eax]
	fstp	DWORD PTR [esi+1956]

; 368  : 		pos2->Y = Position.Y;

	fld	DWORD PTR [eax+4]
	fstp	DWORD PTR [esi+1960]

; 369  : 		pos2->Z = Position.Z;

	fld	DWORD PTR [eax+8]
	fstp	DWORD PTR [esi+1964]

; 370  : #ifdef WIN32
; 371  : 		_asm {
; 372  : 			mov ecx,obj

	mov	ecx, DWORD PTR _obj$[ebp]

; 373  : 			mov ebx,Collect_Building_Components

	mov	ebx, DWORD PTR ?Collect_Building_Components@@3P6AXXZA ; Collect_Building_Components

; 374  : 			call ebx

	call	ebx

; 375  : 			mov ecx,obj

	mov	ecx, DWORD PTR _obj$[ebp]

; 376  : 		}
; 377  : #else
; 378  : 		Collect_Building_Components(obj);
; 379  : #endif
; 380  : 		((ScriptableGameObj *)obj)->Start_Observers();

	mov	ecx, esi
	call	?Start_Observers@ScriptableGameObj@@QAEXXZ ; ScriptableGameObj::Start_Observers

; 381  : 		return obj;

	mov	eax, esi

; 382  : 	}
; 383  : 	return 0;
; 384  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN1@Create_Bui:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?Create_Building@@YAPAEPBDABUVector3@@@Z ENDP		; Create_Building
_TEXT	ENDS
PUBLIC	?Find_Harvester@@YAPAEH@Z			; Find_Harvester
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Harvester@@YAPAEH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Find_Harvester@@YAPAEH@Z PROC				; Find_Harvester, COMDAT

; 388  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	mov	ecx, eax
	add	esp, 4

; 389  : 	GameObject *o = 0;

	xor	eax, eax

; 390  : 	if (c)

	test	ecx, ecx
	je	SHORT $LN4@Find_Harve

; 391  : 	{
; 392  : 		o = c->Get_Harvester_Vehicle();

	jmp	?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ ; BaseControllerClass::Get_Harvester_Vehicle
$LN4@Find_Harve:

; 393  : 	}
; 394  : 	return o;
; 395  : }

	ret	0
?Find_Harvester@@YAPAEH@Z ENDP				; Find_Harvester
_TEXT	ENDS
PUBLIC	?Is_Base_Powered@@YA_NH@Z			; Is_Base_Powered
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Base_Powered@@YA_NH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Is_Base_Powered@@YA_NH@Z PROC				; Is_Base_Powered, COMDAT

; 399  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 400  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Is_Base_Po

; 401  : 	{
; 402  : 		return c->IsPowered;

	mov	al, BYTE PTR [eax+1748]

; 405  : }

	ret	0
$LN1@Is_Base_Po:

; 403  : 	}
; 404  : 	return false;

	xor	al, al

; 405  : }

	ret	0
?Is_Base_Powered@@YA_NH@Z ENDP				; Is_Base_Powered
_TEXT	ENDS
PUBLIC	?Can_Generate_Vehicles@@YA_NH@Z			; Can_Generate_Vehicles
; Function compile flags: /Ogtpy
;	COMDAT ?Can_Generate_Vehicles@@YA_NH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Can_Generate_Vehicles@@YA_NH@Z PROC			; Can_Generate_Vehicles, COMDAT

; 409  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 410  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Can_Genera

; 411  : 	{
; 412  : 		return c->CanGenerateVehicles;

	mov	al, BYTE PTR [eax+1750]

; 415  : }

	ret	0
$LN1@Can_Genera:

; 413  : 	}
; 414  : 	return false;

	xor	al, al

; 415  : }

	ret	0
?Can_Generate_Vehicles@@YA_NH@Z ENDP			; Can_Generate_Vehicles
_TEXT	ENDS
PUBLIC	?Can_Generate_Soliders@@YA_NH@Z			; Can_Generate_Soliders
; Function compile flags: /Ogtpy
;	COMDAT ?Can_Generate_Soliders@@YA_NH@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?Can_Generate_Soliders@@YA_NH@Z PROC			; Can_Generate_Soliders, COMDAT

; 419  : 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);

	mov	eax, DWORD PTR _team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4

; 420  : 	if (c)

	test	eax, eax
	je	SHORT $LN1@Can_Genera@2

; 421  : 	{
; 422  : 		return c->CanGenerateSoldiers;

	mov	al, BYTE PTR [eax+1749]

; 425  : }

	ret	0
$LN1@Can_Genera@2:

; 423  : 	}
; 424  : 	return false;

	xor	al, al

; 425  : }

	ret	0
?Can_Generate_Soliders@@YA_NH@Z ENDP			; Can_Generate_Soliders
_TEXT	ENDS
PUBLIC	?Is_A_Building@@YA_NPAE@Z			; Is_A_Building
; Function compile flags: /Ogtpy
;	COMDAT ?Is_A_Building@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Is_A_Building@@YA_NPAE@Z PROC				; Is_A_Building, COMDAT

; 429  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Is_A_Build
	test	esi, esi
	je	SHORT $LN2@Is_A_Build

; 432  : 	}
; 433  : 	if (((ScriptableGameObj *)obj)->As_BuildingGameObj())

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+64]
	mov	ecx, esi
	call	eax
	test	eax, eax
	setne	al
	pop	esi

; 434  : 	{
; 435  : 		return true;
; 436  : 	}
; 437  : 	return false;
; 438  : }

	ret	0
$LN2@Is_A_Build:

; 430  : 	{
; 431  : 		return false;

	xor	al, al
	pop	esi

; 434  : 	{
; 435  : 		return true;
; 436  : 	}
; 437  : 	return false;
; 438  : }

	ret	0
?Is_A_Building@@YA_NPAE@Z ENDP				; Is_A_Building
_TEXT	ENDS
PUBLIC	__real@00000000
PUBLIC	?Get_Building_Count_Team@@YAHH@Z		; Get_Building_Count_Team
EXTRN	?Get_Object_Type@@YAHPAE@Z:PROC			; Get_Object_Type
EXTRN	?BuildingGameObjList@@3PAV?$SList@E@@A:DWORD	; BuildingGameObjList
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Building_Count_Team@@YAHH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_Building_Count_Team@@YAHH@Z PROC			; Get_Building_Count_Team, COMDAT

; 442  : 	GenericSLNode *x = BuildingGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A ; BuildingGameObjList
	push	ebp
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 443  : 	int Count = 0;

	xor	ebp, ebp

; 444  : 	while (x)

	test	edi, edi
	je	SHORT $LN9@Get_Buildi
	push	ebx
	mov	ebx, DWORD PTR _Team$[esp+8]
	push	esi
$LL4@Get_Buildi:

; 445  : 	{
; 446  : 		GameObject *o = As_BuildingGameObj((GameObject *)x->NodeData);

	mov	ecx, DWORD PTR [edi+4]
	push	ecx
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	mov	esi, eax
	add	esp, 4

; 447  : 		if (o && Commands->Get_Health(o) > 0 && (Get_Object_Type(o) == Team || Team == 2))

	test	esi, esi
	je	SHORT $LN10@Get_Buildi
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+220]
	push	esi
	call	eax
	fcomp	DWORD PTR __real@00000000
	add	esp, 4
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN10@Get_Buildi
	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebx
	je	SHORT $LN1@Get_Buildi
	cmp	ebx, 2
	jne	SHORT $LN10@Get_Buildi
$LN1@Get_Buildi:

; 448  : 		{
; 449  : 			Count++;

	add	ebp, 1
$LN10@Get_Buildi:

; 450  : 		}
; 451  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL4@Get_Buildi
	pop	esi
	pop	ebx
$LN9@Get_Buildi:
	pop	edi

; 452  : 	}
; 453  : 	return Count;

	mov	eax, ebp
	pop	ebp

; 454  : }

	ret	0
?Get_Building_Count_Team@@YAHH@Z ENDP			; Get_Building_Count_Team
_TEXT	ENDS
PUBLIC	?Find_Building_By_Class_ID@@YAPAEHK@Z		; Find_Building_By_Class_ID
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Building_By_Class_ID@@YAPAEHK@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
_Class_ID$ = 12						; size = 4
?Find_Building_By_Class_ID@@YAPAEHK@Z PROC		; Find_Building_By_Class_ID, COMDAT

; 458  : 	GenericSLNode *x = BuildingGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A ; BuildingGameObjList
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 459  : 	while (x)

	test	edi, edi
	je	SHORT $LN5@Find_Build@2
	mov	ebp, DWORD PTR _Class_ID$[esp+12]
	mov	ebx, DWORD PTR _Team$[esp+12]
	npad	8
$LL6@Find_Build@2:

; 460  : 	{
; 461  : 		GameObject *o = As_BuildingGameObj((GameObject *)x->NodeData);

	mov	ecx, DWORD PTR [edi+4]
	push	ecx
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	mov	esi, eax
	add	esp, 4

; 462  : 		if (o)

	test	esi, esi
	je	SHORT $LN11@Find_Build@2

; 463  : 		{
; 464  : 			DefinitionClass *d = Get_Definition(o);

	push	esi
	call	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Definition

; 465  : 			if (d->Get_Class_ID() == Class_ID)

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+32]
	add	esp, 4
	call	eax
	cmp	eax, ebp
	jne	SHORT $LN11@Find_Build@2

; 466  : 			{
; 467  : 				if ((Get_Object_Type(o) == Team) || (Team == 2))

	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebx
	je	SHORT $LN1@Find_Build@2
	cmp	ebx, 2
	je	SHORT $LN1@Find_Build@2
$LN11@Find_Build@2:

; 470  : 				}
; 471  : 			}
; 472  : 		}
; 473  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL6@Find_Build@2
$LN5@Find_Build@2:
	pop	edi
	pop	esi
	pop	ebp

; 474  : 	}
; 475  : 	return 0;

	xor	eax, eax
	pop	ebx

; 476  : }

	ret	0
$LN1@Find_Build@2:
	pop	edi

; 468  : 				{
; 469  : 					return o;

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 476  : }

	ret	0
?Find_Building_By_Class_ID@@YAPAEHK@Z ENDP		; Find_Building_By_Class_ID
_TEXT	ENDS
PUBLIC	?Find_Power_Plant@@YAPAEH@Z			; Find_Power_Plant
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Power_Plant@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Power_Plant@@YAPAEH@Z PROC			; Find_Power_Plant, COMDAT

; 480  : 	return Find_Building(Team,POWER_PLANT);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Find_Power
	push	0
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 481  : }

	ret	0

; 480  : 	return Find_Building(Team,POWER_PLANT);

$LN3@Find_Power:
	xor	eax, eax

; 481  : }

	ret	0
?Find_Power_Plant@@YAPAEH@Z ENDP			; Find_Power_Plant
_TEXT	ENDS
PUBLIC	?Find_Refinery@@YAPAEH@Z			; Find_Refinery
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Refinery@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Refinery@@YAPAEH@Z PROC				; Find_Refinery, COMDAT

; 485  : 	return Find_Building(Team,REFINERY);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Find_Refin
	push	3
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 486  : }

	ret	0

; 485  : 	return Find_Building(Team,REFINERY);

$LN3@Find_Refin:
	xor	eax, eax

; 486  : }

	ret	0
?Find_Refinery@@YAPAEH@Z ENDP				; Find_Refinery
_TEXT	ENDS
PUBLIC	?Find_Repair_Bay@@YAPAEH@Z			; Find_Repair_Bay
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Repair_Bay@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Repair_Bay@@YAPAEH@Z PROC				; Find_Repair_Bay, COMDAT

; 490  : 	return Find_Building(Team,REPAIR_BAY);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Find_Repai
	push	5
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 491  : }

	ret	0

; 490  : 	return Find_Building(Team,REPAIR_BAY);

$LN3@Find_Repai:
	xor	eax, eax

; 491  : }

	ret	0
?Find_Repair_Bay@@YAPAEH@Z ENDP				; Find_Repair_Bay
_TEXT	ENDS
PUBLIC	?Find_Soldier_Factory@@YAPAEH@Z			; Find_Soldier_Factory
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Soldier_Factory@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Soldier_Factory@@YAPAEH@Z PROC			; Find_Soldier_Factory, COMDAT

; 495  : 	return Find_Building(Team,SOLDIER_FACTORY);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Find_Soldi
	push	1
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 496  : }

	ret	0

; 495  : 	return Find_Building(Team,SOLDIER_FACTORY);

$LN3@Find_Soldi:
	xor	eax, eax

; 496  : }

	ret	0
?Find_Soldier_Factory@@YAPAEH@Z ENDP			; Find_Soldier_Factory
_TEXT	ENDS
PUBLIC	?Find_Airstrip@@YAPAEH@Z			; Find_Airstrip
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Airstrip@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Airstrip@@YAPAEH@Z PROC				; Find_Airstrip, COMDAT

; 500  : 	return Find_Building_By_Class_ID(Team,0xD006);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	53254					; 0000d006H
	push	eax
	call	?Find_Building_By_Class_ID@@YAPAEHK@Z	; Find_Building_By_Class_ID
	add	esp, 8

; 501  : }

	ret	0
?Find_Airstrip@@YAPAEH@Z ENDP				; Find_Airstrip
_TEXT	ENDS
PUBLIC	?Find_War_Factory@@YAPAEH@Z			; Find_War_Factory
; Function compile flags: /Ogtpy
;	COMDAT ?Find_War_Factory@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_War_Factory@@YAPAEH@Z PROC			; Find_War_Factory, COMDAT

; 505  : 	return Find_Building_By_Class_ID(Team,0xD007);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	53255					; 0000d007H
	push	eax
	call	?Find_Building_By_Class_ID@@YAPAEHK@Z	; Find_Building_By_Class_ID
	add	esp, 8

; 506  : }

	ret	0
?Find_War_Factory@@YAPAEH@Z ENDP			; Find_War_Factory
_TEXT	ENDS
PUBLIC	?Find_Vehicle_Factory@@YAPAEH@Z			; Find_Vehicle_Factory
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Vehicle_Factory@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Vehicle_Factory@@YAPAEH@Z PROC			; Find_Vehicle_Factory, COMDAT

; 510  : 	return Find_Building(Team,VEHICLE_FACTORY);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Find_Vehic
	push	2
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 511  : }

	ret	0

; 510  : 	return Find_Building(Team,VEHICLE_FACTORY);

$LN3@Find_Vehic:
	xor	eax, eax

; 511  : }

	ret	0
?Find_Vehicle_Factory@@YAPAEH@Z ENDP			; Find_Vehicle_Factory
_TEXT	ENDS
PUBLIC	?Find_Com_Center@@YAPAEH@Z			; Find_Com_Center
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Com_Center@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Com_Center@@YAPAEH@Z PROC				; Find_Com_Center, COMDAT

; 515  : 	return Find_Building(Team,COM_CENTER);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Find_Com_C
	push	4
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 516  : }

	ret	0

; 515  : 	return Find_Building(Team,COM_CENTER);

$LN3@Find_Com_C:
	xor	eax, eax

; 516  : }

	ret	0
?Find_Com_Center@@YAPAEH@Z ENDP				; Find_Com_Center
_TEXT	ENDS
PUBLIC	?Find_Building_By_Team@@YAPAEH@Z		; Find_Building_By_Team
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Building_By_Team@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Building_By_Team@@YAPAEH@Z PROC			; Find_Building_By_Team, COMDAT

; 520  : 	GenericSLNode *x = BuildingGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A ; BuildingGameObjList
	push	ebx
	push	esi
	mov	esi, DWORD PTR [eax+4]

; 521  : 	while (x)

	test	esi, esi
	push	edi
	je	SHORT $LN3@Find_Build@3
	mov	ebx, DWORD PTR _Team$[esp+8]
$LL4@Find_Build@3:

; 522  : 	{
; 523  : 		GameObject *o = As_BuildingGameObj((GameObject *)x->NodeData);

	mov	ecx, DWORD PTR [esi+4]
	push	ecx
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	mov	edi, eax
	add	esp, 4

; 524  : 		if (o)

	test	edi, edi
	je	SHORT $LN1@Find_Build@3

; 525  : 		{
; 526  : 			if (Get_Object_Type(o) == Team)

	push	edi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebx
	je	SHORT $LN8@Find_Build@3
$LN1@Find_Build@3:

; 529  : 			}
; 530  : 		}
; 531  : 		x = x->NodeNext;

	mov	esi, DWORD PTR [esi]
	test	esi, esi
	jne	SHORT $LL4@Find_Build@3
$LN3@Find_Build@3:
	pop	edi
	pop	esi

; 532  : 	}
; 533  : 	return 0;

	xor	eax, eax
	pop	ebx

; 534  : }

	ret	0
$LN8@Find_Build@3:

; 527  : 			{
; 528  : 				return o;

	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebx

; 534  : }

	ret	0
?Find_Building_By_Team@@YAPAEH@Z ENDP			; Find_Building_By_Team
_TEXT	ENDS
PUBLIC	?Find_Building_By_Name@@YAPAEHPBD@Z		; Find_Building_By_Name
EXTRN	__stricmp:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Building_By_Name@@YAPAEHPBD@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
_Preset_Name$ = 12					; size = 4
?Find_Building_By_Name@@YAPAEHPBD@Z PROC		; Find_Building_By_Name, COMDAT

; 538  : 	GenericSLNode *x = BuildingGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A ; BuildingGameObjList
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 539  : 	while (x)

	test	edi, edi
	je	SHORT $LN5@Find_Build@4
	mov	ebp, DWORD PTR _Preset_Name$[esp+12]
	mov	ebx, DWORD PTR _Team$[esp+12]
	npad	8
$LL6@Find_Build@4:

; 540  : 	{
; 541  : 		GameObject *o = As_BuildingGameObj((GameObject *)x->NodeData);

	mov	ecx, DWORD PTR [edi+4]
	push	ecx
	call	?As_BuildingGameObj@@YAPAEPAE@Z		; As_BuildingGameObj
	mov	esi, eax
	add	esp, 4

; 542  : 		if (o)

	test	esi, esi
	je	SHORT $LN11@Find_Build@4

; 543  : 		{
; 544  : 			DefinitionClass *d = Get_Definition(o);

	push	esi
	call	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Definition

; 545  : 			if (!_stricmp(d->Get_Name(),Preset_Name))

	mov	edx, DWORD PTR [eax]
	add	esp, 4
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+48]
	push	ebp
	call	eax
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN11@Find_Build@4

; 546  : 			{
; 547  : 				if ((Get_Object_Type(o) == Team) || (Team == 2))

	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebx
	je	SHORT $LN1@Find_Build@4
	cmp	ebx, 2
	je	SHORT $LN1@Find_Build@4
$LN11@Find_Build@4:

; 550  : 				}
; 551  : 			}
; 552  : 		}
; 553  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL6@Find_Build@4
$LN5@Find_Build@4:
	pop	edi
	pop	esi
	pop	ebp

; 554  : 	}
; 555  : 	return 0;

	xor	eax, eax
	pop	ebx

; 556  : }

	ret	0
$LN1@Find_Build@4:
	pop	edi

; 548  : 				{
; 549  : 					return o;

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 556  : }

	ret	0
?Find_Building_By_Name@@YAPAEHPBD@Z ENDP		; Find_Building_By_Name
_TEXT	ENDS
PUBLIC	?Is_Gameplay_Permitted@@YA_NXZ			; Is_Gameplay_Permitted
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Gameplay_Permitted@@YA_NXZ
_TEXT	SEGMENT
?Is_Gameplay_Permitted@@YA_NXZ PROC			; Is_Gameplay_Permitted, COMDAT

; 560  : 	return The_Game()->Is_Gameplay_Permitted();

	call	?The_Game@@YAPAVcGameData@@XZ		; The_Game
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+132]
	jmp	eax
?Is_Gameplay_Permitted@@YA_NXZ ENDP			; Is_Gameplay_Permitted
_TEXT	ENDS
PUBLIC	?Is_Dedicated@@YA_NXZ				; Is_Dedicated
EXTRN	?Exe@@3HA:DWORD					; Exe
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Dedicated@@YA_NXZ
_TEXT	SEGMENT
?Is_Dedicated@@YA_NXZ PROC				; Is_Dedicated, COMDAT

; 565  : 	return Exe;

	cmp	DWORD PTR ?Exe@@3HA, 0			; Exe
	setne	al

; 566  : }

	ret	0
?Is_Dedicated@@YA_NXZ ENDP				; Is_Dedicated
_TEXT	ENDS
PUBLIC	?Is_Linux@@YA_NXZ				; Is_Linux
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Linux@@YA_NXZ
_TEXT	SEGMENT
?Is_Linux@@YA_NXZ PROC					; Is_Linux, COMDAT

; 570  : 	if ((Exe == 2) || (Exe == 3))

	mov	eax, DWORD PTR ?Exe@@3HA		; Exe
	cmp	eax, 2
	je	SHORT $LN1@Is_Linux
	cmp	eax, 3
	je	SHORT $LN1@Is_Linux

; 573  : 	}
; 574  : 	return false;

	xor	al, al

; 575  : }

	ret	0
$LN1@Is_Linux:

; 571  : 	{
; 572  : 		return true;

	mov	al, 1

; 575  : }

	ret	0
?Is_Linux@@YA_NXZ ENDP					; Is_Linux
_TEXT	ENDS
PUBLIC	??_C@_03BANLECBK@LAN?$AA@			; `string'
PUBLIC	??_C@_03KPGLNNAM@WOL?$AA@			; `string'
PUBLIC	?Get_Current_Game_Mode@@YAIXZ			; Get_Current_Game_Mode
;	COMDAT ??_C@_03BANLECBK@LAN?$AA@
CONST	SEGMENT
??_C@_03BANLECBK@LAN?$AA@ DB 'LAN', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_03KPGLNNAM@WOL?$AA@
CONST	SEGMENT
??_C@_03KPGLNNAM@WOL?$AA@ DB 'WOL', 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Current_Game_Mode@@YAIXZ
_TEXT	SEGMENT
?Get_Current_Game_Mode@@YAIXZ PROC			; Get_Current_Game_Mode, COMDAT

; 579  : 	if (*GameType == 1)

	mov	eax, DWORD PTR ?GameType@@3PAHA		; GameType
	mov	eax, DWORD PTR [eax]
	cmp	eax, 1
	jne	SHORT $LN10@Get_Curren

; 618  : }

	ret	0
$LN10@Get_Curren:

; 580  : 	{
; 581  : 		return 1;
; 582  : 	}
; 583  : 	if (*GameType == 2)

	cmp	eax, 2
	jne	SHORT $LN9@Get_Curren

; 618  : }

	ret	0
$LN9@Get_Curren:

; 584  : 	{
; 585  : 		return 2;
; 586  : 	}
; 587  : 	if (*GameType == 3)

	cmp	eax, 3
	jne	SHORT $LN1@Get_Curren

; 588  : 	{
; 589  : 		if (*GameMode == 1)

	mov	ecx, DWORD PTR ?GameMode@@3PAIA		; GameMode
	mov	eax, DWORD PTR [ecx]
	cmp	eax, 1
	jne	SHORT $LN7@Get_Curren

; 590  : 		{
; 591  : 			return 5;

	mov	eax, 5

; 618  : }

	ret	0
$LN7@Get_Curren:

; 592  : 		}
; 593  : 		if (*GameMode == 2)

	cmp	eax, 2
	jne	SHORT $LN6@Get_Curren
$LN13@Get_Curren:

; 594  : 		{
; 595  : 			return 3;

	mov	eax, 3

; 618  : }

	ret	0
$LN6@Get_Curren:

; 596  : 		}
; 597  : 		if (*GameMode == 3)

	cmp	eax, 3
	jne	SHORT $LN5@Get_Curren

; 598  : 		{
; 599  : 			return 4;

	mov	eax, 4

; 618  : }

	ret	0
$LN5@Get_Curren:

; 600  : 		}
; 601  : 		if (Game_Mode_Find("WOL"))

	push	OFFSET ??_C@_03KPGLNNAM@WOL?$AA@
	call	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA ; Game_Mode_Find
	add	esp, 4
	test	eax, eax

; 602  : 		{
; 603  : 			return 3;

	jne	SHORT $LN13@Get_Curren

; 604  : 		}
; 605  : 		if (Game_Mode_Find("LAN"))

	push	OFFSET ??_C@_03BANLECBK@LAN?$AA@
	call	DWORD PTR ?Game_Mode_Find@@3P6APAXPBD@ZA ; Game_Mode_Find
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Get_Curren

; 606  : 		{
; 607  : 			if (*IsListed)

	mov	edx, DWORD PTR ?IsListed@@3PA_NA	; IsListed
	mov	al, BYTE PTR [edx]
	neg	al
	sbb	eax, eax
	add	eax, 5

; 618  : }

	ret	0
$LN1@Get_Curren:

; 608  : 			{
; 609  : 				return 4;
; 610  : 			}
; 611  : 			else
; 612  : 			{
; 613  : 				return 5;
; 614  : 			}
; 615  : 		}
; 616  : 	}
; 617  : 	return 0;

	xor	eax, eax

; 618  : }

	ret	0
?Get_Current_Game_Mode@@YAIXZ ENDP			; Get_Current_Game_Mode
_TEXT	ENDS
PUBLIC	__real@437f0000
PUBLIC	?Get_Private_Message_Color@@YAXPAI00@Z		; Get_Private_Message_Color
;	COMDAT __real@437f0000
CONST	SEGMENT
__real@437f0000 DD 0437f0000r			; 255
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Private_Message_Color@@YAXPAI00@Z
_TEXT	SEGMENT
tv147 = -10						; size = 2
tv144 = -8						; size = 4
tv142 = -8						; size = 8
tv136 = -8						; size = 4
tv134 = -8						; size = 8
tv77 = -8						; size = 8
tv139 = 8						; size = 2
tv131 = 8						; size = 2
_red$ = 8						; size = 4
tv128 = 12						; size = 4
_green$ = 12						; size = 4
_blue$ = 16						; size = 4
?Get_Private_Message_Color@@YAXPAI00@Z PROC		; Get_Private_Message_Color, COMDAT

; 621  : {

	sub	esp, 12					; 0000000cH

; 622  : 	*red = (unsigned int)(PrivateMessageColor[0]*255);

	mov	eax, DWORD PTR ?PrivateMessageColor@@3PAMA ; PrivateMessageColor
	fnstcw	WORD PTR tv147[esp+12]
	fld	DWORD PTR [eax]
	mov	edx, DWORD PTR _red$[esp+8]
	movzx	eax, WORD PTR tv147[esp+12]
	fld	DWORD PTR __real@437f0000
	fmul	ST(1), ST(0)
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv144[esp+12], eax
	fxch	ST(1)
	fldcw	WORD PTR tv144[esp+12]
	fistp	QWORD PTR tv142[esp+12]
	mov	ecx, DWORD PTR tv142[esp+12]
	mov	DWORD PTR [edx], ecx

; 623  : 	*green = (unsigned int)(PrivateMessageColor[1]*255);

	mov	eax, DWORD PTR ?PrivateMessageColor@@3PAMA ; PrivateMessageColor
	fldcw	WORD PTR tv147[esp+12]
	mov	edx, DWORD PTR _green$[esp+8]
	fld	DWORD PTR [eax+4]
	fnstcw	WORD PTR tv139[esp+8]
	fmul	ST(0), ST(1)
	movzx	eax, WORD PTR tv139[esp+8]
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv136[esp+12], eax
	fldcw	WORD PTR tv136[esp+12]
	fistp	QWORD PTR tv134[esp+12]
	mov	ecx, DWORD PTR tv134[esp+12]
	mov	DWORD PTR [edx], ecx

; 624  : 	*blue = (unsigned int)(PrivateMessageColor[2]*255);

	mov	eax, DWORD PTR ?PrivateMessageColor@@3PAMA ; PrivateMessageColor
	fldcw	WORD PTR tv139[esp+8]
	mov	edx, DWORD PTR _blue$[esp+8]
	fmul	DWORD PTR [eax+8]
	fnstcw	WORD PTR tv131[esp+8]
	movzx	eax, WORD PTR tv131[esp+8]
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv128[esp+8], eax
	fldcw	WORD PTR tv128[esp+8]
	fistp	QWORD PTR tv77[esp+12]
	mov	ecx, DWORD PTR tv77[esp+12]
	mov	DWORD PTR [edx], ecx
	fldcw	WORD PTR tv131[esp+8]

; 625  : }

	add	esp, 12					; 0000000cH
	ret	0
?Get_Private_Message_Color@@YAXPAI00@Z ENDP		; Get_Private_Message_Color
_TEXT	ENDS
PUBLIC	?Get_Public_Message_Color@@YAXPAI00@Z		; Get_Public_Message_Color
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Public_Message_Color@@YAXPAI00@Z
_TEXT	SEGMENT
tv147 = -10						; size = 2
tv144 = -8						; size = 4
tv142 = -8						; size = 8
tv136 = -8						; size = 4
tv134 = -8						; size = 8
tv77 = -8						; size = 8
tv139 = 8						; size = 2
tv131 = 8						; size = 2
_red$ = 8						; size = 4
tv128 = 12						; size = 4
_green$ = 12						; size = 4
_blue$ = 16						; size = 4
?Get_Public_Message_Color@@YAXPAI00@Z PROC		; Get_Public_Message_Color, COMDAT

; 628  : {

	sub	esp, 12					; 0000000cH

; 629  : 	*red = (unsigned int)(PublicMessageColor[0]*255);

	mov	eax, DWORD PTR ?PublicMessageColor@@3PAMA ; PublicMessageColor
	fnstcw	WORD PTR tv147[esp+12]
	fld	DWORD PTR [eax]
	mov	edx, DWORD PTR _red$[esp+8]
	movzx	eax, WORD PTR tv147[esp+12]
	fld	DWORD PTR __real@437f0000
	fmul	ST(1), ST(0)
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv144[esp+12], eax
	fxch	ST(1)
	fldcw	WORD PTR tv144[esp+12]
	fistp	QWORD PTR tv142[esp+12]
	mov	ecx, DWORD PTR tv142[esp+12]
	mov	DWORD PTR [edx], ecx

; 630  : 	*green = (unsigned int)(PublicMessageColor[1]*255);

	mov	eax, DWORD PTR ?PublicMessageColor@@3PAMA ; PublicMessageColor
	fldcw	WORD PTR tv147[esp+12]
	mov	edx, DWORD PTR _green$[esp+8]
	fld	DWORD PTR [eax+4]
	fnstcw	WORD PTR tv139[esp+8]
	fmul	ST(0), ST(1)
	movzx	eax, WORD PTR tv139[esp+8]
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv136[esp+12], eax
	fldcw	WORD PTR tv136[esp+12]
	fistp	QWORD PTR tv134[esp+12]
	mov	ecx, DWORD PTR tv134[esp+12]
	mov	DWORD PTR [edx], ecx

; 631  : 	*blue = (unsigned int)(PublicMessageColor[2]*255);

	mov	eax, DWORD PTR ?PublicMessageColor@@3PAMA ; PublicMessageColor
	fldcw	WORD PTR tv139[esp+8]
	mov	edx, DWORD PTR _blue$[esp+8]
	fmul	DWORD PTR [eax+8]
	fnstcw	WORD PTR tv131[esp+8]
	movzx	eax, WORD PTR tv131[esp+8]
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv128[esp+8], eax
	fldcw	WORD PTR tv128[esp+8]
	fistp	QWORD PTR tv77[esp+12]
	mov	ecx, DWORD PTR tv77[esp+12]
	mov	DWORD PTR [edx], ecx
	fldcw	WORD PTR tv131[esp+8]

; 632  : }

	add	esp, 12					; 0000000cH
	ret	0
?Get_Public_Message_Color@@YAXPAI00@Z ENDP		; Get_Public_Message_Color
_TEXT	ENDS
PUBLIC	?Get_Harvester_Preset_ID@@YAHH@Z		; Get_Harvester_Preset_ID
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Harvester_Preset_ID@@YAHH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_Harvester_Preset_ID@@YAHH@Z PROC			; Get_Harvester_Preset_ID, COMDAT

; 636  : 	BaseGameObj *Ref = (BaseGameObj*)Find_Refinery(Team);

	mov	eax, DWORD PTR _Team$[esp-4]
	push	eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN9@Get_Harves
	push	3
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building

; 637  : 	if (!Ref)

	test	eax, eax
	jne	SHORT $LN1@Get_Harves
$LN9@Get_Harves:

; 638  : 	{
; 639  : 		return 0;

	xor	eax, eax

; 644  : }

	ret	0
$LN1@Get_Harves:

; 640  : 	}
; 641  : 	char *Def = (char*)Ref->definition;
; 642  : 	Def += 0xAC;
; 643  : 	return *(int*)Def;

	mov	ecx, DWORD PTR [eax+1724]
	mov	eax, DWORD PTR [ecx+172]

; 644  : }

	ret	0
?Get_Harvester_Preset_ID@@YAHH@Z ENDP			; Get_Harvester_Preset_ID
_TEXT	ENDS
PUBLIC	?Is_Harvester_Preset@@YA_NPAE@Z			; Is_Harvester_Preset
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Harvester_Preset@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Is_Harvester_Preset@@YA_NPAE@Z PROC			; Is_Harvester_Preset, COMDAT

; 648  : 	int ID = Commands->Get_Preset_ID(obj);

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

; 649  : 	if (Get_Harvester_Preset_ID(0) == ID || Get_Harvester_Preset_ID(1) == ID)

	push	0
	mov	esi, eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 8
	test	eax, eax
	je	SHORT $LN21@Is_Harvest
	push	3
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building
	test	eax, eax
	jne	SHORT $LN5@Is_Harvest
$LN21@Is_Harvest:
	xor	eax, eax
	jmp	SHORT $LN6@Is_Harvest
$LN5@Is_Harvest:
	mov	eax, DWORD PTR [eax+1724]
	mov	eax, DWORD PTR [eax+172]
$LN6@Is_Harvest:
	cmp	eax, esi
	je	SHORT $LN1@Is_Harvest
	push	1
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	add	esp, 4
	test	eax, eax
	je	SHORT $LN22@Is_Harvest
	push	3
	mov	ecx, eax
	call	?Find_Building@BaseControllerClass@@QAEPAEI@Z ; BaseControllerClass::Find_Building
	test	eax, eax
	jne	SHORT $LN13@Is_Harvest
$LN22@Is_Harvest:
	xor	eax, eax
	jmp	SHORT $LN14@Is_Harvest
$LN13@Is_Harvest:
	mov	ecx, DWORD PTR [eax+1724]
	mov	eax, DWORD PTR [ecx+172]
$LN14@Is_Harvest:
	cmp	eax, esi
	je	SHORT $LN1@Is_Harvest

; 652  : 	}
; 653  : 	return false;

	xor	al, al
	pop	esi

; 654  : }

	ret	0
$LN1@Is_Harvest:

; 650  : 	{
; 651  : 		return true;

	mov	al, 1
	pop	esi

; 654  : }

	ret	0
?Is_Harvester_Preset@@YA_NPAE@Z ENDP			; Is_Harvester_Preset
_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
$T59159 = -12						; size = 12
_this$ = 8						; size = 4
$T59165 = 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 $T59165[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T59159[esp+20]
	mov	DWORD PTR $T59165[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T59159[esp+20]
	push	ecx
	mov	DWORD PTR $T59159[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
$T59171 = -12						; size = 12
$T59176 = 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 $T59176[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T59171[esp+20]
	mov	DWORD PTR $T59176[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T59171[esp+20]
	push	ecx
	mov	DWORD PTR $T59171[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	?Is_Harvester@@YA_NPAE@Z			; Is_Harvester
EXTRN	?As_VehicleGameObj@@YAPAEPAE@Z:PROC		; As_VehicleGameObj
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_game.cpp
;	COMDAT ?Is_Harvester@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Is_Harvester@@YA_NPAE@Z PROC				; Is_Harvester, COMDAT

; 271  : {

	push	esi

; 272  : 	if (!As_VehicleGameObj(obj))

	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN3@Is_Harvest@2
$LN12@Is_Harvest@2:

; 273  : 	{
; 274  : 		return false;

	xor	al, al
	pop	esi

; 282  : }

	ret	0
$LN3@Is_Harvest@2:

; 275  : 	}
; 276  : 	int ID = Commands->Get_ID(obj);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx

; 277  : 	if (Commands->Get_ID(Find_Harvester(0)) == ID || Commands->Get_ID(Find_Harvester(1)) == ID)

	push	0
	mov	esi, eax
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	mov	ecx, eax
	add	esp, 8
	xor	eax, eax
	test	ecx, ecx
	je	SHORT $LN6@Is_Harvest@2
	call	?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ ; BaseControllerClass::Get_Harvester_Vehicle
$LN6@Is_Harvest@2:
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	eax, DWORD PTR [edx+108]
	call	eax
	add	esp, 4
	cmp	eax, esi
	je	SHORT $LN1@Is_Harvest@2
	push	1
	call	?Find_Base@BaseControllerClass@@SAPAV1@H@Z ; BaseControllerClass::Find_Base
	mov	ecx, eax
	add	esp, 4
	xor	eax, eax
	test	ecx, ecx
	je	SHORT $LN9@Is_Harvest@2
	call	?Get_Harvester_Vehicle@BaseControllerClass@@QAEPAEXZ ; BaseControllerClass::Get_Harvester_Vehicle
$LN9@Is_Harvest@2:
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	eax
	call	edx
	add	esp, 4
	cmp	eax, esi

; 280  : 	}
; 281  : 	return false;

	jne	SHORT $LN12@Is_Harvest@2
$LN1@Is_Harvest@2:

; 278  : 	{
; 279  : 		return true;

	mov	al, 1
	pop	esi

; 282  : }

	ret	0
?Is_Harvester@@YA_NPAE@Z ENDP				; Is_Harvester
_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
