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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?SetMaxShieldStrength@@3PAXA			; SetMaxShieldStrength
PUBLIC	?StartObservers@@3PAXA				; StartObservers
PUBLIC	?Get_Obj_Color@@3PAXA				; Get_Obj_Color
PUBLIC	?Powerup_Grant@@3PAXA				; Powerup_Grant
PUBLIC	?MarkOwnerDirty@@3PAXA				; MarkOwnerDirty
PUBLIC	?BuildingGameObjList@@3PAV?$SList@E@@A		; BuildingGameObjList
PUBLIC	?SmartGameObjList@@3PAV?$SList@E@@A		; SmartGameObjList
PUBLIC	?BaseGameObjList@@3PAV?$SList@E@@A		; BaseGameObjList
PUBLIC	?SetMaxHealth@@3PAXA				; SetMaxHealth
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
?SetMaxShieldStrength@@3PAXA DD 01H DUP (?)		; SetMaxShieldStrength
?StartObservers@@3PAXA DD 01H DUP (?)			; StartObservers
?Get_Obj_Color@@3PAXA DD 01H DUP (?)			; Get_Obj_Color
?Powerup_Grant@@3PAXA DD 01H DUP (?)			; Powerup_Grant
?MarkOwnerDirty@@3PAXA DD 01H DUP (?)			; MarkOwnerDirty
?BuildingGameObjList@@3PAV?$SList@E@@A DD 01H DUP (?)	; BuildingGameObjList
?SmartGameObjList@@3PAV?$SList@E@@A DD 01H DUP (?)	; SmartGameObjList
?BaseGameObjList@@3PAV?$SList@E@@A DD 01H DUP (?)	; BaseGameObjList
?SetMaxHealth@@3PAXA DD 01H DUP (?)			; SetMaxHealth
_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	?Grant@PowerupGameObjDef@@QAEXPAEH_N@Z		; PowerupGameObjDef::Grant
; Function compile flags: /Odtpy
; File d:\source code\stgm\engine_obj.cpp
;	COMDAT ?Grant@PowerupGameObjDef@@QAEXPAEH_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_powerup$ = 12						; size = 4
_showonhud$ = 16					; size = 1
?Grant@PowerupGameObjDef@@QAEXPAEH_N@Z PROC		; PowerupGameObjDef::Grant, COMDAT
; _this$ = ecx

; 40   : IMPLEMENT_THUNK(Powerup_Grant)

	mov	eax, DWORD PTR ?Powerup_Grant@@3PAXA	; Powerup_Grant
	jmp	eax
?Grant@PowerupGameObjDef@@QAEXPAEH_N@Z ENDP		; PowerupGameObjDef::Grant
_TEXT	ENDS
PUBLIC	?Set_Max_Health@DefenseObjectClass@@QAEXM@Z	; DefenseObjectClass::Set_Max_Health
; Function compile flags: /Odtpy
;	COMDAT ?Set_Max_Health@DefenseObjectClass@@QAEXM@Z
_TEXT	SEGMENT
_health$ = 8						; size = 4
?Set_Max_Health@DefenseObjectClass@@QAEXM@Z PROC	; DefenseObjectClass::Set_Max_Health, COMDAT
; _this$ = ecx

; 42   : IMPLEMENT_THUNK(SetMaxHealth)

	mov	eax, DWORD PTR ?SetMaxHealth@@3PAXA	; SetMaxHealth
	jmp	eax
?Set_Max_Health@DefenseObjectClass@@QAEXM@Z ENDP	; DefenseObjectClass::Set_Max_Health
_TEXT	ENDS
PUBLIC	?Set_Max_Shield_Strength@DefenseObjectClass@@QAEXM@Z ; DefenseObjectClass::Set_Max_Shield_Strength
; Function compile flags: /Odtpy
;	COMDAT ?Set_Max_Shield_Strength@DefenseObjectClass@@QAEXM@Z
_TEXT	SEGMENT
_shieldstrength$ = 8					; size = 4
?Set_Max_Shield_Strength@DefenseObjectClass@@QAEXM@Z PROC ; DefenseObjectClass::Set_Max_Shield_Strength, COMDAT
; _this$ = ecx

; 44   : IMPLEMENT_THUNK(SetMaxShieldStrength)

	mov	eax, DWORD PTR ?SetMaxShieldStrength@@3PAXA ; SetMaxShieldStrength
	jmp	eax
?Set_Max_Shield_Strength@DefenseObjectClass@@QAEXM@Z ENDP ; DefenseObjectClass::Set_Max_Shield_Strength
_TEXT	ENDS
PUBLIC	?Mark_Owner_Dirty@DefenseObjectClass@@QAEXXZ	; DefenseObjectClass::Mark_Owner_Dirty
; Function compile flags: /Odtpy
;	COMDAT ?Mark_Owner_Dirty@DefenseObjectClass@@QAEXXZ
_TEXT	SEGMENT
?Mark_Owner_Dirty@DefenseObjectClass@@QAEXXZ PROC	; DefenseObjectClass::Mark_Owner_Dirty, COMDAT
; _this$ = ecx

; 46   : IMPLEMENT_THUNK(MarkOwnerDirty)

	mov	eax, DWORD PTR ?MarkOwnerDirty@@3PAXA	; MarkOwnerDirty
	jmp	eax
?Mark_Owner_Dirty@DefenseObjectClass@@QAEXXZ ENDP	; DefenseObjectClass::Mark_Owner_Dirty
_TEXT	ENDS
PUBLIC	?Start_Observers@ScriptableGameObj@@QAEXXZ	; ScriptableGameObj::Start_Observers
; Function compile flags: /Odtpy
;	COMDAT ?Start_Observers@ScriptableGameObj@@QAEXXZ
_TEXT	SEGMENT
?Start_Observers@ScriptableGameObj@@QAEXXZ PROC		; ScriptableGameObj::Start_Observers, COMDAT
; _this$ = ecx

; 48   : IMPLEMENT_THUNK(StartObservers)

	mov	eax, DWORD PTR ?StartObservers@@3PAXA	; StartObservers
	jmp	eax
?Start_Observers@ScriptableGameObj@@QAEXXZ ENDP		; ScriptableGameObj::Start_Observers
_TEXT	ENDS
PUBLIC	?Get_Team_Color@DamageableGameObj@@QAE?AUVector3@@XZ ; DamageableGameObj::Get_Team_Color
; Function compile flags: /Odtpy
;	COMDAT ?Get_Team_Color@DamageableGameObj@@QAE?AUVector3@@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?Get_Team_Color@DamageableGameObj@@QAE?AUVector3@@XZ PROC ; DamageableGameObj::Get_Team_Color, COMDAT
; _this$ = ecx

; 50   : IMPLEMENT_THUNK_RETURN_V(Get_Obj_Color)

	mov	eax, DWORD PTR ?Get_Obj_Color@@3PAXA	; Get_Obj_Color
	jmp	eax
?Get_Team_Color@DamageableGameObj@@QAE?AUVector3@@XZ ENDP ; DamageableGameObj::Get_Team_Color
_TEXT	ENDS
PUBLIC	?InitEngineObj@@YAXI@Z				; InitEngineObj
; Function compile flags: /Ogtpy
;	COMDAT ?InitEngineObj@@YAXI@Z
_TEXT	SEGMENT
_exe$ = 8						; size = 4
?InitEngineObj@@YAXI@Z PROC				; InitEngineObj, COMDAT

; 54   : 	switch(exe)

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

; 55   : 	{
; 56   : 		case 0: //game.exe
; 57   : 			BuildingGameObjList = (SList<GameObject> *)0x00856FE8;

	mov	DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A, 8744936 ; BuildingGameObjList, 00856fe8H

; 58   : 			SmartGameObjList = (SList<GameObject> *)0x00856FD8;

	mov	DWORD PTR ?SmartGameObjList@@3PAV?$SList@E@@A, 8744920 ; SmartGameObjList, 00856fd8H

; 59   : 			BaseGameObjList = (SList<GameObject> *)0x00856FF8;

	mov	DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A, 8744952 ; BaseGameObjList, 00856ff8H

; 60   : 			Get_Obj_Color = (void *)0x006D97B0;

	mov	DWORD PTR ?Get_Obj_Color@@3PAXA, 7182256 ; Get_Obj_Color, 006d97b0H

; 61   : 			SetMaxHealth = (void *)0x00691820;

	mov	DWORD PTR ?SetMaxHealth@@3PAXA, 6887456	; SetMaxHealth, 00691820H

; 62   : 			SetMaxShieldStrength = (void *)0x006930E0;

	mov	DWORD PTR ?SetMaxShieldStrength@@3PAXA, 6893792 ; SetMaxShieldStrength, 006930e0H

; 63   : 			MarkOwnerDirty = (void *)0x00693740;

	mov	DWORD PTR ?MarkOwnerDirty@@3PAXA, 6895424 ; MarkOwnerDirty, 00693740H

; 64   : 			StartObservers = (void *)0x006B6C40;

	mov	DWORD PTR ?StartObservers@@3PAXA, 7040064 ; StartObservers, 006b6c40H

; 65   : 			Powerup_Grant = (void *)0x006F09F0;

	mov	DWORD PTR ?Powerup_Grant@@3PAXA, 7277040 ; Powerup_Grant, 006f09f0H

; 110  : 			break;
; 111  : 	}
; 112  : }

	ret	0
$LN4@InitEngine:

; 66   : 			break;
; 67   : 		case 1: //server.dat
; 68   : 			BuildingGameObjList = (SList<GameObject> *)0x008561D0;

	mov	DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A, 8741328 ; BuildingGameObjList, 008561d0H

; 69   : 			SmartGameObjList = (SList<GameObject> *)0x008561C0;

	mov	DWORD PTR ?SmartGameObjList@@3PAV?$SList@E@@A, 8741312 ; SmartGameObjList, 008561c0H

; 70   : 			BaseGameObjList = (SList<GameObject> *)0x008561E0;

	mov	DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A, 8741344 ; BaseGameObjList, 008561e0H

; 71   : 			Get_Obj_Color = (void *)0x006D9050;

	mov	DWORD PTR ?Get_Obj_Color@@3PAXA, 7180368 ; Get_Obj_Color, 006d9050H

; 72   : 			SetMaxHealth = (void *)0x006910C0;

	mov	DWORD PTR ?SetMaxHealth@@3PAXA, 6885568	; SetMaxHealth, 006910c0H

; 73   : 			SetMaxShieldStrength = (void *)0x00692980;

	mov	DWORD PTR ?SetMaxShieldStrength@@3PAXA, 6891904 ; SetMaxShieldStrength, 00692980H

; 74   : 			MarkOwnerDirty = (void *)0x00692FE0;

	mov	DWORD PTR ?MarkOwnerDirty@@3PAXA, 6893536 ; MarkOwnerDirty, 00692fe0H

; 75   : 			StartObservers = (void *)0x006B64E0;

	mov	DWORD PTR ?StartObservers@@3PAXA, 7038176 ; StartObservers, 006b64e0H

; 76   : 			Powerup_Grant = (void *)0x006EFFB0;

	mov	DWORD PTR ?Powerup_Grant@@3PAXA, 7274416 ; Powerup_Grant, 006effb0H

; 110  : 			break;
; 111  : 	}
; 112  : }

	ret	0
$LN3@InitEngine:

; 77   : 			break;
; 78   : 		case 2: //RH73
; 79   : 			BuildingGameObjList = (SList<GameObject> *)0x08BA05FC;

	mov	DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A, 146408956 ; BuildingGameObjList, 08ba05fcH

; 80   : 			SmartGameObjList = (SList<GameObject> *)0x08BA05E4;

	mov	DWORD PTR ?SmartGameObjList@@3PAV?$SList@E@@A, 146408932 ; SmartGameObjList, 08ba05e4H

; 81   : 			BaseGameObjList = (SList<GameObject> *)0x08BA05D8;

	mov	DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A, 146408920 ; BaseGameObjList, 08ba05d8H

; 82   : 			Get_Obj_Color = (void *)0x0810E304;

	mov	DWORD PTR ?Get_Obj_Color@@3PAXA, 135324420 ; Get_Obj_Color, 0810e304H

; 83   : 			SetMaxHealth = (void *)0x08111B88;

	mov	DWORD PTR ?SetMaxHealth@@3PAXA, 135338888 ; SetMaxHealth, 08111b88H

; 84   : 			SetMaxShieldStrength = (void *)0x08111C9C;

	mov	DWORD PTR ?SetMaxShieldStrength@@3PAXA, 135339164 ; SetMaxShieldStrength, 08111c9cH

; 85   : 			MarkOwnerDirty = (void *)0x08111D84;

	mov	DWORD PTR ?MarkOwnerDirty@@3PAXA, 135339396 ; MarkOwnerDirty, 08111d84H

; 86   : 			StartObservers = (void *)0x08152F78;

	mov	DWORD PTR ?StartObservers@@3PAXA, 135606136 ; StartObservers, 08152f78H

; 87   : 			Powerup_Grant = (void *)0x08144268;

	mov	DWORD PTR ?Powerup_Grant@@3PAXA, 135545448 ; Powerup_Grant, 08144268H

; 110  : 			break;
; 111  : 	}
; 112  : }

	ret	0
$LN2@InitEngine:

; 88   : 			break;
; 89   : 		case 3: //RH8
; 90   : 			BuildingGameObjList = (SList<GameObject> *)0x089A9090;

	mov	DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A, 144347280 ; BuildingGameObjList, 089a9090H

; 91   : 			SmartGameObjList = (SList<GameObject> *)0x089A9078;

	mov	DWORD PTR ?SmartGameObjList@@3PAV?$SList@E@@A, 144347256 ; SmartGameObjList, 089a9078H

; 92   : 			BaseGameObjList = (SList<GameObject> *)0x089A906C;

	mov	DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A, 144347244 ; BaseGameObjList, 089a906cH

; 93   : 			Get_Obj_Color = (void *)0x081006FC;

	mov	DWORD PTR ?Get_Obj_Color@@3PAXA, 135268092 ; Get_Obj_Color, 081006fcH

; 94   : 			SetMaxHealth = (void *)0x08103C18;

	mov	DWORD PTR ?SetMaxHealth@@3PAXA, 135281688 ; SetMaxHealth, 08103c18H

; 95   : 			SetMaxShieldStrength = (void *)0x08103D2E;

	mov	DWORD PTR ?SetMaxShieldStrength@@3PAXA, 135281966 ; SetMaxShieldStrength, 08103d2eH

; 96   : 			MarkOwnerDirty = (void *)0x08103E20;

	mov	DWORD PTR ?MarkOwnerDirty@@3PAXA, 135282208 ; MarkOwnerDirty, 08103e20H

; 97   : 			StartObservers = (void *)0x081410B2;

	mov	DWORD PTR ?StartObservers@@3PAXA, 135532722 ; StartObservers, 081410b2H

; 98   : 			Powerup_Grant = (void *)0x081332C6;

	mov	DWORD PTR ?Powerup_Grant@@3PAXA, 135475910 ; Powerup_Grant, 081332c6H

; 110  : 			break;
; 111  : 	}
; 112  : }

	ret	0
$LN1@InitEngine:

; 99   : 			break;
; 100  : 		default:
; 101  : 			BuildingGameObjList = (SList<GameObject> *)0;

	xor	eax, eax
	mov	DWORD PTR ?BuildingGameObjList@@3PAV?$SList@E@@A, eax ; BuildingGameObjList

; 102  : 			SmartGameObjList = (SList<GameObject> *)0;

	mov	DWORD PTR ?SmartGameObjList@@3PAV?$SList@E@@A, eax ; SmartGameObjList

; 103  : 			BaseGameObjList = (SList<GameObject> *)0;

	mov	DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A, eax ; BaseGameObjList

; 104  : 			Get_Obj_Color = (void *)0;

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

; 105  : 			SetMaxHealth = (void *)0;

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

; 106  : 			SetMaxShieldStrength = (void *)0;

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

; 107  : 			MarkOwnerDirty = (void *)0;

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

; 108  : 			StartObservers = (void *)0;

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

; 109  : 			Powerup_Grant = (void *)0;

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

; 110  : 			break;
; 111  : 	}
; 112  : }

	ret	0
$LN10@InitEngine:
	DD	$LN5@InitEngine
	DD	$LN4@InitEngine
	DD	$LN3@InitEngine
	DD	$LN2@InitEngine
?InitEngineObj@@YAXI@Z ENDP				; InitEngineObj
_TEXT	ENDS
PUBLIC	?Get_Object_Type@@YAHPAE@Z			; Get_Object_Type
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Object_Type@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Object_Type@@YAHPAE@Z PROC				; Get_Object_Type, COMDAT

; 116  : 	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@Get_Object
	test	esi, esi
	je	SHORT $LN2@Get_Object

; 119  : 	}
; 120  : 	DamageableGameObj *o = ((ScriptableGameObj *)obj)->As_DamageableGameObj();

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

; 121  : 	if (!o)

	test	eax, eax

; 122  : 	{
; 123  : 		return 0;

	je	SHORT $LN2@Get_Object

; 124  : 	}
; 125  : 	return o->PlayerType;

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

; 126  : }

	ret	0
$LN2@Get_Object:

; 117  : 	{
; 118  : 		return 0;

	xor	eax, eax
	pop	esi

; 126  : }

	ret	0
?Get_Object_Type@@YAHPAE@Z ENDP				; Get_Object_Type
_TEXT	ENDS
PUBLIC	?Set_Object_Type@@YAXPAEH@Z			; Set_Object_Type
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Object_Type@@YAXPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_type$ = 12						; size = 4
?Set_Object_Type@@YAXPAEH@Z PROC			; Set_Object_Type, COMDAT

; 130  : 	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@Set_Object
	test	esi, esi
	je	SHORT $LN2@Set_Object

; 131  : 	{
; 132  : 		return;
; 133  : 	}
; 134  : 	DamageableGameObj *o = ((ScriptableGameObj *)obj)->As_DamageableGameObj();

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

; 135  : 	if (!o)

	test	eax, eax
	je	SHORT $LN2@Set_Object

; 136  : 	{
; 137  : 		return;
; 138  : 	}
; 139  : 	o->PlayerType = type;

	mov	ecx, DWORD PTR _type$[esp]
	mov	DWORD PTR [eax+1892], ecx
$LN2@Set_Object:
	pop	esi

; 140  : }

	ret	0
?Set_Object_Type@@YAXPAEH@Z ENDP			; Set_Object_Type
_TEXT	ENDS
PUBLIC	?As_PowerupGameObj@@YAPAEPAE@Z			; As_PowerupGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_PowerupGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_PowerupGameObj@@YAPAEPAE@Z PROC			; As_PowerupGameObj, COMDAT

; 144  : 	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@As_Powerup
	test	esi, esi
	je	SHORT $LN2@As_Powerup

; 147  : 	}
; 148  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 149  : 	if (!o2)

	test	eax, eax

