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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?InsideMe@@3PAXA				; InsideMe
PUBLIC	?Grant_Supplies@@3PAXA				; Grant_Supplies
PUBLIC	?SpawnCharGDI@@3PADA				; SpawnCharGDI
PUBLIC	?ToggleFly@@3P6AXXZA				; ToggleFly
PUBLIC	?overlap@@3PAXA					; overlap
PUBLIC	?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA	; SoldierReInit
PUBLIC	?Create_Library_Object@@3P6APAEPBD@ZA		; Create_Library_Object
PUBLIC	?SpawnCharNod@@3PADA				; SpawnCharNod
PUBLIC	?Is_Available_For_Purchase@@3P6A_NXZA		; Is_Available_For_Purchase
PUBLIC	?GetVehicleCount@@3P6AIXZA			; GetVehicleCount
PUBLIC	?FindClosestZone@@3PAXA				; FindClosestZone
PUBLIC	?Request_Vehicle@@3P6A_NHMPAE@ZA		; Request_Vehicle
PUBLIC	?CheckTransitions@@3PAXA			; CheckTransitions
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
?InsideMe@@3PAXA DD 01H DUP (?)				; InsideMe
?Grant_Supplies@@3PAXA DD 01H DUP (?)			; Grant_Supplies
?SpawnCharGDI@@3PADA DD 01H DUP (?)			; SpawnCharGDI
?ToggleFly@@3P6AXXZA DD 01H DUP (?)			; ToggleFly
?overlap@@3PAXA DD 01H DUP (?)				; overlap
?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA DD 01H DUP (?) ; SoldierReInit
?Create_Library_Object@@3P6APAEPBD@ZA DD 01H DUP (?)	; Create_Library_Object
?SpawnCharNod@@3PADA DD 01H DUP (?)			; SpawnCharNod
?Is_Available_For_Purchase@@3P6A_NXZA DD 01H DUP (?)	; Is_Available_For_Purchase
?GetVehicleCount@@3P6AIXZA DD 01H DUP (?)		; GetVehicleCount
?FindClosestZone@@3PAXA DD 01H DUP (?)			; FindClosestZone
?Request_Vehicle@@3P6A_NHMPAE@ZA DD 01H DUP (?)		; Request_Vehicle
?CheckTransitions@@3PAXA DD 01H DUP (?)			; CheckTransitions
_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	?Find_Closest_Zone@@YAPAEAAUVector3@@I@Z	; Find_Closest_Zone
; Function compile flags: /Odtpy
; File d:\source code\stgm\engine_obj2.cpp
;	COMDAT ?Find_Closest_Zone@@YAPAEAAUVector3@@I@Z
_TEXT	SEGMENT
_Location$ = 8						; size = 4
_Type$ = 12						; size = 4
?Find_Closest_Zone@@YAPAEAAUVector3@@I@Z PROC		; Find_Closest_Zone, COMDAT

; 57   : IMPLEMENT_THUNK_RETURN(FindClosestZone)

	mov	eax, DWORD PTR ?FindClosestZone@@3PAXA	; FindClosestZone
	jmp	eax
?Find_Closest_Zone@@YAPAEAAUVector3@@I@Z ENDP		; Find_Closest_Zone
_TEXT	ENDS
PUBLIC	?Overlap_Test@@YAIABVOBBoxClass@@ABUVector3@@@Z	; Overlap_Test
; Function compile flags: /Odtpy
;	COMDAT ?Overlap_Test@@YAIABVOBBoxClass@@ABUVector3@@@Z
_TEXT	SEGMENT
_box$ = 8						; size = 4
_v$ = 12						; size = 4
?Overlap_Test@@YAIABVOBBoxClass@@ABUVector3@@@Z PROC	; Overlap_Test, COMDAT

; 59   : IMPLEMENT_THUNK_RETURN(overlap)

	mov	eax, DWORD PTR ?overlap@@3PAXA		; overlap
	jmp	eax
?Overlap_Test@@YAIABVOBBoxClass@@ABUVector3@@@Z ENDP	; Overlap_Test
_TEXT	ENDS
PUBLIC	?Inside_Me@ScriptZoneGameObj@@QAE_NPAVSmartGameObj@@@Z ; ScriptZoneGameObj::Inside_Me
; Function compile flags: /Odtpy
;	COMDAT ?Inside_Me@ScriptZoneGameObj@@QAE_NPAVSmartGameObj@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Inside_Me@ScriptZoneGameObj@@QAE_NPAVSmartGameObj@@@Z PROC ; ScriptZoneGameObj::Inside_Me, COMDAT
; _this$ = ecx

; 61   : IMPLEMENT_THUNK_RETURN(InsideMe)

	mov	eax, DWORD PTR ?InsideMe@@3PAXA		; InsideMe
	jmp	eax
?Inside_Me@ScriptZoneGameObj@@QAE_NPAVSmartGameObj@@@Z ENDP ; ScriptZoneGameObj::Inside_Me
_TEXT	ENDS
PUBLIC	?GrantSupplies@@YAXPAE@Z			; GrantSupplies
; Function compile flags: /Odtpy
;	COMDAT ?GrantSupplies@@YAXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?GrantSupplies@@YAXPAE@Z PROC				; GrantSupplies, COMDAT

; 63   : IMPLEMENT_THUNK(Grant_Supplies);

	mov	eax, DWORD PTR ?Grant_Supplies@@3PAXA	; Grant_Supplies
	jmp	eax
?GrantSupplies@@YAXPAE@Z ENDP				; GrantSupplies
_TEXT	ENDS
PUBLIC	?Check_Transitions@@YA_NPAE_N@Z			; Check_Transitions
; Function compile flags: /Odtpy
;	COMDAT ?Check_Transitions@@YA_NPAE_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_unk$ = 12						; size = 1
?Check_Transitions@@YA_NPAE_N@Z PROC			; Check_Transitions, COMDAT

; 65   : IMPLEMENT_THUNK_RETURN(CheckTransitions);

	mov	eax, DWORD PTR ?CheckTransitions@@3PAXA	; CheckTransitions
	jmp	eax
?Check_Transitions@@YA_NPAE_N@Z ENDP			; Check_Transitions
_TEXT	ENDS
PUBLIC	?InitEngineObj2@@YAXI@Z				; InitEngineObj2
; Function compile flags: /Ogtpy
;	COMDAT ?InitEngineObj2@@YAXI@Z
_TEXT	SEGMENT
_exe$ = 8						; size = 4
?InitEngineObj2@@YAXI@Z PROC				; InitEngineObj2, COMDAT

; 69   : 	switch(exe)

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

; 70   : 	{
; 71   : 		case 0: //game.exe
; 72   : 			overlap = (void *)0x00616B90;

	mov	DWORD PTR ?overlap@@3PAXA, 6384528	; overlap, 00616b90H

; 73   : 			Create_Library_Object = (CreateLibraryObject)0x006C6420;

	mov	DWORD PTR ?Create_Library_Object@@3P6APAEPBD@ZA, 7103520 ; Create_Library_Object, 006c6420H

; 74   : 			FindClosestZone = (void *)0x00722B90;

	mov	DWORD PTR ?FindClosestZone@@3PAXA, 7482256 ; FindClosestZone, 00722b90H

; 75   : 			InsideMe = (void *)0x00722B40;

	mov	DWORD PTR ?InsideMe@@3PAXA, 7482176	; InsideMe, 00722b40H

; 76   : 			Grant_Supplies = (void *)0x00470AC0;

	mov	DWORD PTR ?Grant_Supplies@@3PAXA, 4655808 ; Grant_Supplies, 00470ac0H

; 77   : 			SoldierReInit = (ReInit)0x006C7410;

	mov	DWORD PTR ?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA, 7107600 ; SoldierReInit, 006c7410H

; 78   : 			Is_Available_For_Purchase = (IsAvailable)0x006EE010;

	mov	DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA, 7266320 ; Is_Available_For_Purchase, 006ee010H

; 79   : 			Request_Vehicle = (RequestVehicle)0x006EE1A0;

	mov	DWORD PTR ?Request_Vehicle@@3P6A_NHMPAE@ZA, 7266720 ; Request_Vehicle, 006ee1a0H

; 80   : 			ToggleFly = (ToggleFlyMode)0x006CFC80;

	mov	DWORD PTR ?ToggleFly@@3P6AXXZA, 7142528	; ToggleFly, 006cfc80H

; 81   : 			CheckTransitions = (void *)0x006D55C0;

	mov	DWORD PTR ?CheckTransitions@@3PAXA, 7165376 ; CheckTransitions, 006d55c0H

; 82   : 			GetVehicleCount = (GetCount)0x006EE060;

	mov	DWORD PTR ?GetVehicleCount@@3P6AIXZA, 7266400 ; GetVehicleCount, 006ee060H

; 83   : 			SpawnCharGDI = (char *)0x007F5428;

	mov	DWORD PTR ?SpawnCharGDI@@3PADA, 8344616	; SpawnCharGDI, 007f5428H

; 84   : 			SpawnCharNod = (char *)0x007F5440;

	mov	DWORD PTR ?SpawnCharNod@@3PADA, 8344640	; SpawnCharNod, 007f5440H

; 145  : 			break;
; 146  : 	}
; 147  : }

	ret	0
$LN4@InitEngine:

; 85   : 			break;
; 86   : 		case 1: //server.dat
; 87   : 			overlap = (void *)0x00616430;

	mov	DWORD PTR ?overlap@@3PAXA, 6382640	; overlap, 00616430H

; 88   : 			Create_Library_Object = (CreateLibraryObject)0x006C5CC0;

	mov	DWORD PTR ?Create_Library_Object@@3P6APAEPBD@ZA, 7101632 ; Create_Library_Object, 006c5cc0H

; 89   : 			FindClosestZone = (void *)0x00722150;

	mov	DWORD PTR ?FindClosestZone@@3PAXA, 7479632 ; FindClosestZone, 00722150H

; 90   : 			InsideMe = (void *)0x00722100;

	mov	DWORD PTR ?InsideMe@@3PAXA, 7479552	; InsideMe, 00722100H

; 91   : 			Grant_Supplies = (void *)0x00470230;

	mov	DWORD PTR ?Grant_Supplies@@3PAXA, 4653616 ; Grant_Supplies, 00470230H

; 92   : 			SoldierReInit = (ReInit)0x006C6CB0;

	mov	DWORD PTR ?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA, 7105712 ; SoldierReInit, 006c6cb0H

; 93   : 			Is_Available_For_Purchase = (IsAvailable)0x006ED5D0;

	mov	DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA, 7263696 ; Is_Available_For_Purchase, 006ed5d0H

; 94   : 			Request_Vehicle = (RequestVehicle)0x006ED760;

	mov	DWORD PTR ?Request_Vehicle@@3P6A_NHMPAE@ZA, 7264096 ; Request_Vehicle, 006ed760H