; 150  : 	{
; 151  : 		return 0;

	je	SHORT $LN2@As_Powerup

; 152  : 	}
; 153  : 	return (GameObject *)o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	pop	esi
	jmp	eax
$LN2@As_Powerup:

; 145  : 	{
; 146  : 		return 0;

	xor	eax, eax
	pop	esi

; 154  : }

	ret	0
?As_PowerupGameObj@@YAPAEPAE@Z ENDP			; As_PowerupGameObj
_TEXT	ENDS
PUBLIC	?As_C4GameObj@@YAPAEPAE@Z			; As_C4GameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_C4GameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_C4GameObj@@YAPAEPAE@Z PROC				; As_C4GameObj, COMDAT

; 158  : 	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@As_C4GameO
	test	esi, esi
	je	SHORT $LN2@As_C4GameO

; 161  : 	}
; 162  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 163  : 	if (!o2)

	test	eax, eax

; 164  : 	{
; 165  : 		return 0;

	je	SHORT $LN2@As_C4GameO

; 166  : 	}
; 167  : 	return (GameObject *)o2->As_C4GameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	pop	esi
	jmp	eax
$LN2@As_C4GameO:

; 159  : 	{
; 160  : 		return 0;

	xor	eax, eax
	pop	esi

; 168  : }

	ret	0
?As_C4GameObj@@YAPAEPAE@Z ENDP				; As_C4GameObj
_TEXT	ENDS
PUBLIC	?As_BeaconGameObj@@YAPAEPAE@Z			; As_BeaconGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_BeaconGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_BeaconGameObj@@YAPAEPAE@Z PROC			; As_BeaconGameObj, COMDAT

; 172  : 	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@As_BeaconG
	test	esi, esi
	je	SHORT $LN2@As_BeaconG

; 175  : 	}
; 176  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 177  : 	if (!o2)

	test	eax, eax

; 178  : 	{
; 179  : 		return 0;

	je	SHORT $LN2@As_BeaconG

; 180  : 	}
; 181  : 	return (GameObject *)o2->As_BeaconGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+144]
	pop	esi
	jmp	eax
$LN2@As_BeaconG:

; 173  : 	{
; 174  : 		return 0;

	xor	eax, eax
	pop	esi

; 182  : }

	ret	0
?As_BeaconGameObj@@YAPAEPAE@Z ENDP			; As_BeaconGameObj
_TEXT	ENDS
PUBLIC	?As_ArmedGameObj@@YAPAEPAE@Z			; As_ArmedGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_ArmedGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_ArmedGameObj@@YAPAEPAE@Z PROC			; As_ArmedGameObj, COMDAT

; 186  : 	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@As_ArmedGa
	test	esi, esi
	je	SHORT $LN2@As_ArmedGa

; 189  : 	}
; 190  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 191  : 	if (!o2)

	test	eax, eax

; 192  : 	{
; 193  : 		return 0;

	je	SHORT $LN2@As_ArmedGa

; 194  : 	}
; 195  : 	return (GameObject *)o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	pop	esi
	jmp	eax
$LN2@As_ArmedGa:

; 187  : 	{
; 188  : 		return 0;

	xor	eax, eax
	pop	esi

; 196  : }

	ret	0
?As_ArmedGameObj@@YAPAEPAE@Z ENDP			; As_ArmedGameObj
_TEXT	ENDS
PUBLIC	?As_SimpleGameObj@@YAPAEPAE@Z			; As_SimpleGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_SimpleGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_SimpleGameObj@@YAPAEPAE@Z PROC			; As_SimpleGameObj, COMDAT

; 200  : 	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@As_SimpleG@2
	test	esi, esi
	je	SHORT $LN2@As_SimpleG@2

; 203  : 	}
; 204  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 205  : 	if (!o2)

	test	eax, eax

; 206  : 	{
; 207  : 		return 0;

	je	SHORT $LN2@As_SimpleG@2

; 208  : 	}
; 209  : 	return (GameObject *)o2->As_SimpleGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+156]
	pop	esi
	jmp	eax
$LN2@As_SimpleG@2:

; 201  : 	{
; 202  : 		return 0;

	xor	eax, eax
	pop	esi

; 210  : }

	ret	0
?As_SimpleGameObj@@YAPAEPAE@Z ENDP			; As_SimpleGameObj
_TEXT	ENDS
PUBLIC	?As_ScriptableGameObj@@YAPAEPAE@Z		; As_ScriptableGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_ScriptableGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_ScriptableGameObj@@YAPAEPAE@Z PROC			; As_ScriptableGameObj, COMDAT

; 486  : 	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 $LN1@As_Scripta
	test	esi, esi
	je	SHORT $LN1@As_Scripta

; 489  : 	}
; 490  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_ScriptableGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_Scripta:

; 487  : 	{
; 488  : 		return 0;

	xor	eax, eax
	pop	esi

; 491  : }

	ret	0
?As_ScriptableGameObj@@YAPAEPAE@Z ENDP			; As_ScriptableGameObj
_TEXT	ENDS
PUBLIC	?As_PhysicalGameObj@@YAPAEPAE@Z			; As_PhysicalGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_PhysicalGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_PhysicalGameObj@@YAPAEPAE@Z PROC			; As_PhysicalGameObj, COMDAT

; 495  : 	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 $LN1@As_Physica
	test	esi, esi
	je	SHORT $LN1@As_Physica

; 498  : 	}
; 499  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_PhysicalGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_Physica:

; 496  : 	{
; 497  : 		return 0;

	xor	eax, eax
	pop	esi

; 500  : }

	ret	0
?As_PhysicalGameObj@@YAPAEPAE@Z ENDP			; As_PhysicalGameObj
_TEXT	ENDS
PUBLIC	?As_CinematicGameObj@@YAPAEPAE@Z		; As_CinematicGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_CinematicGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_CinematicGameObj@@YAPAEPAE@Z PROC			; As_CinematicGameObj, COMDAT

; 504  : 	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@As_Cinemat
	test	esi, esi
	je	SHORT $LN2@As_Cinemat

; 507  : 	}
; 508  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 509  : 	if (!o2)

	test	eax, eax

; 510  : 	{
; 511  : 		return 0;

	je	SHORT $LN2@As_Cinemat

; 512  : 	}
; 513  : 	return (GameObject *)o2->As_CinematicGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+152]
	pop	esi
	jmp	eax
$LN2@As_Cinemat:

; 505  : 	{
; 506  : 		return 0;

	xor	eax, eax
	pop	esi

; 514  : }

	ret	0
?As_CinematicGameObj@@YAPAEPAE@Z ENDP			; As_CinematicGameObj
_TEXT	ENDS
PUBLIC	?As_VehicleGameObj@@YAPAEPAE@Z			; As_VehicleGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_VehicleGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_VehicleGameObj@@YAPAEPAE@Z PROC			; As_VehicleGameObj, COMDAT

; 518  : 	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 $LN1@As_Vehicle
	test	esi, esi
	je	SHORT $LN1@As_Vehicle

; 521  : 	}
; 522  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_VehicleGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+40]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_Vehicle:

; 519  : 	{
; 520  : 		return 0;

	xor	eax, eax
	pop	esi

; 523  : }

	ret	0
?As_VehicleGameObj@@YAPAEPAE@Z ENDP			; As_VehicleGameObj
_TEXT	ENDS
PUBLIC	?As_SmartGameObj@@YAPAEPAE@Z			; As_SmartGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_SmartGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_SmartGameObj@@YAPAEPAE@Z PROC			; As_SmartGameObj, COMDAT

; 527  : 	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 $LN1@As_SmartGa
	test	esi, esi
	je	SHORT $LN1@As_SmartGa

; 530  : 	}
; 531  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_SmartGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+44]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_SmartGa:

; 528  : 	{
; 529  : 		return 0;

	xor	eax, eax
	pop	esi

; 532  : }

	ret	0
?As_SmartGameObj@@YAPAEPAE@Z ENDP			; As_SmartGameObj
_TEXT	ENDS
PUBLIC	?As_DamageableGameObj@@YAPAEPAE@Z		; As_DamageableGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_DamageableGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_DamageableGameObj@@YAPAEPAE@Z PROC			; As_DamageableGameObj, COMDAT

; 536  : 	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 $LN1@As_Damagea
	test	esi, esi
	je	SHORT $LN1@As_Damagea

; 539  : 	}
; 540  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_DamageableGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_Damagea:

; 537  : 	{
; 538  : 		return 0;

	xor	eax, eax
	pop	esi

; 541  : }

	ret	0
?As_DamageableGameObj@@YAPAEPAE@Z ENDP			; As_DamageableGameObj
_TEXT	ENDS
PUBLIC	?As_SoldierGameObj@@YAPAEPAE@Z			; As_SoldierGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_SoldierGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_SoldierGameObj@@YAPAEPAE@Z PROC			; As_SoldierGameObj, COMDAT

; 545  : 	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 $LN1@As_Soldier
	test	esi, esi
	je	SHORT $LN1@As_Soldier

; 548  : 	}
; 549  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_SoldierGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_Soldier:

; 546  : 	{
; 547  : 		return 0;

	xor	eax, eax
	pop	esi

; 550  : }

	ret	0
?As_SoldierGameObj@@YAPAEPAE@Z ENDP			; As_SoldierGameObj
_TEXT	ENDS
PUBLIC	?As_ScriptZoneGameObj@@YAPAEPAE@Z		; As_ScriptZoneGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_ScriptZoneGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_ScriptZoneGameObj@@YAPAEPAE@Z PROC			; As_ScriptZoneGameObj, COMDAT

; 554  : 	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 $LN1@As_ScriptZ
	test	esi, esi
	je	SHORT $LN1@As_ScriptZ

; 557  : 	}
; 558  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_ScriptZoneGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+72]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_ScriptZ:

; 555  : 	{
; 556  : 		return 0;

	xor	eax, eax
	pop	esi

; 559  : }

	ret	0
?As_ScriptZoneGameObj@@YAPAEPAE@Z ENDP			; As_ScriptZoneGameObj
_TEXT	ENDS
PUBLIC	?As_BuildingGameObj@@YAPAEPAE@Z			; As_BuildingGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_BuildingGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?As_BuildingGameObj@@YAPAEPAE@Z PROC			; As_BuildingGameObj, COMDAT

; 563  : 	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 $LN1@As_Buildin
	test	esi, esi
	je	SHORT $LN1@As_Buildin

; 566  : 	}
; 567  : 	return (GameObject *)((ScriptableGameObj *)obj)->As_BuildingGameObj();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+64]
	mov	ecx, esi
	pop	esi
	jmp	eax
$LN1@As_Buildin:

; 564  : 	{
; 565  : 		return 0;

	xor	eax, eax
	pop	esi

; 568  : }

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

; 572  : 	if (As_BuildingGameObj(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 $LN1@Is_Buildin
	test	esi, esi
	je	SHORT $LN1@Is_Buildin
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+64]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Buildin

; 573  : 	{
; 574  : 		return true;

	mov	al, 1
	pop	esi

; 577  : }

	ret	0
$LN1@Is_Buildin:

; 575  : 	}
; 576  : 	return false;

	xor	al, al
	pop	esi

; 577  : }

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

; 581  : 	if (As_SoldierGameObj(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 $LN1@Is_Soldier
	test	esi, esi
	je	SHORT $LN1@Is_Soldier
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Soldier

; 582  : 	{
; 583  : 		return true;

	mov	al, 1
	pop	esi

; 586  : }

	ret	0
$LN1@Is_Soldier:

; 584  : 	}
; 585  : 	return false;

	xor	al, al
	pop	esi

; 586  : }

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

; 590  : 	if (As_VehicleGameObj(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 $LN1@Is_Vehicle
	test	esi, esi
	je	SHORT $LN1@Is_Vehicle
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+40]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Vehicle

; 591  : 	{
; 592  : 		return true;

	mov	al, 1
	pop	esi

; 595  : }

	ret	0
$LN1@Is_Vehicle:

; 593  : 	}
; 594  : 	return false;

	xor	al, al
	pop	esi

; 595  : }

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

; 599  : 	if (As_CinematicGameObj(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 $LN1@Is_Cinemat
	test	esi, esi
	je	SHORT $LN1@Is_Cinemat
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Cinemat
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+152]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Cinemat

; 600  : 	{
; 601  : 		return true;

	mov	al, 1
	pop	esi

; 604  : }

	ret	0
$LN1@Is_Cinemat:

; 602  : 	}
; 603  : 	return false;

	xor	al, al
	pop	esi

; 604  : }

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

; 608  : 	if (As_ScriptZoneGameObj(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 $LN1@Is_ScriptZ
	test	esi, esi
	je	SHORT $LN1@Is_ScriptZ
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+72]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_ScriptZ

; 609  : 	{
; 610  : 		return true;

	mov	al, 1
	pop	esi

; 613  : }

	ret	0
$LN1@Is_ScriptZ:

; 611  : 	}
; 612  : 	return false;

	xor	al, al
	pop	esi

; 613  : }

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

; 617  : 	if (As_PowerupGameObj(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 $LN1@Is_Powerup
	test	esi, esi
	je	SHORT $LN1@Is_Powerup
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Powerup
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Powerup

; 618  : 	{
; 619  : 		return true;

	mov	al, 1
	pop	esi

; 622  : }

	ret	0
$LN1@Is_Powerup:

; 620  : 	}
; 621  : 	return false;

	xor	al, al
	pop	esi

; 622  : }

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

; 626  : 	if (As_C4GameObj(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 $LN1@Is_C4
	test	esi, esi
	je	SHORT $LN1@Is_C4
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_C4
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_C4

; 627  : 	{
; 628  : 		return true;

	mov	al, 1
	pop	esi

; 631  : }

	ret	0
$LN1@Is_C4:

; 629  : 	}
; 630  : 	return false;

	xor	al, al
	pop	esi

; 631  : }

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

; 635  : 	if (As_ScriptableGameObj(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 $LN1@Is_Scripta
	test	esi, esi
	je	SHORT $LN1@Is_Scripta
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Scripta

; 636  : 	{
; 637  : 		return true;

	mov	al, 1
	pop	esi

; 640  : }

	ret	0
$LN1@Is_Scripta:

; 638  : 	}
; 639  : 	return false;

	xor	al, al
	pop	esi

; 640  : }

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

; 644  : 	if (As_BeaconGameObj(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 $LN1@Is_Beacon
	test	esi, esi
	je	SHORT $LN1@Is_Beacon
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Beacon
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+144]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Beacon

; 645  : 	{
; 646  : 		return true;

	mov	al, 1
	pop	esi

; 649  : }

	ret	0
$LN1@Is_Beacon:

; 647  : 	}
; 648  : 	return false;

	xor	al, al
	pop	esi

; 649  : }

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

; 653  : 	if (As_ArmedGameObj(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 $LN1@Is_Armed
	test	esi, esi
	je	SHORT $LN1@Is_Armed
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Armed
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Armed

; 654  : 	{
; 655  : 		return true;

	mov	al, 1
	pop	esi

; 658  : }

	ret	0
$LN1@Is_Armed:

; 656  : 	}
; 657  : 	return false;

	xor	al, al
	pop	esi

; 658  : }

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

; 662  : 	if (As_SimpleGameObj(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 $LN1@Is_Simple
	test	esi, esi
	je	SHORT $LN1@Is_Simple
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Simple
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+156]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Is_Simple

; 663  : 	{
; 664  : 		return true;

	mov	al, 1
	pop	esi

; 667  : }

	ret	0
$LN1@Is_Simple:

; 665  : 	}
; 666  : 	return false;

	xor	al, al
	pop	esi

; 667  : }

	ret	0
?Is_Simple@@YA_NPAE@Z ENDP				; Is_Simple
_TEXT	ENDS
PUBLIC	__real@437f0000
PUBLIC	?Get_Object_Color@@YAXPAEPAI11@Z		; Get_Object_Color
EXTRN	__fltused:DWORD
;	COMDAT __real@437f0000
CONST	SEGMENT
__real@437f0000 DD 0437f0000r			; 255
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Object_Color@@YAXPAEPAI11@Z
_TEXT	SEGMENT
tv147 = -22						; size = 2
tv139 = -22						; size = 2
tv131 = -22						; size = 2
tv144 = -20						; size = 4
tv142 = -20						; size = 8
tv136 = -20						; size = 4
tv134 = -20						; size = 8
tv128 = -20						; size = 4
tv82 = -20						; size = 8
_v$ = -12						; size = 12
_obj$ = 8						; size = 4
_red$ = 12						; size = 4
_green$ = 16						; size = 4
_blue$ = 20						; size = 4
?Get_Object_Color@@YAXPAEPAI11@Z PROC			; Get_Object_Color, COMDAT

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

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 24					; 00000018H
	push	esi
	mov	esi, DWORD PTR _obj$[esp+24]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN2@Get_Object@2
	test	esi, esi
	je	$LN2@Get_Object@2

; 784  : 	{
; 785  : 		return;
; 786  : 	}
; 787  : 	DamageableGameObj *o = (DamageableGameObj *)As_DamageableGameObj(obj);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+108]
	push	esi
	call	eax
	add	esp, 4
	test	eax, eax
	je	$LN2@Get_Object@2
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax

; 788  : 	if (!o)

	test	eax, eax
	je	$LN2@Get_Object@2

; 789  : 	{
; 790  : 		return;
; 791  : 	}
; 792  : 	Vector3 v = o->Get_Team_Color();

	lea	ecx, DWORD PTR _v$[esp+28]
	push	ecx
	mov	ecx, eax
	call	?Get_Team_Color@DamageableGameObj@@QAE?AUVector3@@XZ ; DamageableGameObj::Get_Team_Color

; 793  : 	*red = (unsigned int)(v.X*255);

	fld	DWORD PTR _v$[esp+28]
	fld	DWORD PTR __real@437f0000
	fnstcw	WORD PTR tv147[esp+28]
	movzx	eax, WORD PTR tv147[esp+28]
	fmul	ST(1), ST(0)
	or	eax, 3072				; 00000c00H
	fxch	ST(1)
	mov	DWORD PTR tv144[esp+28], eax
	mov	eax, DWORD PTR _red$[esp+24]
	fldcw	WORD PTR tv144[esp+28]
	fistp	QWORD PTR tv142[esp+28]
	mov	edx, DWORD PTR tv142[esp+28]
	mov	DWORD PTR [eax], edx

; 794  : 	*green = (unsigned int)(v.Y*255);

	mov	edx, DWORD PTR _green$[esp+24]
	fldcw	WORD PTR tv147[esp+28]
	fld	DWORD PTR _v$[esp+32]
	fnstcw	WORD PTR tv139[esp+28]
	fmul	ST(0), ST(1)
	movzx	eax, WORD PTR tv139[esp+28]
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv136[esp+28], eax
	fldcw	WORD PTR tv136[esp+28]
	fistp	QWORD PTR tv134[esp+28]
	mov	ecx, DWORD PTR tv134[esp+28]
	mov	DWORD PTR [edx], ecx

; 795  : 	*blue = (unsigned int)(v.Z*255);

	mov	ecx, DWORD PTR _blue$[esp+24]
	fldcw	WORD PTR tv139[esp+28]
	fmul	DWORD PTR _v$[esp+36]
	fnstcw	WORD PTR tv131[esp+28]
	movzx	eax, WORD PTR tv131[esp+28]
	or	eax, 3072				; 00000c00H
	mov	DWORD PTR tv128[esp+28], eax
	fldcw	WORD PTR tv128[esp+28]
	fistp	QWORD PTR tv82[esp+28]
	mov	eax, DWORD PTR tv82[esp+28]
	mov	DWORD PTR [ecx], eax
	fldcw	WORD PTR tv131[esp+28]
$LN2@Get_Object@2:
	pop	esi

; 796  : }

	add	esp, 24					; 00000018H
	ret	0
?Get_Object_Color@@YAXPAEPAI11@Z ENDP			; Get_Object_Color
_TEXT	ENDS
PUBLIC	?Find_Smart_Object_By_Team@@YAPAEH@Z		; Find_Smart_Object_By_Team
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Smart_Object_By_Team@@YAPAEH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Find_Smart_Object_By_Team@@YAPAEH@Z PROC		; Find_Smart_Object_By_Team, COMDAT

; 800  : 	GenericSLNode *x = SmartGameObjList->HeadNode;

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

; 801  : 	while (x)

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

; 802  : 	{
; 803  : 		GameObject *o = As_SmartGameObj((GameObject *)x->NodeData);

	mov	esi, DWORD PTR [edi+4]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Find_Smart
	test	esi, esi
	je	SHORT $LN1@Find_Smart
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+44]
	mov	ecx, esi
	call	edx
	mov	esi, eax

; 804  : 		if (o)

	test	esi, esi
	je	SHORT $LN1@Find_Smart

; 805  : 		{
; 806  : 			if (Get_Object_Type(o) == Team)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Find_Smart
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN12@Find_Smart
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN14@Find_Smart
$LN12@Find_Smart:
	xor	eax, eax
$LN14@Find_Smart:
	cmp	eax, ebx
	je	SHORT $LN17@Find_Smart
$LN1@Find_Smart:

; 809  : 			}
; 810  : 		}
; 811  : 		x = x->NodeNext;

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

; 812  : 	}
; 813  : 	return 0;

	xor	eax, eax
	pop	ebx

; 814  : }

	ret	0
$LN17@Find_Smart:
	pop	edi

; 807  : 			{
; 808  : 				return o;

	mov	eax, esi
	pop	esi
	pop	ebx

; 814  : }

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

; 818  : 	GenericSLNode *x = BaseGameObjList->HeadNode;

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

; 819  : 	while (x)

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

; 820  : 	{
; 821  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 822  : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	SHORT $LN1@Find_Objec
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Find_Objec
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN1@Find_Objec

; 823  : 		{
; 824  : 			if (Get_Object_Type(o) == Team)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Find_Objec
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN12@Find_Objec
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN14@Find_Objec
$LN12@Find_Objec:
	xor	eax, eax
$LN14@Find_Objec:
	cmp	eax, ebx
	je	SHORT $LN17@Find_Objec
$LN1@Find_Objec:

; 827  : 			}
; 828  : 		}
; 829  : 		x = x->NodeNext;

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

; 830  : 	}
; 831  : 	return 0;

	xor	eax, eax
	pop	ebx

; 832  : }

	ret	0
$LN17@Find_Objec:
	pop	edi

; 825  : 			{
; 826  : 				return o;

	mov	eax, esi
	pop	esi
	pop	ebx

; 832  : }

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

; 836  : 	GenericSLNode *x = SmartGameObjList->HeadNode;

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

; 837  : 	while (x)

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

; 838  : 	{
; 839  : 		GameObject *o = As_SmartGameObj((GameObject *)x->NodeData);

	mov	esi, DWORD PTR [edi+4]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Find_Non_P
	test	esi, esi
	je	SHORT $LN1@Find_Non_P
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+44]
	mov	ecx, esi
	call	edx
	mov	esi, eax

; 840  : 		if (o)

	test	esi, esi
	je	SHORT $LN1@Find_Non_P

; 841  : 		{
; 842  : 			if ((Get_Object_Type(o) == Team) && (!Commands->Is_A_Star(o)))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Find_Non_P
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN12@Find_Non_P
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN14@Find_Non_P
$LN12@Find_Non_P:
	xor	eax, eax
$LN14@Find_Non_P:
	cmp	eax, ebx
	jne	SHORT $LN1@Find_Non_P
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+280]
	push	esi
	call	edx
	add	esp, 4
	test	al, al
	je	SHORT $LN17@Find_Non_P
$LN1@Find_Non_P:

; 845  : 			}
; 846  : 		}
; 847  : 		x = x->NodeNext;

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

; 848  : 	}
; 849  : 	return 0;

	xor	eax, eax
	pop	ebx

; 850  : }

	ret	0
$LN17@Find_Non_P:
	pop	edi

; 843  : 			{
; 844  : 				return o;

	mov	eax, esi
	pop	esi
	pop	ebx

; 850  : }

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

; 854  : 	GenericSLNode *x = BaseGameObjList->HeadNode;

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

; 855  : 	while (x)

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

; 856  : 	{
; 857  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 858  : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	SHORT $LN20@Find_Objec@2
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN20@Find_Objec@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN20@Find_Objec@2

; 859  : 		{
; 860  : 			DefinitionClass *d = Get_Definition(o);

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

; 861  : 			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 $LN20@Find_Objec@2

; 862  : 			{
; 863  : 				if ((Get_Object_Type(o) == Team) || (Team == 2))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN14@Find_Objec@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN14@Find_Objec@2
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN16@Find_Objec@2
$LN14@Find_Objec@2:
	xor	eax, eax
$LN16@Find_Objec@2:
	cmp	eax, ebx
	je	SHORT $LN1@Find_Objec@2
	cmp	ebx, 2
	je	SHORT $LN1@Find_Objec@2
$LN20@Find_Objec@2:

; 866  : 				}
; 867  : 			}
; 868  : 		}
; 869  : 		x = x->NodeNext;

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

; 870  : 	}
; 871  : 	return 0;

	xor	eax, eax
	pop	ebx

; 872  : }

	ret	0
$LN1@Find_Objec@2:
	pop	edi

; 864  : 				{
; 865  : 					return o;

	mov	eax, esi
	pop	esi
	pop	ebp
	pop	ebx

; 872  : }

	ret	0
?Find_Object_By_Preset@@YAPAEHPBD@Z ENDP		; Find_Object_By_Preset
_TEXT	ENDS
PUBLIC	__real@7f7fffff
PUBLIC	?Find_Closest_Non_Building_Object_By_Team@@YAPAEHUVector3@@@Z ; Find_Closest_Non_Building_Object_By_Team
EXTRN	?Is_A_Building@@YA_NPAE@Z:PROC			; Is_A_Building
;	COMDAT __real@7f7fffff
CONST	SEGMENT
__real@7f7fffff DD 07f7fffffr			; 3.40282e+038
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Find_Closest_Non_Building_Object_By_Team@@YAPAEHUVector3@@@Z
_TEXT	SEGMENT
_closestdist$ = -28					; size = 4
_pos$55183 = -24					; size = 12
$T59746 = -12						; size = 12
_Team$ = 8						; size = 4
_position$ = 12						; size = 12
?Find_Closest_Non_Building_Object_By_Team@@YAPAEHUVector3@@@Z PROC ; Find_Closest_Non_Building_Object_By_Team, COMDAT

; 875  : {

	sub	esp, 28					; 0000001cH

; 876  : 	float closestdist = FLT_MAX;
; 877  : 	GameObject *closest = 0;
; 878  : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	fld	DWORD PTR __real@7f7fffff
	push	ebx
	fstp	DWORD PTR _closestdist$[esp+32]
	push	edi
	mov	edi, DWORD PTR [eax+4]
	xor	ebx, ebx

; 879  : 	while (x)

	test	edi, edi
	je	$LN19@Find_Close
	push	ebp
	mov	ebp, DWORD PTR _Team$[esp+36]
	push	esi
	npad	9
$LL5@Find_Close:

; 880  : 	{
; 881  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 882  : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	$LN20@Find_Close
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	$LN20@Find_Close
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	$LN20@Find_Close

; 883  : 		{
; 884  : 			if ((Get_Object_Type(o) == Team) && !Is_A_Building(o))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN13@Find_Close
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN13@Find_Close
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN15@Find_Close
$LN13@Find_Close:
	xor	eax, eax
$LN15@Find_Close:
	cmp	eax, ebp
	jne	SHORT $LN20@Find_Close
	push	esi
	call	?Is_A_Building@@YA_NPAE@Z		; Is_A_Building
	add	esp, 4
	test	al, al
	jne	SHORT $LN20@Find_Close

; 885  : 			{
; 886  : 				Vector3 pos = Commands->Get_Position(o);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+64]
	lea	ecx, DWORD PTR $T59746[esp+44]
	push	esi
	push	ecx
	call	eax
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _pos$55183[esp+52], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _pos$55183[esp+56], edx
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR _pos$55183[esp+60], eax

; 887  : 				float dist = Commands->Get_Distance(pos,position);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _position$[esp+48]
	push	ecx
	mov	ecx, DWORD PTR [eax+256]
	lea	edx, DWORD PTR _pos$55183[esp+56]
	push	edx
	call	ecx

; 888  : 				if (dist < closestdist)

	fld	DWORD PTR _closestdist$[esp+60]
	fcomp	ST(1)
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN22@Find_Close

; 889  : 				{
; 890  : 					closestdist = dist;

	fstp	DWORD PTR _closestdist$[esp+44]

; 891  : 					closest = o;

	mov	ebx, esi
	jmp	SHORT $LN20@Find_Close
$LN22@Find_Close:
	fstp	ST(0)
$LN20@Find_Close:

; 892  : 				}
; 893  : 			}
; 894  : 		}
; 895  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL5@Find_Close
	pop	esi
	pop	ebp
$LN19@Find_Close:
	pop	edi

; 896  : 	}
; 897  : 	return closest;

	mov	eax, ebx
	pop	ebx

; 898  : }

	add	esp, 28					; 0000001cH
	ret	0
?Find_Closest_Non_Building_Object_By_Team@@YAPAEHUVector3@@@Z ENDP ; Find_Closest_Non_Building_Object_By_Team
_TEXT	ENDS
PUBLIC	__real@461c3c00
PUBLIC	?Find_Closest_Preset_By_Team@@YAPAEHABUVector3@@PBD@Z ; Find_Closest_Preset_By_Team
;	COMDAT __real@461c3c00
CONST	SEGMENT
__real@461c3c00 DD 0461c3c00r			; 9999
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Find_Closest_Preset_By_Team@@YAPAEHABUVector3@@PBD@Z
_TEXT	SEGMENT
_closestdist$ = -20					; size = 4
_closest$ = -16						; size = 4
$T59773 = -12						; size = 12
_Team$ = 8						; size = 4
_pos$ = 12						; size = 4
_Preset$ = 16						; size = 4
?Find_Closest_Preset_By_Team@@YAPAEHABUVector3@@PBD@Z PROC ; Find_Closest_Preset_By_Team, COMDAT

; 901  : {

	sub	esp, 20					; 00000014H

; 902  : 	float closestdist = 9999.0f;
; 903  : 	GameObject *closest = 0;
; 904  : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	ecx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	fld	DWORD PTR __real@461c3c00
	push	ebx
	fstp	DWORD PTR _closestdist$[esp+24]
	mov	ebx, DWORD PTR [ecx+4]
	xor	eax, eax

; 905  : 	while (x)

	test	ebx, ebx
	mov	DWORD PTR _closest$[esp+24], eax
	je	$LN5@Find_Close@2
	push	ebp
	mov	ebp, DWORD PTR _pos$[esp+24]
	push	esi
	push	edi
	npad	4
$LL6@Find_Close@2:

; 906  : 	{
; 907  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [ebx+4]

; 908  : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	$LN21@Find_Close@2
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+108]
	push	esi
	call	eax
	add	esp, 4
	test	eax, eax
	je	$LN21@Find_Close@2
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	$LN21@Find_Close@2

; 909  : 		{
; 910  : 			if ((Get_Object_Type(o) == Team || Team == 2) && !_stricmp(Commands->Get_Preset_Name(o),Preset))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN14@Find_Close@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN14@Find_Close@2
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN16@Find_Close@2
$LN14@Find_Close@2:
	xor	eax, eax
$LN16@Find_Close@2:
	mov	ecx, DWORD PTR _Team$[esp+32]
	cmp	eax, ecx
	je	SHORT $LN2@Find_Close@2
	cmp	ecx, 2
	jne	SHORT $LN21@Find_Close@2
$LN2@Find_Close@2:
	mov	eax, DWORD PTR _Preset$[esp+32]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+116]
	push	eax
	push	esi
	call	edx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN21@Find_Close@2

; 911  : 			{
; 912  : 				float dist = Commands->Get_Distance(Commands->Get_Position(o),pos);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+64]
	push	ebp
	lea	ecx, DWORD PTR $T59773[esp+40]
	push	esi
	push	ecx
	lea	edi, DWORD PTR [eax+256]
	call	edx
	add	esp, 8
	push	eax
	mov	eax, DWORD PTR [edi]
	call	eax

; 913  : 				if (dist < closestdist)

	fld	DWORD PTR _closestdist$[esp+44]
	fcomp	ST(1)
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN23@Find_Close@2

; 914  : 				{
; 915  : 					closestdist = dist;

	fstp	DWORD PTR _closestdist$[esp+36]

; 916  : 					closest = o;

	mov	DWORD PTR _closest$[esp+36], esi
	jmp	SHORT $LN21@Find_Close@2
$LN23@Find_Close@2:
	fstp	ST(0)
$LN21@Find_Close@2:

; 917  : 				}
; 918  : 			}
; 919  : 		}
; 920  : 		x = x->NodeNext;

	mov	ebx, DWORD PTR [ebx]
	test	ebx, ebx
	jne	$LL6@Find_Close@2

; 921  : 	}
; 922  : 	return closest;

	mov	eax, DWORD PTR _closest$[esp+36]
	pop	edi
	pop	esi
	pop	ebp
$LN5@Find_Close@2:
	pop	ebx

; 923  : }

	add	esp, 20					; 00000014H
	ret	0
?Find_Closest_Preset_By_Team@@YAPAEHABUVector3@@PBD@Z ENDP ; Find_Closest_Preset_By_Team
_TEXT	ENDS
PUBLIC	?Get_Object_Count@@YAHHPBD@Z			; Get_Object_Count
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Object_Count@@YAHHPBD@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
_Preset$ = 12						; size = 4
?Get_Object_Count@@YAHHPBD@Z PROC			; Get_Object_Count, COMDAT

; 955  : 	int count = 0;
; 956  : 	GenericSLNode *x = SmartGameObjList->HeadNode;

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

; 957  : 	while (x)

	test	edi, edi
	je	SHORT $LN15@Get_Object@3
	push	ebx
	mov	ebx, DWORD PTR _Team$[esp+8]
	push	esi
$LL5@Get_Object@3:

; 958  : 	{
; 959  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 960  : 		if (o)

	test	esi, esi
	je	SHORT $LN16@Get_Object@3

; 961  : 		{
; 962  : 			if ((Get_Object_Type(o) == Team || Team == 2) && !_stricmp(Commands->Get_Preset_Name(o),Preset))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN9@Get_Object@3
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN9@Get_Object@3
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN11@Get_Object@3
$LN9@Get_Object@3:
	xor	eax, eax
$LN11@Get_Object@3:
	cmp	eax, ebx
	je	SHORT $LN1@Get_Object@3
	cmp	ebx, 2
	jne	SHORT $LN16@Get_Object@3
$LN1@Get_Object@3:
	mov	eax, DWORD PTR _Preset$[esp+12]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+116]
	push	eax
	push	esi
	call	edx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN16@Get_Object@3

; 963  : 			{
; 964  : 				count++;

	add	ebp, 1
$LN16@Get_Object@3:

; 965  : 			}
; 966  : 		}
; 967  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL5@Get_Object@3
	pop	esi
	pop	ebx
$LN15@Get_Object@3:
	pop	edi

; 968  : 	}
; 969  : 	return count;

	mov	eax, ebp
	pop	ebp

; 970  : }

	ret	0
?Get_Object_Count@@YAHHPBD@Z ENDP			; Get_Object_Count
_TEXT	ENDS
PUBLIC	?Find_Nearest_Preset@@YAPAEUVector3@@PBD@Z	; Find_Nearest_Preset
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Nearest_Preset@@YAPAEUVector3@@PBD@Z
_TEXT	SEGMENT
tv164 = -52						; size = 4
_o_pos$55337 = -48					; size = 12
_obj_pos$55335 = -36					; size = 12
$T59815 = -24						; size = 12
$T59816 = -12						; size = 12
_position$ = 8						; size = 12
_preset$ = 20						; size = 4
?Find_Nearest_Preset@@YAPAEUVector3@@PBD@Z PROC		; Find_Nearest_Preset, COMDAT

; 993  : 	GameObject *object = 0;
; 994  : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	sub	esp, 52					; 00000034H
	push	ebx
	mov	ebx, DWORD PTR [eax+4]
	push	edi
	xor	edi, edi

; 995  : 	while (x)

	test	ebx, ebx
	je	$LN16@Find_Neare
	push	ebp
	mov	ebp, DWORD PTR _preset$[esp+60]
	push	esi
	npad	3
$LL7@Find_Neare:

; 996  : 	{
; 997  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [ebx+4]

; 998  : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	$LN17@Find_Neare
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	$LN17@Find_Neare
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	$LN17@Find_Neare

; 999  : 		{
; 1000 : 			if (!_stricmp(Commands->Get_Preset_Name(o),preset))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	push	ebp
	push	esi
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	$LN17@Find_Neare

; 1001 : 			{
; 1002 : 				if (object)

	test	edi, edi
	je	$LN3@Find_Neare

; 1003 : 				{
; 1004 : 					Vector3 obj_pos = Commands->Get_Position(object);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+64]
	lea	edx, DWORD PTR $T59815[esp+68]
	push	edi
	push	edx
	call	ecx
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _obj_pos$55335[esp+76], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _obj_pos$55335[esp+80], ecx
	mov	edx, DWORD PTR [eax+8]

; 1005 : 					Vector3 o_pos = Commands->Get_Position(o);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T59816[esp+76]
	mov	DWORD PTR _obj_pos$55335[esp+84], edx
	mov	edx, DWORD PTR [ecx+64]
	push	esi
	push	eax
	call	edx
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _o_pos$55337[esp+84], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _o_pos$55337[esp+88], edx
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR _o_pos$55337[esp+92], eax

; 1006 : 					if (Commands->Get_Distance(position, o_pos) < Commands->Get_Distance(position, obj_pos))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _o_pos$55337[esp+84]
	push	ecx
	mov	ecx, DWORD PTR [eax+256]
	lea	edx, DWORD PTR _position$[esp+84]
	push	edx
	call	ecx
	fstp	DWORD PTR tv164[esp+92]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR _obj_pos$55335[esp+92]
	push	edx
	mov	edx, DWORD PTR [ecx+256]
	lea	eax, DWORD PTR _position$[esp+92]
	push	eax
	call	edx
	fcomp	DWORD PTR tv164[esp+100]
	add	esp, 32					; 00000020H
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN17@Find_Neare
$LN3@Find_Neare:

; 1007 : 					{
; 1008 : 						object = o;
; 1009 : 					}
; 1010 : 				}
; 1011 : 				else
; 1012 : 				{
; 1013 : 					object = o;

	mov	edi, esi
$LN17@Find_Neare:

; 1014 : 				}
; 1015 : 			}
; 1016 : 		}
; 1017 : 		x = x->NodeNext;

	mov	ebx, DWORD PTR [ebx]
	test	ebx, ebx
	jne	$LL7@Find_Neare
	pop	esi
	pop	ebp