; 95   : 			ToggleFly = (ToggleFlyMode)0x006CF520;

	mov	DWORD PTR ?ToggleFly@@3P6AXXZA, 7140640	; ToggleFly, 006cf520H

; 96   : 			CheckTransitions = (void *)0x006D4E60;

	mov	DWORD PTR ?CheckTransitions@@3PAXA, 7163488 ; CheckTransitions, 006d4e60H

; 97   : 			GetVehicleCount = (GetCount)0x006ED620;

	mov	DWORD PTR ?GetVehicleCount@@3P6AIXZA, 7263776 ; GetVehicleCount, 006ed620H

; 98   : 			SpawnCharGDI = (char *)0x007F442C;

	mov	DWORD PTR ?SpawnCharGDI@@3PADA, 8340524	; SpawnCharGDI, 007f442cH

; 99   : 			SpawnCharNod = (char *)0x007F4444;

	mov	DWORD PTR ?SpawnCharNod@@3PADA, 8340548	; SpawnCharNod, 007f4444H

; 145  : 			break;
; 146  : 	}
; 147  : }

	ret	0
$LN3@InitEngine:

; 100  : 			break;
; 101  : 		case 2: //RH73
; 102  : 			overlap = (void *)0x083257A0;

	mov	DWORD PTR ?overlap@@3PAXA, 137516960	; overlap, 083257a0H

; 103  : 			Create_Library_Object = (CreateLibraryObject)0x0813868C;

	mov	DWORD PTR ?Create_Library_Object@@3P6APAEPBD@ZA, 135497356 ; Create_Library_Object, 0813868cH

; 104  : 			FindClosestZone = (void *)0x08156204;

	mov	DWORD PTR ?FindClosestZone@@3PAXA, 135619076 ; FindClosestZone, 08156204H

; 105  : 			InsideMe = (void *)0x081561B0;

	mov	DWORD PTR ?InsideMe@@3PAXA, 135618992	; InsideMe, 081561b0H

; 106  : 			Grant_Supplies = (void *)0x080C472C;

	mov	DWORD PTR ?Grant_Supplies@@3PAXA, 135022380 ; Grant_Supplies, 080c472cH

; 107  : 			SoldierReInit = (ReInit)0x0815C23C;

	mov	DWORD PTR ?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA, 135643708 ; SoldierReInit, 0815c23cH

; 108  : 			Is_Available_For_Purchase = (IsAvailable)0x0818C8C4;

	mov	DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA, 135841988 ; Is_Available_For_Purchase, 0818c8c4H

; 109  : 			Request_Vehicle = (RequestVehicle)0x0818CAF0;

	mov	DWORD PTR ?Request_Vehicle@@3P6A_NHMPAE@ZA, 135842544 ; Request_Vehicle, 0818caf0H

; 110  : 			ToggleFly = (ToggleFlyMode)0x08168740;

	mov	DWORD PTR ?ToggleFly@@3P6AXXZA, 135694144 ; ToggleFly, 08168740H

; 111  : 			CheckTransitions = (void *)0x0817EDAC;

	mov	DWORD PTR ?CheckTransitions@@3PAXA, 135785900 ; CheckTransitions, 0817edacH

; 112  : 			GetVehicleCount = (GetCount)0x0818C900;

	mov	DWORD PTR ?GetVehicleCount@@3P6AIXZA, 135842048 ; GetVehicleCount, 0818c900H

; 113  : 			SpawnCharGDI = (char *)0x086151D5;

	mov	DWORD PTR ?SpawnCharGDI@@3PADA, 140595669 ; SpawnCharGDI, 086151d5H

; 114  : 			SpawnCharNod = (char *)0x086151C0;

	mov	DWORD PTR ?SpawnCharNod@@3PADA, 140595648 ; SpawnCharNod, 086151c0H

; 145  : 			break;
; 146  : 	}
; 147  : }

	ret	0
$LN2@InitEngine:

; 115  : 			break;
; 116  : 		case 3: //RH8
; 117  : 			overlap = (void *)0x082E22F0;

	mov	DWORD PTR ?overlap@@3PAXA, 137241328	; overlap, 082e22f0H

; 118  : 			Create_Library_Object = (CreateLibraryObject)0x081287B6;

	mov	DWORD PTR ?Create_Library_Object@@3P6APAEPBD@ZA, 135432118 ; Create_Library_Object, 081287b6H

; 119  : 			FindClosestZone = (void *)0x08143F90;

	mov	DWORD PTR ?FindClosestZone@@3PAXA, 135544720 ; FindClosestZone, 08143f90H

; 120  : 			InsideMe = (void *)0x08143F44;

	mov	DWORD PTR ?InsideMe@@3PAXA, 135544644	; InsideMe, 08143f44H

; 121  : 			Grant_Supplies = (void *)0x080BC8D8;

	mov	DWORD PTR ?Grant_Supplies@@3PAXA, 134990040 ; Grant_Supplies, 080bc8d8H

; 122  : 			SoldierReInit = (ReInit)0x0814A676;

	mov	DWORD PTR ?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA, 135571062 ; SoldierReInit, 0814a676H

; 123  : 			Is_Available_For_Purchase = (IsAvailable)0x008175F7A;

	mov	DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA, 135749498 ; Is_Available_For_Purchase, 08175f7aH

; 124  : 			Request_Vehicle = (RequestVehicle)0x08176184;

	mov	DWORD PTR ?Request_Vehicle@@3P6A_NHMPAE@ZA, 135750020 ; Request_Vehicle, 08176184H

; 125  : 			ToggleFly = (ToggleFlyMode)0x08155762;

	mov	DWORD PTR ?ToggleFly@@3P6AXXZA, 135616354 ; ToggleFly, 08155762H

; 126  : 			CheckTransitions = (void *)0x08169ADC;

	mov	DWORD PTR ?CheckTransitions@@3PAXA, 135699164 ; CheckTransitions, 08169adcH

; 127  : 			GetVehicleCount = (GetCount)0x08175FBE;

	mov	DWORD PTR ?GetVehicleCount@@3P6AIXZA, 135749566 ; GetVehicleCount, 08175fbeH

; 128  : 			SpawnCharGDI = (char *)0x084FB353;

	mov	DWORD PTR ?SpawnCharGDI@@3PADA, 139440979 ; SpawnCharGDI, 084fb353H

; 129  : 			SpawnCharNod = (char *)0x084FB33E;

	mov	DWORD PTR ?SpawnCharNod@@3PADA, 139440958 ; SpawnCharNod, 084fb33eH

; 145  : 			break;
; 146  : 	}
; 147  : }

	ret	0
$LN1@InitEngine:

; 130  : 			break;
; 131  : 		default:
; 132  : 			overlap = (void *)0;

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

; 133  : 			Create_Library_Object = (CreateLibraryObject)0;

	mov	DWORD PTR ?Create_Library_Object@@3P6APAEPBD@ZA, eax ; Create_Library_Object

; 134  : 			FindClosestZone = (void *)0;

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

; 135  : 			InsideMe = (void *)0;

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

; 136  : 			Grant_Supplies = (void *)0;

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

; 137  : 			SoldierReInit = (ReInit)0;

	mov	DWORD PTR ?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA, eax ; SoldierReInit

; 138  : 			Is_Available_For_Purchase = (IsAvailable)0;

	mov	DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA, eax ; Is_Available_For_Purchase

; 139  : 			Request_Vehicle = (RequestVehicle)0;

	mov	DWORD PTR ?Request_Vehicle@@3P6A_NHMPAE@ZA, eax ; Request_Vehicle

; 140  : 			ToggleFly = (ToggleFlyMode)0;

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

; 141  : 			CheckTransitions = (void *)0;

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

; 142  : 			GetVehicleCount = (GetCount)0;

	mov	DWORD PTR ?GetVehicleCount@@3P6AIXZA, eax ; GetVehicleCount

; 143  : 			SpawnCharGDI = (char *)0;

	mov	DWORD PTR ?SpawnCharGDI@@3PADA, eax	; SpawnCharGDI

; 144  : 			SpawnCharNod = (char *)0;

	mov	DWORD PTR ?SpawnCharNod@@3PADA, eax	; SpawnCharNod

; 145  : 			break;
; 146  : 	}
; 147  : }

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

; 151  : 	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_Vehicl
	test	esi, esi
	je	SHORT $LN3@Get_Vehicl

; 154  : 	}
; 155  : 	GameObject *o = As_SoldierGameObj(obj);

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

; 156  : 	if (o)

	test	eax, eax
	je	SHORT $LN3@Get_Vehicl

; 157  : 	{
; 158  : 		char *c = (char *)o;
; 159  : 		c += 0x98C;
; 160  : 		unsigned long *l = (unsigned long *)c;
; 161  : 		GameObject *vehicle = (GameObject *)*l;

	mov	eax, DWORD PTR [eax+2444]

; 162  : 		if (vehicle)

	test	eax, eax
	je	SHORT $LN3@Get_Vehicl
	pop	esi

; 163  : 		{
; 164  : 			GameObject *v = As_VehicleGameObj(vehicle);

	mov	DWORD PTR _obj$[esp-4], eax
	jmp	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
$LN3@Get_Vehicl:

; 152  : 	{
; 153  : 		return 0;

	xor	eax, eax
	pop	esi

; 165  : 			return v;
; 166  : 		}
; 167  : 		return 0;
; 168  : 	}
; 169  : 	return 0;
; 170  : }

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

; 174  : 	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_Refi
	test	esi, esi
	je	SHORT $LN2@Grant_Refi

; 175  : 	{
; 176  : 		return;
; 177  : 	}
; 178  : 	GameObject *o = As_SoldierGameObj(obj);

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

; 179  : 	if (o)

	test	eax, eax
	je	SHORT $LN2@Grant_Refi

; 180  : 	{
; 181  : 		GrantSupplies(obj);

	push	esi
	call	?GrantSupplies@@YAXPAE@Z		; GrantSupplies
	add	esp, 4
$LN2@Grant_Refi:
	pop	esi

; 182  : 	}
; 183  : }

	ret	0
?Grant_Refill@@YAXPAE@Z ENDP				; Grant_Refill
_TEXT	ENDS
PUBLIC	?Soldier_Re_Init@@YAXPAEPAVDefinitionClass@@@Z	; Soldier_Re_Init
; Function compile flags: /Ogtpy
;	COMDAT ?Soldier_Re_Init@@YAXPAEPAVDefinitionClass@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_def$ = 12						; size = 4
?Soldier_Re_Init@@YAXPAEPAVDefinitionClass@@@Z PROC	; Soldier_Re_Init, COMDAT