$LN16@Find_Neare:

; 1018 : 	}
; 1019 : 	return object;

	mov	eax, edi
	pop	edi
	pop	ebx

; 1020 : }

	add	esp, 52					; 00000034H
	ret	0
?Find_Nearest_Preset@@YAPAEUVector3@@PBD@Z ENDP		; Find_Nearest_Preset
_TEXT	ENDS
PUBLIC	?Find_Random_Preset@@YAPAEPBDHH@Z		; Find_Random_Preset
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Random_Preset@@YAPAEPBDHH@Z
_TEXT	SEGMENT
_preset$ = 8						; size = 4
_min$ = 12						; size = 4
_max$ = 16						; size = 4
?Find_Random_Preset@@YAPAEPBDHH@Z PROC			; Find_Random_Preset, COMDAT

; 1024 : 	int count = Commands->Get_Random_Int(min, max);

	mov	eax, DWORD PTR _max$[esp-4]
	mov	ecx, DWORD PTR _min$[esp-4]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	push	ebp
	push	esi
	push	edi
	push	eax
	mov	eax, DWORD PTR [edx+152]
	push	ecx
	call	eax

; 1025 : 	GameObject *object = 0;
; 1026 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	ecx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	mov	edi, DWORD PTR [ecx+4]
	mov	ebx, eax
	add	esp, 8
	xor	ebp, ebp

; 1027 : 	while (count > 0)

	test	ebx, ebx
	jle	SHORT $LN6@Find_Rando
$LL7@Find_Rando:

; 1028 : 	{
; 1029 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1030 : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	SHORT $LN15@Find_Rando
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+108]
	push	esi
	call	eax
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Find_Rando
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN15@Find_Rando

; 1031 : 		{
; 1032 : 			if (!_stricmp(Commands->Get_Preset_Name(o),preset))

	mov	ecx, DWORD PTR _preset$[esp+12]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+116]
	push	ecx
	push	esi
	call	eax
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN15@Find_Rando

; 1033 : 			{
; 1034 : 				object = o;

	mov	ebp, esi

; 1035 : 				count--;

	sub	ebx, 1
$LN15@Find_Rando:

; 1036 : 			}
; 1037 : 		}
; 1038 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]

; 1039 : 		if (!x)

	test	edi, edi
	jne	SHORT $LN1@Find_Rando

; 1040 : 		{
; 1041 : 			if (object)

	test	ebp, ebp
	je	SHORT $LN2@Find_Rando

; 1042 : 			{
; 1043 : 				x = BaseGameObjList->HeadNode;

	mov	ecx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	mov	edi, DWORD PTR [ecx+4]
$LN1@Find_Rando:

; 1027 : 	while (count > 0)

	test	ebx, ebx
	jg	SHORT $LL7@Find_Rando
$LN6@Find_Rando:
	pop	edi
	pop	esi

; 1048 : 			}
; 1049 : 		}
; 1050 : 	}
; 1051 : 	return object;

	mov	eax, ebp
	pop	ebp
	pop	ebx

; 1052 : }

	ret	0
$LN2@Find_Rando:
	pop	edi
	pop	esi
	pop	ebp

; 1044 : 			}
; 1045 : 			else
; 1046 : 			{
; 1047 : 				return object;

	xor	eax, eax
	pop	ebx

; 1052 : }

	ret	0
?Find_Random_Preset@@YAPAEPBDHH@Z ENDP			; Find_Random_Preset
_TEXT	ENDS
PUBLIC	?Send_Custom_To_Team_Buildings@@YAXHPAEHHM@Z	; Send_Custom_To_Team_Buildings
; Function compile flags: /Ogtpy
;	COMDAT ?Send_Custom_To_Team_Buildings@@YAXHPAEHHM@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
_sender$ = 12						; size = 4
_message$ = 16						; size = 4
_param$ = 20						; size = 4
_delay$ = 24						; size = 4
?Send_Custom_To_Team_Buildings@@YAXHPAEHHM@Z PROC	; Send_Custom_To_Team_Buildings, COMDAT

; 1056 : 	if (!Commands->Get_ID(sender) || !sender)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	ebp
	mov	ebp, DWORD PTR _sender$[esp]
	push	ebp
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN6@Send_Custo
	test	ebp, ebp
	je	$LN6@Send_Custo

; 1057 : 	{
; 1058 : 		return;
; 1059 : 	}
; 1060 : 	GenericSLNode *x = BuildingGameObjList->HeadNode;

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

; 1061 : 	while (x)

	test	ebx, ebx
	je	$LN22@Send_Custo
	push	esi
	push	edi
	npad	9
$LL5@Send_Custo:

; 1062 : 	{
; 1063 : 		GameObject *o = As_BuildingGameObj((GameObject *)x->NodeData);

	mov	esi, DWORD PTR [ebx+4]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN21@Send_Custo
	test	esi, esi
	je	$LN21@Send_Custo
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+64]
	mov	ecx, esi
	call	eax
	mov	esi, eax

; 1064 : 		if (o)

	test	esi, esi
	je	SHORT $LN21@Send_Custo

; 1065 : 		{
; 1066 : 			if (Get_Object_Type(o) == Team)

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Send_Custo
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN15@Send_Custo
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN17@Send_Custo
$LN15@Send_Custo:
	xor	eax, eax
$LN17@Send_Custo:
	cmp	eax, DWORD PTR _Team$[esp+12]
	jne	SHORT $LN21@Send_Custo

; 1067 : 			{
; 1068 : 				int ReceiverID = Commands->Get_ID(o);

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

; 1069 : 				int SenderID = Commands->Get_ID(sender);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edi, eax
	mov	eax, DWORD PTR [edx+108]
	push	ebp
	call	eax
	add	esp, 8

; 1070 : 				if (SenderID != ReceiverID)

	cmp	eax, edi
	je	SHORT $LN21@Send_Custo

; 1071 : 				{
; 1072 : 					Commands->Send_Custom_Event(sender,o,message,param,delay);

	fld	DWORD PTR _delay$[esp+12]
	mov	edx, DWORD PTR _message$[esp+12]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	ecx, DWORD PTR _param$[esp+16]
	fstp	DWORD PTR [esp]
	push	ecx
	mov	ecx, DWORD PTR [eax+140]
	push	edx
	push	esi
	push	ebp
	call	ecx
	add	esp, 20					; 00000014H
$LN21@Send_Custo:

; 1073 : 				}
; 1074 : 			}
; 1075 : 		}
; 1076 : 		x = x->NodeNext;

	mov	ebx, DWORD PTR [ebx]
	test	ebx, ebx
	jne	$LL5@Send_Custo
	pop	edi
	pop	esi
$LN22@Send_Custo:
	pop	ebx
$LN6@Send_Custo:
	pop	ebp

; 1077 : 	}
; 1078 : }

	ret	0
?Send_Custom_To_Team_Buildings@@YAXHPAEHHM@Z ENDP	; Send_Custom_To_Team_Buildings
_TEXT	ENDS
PUBLIC	?Send_Custom_To_Team_Preset@@YAXHPBDPAEHHM@Z	; Send_Custom_To_Team_Preset
; Function compile flags: /Ogtpy
;	COMDAT ?Send_Custom_To_Team_Preset@@YAXHPBDPAEHHM@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
_PresetName$ = 12					; size = 4
_sender$ = 16						; size = 4
_message$ = 20						; size = 4
_param$ = 24						; size = 4
_delay$ = 28						; size = 4
?Send_Custom_To_Team_Preset@@YAXHPBDPAEHHM@Z PROC	; Send_Custom_To_Team_Preset, COMDAT

; 1082 : 	if (!Commands->Get_ID(sender) || !sender)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _sender$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN6@Send_Custo@2
	test	esi, esi
	je	$LN6@Send_Custo@2

; 1083 : 	{
; 1084 : 		return;
; 1085 : 	}
; 1086 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	edx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [edx+4]

; 1087 : 	while (x)

	test	edi, edi
	je	$LN22@Send_Custo@2
	push	ebx
	mov	ebx, DWORD PTR _param$[esp+8]
	push	ebp
	mov	ebp, DWORD PTR _message$[esp+12]
	npad	1
$LL5@Send_Custo@2:

; 1088 : 	{
; 1089 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1090 : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	$LN21@Send_Custo@2
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN21@Send_Custo@2
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN21@Send_Custo@2

; 1091 : 		{
; 1092 : 			if (Get_Object_Type(o) == Team)

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Send_Custo@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN15@Send_Custo@2
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN17@Send_Custo@2
$LN15@Send_Custo@2:
	xor	eax, eax
$LN17@Send_Custo@2:
	cmp	eax, DWORD PTR _Team$[esp+12]
	jne	SHORT $LN21@Send_Custo@2

; 1093 : 			{
; 1094 : 				if (!_stricmp(Commands->Get_Preset_Name(o),PresetName))

	mov	eax, DWORD PTR _PresetName$[esp+12]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+116]
	push	eax
	push	esi
	call	edx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN21@Send_Custo@2

; 1095 : 				{
; 1096 : 					Commands->Send_Custom_Event(sender,o,message,param,delay);

	fld	DWORD PTR _delay$[esp+12]
	mov	eax, DWORD PTR _sender$[esp+12]
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+140]
	push	ebx
	push	ebp
	push	esi
	push	eax
	call	edx
	add	esp, 20					; 00000014H
$LN21@Send_Custo@2:

; 1097 : 				}
; 1098 : 			}
; 1099 : 		}
; 1100 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL5@Send_Custo@2
	pop	ebp
	pop	ebx
$LN22@Send_Custo@2:
	pop	edi
$LN6@Send_Custo@2:
	pop	esi

; 1101 : 	}
; 1102 : }

	ret	0
?Send_Custom_To_Team_Preset@@YAXHPBDPAEHHM@Z ENDP	; Send_Custom_To_Team_Preset
_TEXT	ENDS
PUBLIC	__real@00000000
PUBLIC	?Send_Custom_All_Objects_Area@@YAXHABUVector3@@MPAEH@Z ; Send_Custom_All_Objects_Area
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Send_Custom_All_Objects_Area@@YAXHABUVector3@@MPAEH@Z
_TEXT	SEGMENT
_TestPosition$55416 = -36				; size = 12
_ObjPosition$55414 = -24				; size = 12
$T59885 = -12						; size = 12
_message$ = 8						; size = 4
_Position$ = 12						; size = 4
_Distance$ = 16						; size = 4
_sender$ = 20						; size = 4
_team$ = 24						; size = 4
?Send_Custom_All_Objects_Area@@YAXHABUVector3@@MPAEH@Z PROC ; Send_Custom_All_Objects_Area, COMDAT

; 1106 : 	if (!Commands->Get_ID(sender) || !sender)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 36					; 00000024H
	push	esi
	mov	esi, DWORD PTR _sender$[esp+36]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN7@Send_Custo@3
	test	esi, esi
	je	$LN7@Send_Custo@3

; 1107 : 	{
; 1108 : 		return;
; 1109 : 	}
; 1110 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	edx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [edx+4]

; 1111 : 	while (x) 

	test	edi, edi
	je	$LN23@Send_Custo@3
	push	ebx
	mov	ebx, DWORD PTR _Position$[esp+44]
	push	ebp
	mov	ebp, DWORD PTR _team$[esp+48]
$LL6@Send_Custo@3:

; 1112 : 	{
; 1113 : 		GameObject *obj = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1114 : 		if (obj && As_ScriptableGameObj(obj))

	test	esi, esi
	je	$LN22@Send_Custo@3
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN22@Send_Custo@3
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	$LN22@Send_Custo@3

; 1115 : 		{
; 1116 : 			Vector3 ObjPosition = Commands->Get_Position(obj);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+64]
	lea	ecx, DWORD PTR $T59885[esp+52]
	push	esi
	push	ecx
	call	eax

; 1117 : 			Vector3 TestPosition = Position;
; 1118 : 			ObjPosition.Z = 0;

	fldz
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _ObjPosition$55414[esp+60], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [ebx]
	mov	DWORD PTR _ObjPosition$55414[esp+64], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR [ebx+4]
	mov	DWORD PTR _ObjPosition$55414[esp+68], eax
	fst	DWORD PTR _ObjPosition$55414[esp+68]
	mov	eax, DWORD PTR [ebx+8]
	mov	DWORD PTR _TestPosition$55416[esp+60], ecx
	mov	DWORD PTR _TestPosition$55416[esp+68], eax

; 1119 : 			TestPosition.Z = 0;

	fstp	DWORD PTR _TestPosition$55416[esp+68]

; 1120 : 			if ((Commands->Get_Distance(ObjPosition,TestPosition) <= Distance))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR _TestPosition$55416[esp+64], edx
	lea	ecx, DWORD PTR _TestPosition$55416[esp+60]
	push	ecx
	mov	ecx, DWORD PTR [eax+256]
	lea	edx, DWORD PTR _ObjPosition$55414[esp+64]
	push	edx
	call	ecx
	fcomp	DWORD PTR _Distance$[esp+64]
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $LN22@Send_Custo@3

; 1121 : 			{
; 1122 : 				if ((Get_Object_Type(obj) == team) || (team == 2))

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+108]
	push	esi
	call	eax
	add	esp, 4
	test	eax, eax
	je	SHORT $LN16@Send_Custo@3
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN16@Send_Custo@3
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN18@Send_Custo@3
$LN16@Send_Custo@3:
	xor	eax, eax
$LN18@Send_Custo@3:
	cmp	eax, ebp
	je	SHORT $LN1@Send_Custo@3
	cmp	ebp, 2
	jne	SHORT $LN22@Send_Custo@3
$LN1@Send_Custo@3:

; 1123 : 				{
; 1124 : 					Commands->Send_Custom_Event(sender,obj,message,0,0);

	fldz
	mov	edx, DWORD PTR _sender$[esp+48]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	ecx, DWORD PTR _message$[esp+52]
	fstp	DWORD PTR [esp]
	push	0
	push	ecx
	mov	ecx, DWORD PTR [eax+140]
	push	esi
	push	edx
	call	ecx
	add	esp, 20					; 00000014H
$LN22@Send_Custo@3:

; 1125 : 				}
; 1126 : 			}
; 1127 : 		}
; 1128 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL6@Send_Custo@3
	pop	ebp
	pop	ebx
$LN23@Send_Custo@3:
	pop	edi
$LN7@Send_Custo@3:
	pop	esi

; 1129 : 	}
; 1130 : }

	add	esp, 36					; 00000024H
	ret	0
?Send_Custom_All_Objects_Area@@YAXHABUVector3@@MPAEH@Z ENDP ; Send_Custom_All_Objects_Area
_TEXT	ENDS
PUBLIC	?Send_Custom_All_Objects@@YAXHPAEH@Z		; Send_Custom_All_Objects
; Function compile flags: /Ogtpy
;	COMDAT ?Send_Custom_All_Objects@@YAXHPAEH@Z
_TEXT	SEGMENT
_message$ = 8						; size = 4
_sender$ = 12						; size = 4
_team$ = 16						; size = 4
?Send_Custom_All_Objects@@YAXHPAEH@Z PROC		; Send_Custom_All_Objects, COMDAT

; 1134 : 	if (!Commands->Get_ID(sender) || !sender)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	ebx
	mov	ebx, DWORD PTR _sender$[esp]
	push	ebx
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN6@Send_Custo@4
	test	ebx, ebx
	je	$LN6@Send_Custo@4

; 1135 : 	{
; 1136 : 		return;
; 1137 : 	}
; 1138 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	edx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [edx+4]

; 1139 : 	while (x) 

	test	edi, edi
	je	$LN22@Send_Custo@4
	push	ebp
	mov	ebp, DWORD PTR _team$[esp+8]
	push	esi
	npad	5
$LL5@Send_Custo@4:

; 1140 : 	{
; 1141 : 		GameObject *obj = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1142 : 		if (obj && As_ScriptableGameObj(obj))

	test	esi, esi
	je	SHORT $LN21@Send_Custo@4
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN21@Send_Custo@4
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN21@Send_Custo@4

; 1143 : 		{
; 1144 : 			if ((Get_Object_Type(obj) == team) || (team == 2))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Send_Custo@4
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN15@Send_Custo@4
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN17@Send_Custo@4
$LN15@Send_Custo@4:
	xor	eax, eax
$LN17@Send_Custo@4:
	cmp	eax, ebp
	je	SHORT $LN1@Send_Custo@4
	cmp	ebp, 2
	jne	SHORT $LN21@Send_Custo@4
$LN1@Send_Custo@4:

; 1145 : 			{
; 1146 : 				Commands->Send_Custom_Event(sender,obj,message,0,0);

	fldz
	mov	eax, DWORD PTR _message$[esp+12]
	push	ecx
	fstp	DWORD PTR [esp]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+140]
	push	0
	push	eax
	push	esi
	push	ebx
	call	edx
	add	esp, 20					; 00000014H
$LN21@Send_Custo@4:

; 1147 : 			}
; 1148 : 		}
; 1149 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL5@Send_Custo@4
	pop	esi
	pop	ebp
$LN22@Send_Custo@4:
	pop	edi
$LN6@Send_Custo@4:
	pop	ebx

; 1150 : 	}
; 1151 : }

	ret	0
?Send_Custom_All_Objects@@YAXHPAEH@Z ENDP		; Send_Custom_All_Objects
_TEXT	ENDS
PUBLIC	?Send_Custom_Event_To_Object@@YAXPAEPBDHHM@Z	; Send_Custom_Event_To_Object
; Function compile flags: /Ogtpy
;	COMDAT ?Send_Custom_Event_To_Object@@YAXPAEPBDHHM@Z
_TEXT	SEGMENT
_sender$ = 8						; size = 4
_Preset$ = 12						; size = 4
_message$ = 16						; size = 4
_param$ = 20						; size = 4
_delay$ = 24						; size = 4
?Send_Custom_Event_To_Object@@YAXPAEPBDHHM@Z PROC	; Send_Custom_Event_To_Object, COMDAT