; 186  : {

	push	ebp
	mov	ebp, esp

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

; 188  : 	{
; 189  : 		return;
; 190  : 	}
; 191  : #ifdef WIN32
; 192  : 	_asm {
; 193  : 		mov ecx,obj

	mov	ecx, DWORD PTR _obj$[ebp]

; 194  : 		mov eax,def

	mov	eax, DWORD PTR _def$[ebp]

; 195  : 		mov ebx,SoldierReInit

	mov	ebx, DWORD PTR ?SoldierReInit@@3P6AXPAVDefinitionClass@@@ZA ; SoldierReInit

; 196  : 		push eax

	push	eax

; 197  : 		call ebx

	call	ebx
$LN1@Soldier_Re:

; 198  : 	}
; 199  : #else
; 200  : 	SoldierReInit(obj,def);
; 201  : #endif
; 202  : }

	pop	esi
	pop	ebx
	pop	ebp
	ret	0
?Soldier_Re_Init@@YAXPAEPAVDefinitionClass@@@Z ENDP	; Soldier_Re_Init
_TEXT	ENDS
PUBLIC	?Change_Character@@YA_NPAEPBD@Z			; Change_Character
EXTRN	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z:PROC ; Find_Named_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Change_Character@@YA_NPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_Preset_Name$ = 12					; size = 4
?Change_Character@@YA_NPAEPBD@Z PROC			; Change_Character, COMDAT

; 206  : 	if (!Commands->Get_ID(obj) || !obj || Get_Vehicle(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 $LN4@Change_Cha
	test	esi, esi
	je	SHORT $LN4@Change_Cha
	push	esi
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN4@Change_Cha

; 209  : 	}
; 210  : 	DefinitionClass *def = Find_Named_Definition(Preset_Name);

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

; 211  : 	if (!def)

	test	edi, edi

; 212  : 	{
; 213  : 		return false;

	je	SHORT $LN9@Change_Cha

; 214  : 	}
; 215  : 	if (def->Get_Class_ID() != 0x3001)

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+32]
	mov	ecx, edi
	call	edx
	cmp	eax, 12289				; 00003001H

; 216  : 	{
; 217  : 		return false;

	jne	SHORT $LN9@Change_Cha

; 218  : 	}
; 219  : 	GameObject *o = As_SoldierGameObj(obj);

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

; 220  : 	if (!o)

	test	eax, eax
	jne	SHORT $LN1@Change_Cha
$LN9@Change_Cha:
	pop	edi

; 221  : 	{
; 222  : 		return false;

	xor	al, al
	pop	esi

; 227  : }

	ret	0
$LN1@Change_Cha:

; 223  : 	}
; 224  : 	Soldier_Re_Init(o,def);

	push	edi
	push	eax
	call	?Soldier_Re_Init@@YAXPAEPAVDefinitionClass@@@Z ; Soldier_Re_Init

; 225  : 	((ScriptableGameObj *)obj)->Post_Re_Init();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+52]
	add	esp, 8
	mov	ecx, esi
	call	edx
	pop	edi

; 226  : 	return true;

	mov	al, 1
	pop	esi

; 227  : }

	ret	0
$LN4@Change_Cha:

; 207  : 	{
; 208  : 		return false;

	xor	al, al
	pop	esi

; 227  : }

	ret	0
?Change_Character@@YA_NPAEPBD@Z ENDP			; Change_Character
_TEXT	ENDS
PUBLIC	?IsAvailableForPurchase@@YA_NPAE@Z		; IsAvailableForPurchase
; Function compile flags: /Ogtpy
;	COMDAT ?IsAvailableForPurchase@@YA_NPAE@Z
_TEXT	SEGMENT
_factory$ = 8						; size = 4
?IsAvailableForPurchase@@YA_NPAE@Z PROC			; IsAvailableForPurchase, COMDAT

; 230  : {

	push	ebp
	mov	ebp, esp
	push	ebx

; 231  : #ifdef WIN32
; 232  : 	_asm {
; 233  : 		mov ecx,factory

	mov	ecx, DWORD PTR _factory$[ebp]

; 234  : 		mov ebx,Is_Available_For_Purchase

	mov	ebx, DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA ; Is_Available_For_Purchase

; 235  : 		call ebx

	call	ebx

; 236  : 	}
; 237  : #else
; 238  : 	return Is_Available_For_Purchase(factory);
; 239  : #endif
; 240  : }

	pop	ebx
	pop	ebp
	ret	0
?IsAvailableForPurchase@@YA_NPAE@Z ENDP			; IsAvailableForPurchase
_TEXT	ENDS
PUBLIC	?Create_Vehicle@@YAXPBDMPAEH@Z			; Create_Vehicle
EXTRN	?Find_Vehicle_Factory@@YAPAEH@Z:PROC		; Find_Vehicle_Factory
; Function compile flags: /Ogtpy
;	COMDAT ?Create_Vehicle@@YAXPBDMPAEH@Z
_TEXT	SEGMENT
_ID$54899 = -8						; size = 4
_o$ = -4						; size = 4
_Preset_Name$ = 8					; size = 4
_Delay$ = 12						; size = 4
_factory$54896 = 16					; size = 4
_Owner$ = 16						; size = 4
_Team$ = 20						; size = 4
?Create_Vehicle@@YAXPBDMPAEH@Z PROC			; Create_Vehicle, COMDAT

; 243  : {

	push	ebp
	mov	ebp, esp
	sub	esp, 8

; 244  : 	GameObject *o = 0;
; 245  : 	if (Owner)

	mov	eax, DWORD PTR _Owner$[ebp]
	push	ebx
	push	esi
	xor	esi, esi
	test	eax, eax
	push	edi
	mov	DWORD PTR _o$[ebp], esi
	je	SHORT $LN5@Create_Veh

; 246  : 	{
; 247  : 		o = As_SoldierGameObj(Owner);

	push	eax
	call	?As_SoldierGameObj@@YAPAEPAE@Z		; As_SoldierGameObj
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR _o$[ebp], esi
$LN5@Create_Veh:

; 248  : 	}
; 249  : 	DefinitionClass *def = Find_Named_Definition(Preset_Name);

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

; 250  : 	if (def)

	test	edi, edi
	je	$LN1@Create_Veh

; 251  : 	{
; 252  : 		if (!Get_Vehicle(o))

	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 $LN16@Create_Veh
	test	esi, esi
	je	SHORT $LN16@Create_Veh
	push	esi
	call	?As_SoldierGameObj@@YAPAEPAE@Z		; As_SoldierGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN16@Create_Veh
	mov	eax, DWORD PTR [eax+2444]
	test	eax, eax
	je	SHORT $LN16@Create_Veh
	push	eax
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN1@Create_Veh
$LN16@Create_Veh:

; 253  : 		{
; 254  : 			GameObject *factory = Find_Vehicle_Factory(Team);

	mov	eax, DWORD PTR _Team$[ebp]
	push	eax
	call	?Find_Vehicle_Factory@@YAPAEH@Z		; Find_Vehicle_Factory
	add	esp, 4

; 255  : 			if (factory)

	test	eax, eax
	mov	DWORD PTR _factory$54896[ebp], eax
	je	SHORT $LN1@Create_Veh

; 256  : 			{
; 257  : 				if (IsAvailableForPurchase(factory))

	mov	ecx, DWORD PTR _factory$54896[ebp]
	mov	ebx, DWORD PTR ?Is_Available_For_Purchase@@3P6A_NXZA ; Is_Available_For_Purchase
	call	ebx
	test	al, al
	je	SHORT $LN1@Create_Veh

; 258  : 				{
; 259  : 					unsigned int ID = def->Get_ID();

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, edi
	call	eax
	mov	DWORD PTR _ID$54899[ebp], eax

; 262  : 						mov ecx,factory

	mov	ecx, DWORD PTR _factory$54896[ebp]

; 263  : 						mov ebx,Request_Vehicle

	mov	ebx, DWORD PTR ?Request_Vehicle@@3P6A_NHMPAE@ZA ; Request_Vehicle

; 264  : 						mov eax,o

	mov	eax, DWORD PTR _o$[ebp]

; 265  : 						push eax

	push	eax

; 266  : 						mov eax,Delay

	mov	eax, DWORD PTR _Delay$[ebp]

; 267  : 						push eax

	push	eax

; 268  : 						mov eax,ID

	mov	eax, DWORD PTR _ID$54899[ebp]

; 269  : 						push eax

	push	eax

; 270  : 						call ebx

	call	ebx

; 260  : #ifdef WIN32
; 261  : 					_asm {

$LN1@Create_Veh:

; 271  : 					}
; 272  : #else
; 273  : 					Request_Vehicle(factory,ID,Delay,o);
; 274  : #endif
; 275  : 				}
; 276  : 			}
; 277  : 		}
; 278  : 	}
; 279  : }

	pop	edi
	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?Create_Vehicle@@YAXPBDMPAEH@Z ENDP			; Create_Vehicle
_TEXT	ENDS
PUBLIC	?Toggle_Fly_Mode@@YAXPAE@Z			; Toggle_Fly_Mode
; Function compile flags: /Ogtpy
;	COMDAT ?Toggle_Fly_Mode@@YAXPAE@Z
_TEXT	SEGMENT
_o$ = -4						; size = 4
_obj$ = 8						; size = 4
?Toggle_Fly_Mode@@YAXPAE@Z PROC				; Toggle_Fly_Mode, COMDAT

; 282  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

; 284  : 	{
; 285  : 		return;
; 286  : 	}
; 287  : 	GameObject *o = As_SoldierGameObj(obj);

	push	esi
	call	?As_SoldierGameObj@@YAPAEPAE@Z		; As_SoldierGameObj
	mov	esi, eax
	add	esp, 4

; 288  : 	if (o)

	test	esi, esi
	mov	DWORD PTR _o$[ebp], esi
	je	SHORT $LN2@Toggle_Fly

; 289  : 	{
; 290  : #ifdef WIN32
; 291  : 		_asm {
; 292  : 			mov ecx,o

	mov	ecx, DWORD PTR _o$[ebp]

; 293  : 			mov ebx,ToggleFly

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

; 294  : 			call ebx

	call	ebx

; 295  : 		}
; 296  : #else
; 297  : 		ToggleFly(o);
; 298  : #endif
; 299  : 		Commands->Enable_Collisions(o);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+88]
	push	esi
	call	eax
	add	esp, 4
$LN2@Toggle_Fly:

; 300  : 	}
; 301  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?Toggle_Fly_Mode@@YAXPAE@Z ENDP				; Toggle_Fly_Mode
_TEXT	ENDS
PUBLIC	??_7?$VectorClass@PAE@@6B@			; VectorClass<unsigned char *>::`vftable'
PUBLIC	??0?$VectorClass@PAE@@QAE@ABV0@@Z		; VectorClass<unsigned char *>::VectorClass<unsigned char *>
PUBLIC	??_R4?$VectorClass@PAE@@6B@			; VectorClass<unsigned char *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$VectorClass@PAE@@@8			; VectorClass<unsigned char *> `RTTI Type Descriptor'
PUBLIC	??_R3?$VectorClass@PAE@@8			; VectorClass<unsigned char *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$VectorClass@PAE@@8			; VectorClass<unsigned char *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$VectorClass@PAE@@8		; VectorClass<unsigned char *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??8?$VectorClass@PAE@@UAE_NAAV0@@Z		; VectorClass<unsigned char *>::operator==
PUBLIC	?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z	; VectorClass<unsigned char *>::Resize
PUBLIC	?Clear@?$VectorClass@PAE@@UAEXXZ		; VectorClass<unsigned char *>::Clear
PUBLIC	?ID@?$VectorClass@PAE@@UAEHPAPAE@Z		; VectorClass<unsigned char *>::ID
PUBLIC	?ID@?$VectorClass@PAE@@UAEHAAPAE@Z		; VectorClass<unsigned char *>::ID
EXTRN	??_E?$VectorClass@PAE@@UAEPAXI@Z:PROC		; VectorClass<unsigned char *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$VectorClass@PAE@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$VectorClass@PAE@@8 DD FLAT:??_R0?AV?$VectorClass@PAE@@@8 ; VectorClass<unsigned char *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$VectorClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R2?$VectorClass@PAE@@8
rdata$r	SEGMENT
??_R2?$VectorClass@PAE@@8 DD FLAT:??_R1A@?0A@EA@?$VectorClass@PAE@@8 ; VectorClass<unsigned char *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$VectorClass@PAE@@8
rdata$r	SEGMENT
??_R3?$VectorClass@PAE@@8 DD 00H			; VectorClass<unsigned char *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$VectorClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$VectorClass@PAE@@@8
_DATA	SEGMENT
??_R0?AV?$VectorClass@PAE@@@8 DD FLAT:??_7type_info@@6B@ ; VectorClass<unsigned char *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$VectorClass@PAE@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$VectorClass@PAE@@6B@
rdata$r	SEGMENT
??_R4?$VectorClass@PAE@@6B@ DD 00H			; VectorClass<unsigned char *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$VectorClass@PAE@@@8
	DD	FLAT:??_R3?$VectorClass@PAE@@8
rdata$r	ENDS
;	COMDAT ??_7?$VectorClass@PAE@@6B@
CONST	SEGMENT
??_7?$VectorClass@PAE@@6B@ DD FLAT:??_R4?$VectorClass@PAE@@6B@ ; VectorClass<unsigned char *>::`vftable'
	DD	FLAT:??_E?$VectorClass@PAE@@UAEPAXI@Z
	DD	FLAT:??8?$VectorClass@PAE@@UAE_NAAV0@@Z
	DD	FLAT:?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z
	DD	FLAT:?Clear@?$VectorClass@PAE@@UAEXXZ
	DD	FLAT:?ID@?$VectorClass@PAE@@UAEHPAPAE@Z
	DD	FLAT:?ID@?$VectorClass@PAE@@UAEHAAPAE@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$VectorClass@PAE@@QAE@ABV0@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$VectorClass@PAE@@QAE@ABV0@@Z PROC			; VectorClass<unsigned char *>::VectorClass<unsigned char *>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	ecx, DWORD PTR ___that$[esp-4]
	mov	DWORD PTR [eax], OFFSET ??_7?$VectorClass@PAE@@6B@
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax+4], edx
	mov	edx, DWORD PTR [ecx+8]
	mov	DWORD PTR [eax+8], edx
	mov	dl, BYTE PTR [ecx+12]
	mov	BYTE PTR [eax+12], dl
	mov	cl, BYTE PTR [ecx+13]
	mov	BYTE PTR [eax+13], cl
	ret	4
??0?$VectorClass@PAE@@QAE@ABV0@@Z ENDP			; VectorClass<unsigned char *>::VectorClass<unsigned char *>
_TEXT	ENDS
PUBLIC	?Get_Vehicle_Return@@YAPAEPAE@Z			; Get_Vehicle_Return
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Return@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Vehicle_Return@@YAPAEPAE@Z PROC			; Get_Vehicle_Return, COMDAT

; 420  : 	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_Vehicl@2
	test	esi, esi
	je	SHORT $LN3@Get_Vehicl@2

; 423  : 	}
; 424  : 	GameObject *o = As_SoldierGameObj(obj);

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

; 425  : 	if (o)

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

; 426  : 	{
; 427  : 		char *c = (char *)o;
; 428  : 		c += 0x98C;
; 429  : 		unsigned long *l = (unsigned long *)c;
; 430  : 		GameObject *vehicle = (GameObject *)*l;

	mov	eax, DWORD PTR [eax+2444]

; 431  : 		if (vehicle)

	test	eax, eax
	je	SHORT $LN3@Get_Vehicl@2
	pop	esi

; 432  : 		{
; 433  : 			GameObject *v = As_VehicleGameObj(vehicle);

	mov	DWORD PTR _obj$[esp-4], eax
	jmp	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
$LN3@Get_Vehicl@2:

; 421  : 	{
; 422  : 		return obj;

	mov	eax, esi
	pop	esi

; 434  : 			return v;
; 435  : 		}
; 436  : 		return obj;
; 437  : 	}
; 438  : 	return obj;
; 439  : }

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

; 443  : 	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_Fly_Mo
	test	esi, esi
	je	SHORT $LN2@Get_Fly_Mo

; 446  : 	}
; 447  : 	GameObject *o = As_SoldierGameObj(obj);

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

; 448  : 	if (!o)

	test	eax, eax

; 449  : 	{
; 450  : 		return false;

	je	SHORT $LN2@Get_Fly_Mo

; 451  : 	}
; 452  : 	char *c = (char *)obj;
; 453  : 	c += 0xD24;
; 454  : 	return *(bool *)c;

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

; 455  : }

	ret	0
$LN2@Get_Fly_Mo:

; 444  : 	{
; 445  : 		return false;

	xor	al, al
	pop	esi

; 455  : }

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

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

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

; 462  : 	}
; 463  : 	GameObject *o = As_SmartGameObj(obj);

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

; 464  : 	if (!o)

	test	eax, eax

; 465  : 	{
; 466  : 		return false;

	je	SHORT $LN2@Is_Stealth

; 467  : 	}
; 468  : 	char *c = (char *)obj;
; 469  : 	c += 0x83D;
; 470  : 	return *(bool *)c;

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

; 471  : }

	ret	0
$LN2@Is_Stealth:

; 460  : 	{
; 461  : 		return false;

	xor	al, al
	pop	esi

; 471  : }

	ret	0
?Is_Stealth@@YA_NPAE@Z ENDP				; Is_Stealth
_TEXT	ENDS
PUBLIC	??_C@_04OHJIHAFH@None?$AA@			; `string'
PUBLIC	?Get_Spawn_Char@@YAPADH@Z			; Get_Spawn_Char
;	COMDAT ??_C@_04OHJIHAFH@None?$AA@
CONST	SEGMENT
??_C@_04OHJIHAFH@None?$AA@ DB 'None', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Spawn_Char@@YAPADH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_Spawn_Char@@YAPADH@Z PROC				; Get_Spawn_Char, COMDAT

; 486  : 	if (!Team)

	mov	eax, DWORD PTR _Team$[esp-4]
	test	eax, eax
	jne	SHORT $LN3@Get_Spawn_

; 487  : 	{
; 488  : 		return SpawnCharNod;

	mov	eax, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod

; 495  : }

	ret	0
$LN3@Get_Spawn_:

; 489  : 	}
; 490  : 	else if (Team == 1)

	cmp	eax, 1

; 491  : 	{
; 492  : 		return SpawnCharGDI;

	mov	eax, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	je	SHORT $LN4@Get_Spawn_

; 493  : 	}
; 494  : 	return "None";

	mov	eax, OFFSET ??_C@_04OHJIHAFH@None?$AA@
$LN4@Get_Spawn_:

; 495  : }

	ret	0
?Get_Spawn_Char@@YAPADH@Z ENDP				; Get_Spawn_Char
_TEXT	ENDS
PUBLIC	?Change_Spawn_Char@@YAXHPBD@Z			; Change_Spawn_Char
; Function compile flags: /Ogtpy
;	COMDAT ?Change_Spawn_Char@@YAXHPBD@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
_Name$ = 12						; size = 4
?Change_Spawn_Char@@YAXHPBD@Z PROC			; Change_Spawn_Char, COMDAT

; 499  : 	if (strlen(Name) > 24)

	mov	edx, DWORD PTR _Name$[esp-4]
	mov	eax, edx
	push	esi
	lea	esi, DWORD PTR [eax+1]
	npad	6
$LL8@Change_Spa:
	mov	cl, BYTE PTR [eax]
	add	eax, 1
	test	cl, cl
	jne	SHORT $LL8@Change_Spa
	sub	eax, esi
	cmp	eax, 24					; 00000018H
	pop	esi
	ja	$LN1@Change_Spa

; 500  : 	{
; 501  : 		return;
; 502  : 	}
; 503  : 	else if (!Team)

	mov	eax, DWORD PTR _Team$[esp-4]
	test	eax, eax
	jne	SHORT $LN3@Change_Spa

; 504  : 	{
; 505  : 		memcpy((void*)SpawnCharNod,(void*)Name,24);

	mov	eax, DWORD PTR [edx]
	mov	ecx, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod
	mov	DWORD PTR [ecx], eax
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod
	mov	DWORD PTR [ecx+4], eax
	mov	eax, DWORD PTR [edx+8]
	mov	ecx, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod
	mov	DWORD PTR [ecx+8], eax
	mov	eax, DWORD PTR [edx+12]
	mov	ecx, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod
	mov	DWORD PTR [ecx+12], eax
	mov	eax, DWORD PTR [edx+16]
	mov	ecx, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod
	mov	DWORD PTR [ecx+16], eax
	mov	edx, DWORD PTR [edx+20]
	mov	eax, DWORD PTR ?SpawnCharNod@@3PADA	; SpawnCharNod
	mov	DWORD PTR [eax+20], edx

; 510  : 	}
; 511  : }

	ret	0
$LN3@Change_Spa:

; 506  : 	}
; 507  : 	else if (Team == 1)

	cmp	eax, 1
	jne	SHORT $LN1@Change_Spa