; 1155 : 	if (!Commands->Get_ID(sender) || !sender)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	ebx
	mov	ebx, DWORD PTR _sender$[esp]
	push	ebx
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN5@Send_Custo@5
	test	ebx, ebx
	je	$LN5@Send_Custo@5

; 1156 : 	{
; 1157 : 		return;
; 1158 : 	}
; 1159 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	edx, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [edx+4]

; 1160 : 	while (x)

	test	edi, edi
	je	SHORT $LN16@Send_Custo@5
	push	ebp
	mov	ebp, DWORD PTR _param$[esp+8]
	push	esi
$LL4@Send_Custo@5:

; 1161 : 	{
; 1162 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1163 : 		if (o && As_ScriptableGameObj(o))

	test	esi, esi
	je	SHORT $LN15@Send_Custo@5
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Send_Custo@5
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, esi
	call	eax
	test	eax, eax
	je	SHORT $LN15@Send_Custo@5

; 1164 : 		{
; 1165 : 			DefinitionClass *d = Get_Definition(o);

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

; 1166 : 			if (!_stricmp(d->Get_Name(),Preset))

	mov	ecx, DWORD PTR _Preset$[esp+16]
	mov	edx, DWORD PTR [eax]
	add	esp, 4
	push	ecx
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN15@Send_Custo@5

; 1167 : 			{
; 1168 : 				Commands->Send_Custom_Event(sender,o,message,param,delay);

	fld	DWORD PTR _delay$[esp+12]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+140]
	push	ecx
	mov	ecx, DWORD PTR _message$[esp+16]
	fstp	DWORD PTR [esp]
	push	ebp
	push	ecx
	push	esi
	push	ebx
	call	eax
	add	esp, 20					; 00000014H
$LN15@Send_Custo@5:

; 1169 : 			}
; 1170 : 		}
; 1171 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL4@Send_Custo@5
	pop	esi
	pop	ebp
$LN16@Send_Custo@5:
	pop	edi
$LN5@Send_Custo@5:
	pop	ebx

; 1172 : 	}
; 1173 : }

	ret	0
?Send_Custom_Event_To_Object@@YAXPAEPBDHHM@Z ENDP	; Send_Custom_Event_To_Object
_TEXT	ENDS
PUBLIC	?Is_Unit_In_Range@@YA_NPBDMUVector3@@H@Z	; Is_Unit_In_Range
; Function compile flags: /Ogtpy
;	COMDAT ?Is_Unit_In_Range@@YA_NPBDMUVector3@@H@Z
_TEXT	SEGMENT
_pos$55468 = -24					; size = 12
$T59946 = -12						; size = 12
_preset$ = 8						; size = 4
_range$ = 12						; size = 4
_location$ = 16						; size = 12
_team$ = 28						; size = 4
?Is_Unit_In_Range@@YA_NPBDMUVector3@@H@Z PROC		; Is_Unit_In_Range, COMDAT

; 1177 : 	GenericSLNode *x = SmartGameObjList->HeadNode;

	mov	eax, DWORD PTR ?SmartGameObjList@@3PAV?$SList@E@@A ; SmartGameObjList
	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 1178 : 	while (x)

	test	edi, edi
	je	$LN4@Is_Unit_In
	mov	ebx, DWORD PTR _team$[esp+36]
	mov	ebp, DWORD PTR _preset$[esp+36]
	npad	1
$LL5@Is_Unit_In:

; 1179 : 	{
; 1180 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1181 : 		if (o)

	test	esi, esi
	je	$LN16@Is_Unit_In

; 1182 : 		{
; 1183 : 			if ((Get_Object_Type(o) == team) && (!_stricmp(Commands->Get_Preset_Name(o),preset)))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN9@Is_Unit_In
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+60]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN9@Is_Unit_In
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN11@Is_Unit_In
$LN9@Is_Unit_In:
	xor	eax, eax
$LN11@Is_Unit_In:
	cmp	eax, ebx
	jne	SHORT $LN16@Is_Unit_In
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+116]
	push	ebp
	push	esi
	call	ecx
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN16@Is_Unit_In

; 1184 : 			{
; 1185 : 				Vector3 pos = Commands->Get_Position(o);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+64]
	lea	edx, DWORD PTR $T59946[esp+40]
	push	esi
	push	edx
	call	ecx

; 1186 : 				pos.Z = 0;

	fldz
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _pos$55468[esp+48], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _pos$55468[esp+52], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	DWORD PTR _pos$55468[esp+56], edx
	fst	DWORD PTR _pos$55468[esp+56]

; 1187 : 				location.Z = 0;
; 1188 : 				if (Commands->Get_Distance(pos,location) <= range)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR _location$[esp+52]
	lea	eax, DWORD PTR _location$[esp+44]
	push	eax
	mov	eax, DWORD PTR [edx+256]
	lea	ecx, DWORD PTR _pos$55468[esp+52]
	push	ecx
	call	eax
	fcomp	DWORD PTR _range$[esp+52]
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 65					; 00000041H
	jnp	SHORT $LN14@Is_Unit_In
$LN16@Is_Unit_In:

; 1191 : 				}
; 1192 : 			}
; 1193 : 		}
; 1194 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL5@Is_Unit_In
$LN4@Is_Unit_In:
	pop	edi
	pop	esi
	pop	ebp

; 1195 : 	}
; 1196 : 	return false;

	xor	al, al
	pop	ebx

; 1197 : }

	add	esp, 24					; 00000018H
	ret	0
$LN14@Is_Unit_In:
	pop	edi
	pop	esi
	pop	ebp

; 1189 : 				{
; 1190 : 					return true;

	mov	al, 1
	pop	ebx

; 1197 : }

	add	esp, 24					; 00000018H
	ret	0
?Is_Unit_In_Range@@YA_NPBDMUVector3@@H@Z ENDP		; Is_Unit_In_Range
_TEXT	ENDS
PUBLIC	?Get_Is_Powerup_Persistant@@YA_NPAE@Z		; Get_Is_Powerup_Persistant
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Is_Powerup_Persistant@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Is_Powerup_Persistant@@YA_NPAE@Z PROC		; Get_Is_Powerup_Persistant, COMDAT

; 1201 : 	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 $LN3@Get_Is_Pow
	test	esi, esi
	je	SHORT $LN3@Get_Is_Pow

; 1204 : 	}
; 1205 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1206 : 	if (!o2)

	test	eax, eax

; 1207 : 	{
; 1208 : 		return 0;

	je	SHORT $LN3@Get_Is_Pow

; 1209 : 	}
; 1210 : 	PowerupGameObj *o3 = o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax

; 1211 : 	if (!o3)

	test	eax, eax

; 1212 : 	{
; 1213 : 		return 0;

	je	SHORT $LN3@Get_Is_Pow

; 1214 : 	}
; 1215 : 	return ((PowerupGameObjDef *)o3->definition)->Persistant;

	mov	ecx, DWORD PTR [eax+1724]
	mov	al, BYTE PTR [ecx+209]
	pop	esi

; 1216 : }

	ret	0
$LN3@Get_Is_Pow:

; 1202 : 	{
; 1203 : 		return 0;

	xor	al, al
	pop	esi

; 1216 : }

	ret	0
?Get_Is_Powerup_Persistant@@YA_NPAE@Z ENDP		; Get_Is_Powerup_Persistant
_TEXT	ENDS
PUBLIC	?Set_Is_Powerup_Persistant@@YAXPAE_N@Z		; Set_Is_Powerup_Persistant
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Is_Powerup_Persistant@@YAXPAE_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_Persist$ = 12						; size = 1
?Set_Is_Powerup_Persistant@@YAXPAE_N@Z PROC		; Set_Is_Powerup_Persistant, COMDAT

; 1220 : 	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 $LN3@Set_Is_Pow
	test	esi, esi
	je	SHORT $LN3@Set_Is_Pow

; 1221 : 	{
; 1222 : 		return;
; 1223 : 	}
; 1224 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1225 : 	if (!o2)

	test	eax, eax
	je	SHORT $LN3@Set_Is_Pow

; 1226 : 	{
; 1227 : 		return;
; 1228 : 	}
; 1229 : 	PowerupGameObj *o3 = o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax

; 1230 : 	if (!o3)

	test	eax, eax
	je	SHORT $LN3@Set_Is_Pow

; 1231 : 	{
; 1232 : 		return;
; 1233 : 	}
; 1234 : 	((PowerupGameObjDef *)o3->definition)->Persistant = Persist;

	mov	ecx, DWORD PTR [eax+1724]
	mov	dl, BYTE PTR _Persist$[esp]
	mov	BYTE PTR [ecx+209], dl
$LN3@Set_Is_Pow:
	pop	esi

; 1235 : }

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

; 1239 : 	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 $LN3@Get_Poweru
	test	esi, esi
	je	SHORT $LN3@Get_Poweru

; 1242 : 	}
; 1243 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1244 : 	if (!o2)

	test	eax, eax

; 1245 : 	{
; 1246 : 		return 0;

	je	SHORT $LN3@Get_Poweru

; 1247 : 	}
; 1248 : 	PowerupGameObj *o3 = o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax

; 1249 : 	if (!o3)

	test	eax, eax

; 1250 : 	{
; 1251 : 		return 0;

	je	SHORT $LN3@Get_Poweru

; 1252 : 	}
; 1253 : 	return ((PowerupGameObjDef *)o3->definition)->AlwaysAllowGrant;

	mov	ecx, DWORD PTR [eax+1724]
	mov	al, BYTE PTR [ecx+216]
	pop	esi

; 1254 : }

	ret	0
$LN3@Get_Poweru:

; 1240 : 	{
; 1241 : 		return 0;

	xor	al, al
	pop	esi

; 1254 : }

	ret	0
?Get_Powerup_Always_Allow_Grant@@YA_NPAE@Z ENDP		; Get_Powerup_Always_Allow_Grant
_TEXT	ENDS
PUBLIC	?Set_Powerup_Always_Allow_Grant@@YAXPAE_N@Z	; Set_Powerup_Always_Allow_Grant
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Powerup_Always_Allow_Grant@@YAXPAE_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_Grant$ = 12						; size = 1
?Set_Powerup_Always_Allow_Grant@@YAXPAE_N@Z PROC	; Set_Powerup_Always_Allow_Grant, COMDAT

; 1258 : 	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 $LN3@Set_Poweru
	test	esi, esi
	je	SHORT $LN3@Set_Poweru

; 1259 : 	{
; 1260 : 		return;
; 1261 : 	}
; 1262 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1263 : 	if (!o2)

	test	eax, eax
	je	SHORT $LN3@Set_Poweru

; 1264 : 	{
; 1265 : 		return;
; 1266 : 	}
; 1267 : 	PowerupGameObj *o3 = o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax

; 1268 : 	if (!o3)

	test	eax, eax
	je	SHORT $LN3@Set_Poweru

; 1269 : 	{
; 1270 : 		return;
; 1271 : 	}
; 1272 : 	((PowerupGameObjDef *)o3->definition)->AlwaysAllowGrant = Grant;

	mov	ecx, DWORD PTR [eax+1724]
	mov	dl, BYTE PTR _Grant$[esp]
	mov	BYTE PTR [ecx+216], dl
$LN3@Set_Poweru:
	pop	esi

; 1273 : }

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

; 1277 : 	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 $LN3@Get_Poweru@2
	test	esi, esi
	je	SHORT $LN3@Get_Poweru@2

; 1280 : 	}
; 1281 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1282 : 	if (!o2)

	test	eax, eax

; 1283 : 	{
; 1284 : 		return 0;

	je	SHORT $LN3@Get_Poweru@2

; 1285 : 	}
; 1286 : 	PowerupGameObj *o3 = o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax

; 1287 : 	if (!o3)

	test	eax, eax

; 1288 : 	{
; 1289 : 		return 0;

	je	SHORT $LN3@Get_Poweru@2

; 1290 : 	}
; 1291 : 	return ((PowerupGameObjDef *)o3->definition)->GrantSoundID;

	mov	ecx, DWORD PTR [eax+1724]
	mov	eax, DWORD PTR [ecx+220]
	pop	esi

; 1292 : }

	ret	0
$LN3@Get_Poweru@2:

; 1278 : 	{
; 1279 : 		return 0;

	xor	eax, eax
	pop	esi

; 1292 : }

	ret	0
?Get_Powerup_Grant_Sound@@YAHPAE@Z ENDP			; Get_Powerup_Grant_Sound
_TEXT	ENDS
PUBLIC	?Set_Powerup_Grant_Sound@@YAXPAEH@Z		; Set_Powerup_Grant_Sound
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Powerup_Grant_Sound@@YAXPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_SoundID$ = 12						; size = 4
?Set_Powerup_Grant_Sound@@YAXPAEH@Z PROC		; Set_Powerup_Grant_Sound, COMDAT

; 1296 : 	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 $LN3@Set_Poweru@2
	test	esi, esi
	je	SHORT $LN3@Set_Poweru@2

; 1297 : 	{
; 1298 : 		return;
; 1299 : 	}
; 1300 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1301 : 	if (!o2)

	test	eax, eax
	je	SHORT $LN3@Set_Poweru@2

; 1302 : 	{
; 1303 : 		return;
; 1304 : 	}
; 1305 : 	PowerupGameObj *o3 = o2->As_PowerupGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+136]
	call	eax

; 1306 : 	if (!o3)

	test	eax, eax
	je	SHORT $LN3@Set_Poweru@2

; 1307 : 	{
; 1308 : 		return;
; 1309 : 	}
; 1310 : 	((PowerupGameObjDef *)o3->definition)->GrantSoundID = SoundID;

	mov	ecx, DWORD PTR [eax+1724]
	mov	edx, DWORD PTR _SoundID$[esp]
	mov	DWORD PTR [ecx+220], edx
$LN3@Set_Poweru@2:
	pop	esi

; 1311 : }

	ret	0
?Set_Powerup_Grant_Sound@@YAXPAEH@Z ENDP		; Set_Powerup_Grant_Sound
_TEXT	ENDS
PUBLIC	?Grant_Powerup@@YAXPAEPBD@Z			; Grant_Powerup
EXTRN	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z:PROC ; Find_Named_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Grant_Powerup@@YAXPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_Preset_Name$ = 12					; size = 4
?Grant_Powerup@@YAXPAEPBD@Z PROC			; Grant_Powerup, COMDAT

; 1315 : 	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@Grant_Powe
	test	esi, esi
	je	SHORT $LN2@Grant_Powe

; 1316 : 	{
; 1317 : 		return;
; 1318 : 	}
; 1319 : 	GameObject *o = As_SmartGameObj(obj);

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

; 1320 : 	if (o)

	test	esi, esi
	je	SHORT $LN2@Grant_Powe

; 1321 : 	{
; 1322 : 		PowerupGameObjDef *def = (PowerupGameObjDef *)Find_Named_Definition(Preset_Name);

	mov	ecx, DWORD PTR _Preset_Name$[esp]
	push	ecx
	call	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition
	add	esp, 4

; 1323 : 		def->Grant(o,0,true);

	push	1
	push	0
	push	esi
	mov	ecx, eax
	call	?Grant@PowerupGameObjDef@@QAEXPAEH_N@Z	; PowerupGameObjDef::Grant
$LN2@Grant_Powe:
	pop	esi

; 1324 : 	}
; 1325 : }

	ret	0