; 508  : 	{
; 509  : 		memcpy((void*)SpawnCharGDI,(void*)Name,24);

	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	mov	DWORD PTR [eax], ecx
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	mov	DWORD PTR [eax+4], ecx
	mov	ecx, DWORD PTR [edx+8]
	mov	eax, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	mov	DWORD PTR [eax+8], ecx
	mov	ecx, DWORD PTR [edx+12]
	mov	eax, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	mov	DWORD PTR [eax+12], ecx
	mov	ecx, DWORD PTR [edx+16]
	mov	eax, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	mov	DWORD PTR [eax+16], ecx
	mov	ecx, DWORD PTR [edx+20]
	mov	edx, DWORD PTR ?SpawnCharGDI@@3PADA	; SpawnCharGDI
	mov	DWORD PTR [edx+20], ecx
$LN1@Change_Spa:

; 510  : 	}
; 511  : }

	ret	0
?Change_Spawn_Char@@YAXHPBD@Z ENDP			; Change_Spawn_Char
_TEXT	ENDS
PUBLIC	?Soldier_Transition_Vehicle@@YAXPAE@Z		; Soldier_Transition_Vehicle
; Function compile flags: /Ogtpy
;	COMDAT ?Soldier_Transition_Vehicle@@YAXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Soldier_Transition_Vehicle@@YAXPAE@Z PROC		; Soldier_Transition_Vehicle, COMDAT

; 515  : 	if (!Commands->Get_ID(obj) || !obj || !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@Soldier_Tr
	test	esi, esi
	je	SHORT $LN1@Soldier_Tr
	push	esi
	call	?As_SoldierGameObj@@YAPAEPAE@Z		; As_SoldierGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Soldier_Tr

; 516  : 	{
; 517  : 		return;
; 518  : 	}
; 519  : 	Check_Transitions(obj,true);

	push	1
	push	esi
	call	?Check_Transitions@@YA_NPAE_N@Z		; Check_Transitions
	add	esp, 8
$LN1@Soldier_Tr:
	pop	esi

; 520  : }

	ret	0
?Soldier_Transition_Vehicle@@YAXPAE@Z ENDP		; Soldier_Transition_Vehicle
_TEXT	ENDS
PUBLIC	?Get_Vehicle_Mode@@YAIPAE@Z			; Get_Vehicle_Mode
EXTRN	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z:PROC ; Get_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Mode@@YAIPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Vehicle_Mode@@YAIPAE@Z PROC			; Get_Vehicle_Mode, COMDAT

; 524  : 	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 $LN4@Get_Vehicl@3
	test	esi, esi
	je	SHORT $LN4@Get_Vehicl@3

; 527  : 	}
; 528  : 	GameObject *o = As_VehicleGameObj(obj);

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

; 529  : 	if (!o)

	test	eax, eax
	jne	SHORT $LN1@Get_Vehicl@3

; 530  : 	{
; 531  : 		if (!Get_Vehicle(obj))

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

; 532  : 		{
; 533  : 			return 0;

	je	SHORT $LN4@Get_Vehicl@3

; 534  : 		}
; 535  : 		else 
; 536  : 		{
; 537  : 			obj = Get_Vehicle(obj);

	push	esi
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4
	mov	esi, eax
$LN1@Get_Vehicl@3:

; 538  : 		}
; 539  : 	}
; 540  : 	DefinitionClass *d = Get_Definition(obj);

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

; 541  : 	char *c = (char *)d;
; 542  : 	c += 0xE0;

	add	eax, 224				; 000000e0H

; 543  : 	return *(unsigned int *)c;

	mov	eax, DWORD PTR [eax]
	pop	esi

; 544  : }

	ret	0
$LN4@Get_Vehicl@3:

; 525  : 	{
; 526  : 		return 0;

	xor	eax, eax
	pop	esi

; 544  : }

	ret	0
?Get_Vehicle_Mode@@YAIPAE@Z ENDP			; Get_Vehicle_Mode
_TEXT	ENDS
PUBLIC	?Get_Team_Vehicle_Count@@YAHH@Z			; Get_Team_Vehicle_Count
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Team_Vehicle_Count@@YAHH@Z
_TEXT	SEGMENT
_o$ = -4						; size = 4
_team$ = 8						; size = 4
?Get_Team_Vehicle_Count@@YAHH@Z PROC			; Get_Team_Vehicle_Count, COMDAT

; 547  : {

	push	ebp
	mov	ebp, esp
	push	ecx

; 548  : 	GameObject *o = Find_Vehicle_Factory(team);

	mov	eax, DWORD PTR _team$[ebp]
	push	ebx
	push	eax
	call	?Find_Vehicle_Factory@@YAPAEH@Z		; Find_Vehicle_Factory
	add	esp, 4

; 549  : 	if (!o)

	test	eax, eax
	mov	DWORD PTR _o$[ebp], eax
	jne	SHORT $LN1@Get_Team_V

; 558  : 	}
; 559  : #else
; 560  : 	return GetVehicleCount(o);
; 561  : #endif
; 562  : }

	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN1@Get_Team_V:

; 550  : 	{
; 551  : 		return 0;
; 552  : 	}
; 553  : #ifdef WIN32
; 554  : 	_asm {
; 555  : 		mov ecx, o

	mov	ecx, DWORD PTR _o$[ebp]

; 556  : 		mov ebx, GetVehicleCount

	mov	ebx, DWORD PTR ?GetVehicleCount@@3P6AIXZA ; GetVehicleCount

; 557  : 		call ebx

	call	ebx

; 558  : 	}
; 559  : #else
; 560  : 	return GetVehicleCount(o);
; 561  : #endif
; 562  : }

	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?Get_Team_Vehicle_Count@@YAHH@Z ENDP			; Get_Team_Vehicle_Count
_TEXT	ENDS
PUBLIC	?Get_Vehicle_Owner@@YAPAEPAE@Z			; Get_Vehicle_Owner
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Owner@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Vehicle_Owner@@YAPAEPAE@Z PROC			; Get_Vehicle_Owner, COMDAT

; 566  : 	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_Vehicl@4
	test	esi, esi
	je	SHORT $LN3@Get_Vehicl@4

; 569  : 	}
; 570  : 	GameObject *o = As_VehicleGameObj(obj);

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

; 571  : 	if (!o)

	test	eax, eax

; 572  : 	{
; 573  : 		return 0;

	je	SHORT $LN3@Get_Vehicl@4

; 574  : 	}
; 575  : 	char *c = (char *)obj;
; 576  : 	c += 0x9E0;
; 577  : 	ReferenceableClass<ScriptableGameObj> *r = *(ReferenceableClass<ScriptableGameObj> **)c;

	mov	eax, DWORD PTR [esi+2528]

; 578  : 	if (r)

	test	eax, eax
	je	SHORT $LN3@Get_Vehicl@4

; 579  : 	{
; 580  : 		return (GameObject *)r->obj;

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

; 581  : 	}
; 582  : 	return 0;
; 583  : }

	ret	0
$LN3@Get_Vehicl@4:

; 567  : 	{
; 568  : 		return 0;

	xor	eax, eax
	pop	esi

; 581  : 	}
; 582  : 	return 0;
; 583  : }

	ret	0
?Get_Vehicle_Owner@@YAPAEPAE@Z ENDP			; Get_Vehicle_Owner
_TEXT	ENDS
PUBLIC	?Get_Vehicle_Definition_Mode@@YAIPBD@Z		; Get_Vehicle_Definition_Mode
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Definition_Mode@@YAIPBD@Z
_TEXT	SEGMENT
_preset$ = 8						; size = 4
?Get_Vehicle_Definition_Mode@@YAIPBD@Z PROC		; Get_Vehicle_Definition_Mode, COMDAT

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

	mov	eax, DWORD PTR _preset$[esp-4]
	push	eax
	call	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition

; 606  : 	char *c = (char *)d;
; 607  : 	c += 0xE0;

	add	eax, 224				; 000000e0H

; 608  : 	return *(unsigned int *)c;

	mov	eax, DWORD PTR [eax]
	add	esp, 4

; 609  : }

	ret	0
?Get_Vehicle_Definition_Mode@@YAIPBD@Z ENDP		; Get_Vehicle_Definition_Mode
_TEXT	ENDS
PUBLIC	?Get_Vehicle_Definition_Mode_By_ID@@YAIK@Z	; Get_Vehicle_Definition_Mode_By_ID
EXTRN	?Find_Definition@@YAPAVDefinitionClass@@K@Z:PROC ; Find_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Definition_Mode_By_ID@@YAIK@Z
_TEXT	SEGMENT
_ID$ = 8						; size = 4
?Get_Vehicle_Definition_Mode_By_ID@@YAIK@Z PROC		; Get_Vehicle_Definition_Mode_By_ID, COMDAT

; 634  : 	DefinitionClass *d = Find_Definition(ID);

	mov	eax, DWORD PTR _ID$[esp-4]
	push	eax
	call	?Find_Definition@@YAPAVDefinitionClass@@K@Z ; Find_Definition
	add	esp, 4

; 635  : 	if (!d) return 5;

	test	eax, eax
	jne	SHORT $LN1@Get_Vehicl@5
	mov	eax, 5

; 639  : }

	ret	0
$LN1@Get_Vehicl@5:

; 636  : 	char *c = (char *)d;
; 637  : 	c += 0xE0;
; 638  : 	return *(unsigned int *)c;

	mov	eax, DWORD PTR [eax+224]

; 639  : }

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

; 643  : 	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_Zone_T
	test	esi, esi
	je	SHORT $LN2@Get_Zone_T

; 646  : 	}
; 647  : 	GameObject *o = As_ScriptZoneGameObj(obj);

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

; 648  : 	if (!o)

	test	eax, eax

; 649  : 	{
; 650  : 		return 0;

	je	SHORT $LN2@Get_Zone_T

; 651  : 	}
; 652  : 	ScriptZoneGameObjDef *d = (ScriptZoneGameObjDef *)Get_Definition(obj);

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

; 653  : 	return d->ZoneType;

	mov	eax, DWORD PTR [eax+76]
	add	esp, 4
	pop	esi

; 654  : }

	ret	0
$LN2@Get_Zone_T:

; 644  : 	{
; 645  : 		return 0;

	xor	eax, eax
	pop	esi

; 654  : }

	ret	0
?Get_Zone_Type@@YAIPAE@Z ENDP				; Get_Zone_Type
_TEXT	ENDS
PUBLIC	?Get_Zone_Box@@YAPAVOBBoxClass@@PAE@Z		; Get_Zone_Box
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Zone_Box@@YAPAVOBBoxClass@@PAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Zone_Box@@YAPAVOBBoxClass@@PAE@Z PROC		; Get_Zone_Box, COMDAT

; 658  : 	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_Zone_B
	test	esi, esi
	je	SHORT $LN2@Get_Zone_B

; 661  : 	}
; 662  : 	ScriptZoneGameObj *o = ((ScriptableGameObj *)obj)->As_ScriptZoneGameObj();

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

; 663  : 	if (!o)

	test	eax, eax

; 664  : 	{
; 665  : 		return 0;

	je	SHORT $LN2@Get_Zone_B

; 666  : 	}
; 667  : 	return &o->BoundingBox;

	add	eax, 1836				; 0000072cH
	pop	esi