?Grant_Powerup@@YAXPAEPBD@Z ENDP			; Grant_Powerup
_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
$T59988 = -12						; size = 12
_this$ = 8						; size = 4
$T59994 = 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 $T59994[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T59988[esp+20]
	mov	DWORD PTR $T59994[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T59988[esp+20]
	push	ecx
	mov	DWORD PTR $T59988[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
$T60000 = -12						; size = 12
$T60005 = 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 $T60005[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T60000[esp+20]
	mov	DWORD PTR $T60005[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T60000[esp+20]
	push	ecx
	mov	DWORD PTR $T60000[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate@2:
$LN8@allocate@2:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ENDP	; std::_DebugHeapAllocator<char>::allocate
_TEXT	ENDS
PUBLIC	?Count@?$SimpleDynVecClass@PAE@@QAEHXZ		; SimpleDynVecClass<unsigned char *>::Count
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_vector.h
;	COMDAT ?Count@?$SimpleDynVecClass@PAE@@QAEHXZ
_TEXT	SEGMENT
?Count@?$SimpleDynVecClass@PAE@@QAEHXZ PROC		; SimpleDynVecClass<unsigned char *>::Count, COMDAT
; _this$ = ecx

; 268  : 		return ActiveCount;

	mov	eax, DWORD PTR [ecx+12]

; 269  : 	}

	ret	0
?Count@?$SimpleDynVecClass@PAE@@QAEHXZ ENDP		; SimpleDynVecClass<unsigned char *>::Count
_TEXT	ENDS
PUBLIC	?Add@?$SimpleDynVecClass@PAE@@QAEHAAPAE@Z	; SimpleDynVecClass<unsigned char *>::Add
; Function compile flags: /Ogtpy
;	COMDAT ?Add@?$SimpleDynVecClass@PAE@@QAEHAAPAE@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
?Add@?$SimpleDynVecClass@PAE@@QAEHAAPAE@Z PROC		; SimpleDynVecClass<unsigned char *>::Add, COMDAT
; _this$ = ecx

; 291  : 	{

	push	esi
	mov	esi, ecx

; 292  : 		for (int i = 0;i < VectorMax;i++)

	mov	edx, DWORD PTR [esi+8]
	xor	eax, eax
	test	edx, edx
	push	edi
	jle	SHORT $LN2@Add
	mov	edi, DWORD PTR [esi+4]
	mov	ecx, edi
$LL4@Add:

; 293  : 		{
; 294  : 			if (!Vector[i])

	cmp	DWORD PTR [ecx], 0
	je	SHORT $LN8@Add
	add	eax, 1
	add	ecx, 4
	cmp	eax, edx
	jl	SHORT $LL4@Add
$LN2@Add:

; 297  : 				return i;
; 298  : 			}
; 299  : 		}
; 300  : 		Resize(VectorMax+1);

	mov	eax, DWORD PTR [esi]
	add	edx, 1
	push	edx
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, esi
	call	edx

; 301  : 		Vector[VectorMax-1] = data;

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

; 302  : 		ActiveCount++;
; 303  : 		return VectorMax-1;

	mov	eax, DWORD PTR [esi+8]
	add	DWORD PTR [esi+12], 1
	pop	edi
	sub	eax, 1
	pop	esi

; 304  : 	}

	ret	4
$LN8@Add:

; 295  : 			{
; 296  : 				Vector[i] = data;

	mov	ecx, DWORD PTR _data$[esp+4]
	mov	edx, DWORD PTR [ecx]
	mov	DWORD PTR [edi+eax*4], edx
	pop	edi
	pop	esi

; 304  : 	}

	ret	4
?Add@?$SimpleDynVecClass@PAE@@QAEHAAPAE@Z ENDP		; SimpleDynVecClass<unsigned char *>::Add
_TEXT	ENDS
PUBLIC	??A?$SimpleVecClass@PAE@@QAEAAPAEH@Z		; SimpleVecClass<unsigned char *>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$SimpleVecClass@PAE@@QAEAAPAEH@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
??A?$SimpleVecClass@PAE@@QAEAAPAEH@Z PROC		; SimpleVecClass<unsigned char *>::operator[], COMDAT
; _this$ = ecx

; 185  : 		return Vector[index];

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

; 186  : 	}

	ret	4
??A?$SimpleVecClass@PAE@@QAEAAPAEH@Z ENDP		; SimpleVecClass<unsigned char *>::operator[]
_TEXT	ENDS
PUBLIC	??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@ ; `string'
PUBLIC	??_C@_0DB@MPKFPOBN@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ ; `string'
PUBLIC	??_7?$SimpleVecClass@PAE@@6B@			; SimpleVecClass<unsigned char *>::`vftable'
PUBLIC	??1?$SimpleVecClass@PAE@@UAE@XZ			; SimpleVecClass<unsigned char *>::~SimpleVecClass<unsigned char *>
PUBLIC	??_R4?$SimpleVecClass@PAE@@6B@			; SimpleVecClass<unsigned char *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$SimpleVecClass@PAE@@@8		; SimpleVecClass<unsigned char *> `RTTI Type Descriptor'
PUBLIC	??_R3?$SimpleVecClass@PAE@@8			; SimpleVecClass<unsigned char *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$SimpleVecClass@PAE@@8			; SimpleVecClass<unsigned char *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$SimpleVecClass@PAE@@8		; SimpleVecClass<unsigned char *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Uninitialised_Grow@?$SimpleVecClass@PAE@@UAE_NH@Z ; SimpleVecClass<unsigned char *>::Uninitialised_Grow
PUBLIC	?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z		; SimpleVecClass<unsigned char *>::Resize
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
EXTRN	??_E?$SimpleVecClass@PAE@@UAEPAXI@Z:PROC	; SimpleVecClass<unsigned char *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$SimpleVecClass@PAE@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$SimpleVecClass@PAE@@8 DD FLAT:??_R0?AV?$SimpleVecClass@PAE@@@8 ; SimpleVecClass<unsigned char *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$SimpleVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R2?$SimpleVecClass@PAE@@8
rdata$r	SEGMENT
??_R2?$SimpleVecClass@PAE@@8 DD FLAT:??_R1A@?0A@EA@?$SimpleVecClass@PAE@@8 ; SimpleVecClass<unsigned char *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$SimpleVecClass@PAE@@8
rdata$r	SEGMENT
??_R3?$SimpleVecClass@PAE@@8 DD 00H			; SimpleVecClass<unsigned char *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$SimpleVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$SimpleVecClass@PAE@@@8
_DATA	SEGMENT
??_R0?AV?$SimpleVecClass@PAE@@@8 DD FLAT:??_7type_info@@6B@ ; SimpleVecClass<unsigned char *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$SimpleVecClass@PAE@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$SimpleVecClass@PAE@@6B@
rdata$r	SEGMENT
??_R4?$SimpleVecClass@PAE@@6B@ DD 00H			; SimpleVecClass<unsigned char *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$SimpleVecClass@PAE@@@8
	DD	FLAT:??_R3?$SimpleVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
CONST	SEGMENT
??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@ DB 'd:\source c'
	DB	'ode\stgm\engine_vector.h', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0DB@MPKFPOBN@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
CONST	SEGMENT
??_C@_0DB@MPKFPOBN@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ DB 'Simp'
	DB	'leVecClass<unsigned char *>::~SimpleVecClass', 00H ; `string'
CONST	ENDS
;	COMDAT ??_7?$SimpleVecClass@PAE@@6B@
CONST	SEGMENT
??_7?$SimpleVecClass@PAE@@6B@ DD FLAT:??_R4?$SimpleVecClass@PAE@@6B@ ; SimpleVecClass<unsigned char *>::`vftable'
	DD	FLAT:?Uninitialised_Grow@?$SimpleVecClass@PAE@@UAE_NH@Z
	DD	FLAT:??_E?$SimpleVecClass@PAE@@UAEPAXI@Z
	DD	FLAT:?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1?$SimpleVecClass@PAE@@UAE@XZ
_TEXT	SEGMENT
??1?$SimpleVecClass@PAE@@UAE@XZ PROC			; SimpleVecClass<unsigned char *>::~SimpleVecClass<unsigned char *>, COMDAT
; _this$ = ecx

; 188  : 	{

	push	esi
	mov	esi, ecx

; 189  : 		if (Vector)

	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleVecClass@PAE@@6B@
	je	SHORT $LN1@SimpleVecC

; 190  : 		{
; 191  : 			delete[] Vector;

	push	OFFSET ??_C@_0DB@MPKFPOBN@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	191					; 000000bfH
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 192  : 			Vector = 0;

	mov	DWORD PTR [esi+4], 0

; 193  : 			VectorMax = 0;

	mov	DWORD PTR [esi+8], 0
$LN1@SimpleVecC:
	pop	esi

; 194  : 		}
; 195  : 	}

	ret	0
??1?$SimpleVecClass@PAE@@UAE@XZ ENDP			; SimpleVecClass<unsigned char *>::~SimpleVecClass<unsigned char *>
_TEXT	ENDS
PUBLIC	??_C@_0CI@HICDCLMN@?$FLI?$FN?5SimpleVecClass?5allocate?5from@ ; `string'
PUBLIC	__$ReturnAddr$
PUBLIC	??_C@_0DE@EJFNJPJJ@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ ; `string'
EXTRN	?log@@YAXPBDZZ:PROC				; log
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
;	COMDAT ??_C@_0CI@HICDCLMN@?$FLI?$FN?5SimpleVecClass?5allocate?5from@
CONST	SEGMENT
??_C@_0CI@HICDCLMN@?$FLI?$FN?5SimpleVecClass?5allocate?5from@ DB '[I] Sim'
	DB	'pleVecClass allocate from 0x%08X', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0DE@EJFNJPJJ@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
CONST	SEGMENT
??_C@_0DE@EJFNJPJJ@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ DB 'Simp'
	DB	'leVecClass<unsigned char *>::Uninitialised_Grow', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Uninitialised_Grow@?$SimpleVecClass@PAE@@UAE_NH@Z
_TEXT	SEGMENT
__$ReturnAddr$ = 4					; size = 4
_newsize$ = 8						; size = 4
?Uninitialised_Grow@?$SimpleVecClass@PAE@@UAE_NH@Z PROC	; SimpleVecClass<unsigned char *>::Uninitialised_Grow, COMDAT
; _this$ = ecx

; 155  : 	{

	push	esi
	push	edi

; 156  : 		if ((newsize > 0) && (newsize > VectorMax))

	mov	edi, DWORD PTR _newsize$[esp+4]
	test	edi, edi
	mov	esi, ecx
	jle	SHORT $LN10@Uninitiali
	cmp	edi, DWORD PTR [esi+8]
	jle	SHORT $LN10@Uninitiali

; 157  : 		{
; 158  : 			if (Vector)

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

; 159  : 			{
; 160  : 				delete[] Vector;

	push	OFFSET ??_C@_0DE@EJFNJPJJ@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	160					; 000000a0H
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
$LN6@Uninitiali:

; 161  : 			}
; 162  : 			Vector = new T[newsize];

	push	OFFSET ??_C@_0DE@EJFNJPJJ@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	162					; 000000a2H
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, edi
	mov	edx, 4
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	DWORD PTR [esi+4], eax

; 163  : #ifdef _MEMTRACK
; 164  : 			log("[I] SimpleVecClass allocate from 0x%08X",_ReturnAddress());

	mov	eax, DWORD PTR __$ReturnAddr$[esp+20]
	push	eax
	push	OFFSET ??_C@_0CI@HICDCLMN@?$FLI?$FN?5SimpleVecClass?5allocate?5from@
	call	?log@@YAXPBDZZ				; log
	add	esp, 24					; 00000018H

; 165  : #endif
; 166  : 			VectorMax = newsize;

	mov	DWORD PTR [esi+8], edi
$LN10@Uninitiali:
	pop	edi

; 167  : 		}
; 168  : 		return true;

	mov	al, 1
	pop	esi

; 169  : 	}

	ret	4
?Uninitialised_Grow@?$SimpleVecClass@PAE@@UAE_NH@Z ENDP	; SimpleVecClass<unsigned char *>::Uninitialised_Grow
_TEXT	ENDS
PUBLIC	__$ReturnAddr$
PUBLIC	??_C@_0CI@KCMMDBK@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ ; `string'
EXTRN	_memcpy:PROC
;	COMDAT ??_C@_0CI@KCMMDBK@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
CONST	SEGMENT
??_C@_0CI@KCMMDBK@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ DB 'Simpl'
	DB	'eVecClass<unsigned char *>::Resize', 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z
_TEXT	SEGMENT
__$ReturnAddr$ = 4					; size = 4
_newsize$ = 8						; size = 4
?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z PROC		; SimpleVecClass<unsigned char *>::Resize, COMDAT
; _this$ = ecx

; 197  : 	{

	push	esi
	push	edi

; 198  : 		T *vec;
; 199  : 		if (VectorMax == newsize)

	mov	edi, DWORD PTR _newsize$[esp+4]
	mov	esi, ecx
	cmp	DWORD PTR [esi+8], edi

; 200  : 		{
; 201  : 			return true;

	je	$LN1@Resize

; 202  : 		}
; 203  : 		if (newsize > 0)

	test	edi, edi
	jle	$LN5@Resize
	push	ebx

; 204  : 		{
; 205  : 			vec = new T[newsize];

	push	OFFSET ??_C@_0CI@KCMMDBK@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	205					; 000000cdH
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, edi
	mov	edx, 4
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 206  : #ifdef _MEMTRACK
; 207  : 			log("[I] SimpleVecClass allocate from 0x%08X",_ReturnAddress());

	mov	eax, DWORD PTR __$ReturnAddr$[esp+24]
	push	eax
	push	OFFSET ??_C@_0CI@HICDCLMN@?$FLI?$FN?5SimpleVecClass?5allocate?5from@
	call	?log@@YAXPBDZZ				; log

; 208  : #endif
; 209  : 			if (Vector)

	mov	eax, DWORD PTR [esi+4]
	add	esp, 24					; 00000018H
	test	eax, eax
	je	SHORT $LN4@Resize

; 210  : 			{
; 211  : 				int count = VectorMax;

	mov	ecx, DWORD PTR [esi+8]

; 212  : 				if (newsize < count)

	cmp	edi, ecx
	jge	SHORT $LN3@Resize

; 213  : 				{
; 214  : 					count = newsize;

	mov	ecx, edi
$LN3@Resize:

; 215  : 				}
; 216  : 				memcpy(vec,Vector,count*sizeof(T));

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

; 217  : 				delete[] Vector;

	push	OFFSET ??_C@_0CI@KCMMDBK@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	217					; 000000d9H
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [esi+4]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH

; 218  : 				Vector = 0;

	mov	DWORD PTR [esi+4], 0
$LN4@Resize:

; 219  : 			}
; 220  : 			Vector = vec;

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

; 221  : 			VectorMax = newsize;

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

; 230  : 			}
; 231  : 		}
; 232  : 		return true;

	mov	al, 1
	pop	esi

; 233  : 	}

	ret	4
$LN5@Resize:

; 222  : 		}
; 223  : 		else
; 224  : 		{
; 225  : 			VectorMax = 0;
; 226  : 			if (Vector)

	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi+8], 0
	je	SHORT $LN1@Resize

; 227  : 			{
; 228  : 				delete[] Vector;

	push	OFFSET ??_C@_0CI@KCMMDBK@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	228					; 000000e4H
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 229  : 				Vector = 0;

	mov	DWORD PTR [esi+4], 0
$LN1@Resize:
	pop	edi

; 230  : 			}
; 231  : 		}
; 232  : 		return true;

	mov	al, 1
	pop	esi

; 233  : 	}

	ret	4
?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z ENDP		; SimpleVecClass<unsigned char *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$SimpleVecClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$SimpleVecClass@PAE@@UAEPAXI@Z PROC		; SimpleVecClass<unsigned char *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleVecClass@PAE@@6B@
	je	SHORT $LN4@scalar@2
	push	OFFSET ??_C@_0DB@MPKFPOBN@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	191					; 000000bfH
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi+8], 0
$LN4@scalar@2:
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN9@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN9@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$SimpleVecClass@PAE@@UAEPAXI@Z ENDP		; SimpleVecClass<unsigned char *>::`scalar deleting destructor'
_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?$SimpleVecClass@PAE@@QAE@I@Z		; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_vector.h
;	COMDAT ??0?$SimpleVecClass@PAE@@QAE@I@Z
_TEXT	SEGMENT
_size$ = 8						; size = 4
??0?$SimpleVecClass@PAE@@QAE@I@Z PROC			; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>, COMDAT
; _this$ = ecx

; 146  : 	{
; 147  : 		Vector = 0;
; 148  : 		VectorMax = 0;
; 149  : 		if (size > 0)

	mov	eax, DWORD PTR _size$[esp-4]
	push	esi
	mov	esi, ecx
	xor	ecx, ecx
	cmp	eax, ecx
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleVecClass@PAE@@6B@
	mov	DWORD PTR [esi+4], ecx
	mov	DWORD PTR [esi+8], ecx
	jbe	SHORT $LN4@SimpleVecC@2

; 150  : 		{
; 151  : 			Resize(size);

	push	eax
	mov	ecx, esi
	call	?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z	; SimpleVecClass<unsigned char *>::Resize
$LN4@SimpleVecC@2:

; 152  : 		}
; 153  : 	}

	mov	eax, esi
	pop	esi
	ret	4
??0?$SimpleVecClass@PAE@@QAE@I@Z ENDP			; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>
_TEXT	ENDS
PUBLIC	__$ReturnAddr$
PUBLIC	??_C@_0DA@HGBACNM@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ ; `string'
PUBLIC	??0?$SimpleVecClass@PAE@@QAE@ABV0@@Z		; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>
;	COMDAT ??_C@_0DA@HGBACNM@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
CONST	SEGMENT
??_C@_0DA@HGBACNM@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@ DB 'Simpl'
	DB	'eVecClass<unsigned char *>::SimpleVecClass', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$SimpleVecClass@PAE@@QAE@ABV0@@Z
_TEXT	SEGMENT
__$ReturnAddr$ = 4					; size = 4
_cl$ = 8						; size = 4
??0?$SimpleVecClass@PAE@@QAE@ABV0@@Z PROC		; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>, COMDAT
; _this$ = ecx

; 170  : 	SimpleVecClass(const SimpleVecClass<T> &cl)

	push	esi
	push	edi

; 171  : 	{
; 172  : 		VectorMax = cl.VectorMax;

	mov	edi, DWORD PTR _cl$[esp+4]
	mov	esi, ecx

; 173  : 		Vector = new T[VectorMax];

	push	OFFSET ??_C@_0DA@HGBACNM@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleVecClass@PAE@@6B@
	mov	eax, DWORD PTR [edi+8]
	push	173					; 000000adH
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	mov	DWORD PTR [esi+8], eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+8]
	xor	ecx, ecx
	mov	edx, 4
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	DWORD PTR [esi+4], eax

; 174  : #ifdef _MEMTRACK
; 175  : 		log("[I] SimpleVecClass allocate from 0x%08X",_ReturnAddress());

	mov	eax, DWORD PTR __$ReturnAddr$[esp+20]
	push	eax
	push	OFFSET ??_C@_0CI@HICDCLMN@?$FLI?$FN?5SimpleVecClass?5allocate?5from@
	call	?log@@YAXPBDZZ				; log

; 176  : #endif
; 177  : 		memcpy(Vector,cl.Vector,VectorMax*sizeof(T));

	mov	ecx, DWORD PTR [esi+8]
	mov	edx, DWORD PTR [edi+4]
	mov	eax, DWORD PTR [esi+4]
	add	ecx, ecx
	add	ecx, ecx
	push	ecx
	push	edx
	push	eax
	call	_memcpy
	add	esp, 36					; 00000024H
	pop	edi

; 178  : 	}

	mov	eax, esi
	pop	esi
	ret	4
??0?$SimpleVecClass@PAE@@QAE@ABV0@@Z ENDP		; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@ABV01@@Z		; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??0?$allocator@D@std@@QAE@ABV01@@Z PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

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

; 213  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 215  : 	{
; 216  : 		return 0;
; 217  : 	}
; 218  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 219  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 220  : 	{
; 221  : 		return 0;

	je	SHORT $LN2@As_PowerPl

; 222  : 	}
; 223  : #ifdef WIN32
; 224  : 	_asm {
; 225  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 226  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 227  : 		mov eax,[ebx+0x70]

	mov	eax, DWORD PTR [ebx+112]

; 228  : 		call eax

	call	eax

; 229  : 	}
; 230  : #elif defined RH8
; 231  : 	char *c = (char *)*(unsigned int *)obj;
; 232  : 	c += 0x94;
; 233  : 	ago *t = (ago *)c;
; 234  : 	ago agox = *t;
; 235  : 	return agox(obj);
; 236  : #else
; 237  : 	GameObject *o = obj + 4;
; 238  : 	char *c = (char *)*(unsigned int *)o;
; 239  : 	c += 0x78;
; 240  : 	ago *t = (ago *)c;
; 241  : 	ago agox = *t;
; 242  : 	return agox(obj);
; 243  : #endif
; 244  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_PowerPl:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_PowerPlantGameObj@@YAPAEPAE@Z ENDP			; As_PowerPlantGameObj
_TEXT	ENDS
PUBLIC	?As_SoldierFactoryGameObj@@YAPAEPAE@Z		; As_SoldierFactoryGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_SoldierFactoryGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_SoldierFactoryGameObj@@YAPAEPAE@Z PROC		; As_SoldierFactoryGameObj, COMDAT

; 247  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 249  : 	{
; 250  : 		return 0;
; 251  : 	}
; 252  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 253  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 254  : 	{
; 255  : 		return 0;

	je	SHORT $LN2@As_Soldier@2

; 256  : 	}
; 257  : #ifdef WIN32
; 258  : 	_asm {
; 259  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 260  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 261  : 		mov eax,[ebx+0x74]

	mov	eax, DWORD PTR [ebx+116]

; 262  : 		call eax

	call	eax

; 263  : 	}
; 264  : #elif defined RH8
; 265  : 	char *c = (char *)*(unsigned int *)obj;
; 266  : 	c += 0x98;
; 267  : 	ago *t = (ago *)c;
; 268  : 	ago agox = *t;
; 269  : 	return agox(obj);
; 270  : #else
; 271  : 	GameObject *o = obj + 4;
; 272  : 	char *c = (char *)*(unsigned int *)o;
; 273  : 	c += 0x7C;
; 274  : 	ago *t = (ago *)c;
; 275  : 	ago agox = *t;
; 276  : 	return agox(obj);
; 277  : #endif
; 278  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_Soldier@2:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_SoldierFactoryGameObj@@YAPAEPAE@Z ENDP		; As_SoldierFactoryGameObj
_TEXT	ENDS
PUBLIC	?As_VehicleFactoryGameObj@@YAPAEPAE@Z		; As_VehicleFactoryGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_VehicleFactoryGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_VehicleFactoryGameObj@@YAPAEPAE@Z PROC		; As_VehicleFactoryGameObj, COMDAT

; 281  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 283  : 	{
; 284  : 		return 0;
; 285  : 	}
; 286  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 287  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 288  : 	{
; 289  : 		return 0;

	je	SHORT $LN2@As_Vehicle@2

; 290  : 	}
; 291  : #ifdef WIN32
; 292  : 	_asm {
; 293  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 294  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 295  : 		mov eax,[ebx+0x78]

	mov	eax, DWORD PTR [ebx+120]

; 296  : 		call eax

	call	eax

; 297  : 	}
; 298  : #elif defined RH8
; 299  : 	char *c = (char *)*(unsigned int *)obj;
; 300  : 	c += 0x9C;
; 301  : 	ago *t = (ago *)c;
; 302  : 	ago agox = *t;
; 303  : 	return agox(obj);
; 304  : #else
; 305  : 	GameObject *o = obj + 4;
; 306  : 	char *c = (char *)*(unsigned int *)o;
; 307  : 	c += 0x80;
; 308  : 	ago *t = (ago *)c;
; 309  : 	ago agox = *t;
; 310  : 	return agox(obj);
; 311  : #endif
; 312  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_Vehicle@2:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_VehicleFactoryGameObj@@YAPAEPAE@Z ENDP		; As_VehicleFactoryGameObj
_TEXT	ENDS
PUBLIC	?As_AirstripGameObj@@YAPAEPAE@Z			; As_AirstripGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_AirstripGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_AirstripGameObj@@YAPAEPAE@Z PROC			; As_AirstripGameObj, COMDAT

; 315  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 317  : 	{
; 318  : 		return 0;
; 319  : 	}
; 320  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 321  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 322  : 	{
; 323  : 		return 0;

	je	SHORT $LN2@As_Airstri

; 324  : 	}
; 325  : #ifdef WIN32
; 326  : 	_asm {
; 327  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 328  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 329  : 		mov eax,[ebx+0x7C]

	mov	eax, DWORD PTR [ebx+124]

; 330  : 		call eax

	call	eax

; 331  : 	}
; 332  : #elif defined RH8
; 333  : 	char *c = (char *)*(unsigned int *)obj;
; 334  : 	c += 0xA0;
; 335  : 	ago *t = (ago *)c;
; 336  : 	ago agox = *t;
; 337  : 	return agox(obj);
; 338  : #else
; 339  : 	GameObject *o = obj + 4;
; 340  : 	char *c = (char *)*(unsigned int *)o;
; 341  : 	c += 0x84;
; 342  : 	ago *t = (ago *)c;
; 343  : 	ago agox = *t;
; 344  : 	return agox(obj);
; 345  : #endif
; 346  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_Airstri:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_AirstripGameObj@@YAPAEPAE@Z ENDP			; As_AirstripGameObj
_TEXT	ENDS
PUBLIC	?As_WarFactoryGameObj@@YAPAEPAE@Z		; As_WarFactoryGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_WarFactoryGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_WarFactoryGameObj@@YAPAEPAE@Z PROC			; As_WarFactoryGameObj, COMDAT

; 349  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 351  : 	{
; 352  : 		return 0;
; 353  : 	}
; 354  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 355  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 356  : 	{
; 357  : 		return 0;

	je	SHORT $LN2@As_WarFact

; 358  : 	}
; 359  : #ifdef WIN32
; 360  : 	_asm {
; 361  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 362  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 363  : 		mov eax,[ebx+0x80]

	mov	eax, DWORD PTR [ebx+128]

; 364  : 		call eax

	call	eax

; 365  : 	}
; 366  : #elif defined RH8
; 367  : 	char *c = (char *)*(unsigned int *)obj;
; 368  : 	c += 0xA4;
; 369  : 	ago *t = (ago *)c;
; 370  : 	ago agox = *t;
; 371  : 	return agox(obj);
; 372  : #else
; 373  : 	GameObject *o = obj + 4;
; 374  : 	char *c = (char *)*(unsigned int *)o;
; 375  : 	c += 0x88;
; 376  : 	ago *t = (ago *)c;
; 377  : 	ago agox = *t;
; 378  : 	return agox(obj);
; 379  : #endif
; 380  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_WarFact:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_WarFactoryGameObj@@YAPAEPAE@Z ENDP			; As_WarFactoryGameObj
_TEXT	ENDS
PUBLIC	?As_RefineryGameObj@@YAPAEPAE@Z			; As_RefineryGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_RefineryGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_RefineryGameObj@@YAPAEPAE@Z PROC			; As_RefineryGameObj, COMDAT

; 383  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 385  : 	{
; 386  : 		return 0;
; 387  : 	}
; 388  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 389  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 390  : 	{
; 391  : 		return 0;

	je	SHORT $LN2@As_Refiner

; 392  : 	}
; 393  : #ifdef WIN32
; 394  : 	_asm {
; 395  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 396  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 397  : 		mov eax,[ebx+0x84]

	mov	eax, DWORD PTR [ebx+132]

; 398  : 		call eax

	call	eax

; 399  : 	}
; 400  : #elif defined RH8
; 401  : 	char *c = (char *)*(unsigned int *)obj;
; 402  : 	c += 0xA8;
; 403  : 	ago *t = (ago *)c;
; 404  : 	ago agox = *t;
; 405  : 	return agox(obj);
; 406  : #else
; 407  : 	GameObject *o = obj + 4;
; 408  : 	char *c = (char *)*(unsigned int *)o;
; 409  : 	c += 0x8C;
; 410  : 	ago *t = (ago *)c;
; 411  : 	ago agox = *t;
; 412  : 	return agox(obj);
; 413  : #endif
; 414  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_Refiner:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_RefineryGameObj@@YAPAEPAE@Z ENDP			; As_RefineryGameObj
_TEXT	ENDS
PUBLIC	?As_ComCenterGameObj@@YAPAEPAE@Z		; As_ComCenterGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_ComCenterGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_ComCenterGameObj@@YAPAEPAE@Z PROC			; As_ComCenterGameObj, COMDAT

; 417  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 419  : 	{
; 420  : 		return 0;
; 421  : 	}
; 422  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 423  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 424  : 	{
; 425  : 		return 0;

	je	SHORT $LN2@As_ComCent

; 426  : 	}
; 427  : #ifdef WIN32
; 428  : 	_asm {
; 429  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 430  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 431  : 		mov eax,[ebx+0x88]

	mov	eax, DWORD PTR [ebx+136]

; 432  : 		call eax

	call	eax

; 433  : 	}
; 434  : #elif defined RH8
; 435  : 	char *c = (char *)*(unsigned int *)obj;
; 436  : 	c += 0xAC;
; 437  : 	ago *t = (ago *)c;
; 438  : 	ago agox = *t;
; 439  : 	return agox(obj);
; 440  : #else
; 441  : 	GameObject *o = obj + 4;
; 442  : 	char *c = (char *)*(unsigned int *)o;
; 443  : 	c += 0x90;
; 444  : 	ago *t = (ago *)c;
; 445  : 	ago agox = *t;
; 446  : 	return agox(obj);
; 447  : #endif
; 448  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_ComCent:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_ComCenterGameObj@@YAPAEPAE@Z ENDP			; As_ComCenterGameObj
_TEXT	ENDS
PUBLIC	?As_RepairBayGameObj@@YAPAEPAE@Z		; As_RepairBayGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?As_RepairBayGameObj@@YAPAEPAE@Z
_TEXT	SEGMENT
_o2$ = -4						; size = 4
_obj$ = 8						; size = 4
?As_RepairBayGameObj@@YAPAEPAE@Z PROC			; As_RepairBayGameObj, COMDAT

; 451  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

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

; 453  : 	{
; 454  : 		return 0;
; 455  : 	}
; 456  : 	GameObject *o2 = As_BuildingGameObj(obj);

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

; 457  : 	if (!o2)

	test	eax, eax
	mov	DWORD PTR _o2$[ebp], eax

; 458  : 	{
; 459  : 		return 0;

	je	SHORT $LN2@As_RepairB

; 460  : 	}
; 461  : #ifdef WIN32
; 462  : 	_asm {
; 463  : 		mov ecx,o2

	mov	ecx, DWORD PTR _o2$[ebp]

; 464  : 		mov ebx,[ecx]

	mov	ebx, DWORD PTR [ecx]

; 465  : 		mov eax,[ebx+0x8C]

	mov	eax, DWORD PTR [ebx+140]

; 466  : 		call eax

	call	eax

; 467  : 	}
; 468  : #elif defined RH8
; 469  : 	char *c = (char *)*(unsigned int *)obj;
; 470  : 	c += 0xB0;
; 471  : 	ago *t = (ago *)c;
; 472  : 	ago agox = *t;
; 473  : 	return agox(obj);
; 474  : #else
; 475  : 	GameObject *o = obj + 4;
; 476  : 	char *c = (char *)*(unsigned int *)o;
; 477  : 	c += 0x94;
; 478  : 	ago *t = (ago *)c;
; 479  : 	ago agox = *t;
; 480  : 	return agox(obj);
; 481  : #endif
; 482  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@As_RepairB:
	pop	esi
	xor	eax, eax
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?As_RepairBayGameObj@@YAPAEPAE@Z ENDP			; As_RepairBayGameObj
_TEXT	ENDS
PUBLIC	?Is_PowerPlant@@YA_NPAE@Z			; Is_PowerPlant
; Function compile flags: /Ogtpy
;	COMDAT ?Is_PowerPlant@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Is_PowerPlant@@YA_NPAE@Z PROC				; Is_PowerPlant, COMDAT

; 671  : 	if (As_PowerPlantGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_PowerPlantGameObj@@YAPAEPAE@Z	; As_PowerPlantGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 672  : 	{
; 673  : 		return true;
; 674  : 	}
; 675  : 	return false;
; 676  : }

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

; 680  : 	if (As_SoldierFactoryGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_SoldierFactoryGameObj@@YAPAEPAE@Z	; As_SoldierFactoryGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 681  : 	{
; 682  : 		return true;
; 683  : 	}
; 684  : 	return false;
; 685  : }

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

; 689  : 	if (As_VehicleFactoryGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_VehicleFactoryGameObj@@YAPAEPAE@Z	; As_VehicleFactoryGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 690  : 	{
; 691  : 		return true;
; 692  : 	}
; 693  : 	return false;
; 694  : }

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

; 698  : 	if (As_AirstripGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_AirstripGameObj@@YAPAEPAE@Z		; As_AirstripGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 699  : 	{
; 700  : 		return true;
; 701  : 	}
; 702  : 	return false;
; 703  : }

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

; 707  : 	if (As_WarFactoryGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_WarFactoryGameObj@@YAPAEPAE@Z	; As_WarFactoryGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 708  : 	{
; 709  : 		return true;
; 710  : 	}
; 711  : 	return false;
; 712  : }

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

; 716  : 	if (As_RefineryGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_RefineryGameObj@@YAPAEPAE@Z		; As_RefineryGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 717  : 	{
; 718  : 		return true;
; 719  : 	}
; 720  : 	return false;
; 721  : }

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

; 725  : 	if (As_ComCenterGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_ComCenterGameObj@@YAPAEPAE@Z	; As_ComCenterGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 726  : 	{
; 727  : 		return true;
; 728  : 	}
; 729  : 	return false;
; 730  : }

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

; 734  : 	if (As_RepairBayGameObj(obj))

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?As_RepairBayGameObj@@YAPAEPAE@Z	; As_RepairBayGameObj
	add	esp, 4
	test	eax, eax
	setne	al

; 735  : 	{
; 736  : 		return true;
; 737  : 	}
; 738  : 	return false;
; 739  : }

	ret	0
?Is_RepairBay@@YA_NPAE@Z ENDP				; Is_RepairBay
_TEXT	ENDS
PUBLIC	??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@		; `string'
PUBLIC	??_C@_0N@HCJJACKE@Is_RepairBay?$AA@		; `string'
PUBLIC	??_C@_0N@HDCIACDB@Is_ComCenter?$AA@		; `string'
PUBLIC	??_C@_0M@IGHPANDI@Is_Refinery?$AA@		; `string'
PUBLIC	??_C@_0O@LDEDDJBA@Is_WarFactory?$AA@		; `string'
PUBLIC	??_C@_0M@FDGOOIDO@Is_Airstrip?$AA@		; `string'
PUBLIC	??_C@_0BC@BJIJEBBO@Is_SoldierFactory?$AA@	; `string'
PUBLIC	??_C@_0O@HNNKEAKD@Is_PowerPlant?$AA@		; `string'
PUBLIC	?Get_Building_Type@@YAPBDPAE@Z			; Get_Building_Type
;	COMDAT ??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@
CONST	SEGMENT
??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@ DB '(null)', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@HCJJACKE@Is_RepairBay?$AA@
CONST	SEGMENT
??_C@_0N@HCJJACKE@Is_RepairBay?$AA@ DB 'Is_RepairBay', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@HDCIACDB@Is_ComCenter?$AA@
CONST	SEGMENT
??_C@_0N@HDCIACDB@Is_ComCenter?$AA@ DB 'Is_ComCenter', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@IGHPANDI@Is_Refinery?$AA@
CONST	SEGMENT
??_C@_0M@IGHPANDI@Is_Refinery?$AA@ DB 'Is_Refinery', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@LDEDDJBA@Is_WarFactory?$AA@
CONST	SEGMENT
??_C@_0O@LDEDDJBA@Is_WarFactory?$AA@ DB 'Is_WarFactory', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@FDGOOIDO@Is_Airstrip?$AA@
CONST	SEGMENT
??_C@_0M@FDGOOIDO@Is_Airstrip?$AA@ DB 'Is_Airstrip', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@BJIJEBBO@Is_SoldierFactory?$AA@
CONST	SEGMENT
??_C@_0BC@BJIJEBBO@Is_SoldierFactory?$AA@ DB 'Is_SoldierFactory', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@HNNKEAKD@Is_PowerPlant?$AA@
CONST	SEGMENT
??_C@_0O@HNNKEAKD@Is_PowerPlant?$AA@ DB 'Is_PowerPlant', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Building_Type@@YAPBDPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Building_Type@@YAPBDPAE@Z PROC			; Get_Building_Type, COMDAT

; 742  : {

	push	esi

; 743  : 	if (Is_PowerPlant(obj))

	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	?As_PowerPlantGameObj@@YAPAEPAE@Z	; As_PowerPlantGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Get_Buildi

; 744  : 	{
; 745  : 		return "Is_PowerPlant";

	mov	eax, OFFSET ??_C@_0O@HNNKEAKD@Is_PowerPlant?$AA@
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
$LN15@Get_Buildi:

; 746  : 	}
; 747  : 	else if (Is_SoldierFactory(obj))

	push	esi
	call	?As_SoldierFactoryGameObj@@YAPAEPAE@Z	; As_SoldierFactoryGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN13@Get_Buildi

; 748  : 	{
; 749  : 		return "Is_SoldierFactory";

	mov	eax, OFFSET ??_C@_0BC@BJIJEBBO@Is_SoldierFactory?$AA@
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
$LN13@Get_Buildi:

; 750  : 	}
; 751  : 	else if (Is_VehicleFactory(obj))

	push	esi
	call	?As_VehicleFactoryGameObj@@YAPAEPAE@Z	; As_VehicleFactoryGameObj
	add	esp, 4
	test	eax, eax

; 752  : 	{
; 753  : 		if (Is_Airstrip(obj))

	push	esi
	je	SHORT $LN11@Get_Buildi
	call	?As_AirstripGameObj@@YAPAEPAE@Z		; As_AirstripGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN10@Get_Buildi

; 754  : 		{
; 755  : 			return "Is_Airstrip";

	mov	eax, OFFSET ??_C@_0M@FDGOOIDO@Is_Airstrip?$AA@
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
$LN10@Get_Buildi:

; 756  : 		}
; 757  : 		else if (Is_WarFactory(obj))

	push	esi
	call	?As_WarFactoryGameObj@@YAPAEPAE@Z	; As_WarFactoryGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Get_Buildi

; 758  : 		{
; 759  : 			return "Is_WarFactory";

	mov	eax, OFFSET ??_C@_0O@LDEDDJBA@Is_WarFactory?$AA@
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
$LN11@Get_Buildi:

; 760  : 		}
; 761  : 	}
; 762  : 	else if (Is_Refinery(obj))

	call	?As_RefineryGameObj@@YAPAEPAE@Z		; As_RefineryGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN6@Get_Buildi

; 763  : 	{
; 764  : 		return "Is_Refinery";

	mov	eax, OFFSET ??_C@_0M@IGHPANDI@Is_Refinery?$AA@
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
$LN6@Get_Buildi:

; 765  : 	}
; 766  : 	else if (Is_ComCenter(obj))

	push	esi
	call	?As_ComCenterGameObj@@YAPAEPAE@Z	; As_ComCenterGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Buildi

; 767  : 	{
; 768  : 		return "Is_ComCenter";

	mov	eax, OFFSET ??_C@_0N@HDCIACDB@Is_ComCenter?$AA@
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
$LN4@Get_Buildi:

; 769  : 	}
; 770  : 	else if (Is_RepairBay(obj))

	push	esi
	call	?Is_RepairBay@@YA_NPAE@Z		; Is_RepairBay
	add	esp, 4
	test	al, al

; 771  : 	{
; 772  : 		return "Is_RepairBay";

	mov	eax, OFFSET ??_C@_0N@HCJJACKE@Is_RepairBay?$AA@
	jne	SHORT $LN16@Get_Buildi
$LN2@Get_Buildi:

; 773  : 	}
; 774  : 	else
; 775  : 	{
; 776  : 		return "(null)";

	mov	eax, OFFSET ??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@
$LN16@Get_Buildi:
	pop	esi

; 777  : 	}
; 778  : 	return "(null)";
; 779  : }

	ret	0
?Get_Building_Type@@YAPBDPAE@Z ENDP			; Get_Building_Type
_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	??_7?$SimpleDynVecClass@PAE@@6B@		; SimpleDynVecClass<unsigned char *>::`vftable'
PUBLIC	??0?$SimpleDynVecClass@PAE@@QAE@H@Z		; SimpleDynVecClass<unsigned char *>::SimpleDynVecClass<unsigned char *>
PUBLIC	??_R4?$SimpleDynVecClass@PAE@@6B@		; SimpleDynVecClass<unsigned char *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$SimpleDynVecClass@PAE@@@8		; SimpleDynVecClass<unsigned char *> `RTTI Type Descriptor'
PUBLIC	??_R3?$SimpleDynVecClass@PAE@@8			; SimpleDynVecClass<unsigned char *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$SimpleDynVecClass@PAE@@8			; SimpleDynVecClass<unsigned char *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$SimpleDynVecClass@PAE@@8	; SimpleDynVecClass<unsigned char *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Resize@?$SimpleDynVecClass@PAE@@UAE_NH@Z	; SimpleDynVecClass<unsigned char *>::Resize
EXTRN	??_E?$SimpleDynVecClass@PAE@@UAEPAXI@Z:PROC	; SimpleDynVecClass<unsigned char *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$SimpleDynVecClass@PAE@@8
; File d:\source code\stgm\engine_vector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$SimpleDynVecClass@PAE@@8 DD FLAT:??_R0?AV?$SimpleDynVecClass@PAE@@@8 ; SimpleDynVecClass<unsigned char *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$SimpleDynVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R2?$SimpleDynVecClass@PAE@@8
rdata$r	SEGMENT
??_R2?$SimpleDynVecClass@PAE@@8 DD FLAT:??_R1A@?0A@EA@?$SimpleDynVecClass@PAE@@8 ; SimpleDynVecClass<unsigned char *>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$SimpleVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R3?$SimpleDynVecClass@PAE@@8
rdata$r	SEGMENT
??_R3?$SimpleDynVecClass@PAE@@8 DD 00H			; SimpleDynVecClass<unsigned char *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$SimpleDynVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$SimpleDynVecClass@PAE@@@8
_DATA	SEGMENT
??_R0?AV?$SimpleDynVecClass@PAE@@@8 DD FLAT:??_7type_info@@6B@ ; SimpleDynVecClass<unsigned char *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$SimpleDynVecClass@PAE@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$SimpleDynVecClass@PAE@@6B@
rdata$r	SEGMENT
??_R4?$SimpleDynVecClass@PAE@@6B@ DD 00H		; SimpleDynVecClass<unsigned char *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$SimpleDynVecClass@PAE@@@8
	DD	FLAT:??_R3?$SimpleDynVecClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_7?$SimpleDynVecClass@PAE@@6B@
CONST	SEGMENT
??_7?$SimpleDynVecClass@PAE@@6B@ DD FLAT:??_R4?$SimpleDynVecClass@PAE@@6B@ ; SimpleDynVecClass<unsigned char *>::`vftable'
	DD	FLAT:?Uninitialised_Grow@?$SimpleVecClass@PAE@@UAE_NH@Z
	DD	FLAT:??_E?$SimpleDynVecClass@PAE@@UAEPAXI@Z
	DD	FLAT:?Resize@?$SimpleDynVecClass@PAE@@UAE_NH@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$SimpleDynVecClass@PAE@@QAE@H@Z
_TEXT	SEGMENT
_size$ = 8						; size = 4
??0?$SimpleDynVecClass@PAE@@QAE@H@Z PROC		; SimpleDynVecClass<unsigned char *>::SimpleDynVecClass<unsigned char *>, COMDAT
; _this$ = ecx

; 259  : 	{

	push	esi
	xor	eax, eax
	push	edi
	mov	edi, DWORD PTR _size$[esp+4]
	cmp	edi, eax
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleVecClass@PAE@@6B@
	mov	DWORD PTR [esi+4], eax
	mov	DWORD PTR [esi+8], eax
	jbe	SHORT $LN4@SimpleDynV
	push	edi
	call	?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z	; SimpleVecClass<unsigned char *>::Resize
$LN4@SimpleDynV:

; 260  : 		ActiveCount = size;

	mov	DWORD PTR [esi+12], edi
	pop	edi
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleDynVecClass@PAE@@6B@

; 261  : 	}

	mov	eax, esi
	pop	esi
	ret	4
??0?$SimpleDynVecClass@PAE@@QAE@H@Z ENDP		; SimpleDynVecClass<unsigned char *>::SimpleDynVecClass<unsigned char *>
_TEXT	ENDS
PUBLIC	??0?$SimpleDynVecClass@PAE@@QAE@ABV0@@Z		; SimpleDynVecClass<unsigned char *>::SimpleDynVecClass<unsigned char *>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$SimpleDynVecClass@PAE@@QAE@ABV0@@Z
_TEXT	SEGMENT
_cl$ = 8						; size = 4
??0?$SimpleDynVecClass@PAE@@QAE@ABV0@@Z PROC		; SimpleDynVecClass<unsigned char *>::SimpleDynVecClass<unsigned char *>, COMDAT
; _this$ = ecx

; 263  : 	{

	push	esi
	push	edi
	mov	edi, DWORD PTR _cl$[esp+4]
	push	edi
	mov	esi, ecx
	call	??0?$SimpleVecClass@PAE@@QAE@ABV0@@Z	; SimpleVecClass<unsigned char *>::SimpleVecClass<unsigned char *>
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleDynVecClass@PAE@@6B@

; 264  : 		ActiveCount = cl.ActiveCount;

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

; 265  : 	}

	mov	eax, esi
	pop	esi
	ret	4
??0?$SimpleDynVecClass@PAE@@QAE@ABV0@@Z ENDP		; SimpleDynVecClass<unsigned char *>::SimpleDynVecClass<unsigned char *>
_TEXT	ENDS
PUBLIC	??_C@_0DH@LBOIPNEO@SimpleDynVecClass?$DMunsigned?5char?5@ ; `string'
PUBLIC	??1?$SimpleDynVecClass@PAE@@UAE@XZ		; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT ??_C@_0DH@LBOIPNEO@SimpleDynVecClass?$DMunsigned?5char?5@
CONST	SEGMENT
??_C@_0DH@LBOIPNEO@SimpleDynVecClass?$DMunsigned?5char?5@ DB 'SimpleDynVe'
	DB	'cClass<unsigned char *>::~SimpleDynVecClass', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1?$SimpleDynVecClass@PAE@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$SimpleDynVecClass@PAE@@UAE@XZ$0
__ehfuncinfo$??1?$SimpleDynVecClass@PAE@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$SimpleDynVecClass@PAE@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1?$SimpleDynVecClass@PAE@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$SimpleDynVecClass@PAE@@UAE@XZ PROC			; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>, COMDAT
; _this$ = ecx

; 271  : 	{

	push	-1
	push	__ehhandler$??1?$SimpleDynVecClass@PAE@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleDynVecClass@PAE@@6B@
	xor	edi, edi

; 272  : 		if (Vector)

	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR __$EHRec$[esp+32], edi
	je	SHORT $LN1@SimpleDynV@2

; 273  : 		{
; 274  : 			delete[] Vector;

	push	OFFSET ??_C@_0DH@LBOIPNEO@SimpleDynVecClass?$DMunsigned?5char?5@
	push	274					; 00000112H
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 275  : 			Vector = 0;

	mov	DWORD PTR [esi+4], edi
$LN1@SimpleDynV@2:

; 276  : 		}
; 277  : 	}

	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi], OFFSET ??_7?$SimpleVecClass@PAE@@6B@
	je	SHORT $LN7@SimpleDynV@2
	push	OFFSET ??_C@_0DB@MPKFPOBN@SimpleVecClass?$DMunsigned?5char?5?$CK?$DO?3@
	push	191					; 000000bfH
	push	OFFSET ??_C@_0CE@HMEOMKIG@d?3?2source?5code?2stgm?2engine_vecto@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
	mov	DWORD PTR [esi+8], edi
$LN7@SimpleDynV@2:
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$SimpleDynVecClass@PAE@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$SimpleVecClass@PAE@@UAE@XZ		; SimpleVecClass<unsigned char *>::~SimpleVecClass<unsigned char *>
__ehhandler$??1?$SimpleDynVecClass@PAE@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1?$SimpleDynVecClass@PAE@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1?$SimpleDynVecClass@PAE@@UAE@XZ ENDP			; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@?$SimpleDynVecClass@PAE@@UAE_NH@Z
_TEXT	SEGMENT
_newsize$ = 8						; size = 4
?Resize@?$SimpleDynVecClass@PAE@@UAE_NH@Z PROC		; SimpleDynVecClass<unsigned char *>::Resize, COMDAT
; _this$ = ecx

; 280  : 		if (SimpleVecClass<T>::Resize(newsize))

	mov	eax, DWORD PTR _newsize$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	?Resize@?$SimpleVecClass@PAE@@UAE_NH@Z	; SimpleVecClass<unsigned char *>::Resize
	test	al, al
	je	SHORT $LN2@Resize@2

; 281  : 		{
; 282  : 			if (VectorMax < ActiveCount)

	mov	eax, DWORD PTR [esi+8]
	cmp	eax, DWORD PTR [esi+12]
	jge	SHORT $LN1@Resize@2

; 283  : 			{
; 284  : 				ActiveCount = VectorMax;

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

; 285  : 			}
; 286  : 			return true;

	mov	al, 1
	pop	esi

; 289  : 	}

	ret	4
$LN2@Resize@2:

; 287  : 		}
; 288  : 		return false;

	xor	al, al
	pop	esi

; 289  : 	}

	ret	4
?Resize@?$SimpleDynVecClass@PAE@@UAE_NH@Z ENDP		; SimpleDynVecClass<unsigned char *>::Resize
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@XZ		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_DebugHeapAllocator@D@std@@QAE@XZ PROC		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	0
??0?$_DebugHeapAllocator@D@std@@QAE@XZ ENDP		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$SimpleDynVecClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$SimpleDynVecClass@PAE@@UAEPAXI@Z PROC		; SimpleDynVecClass<unsigned char *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$SimpleDynVecClass@PAE@@UAE@XZ	; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$SimpleDynVecClass@PAE@@UAEPAXI@Z ENDP		; SimpleDynVecClass<unsigned char *>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z PROC	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z ENDP	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	?Find_Random_Preset_By_Team@@YAPAEHPBD@Z	; Find_Random_Preset_By_Team
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z$0
__ehfuncinfo$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_obj.cpp
xdata$x	ENDS
;	COMDAT ?Find_Random_Preset_By_Team@@YAPAEHPBD@Z
_TEXT	SEGMENT
_o$55278 = -32						; size = 4
_ObjList$ = -28						; size = 16
__$EHRec$ = -12						; size = 12
_Team$ = 8						; size = 4
_Preset$ = 12						; size = 4
?Find_Random_Preset_By_Team@@YAPAEHPBD@Z PROC		; Find_Random_Preset_By_Team, COMDAT

; 926  : {

	push	-1
	push	__ehhandler$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 20					; 00000014H
	push	ebx

; 927  : 	SimpleDynVecClass<GameObject*> ObjList(0);

	xor	ebx, ebx
	push	esi
	push	edi
	mov	DWORD PTR _ObjList$[esp+48], ebx
	mov	DWORD PTR _ObjList$[esp+52], ebx
	mov	DWORD PTR _ObjList$[esp+44], OFFSET ??_7?$SimpleDynVecClass@PAE@@6B@
	mov	DWORD PTR _ObjList$[esp+56], ebx

; 928  : 	GenericSLNode *x = BaseGameObjList->HeadNode;

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

; 929  : 	while (x)

	cmp	edi, ebx
	mov	DWORD PTR __$EHRec$[esp+52], ebx
	je	$LN35@Find_Rando@2
	push	ebp
	mov	ebp, DWORD PTR _Team$[esp+44]
	npad	6
$LL8@Find_Rando@2:

; 930  : 	{
; 931  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 932  : 		if (o && As_ScriptableGameObj(o))

	cmp	esi, ebx
	mov	DWORD PTR _o$55278[esp+48], esi
	je	$LN5@Find_Rando@2
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN5@Find_Rando@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	cmp	eax, ebx
	je	SHORT $LN5@Find_Rando@2

; 933  : 		{
; 934  : 			if ((Get_Object_Type(o) == Team || Team == 2) && !_stricmp(Commands->Get_Preset_Name(o),Preset))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN23@Find_Rando@2
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	cmp	eax, ebx
	je	SHORT $LN23@Find_Rando@2
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN25@Find_Rando@2
$LN23@Find_Rando@2:
	xor	eax, eax
$LN25@Find_Rando@2:
	cmp	eax, ebp
	je	SHORT $LN4@Find_Rando@2
	cmp	ebp, 2
	jne	SHORT $LN5@Find_Rando@2
$LN4@Find_Rando@2:
	mov	ecx, DWORD PTR _Preset$[esp+44]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+116]
	push	ecx
	push	esi
	call	eax
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN5@Find_Rando@2

; 935  : 			{
; 936  : 				ObjList.Add(o);

	lea	ecx, DWORD PTR _o$55278[esp+48]
	push	ecx
	lea	ecx, DWORD PTR _ObjList$[esp+52]
	call	?Add@?$SimpleDynVecClass@PAE@@QAEHAAPAE@Z ; SimpleDynVecClass<unsigned char *>::Add
$LN5@Find_Rando@2:

; 937  : 			}
; 938  : 		}
; 939  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	cmp	edi, ebx
	jne	$LL8@Find_Rando@2

; 940  : 	}
; 941  : 	int len = ObjList.Count();
; 942  : 	if (len > 1)

	mov	eax, DWORD PTR _ObjList$[esp+60]
	cmp	eax, 1
	pop	ebp
	jle	SHORT $LN3@Find_Rando@2

; 943  : 	{
; 944  : 		return ObjList[Commands->Get_Random_Int(0,len)];

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	eax, DWORD PTR [edx+152]
	push	ebx
	call	eax
	mov	ecx, DWORD PTR _ObjList$[esp+56]
	mov	esi, DWORD PTR [ecx+eax*4]
	add	esp, 8
	jmp	SHORT $LN37@Find_Rando@2
$LN3@Find_Rando@2:

; 945  : 	}
; 946  : 	else if (!len)

	cmp	eax, ebx
	jne	SHORT $LN1@Find_Rando@2
$LN35@Find_Rando@2:

; 947  : 	{
; 948  : 		return 0;

	lea	ecx, DWORD PTR _ObjList$[esp+44]
	mov	DWORD PTR __$EHRec$[esp+52], -1
	call	??1?$SimpleDynVecClass@PAE@@UAE@XZ	; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>
	pop	edi
	pop	esi
	xor	eax, eax
	pop	ebx

; 951  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	0
$LN1@Find_Rando@2:

; 949  : 	}
; 950  : 	return ObjList[0];

	mov	edx, DWORD PTR _ObjList$[esp+48]
	mov	esi, DWORD PTR [edx]
$LN37@Find_Rando@2:
	lea	ecx, DWORD PTR _ObjList$[esp+44]
	mov	DWORD PTR __$EHRec$[esp+52], -1
	call	??1?$SimpleDynVecClass@PAE@@UAE@XZ	; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>

; 951  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 32					; 00000020H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z$0:
	lea	ecx, DWORD PTR _ObjList$[ebp]
	jmp	??1?$SimpleDynVecClass@PAE@@UAE@XZ	; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>
__ehhandler$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z:
	mov	eax, OFFSET __ehfuncinfo$?Find_Random_Preset_By_Team@@YAPAEHPBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Find_Random_Preset_By_Team@@YAPAEHPBD@Z ENDP		; Find_Random_Preset_By_Team
PUBLIC	?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z ; Get_All_Objects_By_Preset
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z$0
__ehfuncinfo$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z
_TEXT	SEGMENT
$T60347 = -20						; size = 4
_o$55316 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_Team$ = 12						; size = 4
_Preset$ = 16						; size = 4
?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z PROC ; Get_All_Objects_By_Preset, COMDAT

; 973  : {

	push	-1
	push	__ehhandler$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebx

; 974  : 	SimpleDynVecClass<GameObject*> ObjList(0);
; 975  : 	GenericSLNode *x = BaseGameObjList->HeadNode;
; 976  : 	while (x)

	xor	ebx, ebx
	mov	DWORD PTR $T60347[esp+24], ebx
	push	ebp
	mov	ebp, DWORD PTR ___$ReturnUdt$[esp+24]
	push	edi
	mov	DWORD PTR [ebp+4], ebx
	mov	DWORD PTR [ebp+8], ebx
	mov	DWORD PTR [ebp], OFFSET ??_7?$SimpleDynVecClass@PAE@@6B@
	mov	DWORD PTR [ebp+12], ebx

; 987  : 	}
; 988  : 	return ObjList;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	mov	edi, DWORD PTR [eax+4]
	cmp	edi, ebx
	mov	DWORD PTR __$EHRec$[esp+40], ebx
	mov	DWORD PTR $T60347[esp+32], 1
	je	$LN27@Get_All_Ob
	push	esi
$LL5@Get_All_Ob:

; 977  : 	{
; 978  : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 979  : 		if (o && As_ScriptableGameObj(o))

	cmp	esi, ebx
	mov	DWORD PTR _o$55316[esp+36], esi
	je	$LN2@Get_All_Ob
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Get_All_Ob
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	cmp	eax, ebx
	je	SHORT $LN2@Get_All_Ob

; 980  : 		{
; 981  : 			if ((Get_Object_Type(o) == Team || Team == 2) && !_stricmp(Commands->Get_Preset_Name(o),Preset))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN21@Get_All_Ob
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+60]
	mov	ecx, esi
	call	eax
	cmp	eax, ebx
	je	SHORT $LN21@Get_All_Ob
	mov	eax, DWORD PTR [eax+1892]
	jmp	SHORT $LN23@Get_All_Ob
$LN21@Get_All_Ob:
	xor	eax, eax
$LN23@Get_All_Ob:
	mov	ecx, DWORD PTR _Team$[esp+32]
	cmp	eax, ecx
	je	SHORT $LN1@Get_All_Ob
	cmp	ecx, 2
	jne	SHORT $LN2@Get_All_Ob
$LN1@Get_All_Ob:
	mov	ecx, DWORD PTR _Preset$[esp+32]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+116]
	push	ecx
	push	esi
	call	eax
	add	esp, 4
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN2@Get_All_Ob

; 982  : 			{
; 983  : 				ObjList.Add(o);

	lea	ecx, DWORD PTR _o$55316[esp+36]
	push	ecx
	mov	ecx, ebp
	call	?Add@?$SimpleDynVecClass@PAE@@QAEHAAPAE@Z ; SimpleDynVecClass<unsigned char *>::Add
$LN2@Get_All_Ob:

; 984  : 			}
; 985  : 		}
; 986  : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	cmp	edi, ebx
	jne	$LL5@Get_All_Ob
	pop	esi
$LN27@Get_All_Ob:

; 989  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z$0:
	mov	eax, DWORD PTR $T60347[ebp]
	and	eax, 1
	je	$LN9@Get_All_Ob
	and	DWORD PTR $T60347[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1?$SimpleDynVecClass@PAE@@UAE@XZ	; SimpleDynVecClass<unsigned char *>::~SimpleDynVecClass<unsigned char *>
$LN9@Get_All_Ob:
	ret	0
__ehhandler$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z:
	mov	eax, OFFSET __ehfuncinfo$?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Get_All_Objects_By_Preset@@YA?AV?$SimpleDynVecClass@PAE@@HPBD@Z ENDP ; Get_All_Objects_By_Preset
END