; 668  : }

	ret	0
$LN2@Get_Zone_B:

; 659  : 	{
; 660  : 		return 0;

	xor	eax, eax
	pop	esi

; 668  : }

	ret	0
?Get_Zone_Box@@YAPAVOBBoxClass@@PAE@Z ENDP		; Get_Zone_Box
_TEXT	ENDS
PUBLIC	?Set_Zone_Box@@YAXPAEABVOBBoxClass@@@Z		; Set_Zone_Box
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Zone_Box@@YAXPAEABVOBBoxClass@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_box$ = 12						; size = 4
?Set_Zone_Box@@YAXPAEABVOBBoxClass@@@Z PROC		; Set_Zone_Box, COMDAT

; 672  : 	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_Zone_B
	test	esi, esi
	je	SHORT $LN2@Set_Zone_B

; 673  : 	{
; 674  : 		return;
; 675  : 	}
; 676  : 	ScriptZoneGameObj *o = ((ScriptableGameObj *)obj)->As_ScriptZoneGameObj();

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

; 677  : 	if (!o)

	test	eax, eax
	je	SHORT $LN2@Set_Zone_B

; 678  : 	{
; 679  : 		return;
; 680  : 	}
; 681  : 	memcpy(&o->BoundingBox,&box,sizeof(OBBoxClass));

	mov	esi, DWORD PTR _box$[esp]
	push	edi
	lea	edi, DWORD PTR [eax+1836]
	mov	ecx, 15					; 0000000fH
	rep movsd
	pop	edi
$LN2@Set_Zone_B:
	pop	esi

; 682  : }

	ret	0
?Set_Zone_Box@@YAXPAEABVOBBoxClass@@@Z ENDP		; Set_Zone_Box
_TEXT	ENDS
PUBLIC	?Create_Zone@@YAPAEPBDABVOBBoxClass@@@Z		; Create_Zone
EXTRN	?Start_Observers@ScriptableGameObj@@QAEXXZ:PROC	; ScriptableGameObj::Start_Observers
; Function compile flags: /Ogtpy
;	COMDAT ?Create_Zone@@YAPAEPBDABVOBBoxClass@@@Z
_TEXT	SEGMENT
_preset$ = 8						; size = 4
_box$ = 12						; size = 4
?Create_Zone@@YAPAEPBDABVOBBoxClass@@@Z PROC		; Create_Zone, COMDAT

; 686  : 	GameObject *obj = Create_Library_Object(preset);

	mov	eax, DWORD PTR _preset$[esp-4]
	push	ebx
	push	eax
	call	DWORD PTR ?Create_Library_Object@@3P6APAEPBD@ZA ; Create_Library_Object

; 687  : 	Set_Zone_Box(obj,box);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	mov	ebx, eax
	push	ebx
	call	edx
	add	esp, 8
	test	eax, eax
	je	SHORT $LN4@Create_Zon
	test	ebx, ebx
	je	SHORT $LN4@Create_Zon
	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+72]
	mov	ecx, ebx
	call	edx
	test	eax, eax
	je	SHORT $LN4@Create_Zon
	push	esi
	mov	esi, DWORD PTR _box$[esp+4]
	push	edi
	lea	edi, DWORD PTR [eax+1836]
	mov	ecx, 15					; 0000000fH
	rep movsd
	pop	edi
	pop	esi
$LN4@Create_Zon:

; 688  : 	((ScriptableGameObj *)obj)->Start_Observers();

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

; 689  : 	return obj;

	mov	eax, ebx
	pop	ebx

; 690  : }

	ret	0
?Create_Zone@@YAPAEPBDABVOBBoxClass@@@Z ENDP		; Create_Zone
_TEXT	ENDS
PUBLIC	?PointInZone@@YA_NPAEABUVector3@@@Z		; PointInZone
; Function compile flags: /Ogtpy
;	COMDAT ?PointInZone@@YA_NPAEABUVector3@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_v$ = 12						; size = 4
?PointInZone@@YA_NPAEABUVector3@@@Z PROC		; PointInZone, COMDAT

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

; 697  : 	}
; 698  : 	GameObject *o = As_ScriptZoneGameObj(obj);

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

; 699  : 	if (!o)

	test	eax, eax

; 700  : 	{
; 701  : 		return false;

	je	SHORT $LN3@PointInZon

; 702  : 	}
; 703  : 	unsigned int x = Overlap_Test(*Get_Zone_Box(o),v);

	mov	edx, DWORD PTR _v$[esp]
	push	edx
	push	eax
	call	?Get_Zone_Box@@YAPAVOBBoxClass@@PAE@Z	; Get_Zone_Box
	add	esp, 4
	push	eax
	call	?Overlap_Test@@YAIABVOBBoxClass@@ABUVector3@@@Z ; Overlap_Test
	add	esp, 8

; 704  : 	if (x == 2)

	cmp	eax, 2
	sete	al
	pop	esi

; 705  : 	{
; 706  : 		return true;
; 707  : 	}
; 708  : 	return false;
; 709  : }

	ret	0
$LN3@PointInZon:

; 695  : 	{
; 696  : 		return false;

	xor	al, al
	pop	esi

; 705  : 	{
; 706  : 		return true;
; 707  : 	}
; 708  : 	return false;
; 709  : }

	ret	0
?PointInZone@@YA_NPAEABUVector3@@@Z ENDP		; PointInZone
_TEXT	ENDS
PUBLIC	?Set_Vehicle_Is_Visible@@YAXPAE_N@Z		; Set_Vehicle_Is_Visible
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Vehicle_Is_Visible@@YAXPAE_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_visible$ = 12						; size = 1
?Set_Vehicle_Is_Visible@@YAXPAE_N@Z PROC		; Set_Vehicle_Is_Visible, COMDAT

; 713  : 	bool *b = (bool *)obj;
; 714  : 	b += 0x995;
; 715  : 	*b = visible;

	mov	al, BYTE PTR _visible$[esp-4]
	mov	ecx, DWORD PTR _obj$[esp-4]
	mov	BYTE PTR [ecx+2453], al

; 716  : }

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

; 26   : 	{

	mov	DWORD PTR [ecx], OFFSET ??_7?$VectorClass@PAE@@6B@

; 27   : 	}

	ret	0
??1?$VectorClass@PAE@@UAE@XZ ENDP			; VectorClass<unsigned char *>::~VectorClass<unsigned char *>
_TEXT	ENDS
PUBLIC	?Length@?$VectorClass@PAE@@QAEHXZ		; VectorClass<unsigned char *>::Length
; Function compile flags: /Ogtpy
;	COMDAT ?Length@?$VectorClass@PAE@@QAEHXZ
_TEXT	SEGMENT
?Length@?$VectorClass@PAE@@QAEHXZ PROC			; VectorClass<unsigned char *>::Length, COMDAT
; _this$ = ecx

; 30   : 		return VectorMax;

	mov	eax, DWORD PTR [ecx+8]

; 31   : 	}

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

; 34   : 		return Vector[index];

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

; 35   : 	}

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

; 38   : 		return false;

	xor	al, al

; 39   : 	}

	ret	4
??8?$VectorClass@PAE@@UAE_NAAV0@@Z ENDP			; VectorClass<unsigned char *>::operator==
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z
_TEXT	SEGMENT
_newsize$ = 8						; size = 4
_array$ = 12						; size = 4
?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z PROC		; VectorClass<unsigned char *>::Resize, COMDAT
; _this$ = ecx

; 42   : 		return false;

	xor	al, al

; 43   : 	}

	ret	8
?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z ENDP		; VectorClass<unsigned char *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@PAE@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$VectorClass@PAE@@UAEXXZ PROC			; VectorClass<unsigned char *>::Clear, COMDAT
; _this$ = ecx

; 46   : 	}

	ret	0
?Clear@?$VectorClass@PAE@@UAEXXZ ENDP			; VectorClass<unsigned char *>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAE@@UAEHAAPAE@Z
_TEXT	SEGMENT
_object$ = 8						; size = 4
?ID@?$VectorClass@PAE@@UAEHAAPAE@Z PROC			; VectorClass<unsigned char *>::ID, COMDAT
; _this$ = ecx

; 49   : 		return 0;

	xor	eax, eax

; 50   : 	}

	ret	4
?ID@?$VectorClass@PAE@@UAEHAAPAE@Z ENDP			; VectorClass<unsigned char *>::ID
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAE@@UAEHPAPAE@Z
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
?ID@?$VectorClass@PAE@@UAEHPAPAE@Z PROC			; VectorClass<unsigned char *>::ID, COMDAT
; _this$ = ecx

; 53   : 		return 0;

	xor	eax, eax

; 54   : 	}

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

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

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

; 305  : 	if (!Commands->Get_ID(obj) || !obj || !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 $LN5@Get_Vehicl@6
	test	esi, esi
	je	SHORT $LN5@Get_Vehicl@6
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN5@Get_Vehicl@6

; 308  : 	}
; 309  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 310  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;

	mov	edx, DWORD PTR [esi+2480]
	mov	esi, DWORD PTR [esi+2484]

; 311  : 	int count = 0;

	xor	eax, eax

; 312  : 	int x = occupants.Length();
; 313  : 	for (int i = 0;i < x;i++)

	xor	ecx, ecx
	test	esi, esi
	jle	SHORT $LN7@Get_Vehicl@6
	npad	4
$LL4@Get_Vehicl@6:

; 314  : 	{
; 315  : 		if (occupants[i])

	cmp	DWORD PTR [edx+ecx*4], 0
	je	SHORT $LN3@Get_Vehicl@6

; 316  : 		{
; 317  : 			count++;

	add	eax, 1
$LN3@Get_Vehicl@6:

; 312  : 	int x = occupants.Length();
; 313  : 	for (int i = 0;i < x;i++)

	add	ecx, 1
	cmp	ecx, esi
	jl	SHORT $LL4@Get_Vehicl@6
	pop	esi

; 318  : 		}
; 319  : 	}
; 320  : 	return count;
; 321  : }

	ret	0
$LN5@Get_Vehicl@6:

; 306  : 	{
; 307  : 		return 0;

	xor	eax, eax
$LN7@Get_Vehicl@6:
	pop	esi

; 318  : 		}
; 319  : 	}
; 320  : 	return count;
; 321  : }

	ret	0
?Get_Vehicle_Occupant_Count@@YAHPAE@Z ENDP		; Get_Vehicle_Occupant_Count
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$VectorClass@PAE@@UAEPAXI@Z PROC			; VectorClass<unsigned char *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7?$VectorClass@PAE@@6B@
	je	SHORT $LN6@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$VectorClass@PAE@@UAEPAXI@Z ENDP			; VectorClass<unsigned char *>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Get_Vehicle_Occupant@@YAPAEPAEH@Z		; Get_Vehicle_Occupant
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Occupant@@YAPAEPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_seat$ = 12						; size = 4
?Get_Vehicle_Occupant@@YAPAEPAEH@Z PROC			; Get_Vehicle_Occupant, COMDAT

; 325  : 	if (!Commands->Get_ID(obj) || !obj || !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 $LN2@Get_Vehicl@7
	test	esi, esi
	je	SHORT $LN2@Get_Vehicl@7
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Get_Vehicl@7

; 328  : 	}
; 329  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 330  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;

	mov	eax, DWORD PTR [esi+2480]
	mov	esi, DWORD PTR [esi+2484]

; 331  : 	if (seat >= occupants.Length())

	mov	ecx, DWORD PTR _seat$[esp]
	cmp	ecx, esi

; 332  : 	{
; 333  : 		return 0;

	jge	SHORT $LN2@Get_Vehicl@7

; 334  : 	}
; 335  : 	return occupants[seat];

	mov	eax, DWORD PTR [eax+ecx*4]
	pop	esi

; 336  : }

	ret	0
$LN2@Get_Vehicl@7:

; 326  : 	{
; 327  : 		return 0;

	xor	eax, eax
	pop	esi

; 336  : }

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

; 340  : 	if (!Commands->Get_ID(obj) || !obj || !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 $LN2@Get_Vehicl@8
	test	esi, esi
	je	SHORT $LN2@Get_Vehicl@8
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Get_Vehicl@8

; 343  : 	}
; 344  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 345  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;
; 346  : 	if (occupants.Length() <= 0)

	cmp	DWORD PTR [esi+2484], 0
	mov	eax, DWORD PTR [esi+2480]

; 347  : 	{
; 348  : 		return 0;

	jle	SHORT $LN2@Get_Vehicl@8

; 349  : 	}
; 350  : 	return occupants[0];

	mov	eax, DWORD PTR [eax]
	pop	esi

; 351  : }

	ret	0
$LN2@Get_Vehicl@8:

; 341  : 	{
; 342  : 		return 0;

	xor	eax, eax
	pop	esi

; 351  : }

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

; 355  : 	if (!Commands->Get_ID(obj) || !obj || !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 $LN2@Get_Vehicl@9
	test	esi, esi
	je	SHORT $LN2@Get_Vehicl@9
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Get_Vehicl@9

; 358  : 	}
; 359  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 360  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;
; 361  : 	if (occupants.Length() <= 1)

	cmp	DWORD PTR [esi+2484], 1
	mov	eax, DWORD PTR [esi+2480]

; 362  : 	{
; 363  : 		return 0;

	jle	SHORT $LN2@Get_Vehicl@9

; 364  : 	}
; 365  : 	return occupants[1];

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

; 366  : }

	ret	0
$LN2@Get_Vehicl@9:

; 356  : 	{
; 357  : 		return 0;

	xor	eax, eax
	pop	esi

; 366  : }

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

; 370  : 	if (!Commands->Get_ID(obj) || !obj || !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 $LN3@Get_Vehicl@10
	test	esi, esi
	je	SHORT $LN3@Get_Vehicl@10
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Get_Vehicl@10

; 373  : 	}
; 374  : 	GameObject *o = Get_Vehicle_Gunner_Pos(obj);

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

; 375  : 	if ((!o) || (*(bool *)(obj+0x994)))

	test	eax, eax
	je	SHORT $LN1@Get_Vehicl@10
	cmp	BYTE PTR [esi+2452], 0
	je	SHORT $LN5@Get_Vehicl@10
$LN1@Get_Vehicl@10:

; 376  : 	{
; 377  : 		o = Get_Vehicle_Driver(obj);

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

; 378  : 	}
; 379  : 	return o;
; 380  : }

	ret	0
$LN3@Get_Vehicl@10:

; 371  : 	{
; 372  : 		return 0;

	xor	eax, eax
$LN5@Get_Vehicl@10:
	pop	esi

; 378  : 	}
; 379  : 	return o;
; 380  : }

	ret	0
?Get_Vehicle_Gunner@@YAPAEPAE@Z ENDP			; Get_Vehicle_Gunner
_TEXT	ENDS
PUBLIC	?Force_Occupant_Exit@@YAXPAEH@Z			; Force_Occupant_Exit
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
; File d:\source code\stgm\engine_vector.h
xdata$x	SEGMENT
__unwindtable$?Force_Occupant_Exit@@YAXPAEH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Force_Occupant_Exit@@YAXPAEH@Z$0
__ehfuncinfo$?Force_Occupant_Exit@@YAXPAEH@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Force_Occupant_Exit@@YAXPAEH@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_obj2.cpp
xdata$x	ENDS
;	COMDAT ?Force_Occupant_Exit@@YAXPAEH@Z
_TEXT	SEGMENT
_occupants$ = -28					; size = 16
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
_seat$ = 12						; size = 4
?Force_Occupant_Exit@@YAXPAEH@Z PROC			; Force_Occupant_Exit, COMDAT

; 383  : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Force_Occupant_Exit@@YAXPAEH@Z
	push	eax
	mov	DWORD PTR fs:0, esp

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

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 16					; 00000010H
	push	esi
	mov	esi, DWORD PTR _obj$[esp+28]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Force_Occu
	test	esi, esi
	je	SHORT $LN1@Force_Occu
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Force_Occu

; 385  : 	{
; 386  : 		return;
; 387  : 	}
; 388  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 389  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;

	movzx	edx, BYTE PTR [esi+2488]
	mov	eax, DWORD PTR [esi+2480]
	mov	ecx, DWORD PTR [esi+2484]
	mov	BYTE PTR _occupants$[esp+44], dl
	movzx	edx, BYTE PTR [esi+2489]
	mov	DWORD PTR _occupants$[esp+32], OFFSET ??_7?$VectorClass@PAE@@6B@
	mov	DWORD PTR _occupants$[esp+36], eax
	mov	DWORD PTR _occupants$[esp+40], ecx
	mov	BYTE PTR _occupants$[esp+45], dl

; 390  : 	if (seat >= occupants.Length())

	mov	edx, DWORD PTR _seat$[esp+28]
	cmp	edx, ecx
	mov	DWORD PTR __$EHRec$[esp+40], 0
	jge	SHORT $LN1@Force_Occu

; 391  : 	{
; 392  : 		return;
; 393  : 	}
; 394  : 	if (occupants[seat])

	cmp	DWORD PTR [eax+edx*4], 0
	je	SHORT $LN1@Force_Occu

; 395  : 	{
; 396  : 		Check_Transitions(occupants[seat],true);

	mov	eax, DWORD PTR [eax+edx*4]
	push	1
	push	eax
	call	?Check_Transitions@@YA_NPAE_N@Z		; Check_Transitions
	add	esp, 8
$LN1@Force_Occu:

; 397  : 	}
; 398  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Force_Occupant_Exit@@YAXPAEH@Z$0:
	lea	ecx, DWORD PTR _occupants$[ebp]
	jmp	??1?$VectorClass@PAE@@UAE@XZ		; VectorClass<unsigned char *>::~VectorClass<unsigned char *>
__ehhandler$?Force_Occupant_Exit@@YAXPAEH@Z:
	mov	eax, OFFSET __ehfuncinfo$?Force_Occupant_Exit@@YAXPAEH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Force_Occupant_Exit@@YAXPAEH@Z ENDP			; Force_Occupant_Exit
PUBLIC	?Force_Occupants_Exit@@YAXPAE@Z			; Force_Occupants_Exit
;	COMDAT xdata$x
; File d:\source code\stgm\engine_vector.h
xdata$x	SEGMENT
__unwindtable$?Force_Occupants_Exit@@YAXPAE@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Force_Occupants_Exit@@YAXPAE@Z$0
__ehfuncinfo$?Force_Occupants_Exit@@YAXPAE@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Force_Occupants_Exit@@YAXPAE@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_obj2.cpp
xdata$x	ENDS
;	COMDAT ?Force_Occupants_Exit@@YAXPAE@Z
_TEXT	SEGMENT
_occupants$ = -28					; size = 16
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
?Force_Occupants_Exit@@YAXPAE@Z PROC			; Force_Occupants_Exit, COMDAT

; 401  : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Force_Occupants_Exit@@YAXPAE@Z
	push	eax
	mov	DWORD PTR fs:0, esp

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

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 16					; 00000010H
	push	esi
	mov	esi, DWORD PTR _obj$[esp+28]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Force_Occu@2
	test	esi, esi
	je	SHORT $LN2@Force_Occu@2
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Force_Occu@2

; 403  : 	{
; 404  : 		return;
; 405  : 	}
; 406  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 407  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;

	mov	dl, BYTE PTR [esi+2488]
	mov	al, BYTE PTR [esi+2489]
	push	ebx
	mov	ebx, DWORD PTR [esi+2484]
	push	edi
	mov	edi, DWORD PTR [esi+2480]
	mov	DWORD PTR _occupants$[esp+40], OFFSET ??_7?$VectorClass@PAE@@6B@
	mov	DWORD PTR _occupants$[esp+44], edi
	mov	DWORD PTR _occupants$[esp+48], ebx
	mov	BYTE PTR _occupants$[esp+52], dl
	mov	BYTE PTR _occupants$[esp+53], al

; 408  : 	int x = occupants.Length();
; 409  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	mov	DWORD PTR __$EHRec$[esp+48], 0
	jle	SHORT $LN23@Force_Occu@2
$LL4@Force_Occu@2:

; 410  : 	{
; 411  : 		if (occupants[i])

	cmp	DWORD PTR [edi+esi*4], 0
	je	SHORT $LN3@Force_Occu@2

; 412  : 		{
; 413  : 			Check_Transitions(occupants[i],true);

	mov	ecx, DWORD PTR [edi+esi*4]
	push	1
	push	ecx
	call	?Check_Transitions@@YA_NPAE_N@Z		; Check_Transitions
	add	esp, 8
$LN3@Force_Occu@2:
	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL4@Force_Occu@2
$LN23@Force_Occu@2:
	pop	edi
	pop	ebx
$LN2@Force_Occu@2:

; 414  : 		}
; 415  : 	}
; 416  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Force_Occupants_Exit@@YAXPAE@Z$0:
	lea	ecx, DWORD PTR _occupants$[ebp]
	jmp	??1?$VectorClass@PAE@@UAE@XZ		; VectorClass<unsigned char *>::~VectorClass<unsigned char *>
__ehhandler$?Force_Occupants_Exit@@YAXPAE@Z:
	mov	eax, OFFSET __ehfuncinfo$?Force_Occupants_Exit@@YAXPAE@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Force_Occupants_Exit@@YAXPAE@Z ENDP			; Force_Occupants_Exit
PUBLIC	?Get_Vehicle_Seat_Count@@YAHPAE@Z		; Get_Vehicle_Seat_Count
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Vehicle_Seat_Count@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Vehicle_Seat_Count@@YAHPAE@Z PROC			; Get_Vehicle_Seat_Count, COMDAT

; 475  : 	if (!Commands->Get_ID(obj) || !obj || !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@Get_Vehicl@11
	test	esi, esi
	je	SHORT $LN1@Get_Vehicl@11
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Get_Vehicl@11

; 478  : 	}
; 479  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 480  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;
; 481  : 	return occupants.Length();

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

; 482  : }

	ret	0
$LN1@Get_Vehicl@11:

; 476  : 	{
; 477  : 		return 0;

	xor	eax, eax
	pop	esi

; 482  : }

	ret	0
?Get_Vehicle_Seat_Count@@YAHPAE@Z ENDP			; Get_Vehicle_Seat_Count
_TEXT	ENDS
PUBLIC	?Force_Occupants_Exit_Team@@YAXPAEH@Z		; Force_Occupants_Exit_Team
;	COMDAT xdata$x
; File d:\source code\stgm\engine_vector.h
xdata$x	SEGMENT
__unwindtable$?Force_Occupants_Exit_Team@@YAXPAEH@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Force_Occupants_Exit_Team@@YAXPAEH@Z$0
__ehfuncinfo$?Force_Occupants_Exit_Team@@YAXPAEH@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Force_Occupants_Exit_Team@@YAXPAEH@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_obj2.cpp
xdata$x	ENDS
;	COMDAT ?Force_Occupants_Exit_Team@@YAXPAEH@Z
_TEXT	SEGMENT
_occupants$ = -28					; size = 16
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
_team$ = 12						; size = 4
?Force_Occupants_Exit_Team@@YAXPAEH@Z PROC		; Force_Occupants_Exit_Team, COMDAT

; 586  : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Force_Occupants_Exit_Team@@YAXPAEH@Z
	push	eax
	mov	DWORD PTR fs:0, esp

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

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 16					; 00000010H
	push	esi
	mov	esi, DWORD PTR _obj$[esp+28]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN2@Force_Occu@3
	test	esi, esi
	je	$LN2@Force_Occu@3
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@Force_Occu@3

; 588  : 	{
; 589  : 		return;
; 590  : 	}
; 591  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 592  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;

	mov	dl, BYTE PTR [esi+2488]
	mov	al, BYTE PTR [esi+2489]
	push	ebx
	mov	ebx, DWORD PTR [esi+2484]
	push	edi
	mov	edi, DWORD PTR [esi+2480]
	mov	DWORD PTR _occupants$[esp+40], OFFSET ??_7?$VectorClass@PAE@@6B@
	mov	DWORD PTR _occupants$[esp+44], edi
	mov	DWORD PTR _occupants$[esp+48], ebx
	mov	BYTE PTR _occupants$[esp+52], dl
	mov	BYTE PTR _occupants$[esp+53], al

; 593  : 	int x = occupants.Length();
; 594  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	mov	DWORD PTR __$EHRec$[esp+48], 0
	jle	SHORT $LN25@Force_Occu@3
	push	ebp
	mov	ebp, DWORD PTR _team$[esp+40]
	npad	3
$LL4@Force_Occu@3:

; 595  : 	{
; 596  : 		if ((occupants[i]) && (Commands->Get_Player_Type(occupants[i]) != team))

	cmp	DWORD PTR [edi+esi*4], 0
	je	SHORT $LN3@Force_Occu@3
	mov	ecx, DWORD PTR [edi+esi*4]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+248]
	push	ecx
	call	eax
	add	esp, 4
	cmp	eax, ebp
	je	SHORT $LN3@Force_Occu@3

; 597  : 		{
; 598  : 			Check_Transitions(occupants[i],true);

	mov	ecx, DWORD PTR [edi+esi*4]
	push	1
	push	ecx
	call	?Check_Transitions@@YA_NPAE_N@Z		; Check_Transitions
	add	esp, 8
$LN3@Force_Occu@3:
	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL4@Force_Occu@3
	pop	ebp
$LN25@Force_Occu@3:
	pop	edi
	pop	ebx
$LN2@Force_Occu@3:

; 599  : 		}
; 600  : 	}
; 601  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Force_Occupants_Exit_Team@@YAXPAEH@Z$0:
	lea	ecx, DWORD PTR _occupants$[ebp]
	jmp	??1?$VectorClass@PAE@@UAE@XZ		; VectorClass<unsigned char *>::~VectorClass<unsigned char *>
__ehhandler$?Force_Occupants_Exit_Team@@YAXPAEH@Z:
	mov	eax, OFFSET __ehfuncinfo$?Force_Occupants_Exit_Team@@YAXPAEH@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Force_Occupants_Exit_Team@@YAXPAEH@Z ENDP		; Force_Occupants_Exit_Team
PUBLIC	__real@00000000
PUBLIC	?IsInsideZone@@YA_NPAE0@Z			; IsInsideZone
EXTRN	??0Vector3@@QAE@MMM@Z:PROC			; Vector3::Vector3
EXTRN	__fltused:DWORD
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?IsInsideZone@@YA_NPAE0@Z
_TEXT	SEGMENT
_v$55181 = -12						; size = 12
_zone$ = 8						; size = 4
_obj$ = 12						; size = 4
?IsInsideZone@@YA_NPAE0@Z PROC				; IsInsideZone, COMDAT

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

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 12					; 0000000cH
	push	esi
	mov	esi, DWORD PTR _obj$[esp+12]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@IsInsideZo
	test	esi, esi
	je	SHORT $LN4@IsInsideZo

; 616  : 	}
; 617  : 	if (!Commands->Get_ID(zone) || !zone)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+108]
	push	edi
	mov	edi, DWORD PTR _zone$[esp+16]
	push	edi
	call	eax
	add	esp, 4
	test	eax, eax
	je	SHORT $LN2@IsInsideZo
	test	edi, edi
	je	SHORT $LN2@IsInsideZo

; 620  : 	}
; 621  : 	GameObject *o = As_SmartGameObj(obj);

	push	esi
	call	?As_SmartGameObj@@YAPAEPAE@Z		; As_SmartGameObj

; 622  : 	GameObject *o2 = As_ScriptZoneGameObj(zone);

	push	edi
	mov	esi, eax
	call	?As_ScriptZoneGameObj@@YAPAEPAE@Z	; As_ScriptZoneGameObj
	add	esp, 8

; 623  : 	if ((o) && (o2))

	test	esi, esi
	mov	edi, eax
	je	SHORT $LN2@IsInsideZo
	test	edi, edi
	je	SHORT $LN2@IsInsideZo

; 624  : 	{
; 625  : 		Vector3 v;

	fldz
	sub	esp, 12					; 0000000cH
	fst	DWORD PTR [esp+8]
	lea	ecx, DWORD PTR _v$55181[esp+32]
	fst	DWORD PTR [esp+4]
	fstp	DWORD PTR [esp]
	call	??0Vector3@@QAE@MMM@Z			; Vector3::Vector3

; 626  : 		((PhysicalGameObj *)o)->Get_Position(&v);

	mov	edx, DWORD PTR [esi]
	mov	edx, DWORD PTR [edx+56]
	lea	eax, DWORD PTR _v$55181[esp+20]
	push	eax
	mov	ecx, esi
	call	edx

; 627  : 		return PointInZone(o2,v);

	lea	eax, DWORD PTR _v$55181[esp+20]
	push	eax
	push	edi
	call	?PointInZone@@YA_NPAEABUVector3@@@Z	; PointInZone
	add	esp, 8
	pop	edi
	pop	esi

; 628  : 	}
; 629  : 	return false;
; 630  : }

	add	esp, 12					; 0000000cH
	ret	0
$LN2@IsInsideZo:
	pop	edi

; 618  : 	{
; 619  : 		return false;

	xor	al, al
	pop	esi

; 628  : 	}
; 629  : 	return false;
; 630  : }

	add	esp, 12					; 0000000cH
	ret	0
$LN4@IsInsideZo:

; 614  : 	{
; 615  : 		return false;

	xor	al, al
	pop	esi

; 628  : 	}
; 629  : 	return false;
; 630  : }

	add	esp, 12					; 0000000cH
	ret	0
?IsInsideZone@@YA_NPAE0@Z ENDP				; IsInsideZone
_TEXT	ENDS
PUBLIC	?Set_Vehicle_Gunner@@YAXPAEH@Z			; Set_Vehicle_Gunner
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Vehicle_Gunner@@YAXPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_seat$ = 12						; size = 4
?Set_Vehicle_Gunner@@YAXPAEH@Z PROC			; Set_Vehicle_Gunner, COMDAT

; 720  : 	if (!Commands->Get_ID(obj) || !obj || !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@Set_Vehicl
	test	esi, esi
	je	SHORT $LN1@Set_Vehicl
	push	esi
	call	?As_VehicleGameObj@@YAPAEPAE@Z		; As_VehicleGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Set_Vehicl

; 721  : 	{
; 722  : 		return;
; 723  : 	}
; 724  : 	VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
; 725  : 	VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;

	mov	eax, DWORD PTR [esi+2480]
	mov	esi, DWORD PTR [esi+2484]

; 726  : 	if (occupants.Length() <= 1)

	cmp	esi, 1
	jle	SHORT $LN1@Set_Vehicl

; 727  : 	{
; 728  : 		return;
; 729  : 	}
; 730  : 	if ((seat > 1) && (seat < occupants.Length()))

	mov	ecx, DWORD PTR _seat$[esp]
	cmp	ecx, 1
	jle	SHORT $LN1@Set_Vehicl
	cmp	ecx, esi
	jge	SHORT $LN1@Set_Vehicl

; 731  : 	{
; 732  : 		GameObject *obj2 = occupants[1];
; 733  : 		occupants[1] = occupants[seat];

	mov	esi, DWORD PTR [eax+ecx*4]
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [eax+4], esi

; 734  : 		occupants[seat] = obj2;

	mov	DWORD PTR [eax+ecx*4], edx
$LN1@Set_Vehicl:
	pop	esi

; 735  : 	}
; 736  : }

	ret	0
?Set_Vehicle_Gunner@@YAXPAEH@Z ENDP			; Set_Vehicle_Gunner
_TEXT	ENDS
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z PROC ; std::_DebugHeapAllocator<char>::deallocate, COMDAT
; _this$ = ecx

; 102  : 		_DELETE_CRT_VEC(_Ptr);

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

; 103  : 		}

	ret	8
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ENDP ; std::_DebugHeapAllocator<char>::deallocate
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@XZ		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_DebugHeapAllocator@D@std@@QAE@XZ PROC		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	0
??0?$_DebugHeapAllocator@D@std@@QAE@XZ ENDP		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z PROC	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z ENDP	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
END
