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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?Physical_Get_Transform@@3PAXA			; Physical_Get_Transform
PUBLIC	?Physical_Set_Transform@@3PAXA			; Physical_Set_Transform
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
?Physical_Get_Transform@@3PAXA DD 01H DUP (?)		; Physical_Get_Transform
?Physical_Set_Transform@@3PAXA DD 01H DUP (?)		; Physical_Set_Transform
_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	?Set_Transform@PhysicalGameObj@@QAEXPAUMatrix3D@@@Z ; PhysicalGameObj::Set_Transform
; Function compile flags: /Odtpy
; File d:\source code\stgm\engine_phys.cpp
;	COMDAT ?Set_Transform@PhysicalGameObj@@QAEXPAUMatrix3D@@@Z
_TEXT	SEGMENT
_mat$ = 8						; size = 4
?Set_Transform@PhysicalGameObj@@QAEXPAUMatrix3D@@@Z PROC ; PhysicalGameObj::Set_Transform, COMDAT
; _this$ = ecx

; 32   : IMPLEMENT_THUNK(Physical_Set_Transform)

	mov	eax, DWORD PTR ?Physical_Set_Transform@@3PAXA ; Physical_Set_Transform
	jmp	eax
?Set_Transform@PhysicalGameObj@@QAEXPAUMatrix3D@@@Z ENDP ; PhysicalGameObj::Set_Transform
_TEXT	ENDS
PUBLIC	?Get_Transform@PhysicalGameObj@@QAEPAUMatrix3D@@XZ ; PhysicalGameObj::Get_Transform
; Function compile flags: /Odtpy
;	COMDAT ?Get_Transform@PhysicalGameObj@@QAEPAUMatrix3D@@XZ
_TEXT	SEGMENT
?Get_Transform@PhysicalGameObj@@QAEPAUMatrix3D@@XZ PROC	; PhysicalGameObj::Get_Transform, COMDAT
; _this$ = ecx

; 34   : IMPLEMENT_THUNK_RETURN(Physical_Get_Transform)

	mov	eax, DWORD PTR ?Physical_Get_Transform@@3PAXA ; Physical_Get_Transform
	jmp	eax
?Get_Transform@PhysicalGameObj@@QAEPAUMatrix3D@@XZ ENDP	; PhysicalGameObj::Get_Transform
_TEXT	ENDS
PUBLIC	?InitEnginePhys@@YAXI@Z				; InitEnginePhys
; Function compile flags: /Ogtpy
;	COMDAT ?InitEnginePhys@@YAXI@Z
_TEXT	SEGMENT
_exe$ = 8						; size = 4
?InitEnginePhys@@YAXI@Z PROC				; InitEnginePhys, COMDAT

; 39   : 	switch(exe)

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

; 40   : 	{
; 41   : 		case 0: //game.exe
; 42   : 			Physical_Set_Transform = (void *)0x006A5EF0;

	mov	DWORD PTR ?Physical_Set_Transform@@3PAXA, 6971120 ; Physical_Set_Transform, 006a5ef0H

; 43   : 			Physical_Get_Transform = (void *)0x006A5F10;

	mov	DWORD PTR ?Physical_Get_Transform@@3PAXA, 6971152 ; Physical_Get_Transform, 006a5f10H

; 60   : 			break;
; 61   : 	}
; 62   : }

	ret	0
$LN4@InitEngine:

; 44   : 			break;
; 45   : 		case 1: //server.dat
; 46   : 			Physical_Set_Transform = (void *)0x006A5790;

	mov	DWORD PTR ?Physical_Set_Transform@@3PAXA, 6969232 ; Physical_Set_Transform, 006a5790H

; 47   : 			Physical_Get_Transform = (void *)0x006A57B0;

	mov	DWORD PTR ?Physical_Get_Transform@@3PAXA, 6969264 ; Physical_Get_Transform, 006a57b0H

; 60   : 			break;
; 61   : 	}
; 62   : }

	ret	0
$LN3@InitEngine:

; 48   : 			break;
; 49   : 		case 2: //RH73
; 50   : 			Physical_Set_Transform = (void *)0x0813DA90;

	mov	DWORD PTR ?Physical_Set_Transform@@3PAXA, 135518864 ; Physical_Set_Transform, 0813da90H

; 51   : 			Physical_Get_Transform = (void *)0x0813DAAC;

	mov	DWORD PTR ?Physical_Get_Transform@@3PAXA, 135518892 ; Physical_Get_Transform, 0813daacH

; 60   : 			break;
; 61   : 	}
; 62   : }

	ret	0
$LN2@InitEngine:

; 52   : 			break;
; 53   : 		case 3: //RH8
; 54   : 			Physical_Set_Transform = (void *)0x0812DA3A;

	mov	DWORD PTR ?Physical_Set_Transform@@3PAXA, 135453242 ; Physical_Set_Transform, 0812da3aH

; 55   : 			Physical_Get_Transform = (void *)0x0812DA56;

	mov	DWORD PTR ?Physical_Get_Transform@@3PAXA, 135453270 ; Physical_Get_Transform, 0812da56H

; 60   : 			break;
; 61   : 	}
; 62   : }

	ret	0
$LN1@InitEngine:

; 56   : 			break;
; 57   : 		default:
; 58   : 			Physical_Set_Transform = (void *)0;

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

; 59   : 			Physical_Get_Transform = (void *)0;

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

; 60   : 			break;
; 61   : 	}
; 62   : }

	ret	0
	npad	3
$LN10@InitEngine:
	DD	$LN5@InitEngine
	DD	$LN4@InitEngine
	DD	$LN3@InitEngine
	DD	$LN2@InitEngine
?InitEnginePhys@@YAXI@Z ENDP				; InitEnginePhys
_TEXT	ENDS
PUBLIC	??_C@_05FAECCOPD@DUMMY?$AA@			; `string'
PUBLIC	?Get_Model@@YAPBDPAE@Z				; Get_Model
EXTRN	?As_PhysicalGameObj@@YAPAEPAE@Z:PROC		; As_PhysicalGameObj
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
;	COMDAT ??_C@_05FAECCOPD@DUMMY?$AA@
CONST	SEGMENT
??_C@_05FAECCOPD@DUMMY?$AA@ DB 'DUMMY', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Model@@YAPBDPAE@Z
_TEXT	SEGMENT
_o$ = -4						; size = 4
_obj$ = 8						; size = 4
?Get_Model@@YAPBDPAE@Z PROC				; Get_Model, COMDAT

; 65   : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

; 67   : 	{
; 68   : 		return "DUMMY";
; 69   : 	}
; 70   : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 71   : 	if (!o)

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

; 72   : 	{
; 73   : 		return "DUMMY";

	je	SHORT $LN2@Get_Model

; 74   : 	}
; 75   : #ifdef WIN32
; 76   : 	_asm {
; 77   : 		mov eax,o

	mov	eax, DWORD PTR _o$[ebp]

; 78   : 		mov ebx,[eax+0x774]

	mov	ebx, DWORD PTR [eax+1908]

; 79   : 		mov ecx,[ebx+0x3C]

	mov	ecx, DWORD PTR [ebx+60]

; 80   : 		mov eax,[ecx]

	mov	eax, DWORD PTR [ecx]

; 81   : 		mov ebx,[eax+0x10]

	mov	ebx, DWORD PTR [eax+16]

; 82   : 		call ebx

	call	ebx

; 83   : 	}
; 84   : #else
; 85   : 	o+=0x774;
; 86   : 	char *p = (char *)*(unsigned int *)o;
; 87   : 	p+=0x54;
; 88   : 	char *r = (char *)*(unsigned int *)p;
; 89   : #ifndef RH8
; 90   : 	r += 0x1C;
; 91   : #endif
; 92   : 	char *v = (char *)*(unsigned int *)r;
; 93   : #ifndef RH8
; 94   : 	r -= 0x1C;
; 95   : 	v += 4;
; 96   : #endif
; 97   : 	v += 0x14;
; 98   : 	Get_Name *n = (Get_Name*)v;
; 99   : 	Get_Name gn = (Get_Name)*n;
; 100  : 	return gn(r);
; 101  : #endif
; 102  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@Get_Model:
	pop	esi
	mov	eax, OFFSET ??_C@_05FAECCOPD@DUMMY?$AA@
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?Get_Model@@YAPBDPAE@Z ENDP				; Get_Model
_TEXT	ENDS
PUBLIC	?Is_TrackedVehicle@@YA_NPAE@Z			; Is_TrackedVehicle
EXTRN	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z:PROC ; Get_Phys_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Is_TrackedVehicle@@YA_NPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Is_TrackedVehicle@@YA_NPAE@Z PROC			; Is_TrackedVehicle, COMDAT

; 106  : 	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@Is_Tracked
	test	esi, esi
	je	SHORT $LN4@Is_Tracked

; 109  : 	}
; 110  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 111  : 	if (!o)

	test	eax, eax

; 112  : 	{
; 113  : 		return false;

	je	SHORT $LN4@Is_Tracked

; 114  : 	}
; 115  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 116  : 	if (!definition)

	test	eax, eax

; 117  : 	{
; 118  : 		return false;

	je	SHORT $LN4@Is_Tracked

; 119  : 	}
; 120  : 	int Class_ID = definition->Get_Class_ID();

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

; 121  : 	if (Class_ID != 0x900C)

	cmp	eax, 36876				; 0000900cH
	sete	al
	pop	esi

; 122  : 	{
; 123  : 		return false;
; 124  : 	}
; 125  : 	return true;
; 126  : }

	ret	0
$LN4@Is_Tracked:

; 107  : 	{
; 108  : 		return false;

	xor	al, al
	pop	esi

; 122  : 	{
; 123  : 		return false;
; 124  : 	}
; 125  : 	return true;
; 126  : }

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

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

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

; 133  : 	}
; 134  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 135  : 	if (!o)

	test	eax, eax

; 136  : 	{
; 137  : 		return false;

	je	SHORT $LN4@Is_VTOLVeh

; 138  : 	}
; 139  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 140  : 	if (!definition)

	test	eax, eax

; 141  : 	{
; 142  : 		return false;

	je	SHORT $LN4@Is_VTOLVeh

; 143  : 	}
; 144  : 	int Class_ID = definition->Get_Class_ID();

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

; 145  : 	if (Class_ID != 0x900D)

	cmp	eax, 36877				; 0000900dH
	sete	al
	pop	esi

; 146  : 	{
; 147  : 		return false;
; 148  : 	}
; 149  : 	return true;
; 150  : }

	ret	0
$LN4@Is_VTOLVeh:

; 131  : 	{
; 132  : 		return false;

	xor	al, al
	pop	esi

; 146  : 	{
; 147  : 		return false;
; 148  : 	}
; 149  : 	return true;
; 150  : }

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

; 154  : 	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@Is_Wheeled
	test	esi, esi
	je	SHORT $LN4@Is_Wheeled

; 157  : 	}
; 158  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 159  : 	if (!o)

	test	eax, eax

; 160  : 	{
; 161  : 		return false;

	je	SHORT $LN4@Is_Wheeled

; 162  : 	}
; 163  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 164  : 	if (!definition)

	test	eax, eax

; 165  : 	{
; 166  : 		return false;

	je	SHORT $LN4@Is_Wheeled

; 167  : 	}
; 168  : 	int Class_ID = definition->Get_Class_ID();

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

; 169  : 	if (Class_ID != 0x9006)

	cmp	eax, 36870				; 00009006H
	sete	al
	pop	esi

; 170  : 	{
; 171  : 		return false;
; 172  : 	}
; 173  : 	return true;
; 174  : }

	ret	0
$LN4@Is_Wheeled:

; 155  : 	{
; 156  : 		return false;

	xor	al, al
	pop	esi

; 170  : 	{
; 171  : 		return false;
; 172  : 	}
; 173  : 	return true;
; 174  : }

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

; 178  : 	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@Is_Motorcy
	test	esi, esi
	je	SHORT $LN4@Is_Motorcy

; 181  : 	}
; 182  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 183  : 	if (!o)

	test	eax, eax

; 184  : 	{
; 185  : 		return false;

	je	SHORT $LN4@Is_Motorcy

; 186  : 	}
; 187  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 188  : 	if (!definition)

	test	eax, eax

; 189  : 	{
; 190  : 		return false;

	je	SHORT $LN4@Is_Motorcy

; 191  : 	}
; 192  : 	int Class_ID = definition->Get_Class_ID();

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

; 193  : 	if (Class_ID != 0x9002)

	cmp	eax, 36866				; 00009002H
	sete	al
	pop	esi

; 194  : 	{
; 195  : 		return false;
; 196  : 	}
; 197  : 	return true;
; 198  : }

	ret	0
$LN4@Is_Motorcy:

; 179  : 	{
; 180  : 		return false;

	xor	al, al
	pop	esi

; 194  : 	{
; 195  : 		return false;
; 196  : 	}
; 197  : 	return true;
; 198  : }

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

; 202  : 	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@Is_Door
	test	esi, esi
	je	SHORT $LN4@Is_Door

; 205  : 	}
; 206  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 207  : 	if (!o)

	test	eax, eax

; 208  : 	{
; 209  : 		return false;

	je	SHORT $LN4@Is_Door

; 210  : 	}
; 211  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 212  : 	if (!definition)

	test	eax, eax

; 213  : 	{
; 214  : 		return false;

	je	SHORT $LN4@Is_Door

; 215  : 	}
; 216  : 	int Class_ID = definition->Get_Class_ID();

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

; 217  : 	if (Class_ID != 0x9080)

	cmp	eax, 36992				; 00009080H
	sete	al
	pop	esi

; 218  : 	{
; 219  : 		return false;
; 220  : 	}
; 221  : 	return true;
; 222  : }

	ret	0
$LN4@Is_Door:

; 203  : 	{
; 204  : 		return false;

	xor	al, al
	pop	esi

; 218  : 	{
; 219  : 		return false;
; 220  : 	}
; 221  : 	return true;
; 222  : }

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

; 226  : 	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@Is_Elevato
	test	esi, esi
	je	SHORT $LN4@Is_Elevato

; 229  : 	}
; 230  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 231  : 	if (!o)

	test	eax, eax

; 232  : 	{
; 233  : 		return false;

	je	SHORT $LN4@Is_Elevato

; 234  : 	}
; 235  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 236  : 	if (!definition)

	test	eax, eax

; 237  : 	{
; 238  : 		return false;

	je	SHORT $LN4@Is_Elevato

; 239  : 	}
; 240  : 	int Class_ID = definition->Get_Class_ID();

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

; 241  : 	if (Class_ID != 0x9081)

	cmp	eax, 36993				; 00009081H
	sete	al
	pop	esi

; 242  : 	{
; 243  : 		return false;
; 244  : 	}
; 245  : 	return true;
; 246  : }

	ret	0
$LN4@Is_Elevato:

; 227  : 	{
; 228  : 		return false;

	xor	al, al
	pop	esi

; 242  : 	{
; 243  : 		return false;
; 244  : 	}
; 245  : 	return true;
; 246  : }

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

; 250  : 	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@Is_Damagea
	test	esi, esi
	je	SHORT $LN4@Is_Damagea

; 253  : 	}
; 254  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 255  : 	if (!o)

	test	eax, eax

; 256  : 	{
; 257  : 		return false;

	je	SHORT $LN4@Is_Damagea

; 258  : 	}
; 259  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 260  : 	if (!definition)

	test	eax, eax

; 261  : 	{
; 262  : 		return false;

	je	SHORT $LN4@Is_Damagea

; 263  : 	}
; 264  : 	int Class_ID = definition->Get_Class_ID();

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

; 265  : 	if (Class_ID != 0x9082)

	cmp	eax, 36994				; 00009082H
	sete	al
	pop	esi

; 266  : 	{
; 267  : 		return false;
; 268  : 	}
; 269  : 	return true;
; 270  : }

	ret	0
$LN4@Is_Damagea:

; 251  : 	{
; 252  : 		return false;

	xor	al, al
	pop	esi

; 266  : 	{
; 267  : 		return false;
; 268  : 	}
; 269  : 	return true;
; 270  : }

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

; 274  : 	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@Is_Accessa
	test	esi, esi
	je	SHORT $LN4@Is_Accessa

; 277  : 	}
; 278  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 279  : 	if (!o)

	test	eax, eax

; 280  : 	{
; 281  : 		return false;

	je	SHORT $LN4@Is_Accessa

; 282  : 	}
; 283  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 284  : 	if (!definition)

	test	eax, eax

; 285  : 	{
; 286  : 		return false;

	je	SHORT $LN4@Is_Accessa

; 287  : 	}
; 288  : 	int Class_ID = definition->Get_Class_ID();

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

; 289  : 	if (Class_ID != 0x9010)

	cmp	eax, 36880				; 00009010H
	sete	al
	pop	esi

; 290  : 	{
; 291  : 		return false;
; 292  : 	}
; 293  : 	return true;
; 294  : }

	ret	0
$LN4@Is_Accessa:

; 275  : 	{
; 276  : 		return false;

	xor	al, al
	pop	esi

; 290  : 	{
; 291  : 		return false;
; 292  : 	}
; 293  : 	return true;
; 294  : }

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

; 298  : 	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@Is_Decorat
	test	esi, esi
	je	SHORT $LN4@Is_Decorat

; 301  : 	}
; 302  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 303  : 	if (!o)

	test	eax, eax

; 304  : 	{
; 305  : 		return false;

	je	SHORT $LN4@Is_Decorat

; 306  : 	}
; 307  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 308  : 	if (!definition)

	test	eax, eax

; 309  : 	{
; 310  : 		return false;

	je	SHORT $LN4@Is_Decorat

; 311  : 	}
; 312  : 	int Class_ID = definition->Get_Class_ID();

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

; 313  : 	if (Class_ID != 0x9000)

	cmp	eax, 36864				; 00009000H
	sete	al
	pop	esi

; 314  : 	{
; 315  : 		return false;
; 316  : 	}
; 317  : 	return true;
; 318  : }

	ret	0
$LN4@Is_Decorat:

; 299  : 	{
; 300  : 		return false;

	xor	al, al
	pop	esi

; 314  : 	{
; 315  : 		return false;
; 316  : 	}
; 317  : 	return true;
; 318  : }

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

; 322  : 	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@Is_HumanPh
	test	esi, esi
	je	SHORT $LN4@Is_HumanPh

; 325  : 	}
; 326  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 327  : 	if (!o)

	test	eax, eax

; 328  : 	{
; 329  : 		return false;

	je	SHORT $LN4@Is_HumanPh

; 330  : 	}
; 331  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 332  : 	if (!definition)

	test	eax, eax

; 333  : 	{
; 334  : 		return false;

	je	SHORT $LN4@Is_HumanPh

; 335  : 	}
; 336  : 	int Class_ID = definition->Get_Class_ID();

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

; 337  : 	if (Class_ID != 0x9001)

	cmp	eax, 36865				; 00009001H
	sete	al
	pop	esi

; 338  : 	{
; 339  : 		return false;
; 340  : 	}
; 341  : 	return true;
; 342  : }

	ret	0
$LN4@Is_HumanPh:

; 323  : 	{
; 324  : 		return false;

	xor	al, al
	pop	esi

; 338  : 	{
; 339  : 		return false;
; 340  : 	}
; 341  : 	return true;
; 342  : }

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

; 346  : 	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@Is_MotorVe
	test	esi, esi
	je	SHORT $LN4@Is_MotorVe

; 349  : 	}
; 350  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 351  : 	if (!o)

	test	eax, eax

; 352  : 	{
; 353  : 		return false;

	je	SHORT $LN4@Is_MotorVe

; 354  : 	}
; 355  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 356  : 	if (!definition)

	test	eax, eax

; 357  : 	{
; 358  : 		return false;

	je	SHORT $LN4@Is_MotorVe

; 359  : 	}
; 360  : 	int Class_ID = definition->Get_Class_ID();

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

; 361  : 	if (Class_ID != 0x9003)

	cmp	eax, 36867				; 00009003H
	sete	al
	pop	esi

; 362  : 	{
; 363  : 		return false;
; 364  : 	}
; 365  : 	return true;
; 366  : }

	ret	0
$LN4@Is_MotorVe:

; 347  : 	{
; 348  : 		return false;

	xor	al, al
	pop	esi

; 362  : 	{
; 363  : 		return false;
; 364  : 	}
; 365  : 	return true;
; 366  : }

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

; 370  : 	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@Is_Phys3
	test	esi, esi
	je	SHORT $LN4@Is_Phys3

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

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

; 375  : 	if (!o)

	test	eax, eax

; 376  : 	{
; 377  : 		return false;

	je	SHORT $LN4@Is_Phys3

; 378  : 	}
; 379  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 380  : 	if (!definition)

	test	eax, eax

; 381  : 	{
; 382  : 		return false;

	je	SHORT $LN4@Is_Phys3

; 383  : 	}
; 384  : 	int Class_ID = definition->Get_Class_ID();

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

; 385  : 	if (Class_ID != 0x9004)

	cmp	eax, 36868				; 00009004H
	sete	al
	pop	esi

; 386  : 	{
; 387  : 		return false;
; 388  : 	}
; 389  : 	return true;
; 390  : }

	ret	0
$LN4@Is_Phys3:

; 371  : 	{
; 372  : 		return false;

	xor	al, al
	pop	esi

; 386  : 	{
; 387  : 		return false;
; 388  : 	}
; 389  : 	return true;
; 390  : }

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

; 394  : 	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@Is_RigidBo
	test	esi, esi
	je	SHORT $LN4@Is_RigidBo

; 397  : 	}
; 398  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 399  : 	if (!o)

	test	eax, eax

; 400  : 	{
; 401  : 		return false;

	je	SHORT $LN4@Is_RigidBo

; 402  : 	}
; 403  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 404  : 	if (!definition)

	test	eax, eax

; 405  : 	{
; 406  : 		return false;

	je	SHORT $LN4@Is_RigidBo

; 407  : 	}
; 408  : 	int Class_ID = definition->Get_Class_ID();

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

; 409  : 	if (Class_ID != 0x9005)

	cmp	eax, 36869				; 00009005H
	sete	al
	pop	esi

; 410  : 	{
; 411  : 		return false;
; 412  : 	}
; 413  : 	return true;
; 414  : }

	ret	0
$LN4@Is_RigidBo:

; 395  : 	{
; 396  : 		return false;

	xor	al, al
	pop	esi

; 410  : 	{
; 411  : 		return false;
; 412  : 	}
; 413  : 	return true;
; 414  : }

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

; 418  : 	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@Is_Shakeab
	test	esi, esi
	je	SHORT $LN4@Is_Shakeab

; 421  : 	}
; 422  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 423  : 	if (!o)

	test	eax, eax

; 424  : 	{
; 425  : 		return false;

	je	SHORT $LN4@Is_Shakeab

; 426  : 	}
; 427  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 428  : 	if (!definition)

	test	eax, eax

; 429  : 	{
; 430  : 		return false;

	je	SHORT $LN4@Is_Shakeab

; 431  : 	}
; 432  : 	int Class_ID = definition->Get_Class_ID();

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

; 433  : 	if (Class_ID != 0x900F)

	cmp	eax, 36879				; 0000900fH
	sete	al
	pop	esi

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

	ret	0
$LN4@Is_Shakeab:

; 419  : 	{
; 420  : 		return false;

	xor	al, al
	pop	esi

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

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

; 442  : 	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@Is_StaticA
	test	esi, esi
	je	SHORT $LN4@Is_StaticA

; 445  : 	}
; 446  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 447  : 	if (!o)

	test	eax, eax

; 448  : 	{
; 449  : 		return false;

	je	SHORT $LN4@Is_StaticA

; 450  : 	}
; 451  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 452  : 	if (!definition)

	test	eax, eax

; 453  : 	{
; 454  : 		return false;

	je	SHORT $LN4@Is_StaticA

; 455  : 	}
; 456  : 	int Class_ID = definition->Get_Class_ID();

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

; 457  : 	if (Class_ID != 0x9008)

	cmp	eax, 36872				; 00009008H
	sete	al
	pop	esi

; 458  : 	{
; 459  : 		return false;
; 460  : 	}
; 461  : 	return true;
; 462  : }

	ret	0
$LN4@Is_StaticA:

; 443  : 	{
; 444  : 		return false;

	xor	al, al
	pop	esi

; 458  : 	{
; 459  : 		return false;
; 460  : 	}
; 461  : 	return true;
; 462  : }

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

; 466  : 	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@Is_StaticP
	test	esi, esi
	je	SHORT $LN4@Is_StaticP

; 469  : 	}
; 470  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 471  : 	if (!o)

	test	eax, eax

; 472  : 	{
; 473  : 		return false;

	je	SHORT $LN4@Is_StaticP

; 474  : 	}
; 475  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 476  : 	if (!definition)

	test	eax, eax

; 477  : 	{
; 478  : 		return false;

	je	SHORT $LN4@Is_StaticP

; 479  : 	}
; 480  : 	int Class_ID = definition->Get_Class_ID();

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

; 481  : 	if (Class_ID != 0x9007)

	cmp	eax, 36871				; 00009007H
	sete	al
	pop	esi

; 482  : 	{
; 483  : 		return false;
; 484  : 	}
; 485  : 	return true;
; 486  : }

	ret	0
$LN4@Is_StaticP:

; 467  : 	{
; 468  : 		return false;

	xor	al, al
	pop	esi

; 482  : 	{
; 483  : 		return false;
; 484  : 	}
; 485  : 	return true;
; 486  : }

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

; 490  : 	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@Is_TimedDe
	test	esi, esi
	je	SHORT $LN4@Is_TimedDe

; 493  : 	}
; 494  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 495  : 	if (!o)

	test	eax, eax

; 496  : 	{
; 497  : 		return false;

	je	SHORT $LN4@Is_TimedDe

; 498  : 	}
; 499  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 500  : 	if (!definition)

	test	eax, eax

; 501  : 	{
; 502  : 		return false;

	je	SHORT $LN4@Is_TimedDe

; 503  : 	}
; 504  : 	int Class_ID = definition->Get_Class_ID();

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

; 505  : 	if (Class_ID != 0x900A)

	cmp	eax, 36874				; 0000900aH
	sete	al
	pop	esi

; 506  : 	{
; 507  : 		return false;
; 508  : 	}
; 509  : 	return true;
; 510  : }

	ret	0
$LN4@Is_TimedDe:

; 491  : 	{
; 492  : 		return false;

	xor	al, al
	pop	esi

; 506  : 	{
; 507  : 		return false;
; 508  : 	}
; 509  : 	return true;
; 510  : }

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

; 514  : 	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@Is_Vehicle
	test	esi, esi
	je	SHORT $LN4@Is_Vehicle

; 517  : 	}
; 518  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 519  : 	if (!o)

	test	eax, eax

; 520  : 	{
; 521  : 		return false;

	je	SHORT $LN4@Is_Vehicle

; 522  : 	}
; 523  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 524  : 	if (!definition)

	test	eax, eax

; 525  : 	{
; 526  : 		return false;

	je	SHORT $LN4@Is_Vehicle

; 527  : 	}
; 528  : 	int Class_ID = definition->Get_Class_ID();

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

; 529  : 	if (Class_ID != 0x900B)

	cmp	eax, 36875				; 0000900bH
	sete	al
	pop	esi

; 530  : 	{
; 531  : 		return false;
; 532  : 	}
; 533  : 	return true;
; 534  : }

	ret	0
$LN4@Is_Vehicle:

; 515  : 	{
; 516  : 		return false;

	xor	al, al
	pop	esi

; 530  : 	{
; 531  : 		return false;
; 532  : 	}
; 533  : 	return true;
; 534  : }

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

; 538  : 	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@Is_Dynamic
	test	esi, esi
	je	SHORT $LN4@Is_Dynamic

; 541  : 	}
; 542  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 543  : 	if (!o)

	test	eax, eax

; 544  : 	{
; 545  : 		return false;

	je	SHORT $LN4@Is_Dynamic

; 546  : 	}
; 547  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 548  : 	if (!definition)

	test	eax, eax

; 549  : 	{
; 550  : 		return false;

	je	SHORT $LN4@Is_Dynamic

; 551  : 	}
; 552  : 	int Class_ID = definition->Get_Class_ID();

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

; 553  : 	if (Class_ID != 0x900E)

	cmp	eax, 36878				; 0000900eH
	sete	al
	pop	esi

; 554  : 	{
; 555  : 		return false;
; 556  : 	}
; 557  : 	return true;
; 558  : }

	ret	0
$LN4@Is_Dynamic:

; 539  : 	{
; 540  : 		return false;

	xor	al, al
	pop	esi

; 554  : 	{
; 555  : 		return false;
; 556  : 	}
; 557  : 	return true;
; 558  : }

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

; 562  : 	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@Is_Buildin
	test	esi, esi
	je	SHORT $LN4@Is_Buildin

; 565  : 	}
; 566  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 567  : 	if (!o)

	test	eax, eax

; 568  : 	{
; 569  : 		return false;

	je	SHORT $LN4@Is_Buildin

; 570  : 	}
; 571  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 572  : 	if (!definition)

	test	eax, eax

; 573  : 	{
; 574  : 		return false;

	je	SHORT $LN4@Is_Buildin

; 575  : 	}
; 576  : 	int Class_ID = definition->Get_Class_ID();

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

; 577  : 	if (Class_ID != 0x9083)

	cmp	eax, 36995				; 00009083H
	sete	al
	pop	esi

; 578  : 	{
; 579  : 		return false;
; 580  : 	}
; 581  : 	return true;
; 582  : }

	ret	0
$LN4@Is_Buildin:

; 563  : 	{
; 564  : 		return false;

	xor	al, al
	pop	esi

; 578  : 	{
; 579  : 		return false;
; 580  : 	}
; 581  : 	return true;
; 582  : }

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

; 586  : 	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@Is_Project
	test	esi, esi
	je	SHORT $LN4@Is_Project

; 589  : 	}
; 590  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 591  : 	if (!o)

	test	eax, eax

; 592  : 	{
; 593  : 		return false;

	je	SHORT $LN4@Is_Project

; 594  : 	}
; 595  : 	DefinitionClass* definition = Get_Phys_Definition(o);

	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4

; 596  : 	if (!definition)

	test	eax, eax

; 597  : 	{
; 598  : 		return false;

	je	SHORT $LN4@Is_Project

; 599  : 	}
; 600  : 	int Class_ID = definition->Get_Class_ID();

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

; 601  : 	if (Class_ID != 0x9009)

	cmp	eax, 36873				; 00009009H
	sete	al
	pop	esi

; 602  : 	{
; 603  : 		return false;
; 604  : 	}
; 605  : 	return true;
; 606  : }

	ret	0
$LN4@Is_Project:

; 587  : 	{
; 588  : 		return false;

	xor	al, al
	pop	esi

; 602  : 	{
; 603  : 		return false;
; 604  : 	}
; 605  : 	return true;
; 606  : }

	ret	0
?Is_Projectile@@YA_NPAE@Z ENDP				; Is_Projectile
_TEXT	ENDS
PUBLIC	__real@00000000
PUBLIC	?Get_Animation_Frame@@YAMPAE@Z			; Get_Animation_Frame
EXTRN	__fltused:DWORD
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Animation_Frame@@YAMPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Animation_Frame@@YAMPAE@Z PROC			; Get_Animation_Frame, COMDAT

; 611  : 	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_Animat
	test	esi, esi
	je	SHORT $LN3@Get_Animat

; 614  : 	}
; 615  : 	PhysicalGameObj *o = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 616  : 	if (!o)

	test	eax, eax

; 617  : 	{
; 618  : 		return 0;

	je	SHORT $LN3@Get_Animat

; 619  : 	}
; 620  : 	unsigned char *x = (unsigned char *)o->Animation;

	mov	eax, DWORD PTR [eax+1912]

; 621  : 	if (!x)

	test	eax, eax

; 622  : 	{
; 623  : 		return 0;

	je	SHORT $LN3@Get_Animat

; 624  : 	}
; 625  : 	float a = (float)*(float *)(x+0x14);
; 626  : 	return a;

	fld	DWORD PTR [eax+20]
	pop	esi

; 627  : }

	ret	0
$LN3@Get_Animat:

; 612  : 	{
; 613  : 		return 0;

	fldz
	pop	esi

; 627  : }

	ret	0
?Get_Animation_Frame@@YAMPAE@Z ENDP			; Get_Animation_Frame
_TEXT	ENDS
PUBLIC	??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@		; `string'
PUBLIC	??_C@_0O@IEFMGMKP@Is_Projectile?$AA@		; `string'
PUBLIC	??_C@_0BF@LGMFACPH@Is_BuildingAggregate?$AA@	; `string'
PUBLIC	??_C@_0BD@JPEOMMEF@Is_DynamicAnimPhys?$AA@	; `string'
PUBLIC	??_C@_0P@DPJMCENA@Is_VehiclePhys?$AA@		; `string'
PUBLIC	??_C@_0BH@OPGDFLJA@Is_TimedDecorationPhys?$AA@	; `string'
PUBLIC	??_C@_0O@PMHLNCPL@Is_StaticPhys?$AA@		; `string'
PUBLIC	??_C@_0BC@BNMPKHKP@Is_StaticAnimPhys?$AA@	; `string'
PUBLIC	??_C@_0BI@IDFOMLA@Is_ShakeableStatricPhys?$AA@	; `string'
PUBLIC	??_C@_0N@JIBAJJLF@Is_RigidBody?$AA@		; `string'
PUBLIC	??_C@_08INKCDJHE@Is_Phys3?$AA@			; `string'
PUBLIC	??_C@_0BA@NMEMOAAA@Is_MotorVehicle?$AA@		; `string'
PUBLIC	??_C@_0N@IIDKGMMK@Is_HumanPhys?$AA@		; `string'
PUBLIC	??_C@_0BC@CGMCEOPL@Is_DecorationPhys?$AA@	; `string'
PUBLIC	??_C@_0BC@FHHCMIE@Is_AccessablePhys?$AA@	; `string'
PUBLIC	??_C@_0BI@MILEOEOM@Is_DamageableStaticPhys?$AA@	; `string'
PUBLIC	??_C@_0M@PAGNNLL@Is_Elevator?$AA@		; `string'
PUBLIC	??_C@_07BMODAHHB@Is_Door?$AA@			; `string'
PUBLIC	?Get_Physics@@YAPBDPAE@Z			; Get_Physics
;	COMDAT ??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@
CONST	SEGMENT
??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@ DB '(null)', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@IEFMGMKP@Is_Projectile?$AA@
CONST	SEGMENT
??_C@_0O@IEFMGMKP@Is_Projectile?$AA@ DB 'Is_Projectile', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@LGMFACPH@Is_BuildingAggregate?$AA@
CONST	SEGMENT
??_C@_0BF@LGMFACPH@Is_BuildingAggregate?$AA@ DB 'Is_BuildingAggregate', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@JPEOMMEF@Is_DynamicAnimPhys?$AA@
CONST	SEGMENT
??_C@_0BD@JPEOMMEF@Is_DynamicAnimPhys?$AA@ DB 'Is_DynamicAnimPhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@DPJMCENA@Is_VehiclePhys?$AA@
CONST	SEGMENT
??_C@_0P@DPJMCENA@Is_VehiclePhys?$AA@ DB 'Is_VehiclePhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@OPGDFLJA@Is_TimedDecorationPhys?$AA@
CONST	SEGMENT
??_C@_0BH@OPGDFLJA@Is_TimedDecorationPhys?$AA@ DB 'Is_TimedDecorationPhys'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@PMHLNCPL@Is_StaticPhys?$AA@
CONST	SEGMENT
??_C@_0O@PMHLNCPL@Is_StaticPhys?$AA@ DB 'Is_StaticPhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@BNMPKHKP@Is_StaticAnimPhys?$AA@
CONST	SEGMENT
??_C@_0BC@BNMPKHKP@Is_StaticAnimPhys?$AA@ DB 'Is_StaticAnimPhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BI@IDFOMLA@Is_ShakeableStatricPhys?$AA@
CONST	SEGMENT
??_C@_0BI@IDFOMLA@Is_ShakeableStatricPhys?$AA@ DB 'Is_ShakeableStatricPhy'
	DB	's', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@JIBAJJLF@Is_RigidBody?$AA@
CONST	SEGMENT
??_C@_0N@JIBAJJLF@Is_RigidBody?$AA@ DB 'Is_RigidBody', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08INKCDJHE@Is_Phys3?$AA@
CONST	SEGMENT
??_C@_08INKCDJHE@Is_Phys3?$AA@ DB 'Is_Phys3', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@NMEMOAAA@Is_MotorVehicle?$AA@
CONST	SEGMENT
??_C@_0BA@NMEMOAAA@Is_MotorVehicle?$AA@ DB 'Is_MotorVehicle', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@IIDKGMMK@Is_HumanPhys?$AA@
CONST	SEGMENT
??_C@_0N@IIDKGMMK@Is_HumanPhys?$AA@ DB 'Is_HumanPhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@CGMCEOPL@Is_DecorationPhys?$AA@
CONST	SEGMENT
??_C@_0BC@CGMCEOPL@Is_DecorationPhys?$AA@ DB 'Is_DecorationPhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@FHHCMIE@Is_AccessablePhys?$AA@
CONST	SEGMENT
??_C@_0BC@FHHCMIE@Is_AccessablePhys?$AA@ DB 'Is_AccessablePhys', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BI@MILEOEOM@Is_DamageableStaticPhys?$AA@
CONST	SEGMENT
??_C@_0BI@MILEOEOM@Is_DamageableStaticPhys?$AA@ DB 'Is_DamageableStaticPh'
	DB	'ys', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@PAGNNLL@Is_Elevator?$AA@
CONST	SEGMENT
??_C@_0M@PAGNNLL@Is_Elevator?$AA@ DB 'Is_Elevator', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_07BMODAHHB@Is_Door?$AA@
CONST	SEGMENT
??_C@_07BMODAHHB@Is_Door?$AA@ DB 'Is_Door', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Physics@@YAPBDPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Physics@@YAPBDPAE@Z PROC				; Get_Physics, COMDAT

; 631  : 	if (Is_Door(obj)) return "Is_Door";

	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 $LN34@Get_Physic
	test	esi, esi
	je	SHORT $LN34@Get_Physic
	push	esi
	call	?As_PhysicalGameObj@@YAPAEPAE@Z		; As_PhysicalGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN34@Get_Physic
	push	eax
	call	?Get_Phys_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Phys_Definition
	add	esp, 4
	test	eax, eax
	je	SHORT $LN34@Get_Physic
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+32]
	call	eax
	cmp	eax, 36992				; 00009080H
	jne	SHORT $LN34@Get_Physic
	mov	eax, OFFSET ??_C@_07BMODAHHB@Is_Door?$AA@
	pop	esi

; 649  : }

	ret	0
$LN34@Get_Physic:

; 632  : 	else if (Is_Elevator(obj)) return "Is_Elevator";

	push	esi
	call	?Is_Elevator@@YA_NPAE@Z			; Is_Elevator
	add	esp, 4
	test	al, al
	je	SHORT $LN32@Get_Physic
	mov	eax, OFFSET ??_C@_0M@PAGNNLL@Is_Elevator?$AA@
	pop	esi

; 649  : }

	ret	0
$LN32@Get_Physic:

; 633  : 	else if (Is_DamageableStaticPhys(obj)) return "Is_DamageableStaticPhys";

	push	esi
	call	?Is_DamageableStaticPhys@@YA_NPAE@Z	; Is_DamageableStaticPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN30@Get_Physic
	mov	eax, OFFSET ??_C@_0BI@MILEOEOM@Is_DamageableStaticPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN30@Get_Physic:

; 634  : 	else if (Is_AccessablePhys(obj)) return "Is_AccessablePhys";

	push	esi
	call	?Is_AccessablePhys@@YA_NPAE@Z		; Is_AccessablePhys
	add	esp, 4
	test	al, al
	je	SHORT $LN28@Get_Physic
	mov	eax, OFFSET ??_C@_0BC@FHHCMIE@Is_AccessablePhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN28@Get_Physic:

; 635  : 	else if (Is_DecorationPhys(obj)) return "Is_DecorationPhys";

	push	esi
	call	?Is_DecorationPhys@@YA_NPAE@Z		; Is_DecorationPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN26@Get_Physic
	mov	eax, OFFSET ??_C@_0BC@CGMCEOPL@Is_DecorationPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN26@Get_Physic:

; 636  : 	else if (Is_HumanPhys(obj)) return "Is_HumanPhys";

	push	esi
	call	?Is_HumanPhys@@YA_NPAE@Z		; Is_HumanPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN24@Get_Physic
	mov	eax, OFFSET ??_C@_0N@IIDKGMMK@Is_HumanPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN24@Get_Physic:

; 637  : 	else if (Is_MotorVehicle(obj)) return "Is_MotorVehicle";

	push	esi
	call	?Is_MotorVehicle@@YA_NPAE@Z		; Is_MotorVehicle
	add	esp, 4
	test	al, al
	je	SHORT $LN22@Get_Physic
	mov	eax, OFFSET ??_C@_0BA@NMEMOAAA@Is_MotorVehicle?$AA@
	pop	esi

; 649  : }

	ret	0
$LN22@Get_Physic:

; 638  : 	else if (Is_Phys3(obj)) return "Is_Phys3";

	push	esi
	call	?Is_Phys3@@YA_NPAE@Z			; Is_Phys3
	add	esp, 4
	test	al, al
	je	SHORT $LN20@Get_Physic
	mov	eax, OFFSET ??_C@_08INKCDJHE@Is_Phys3?$AA@
	pop	esi

; 649  : }

	ret	0
$LN20@Get_Physic:

; 639  : 	else if (Is_RigidBody(obj)) return "Is_RigidBody";

	push	esi
	call	?Is_RigidBody@@YA_NPAE@Z		; Is_RigidBody
	add	esp, 4
	test	al, al
	je	SHORT $LN18@Get_Physic
	mov	eax, OFFSET ??_C@_0N@JIBAJJLF@Is_RigidBody?$AA@
	pop	esi

; 649  : }

	ret	0
$LN18@Get_Physic:

; 640  : 	else if (Is_ShakeableStatricPhys(obj)) return "Is_ShakeableStatricPhys";

	push	esi
	call	?Is_ShakeableStatricPhys@@YA_NPAE@Z	; Is_ShakeableStatricPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN16@Get_Physic
	mov	eax, OFFSET ??_C@_0BI@IDFOMLA@Is_ShakeableStatricPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN16@Get_Physic:

; 641  : 	else if (Is_StaticAnimPhys(obj)) return "Is_StaticAnimPhys";

	push	esi
	call	?Is_StaticAnimPhys@@YA_NPAE@Z		; Is_StaticAnimPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN14@Get_Physic
	mov	eax, OFFSET ??_C@_0BC@BNMPKHKP@Is_StaticAnimPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN14@Get_Physic:

; 642  : 	else if (Is_StaticPhys(obj)) return "Is_StaticPhys";

	push	esi
	call	?Is_StaticPhys@@YA_NPAE@Z		; Is_StaticPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN12@Get_Physic
	mov	eax, OFFSET ??_C@_0O@PMHLNCPL@Is_StaticPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN12@Get_Physic:

; 643  : 	else if (Is_TimedDecorationPhys(obj)) return "Is_TimedDecorationPhys";

	push	esi
	call	?Is_TimedDecorationPhys@@YA_NPAE@Z	; Is_TimedDecorationPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN10@Get_Physic
	mov	eax, OFFSET ??_C@_0BH@OPGDFLJA@Is_TimedDecorationPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN10@Get_Physic:

; 644  : 	else if (Is_VehiclePhys(obj)) return "Is_VehiclePhys";

	push	esi
	call	?Is_VehiclePhys@@YA_NPAE@Z		; Is_VehiclePhys
	add	esp, 4
	test	al, al
	je	SHORT $LN8@Get_Physic
	mov	eax, OFFSET ??_C@_0P@DPJMCENA@Is_VehiclePhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN8@Get_Physic:

; 645  : 	else if (Is_DynamicAnimPhys(obj)) return "Is_DynamicAnimPhys";

	push	esi
	call	?Is_DynamicAnimPhys@@YA_NPAE@Z		; Is_DynamicAnimPhys
	add	esp, 4
	test	al, al
	je	SHORT $LN6@Get_Physic
	mov	eax, OFFSET ??_C@_0BD@JPEOMMEF@Is_DynamicAnimPhys?$AA@
	pop	esi

; 649  : }

	ret	0
$LN6@Get_Physic:

; 646  : 	else if (Is_BuildingAggregate(obj)) return "Is_BuildingAggregate";

	push	esi
	call	?Is_BuildingAggregate@@YA_NPAE@Z	; Is_BuildingAggregate
	add	esp, 4
	test	al, al
	je	SHORT $LN4@Get_Physic
	mov	eax, OFFSET ??_C@_0BF@LGMFACPH@Is_BuildingAggregate?$AA@
	pop	esi

; 649  : }

	ret	0
$LN4@Get_Physic:

; 647  : 	else if (Is_Projectile(obj)) return "Is_Projectile";

	push	esi
	call	?Is_Projectile@@YA_NPAE@Z		; Is_Projectile
	add	esp, 4
	test	al, al
	mov	eax, OFFSET ??_C@_0O@IEFMGMKP@Is_Projectile?$AA@
	jne	SHORT $LN1@Get_Physic

; 648  : 	else return "(null)";

	mov	eax, OFFSET ??_C@_06OJHGLDPL@?$CInull?$CJ?$AA@
$LN1@Get_Physic:
	pop	esi

; 649  : }

	ret	0
?Get_Physics@@YAPBDPAE@Z ENDP				; Get_Physics
_TEXT	ENDS
PUBLIC	?Copy_Transform@@YAXPAE0@Z			; Copy_Transform
; Function compile flags: /Ogtpy
;	COMDAT ?Copy_Transform@@YAXPAE0@Z
_TEXT	SEGMENT
_in$ = 8						; size = 4
_out$ = 12						; size = 4
?Copy_Transform@@YAXPAE0@Z PROC				; Copy_Transform, COMDAT

; 653  : 	if (!Commands->Get_ID(in) || !in || !Commands->Get_ID(out) || !out)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	edi
	mov	edi, DWORD PTR _in$[esp]
	push	edi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Copy_Trans
	test	edi, edi
	je	SHORT $LN3@Copy_Trans
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+108]
	push	esi
	mov	esi, DWORD PTR _out$[esp+4]
	push	esi
	call	eax
	add	esp, 4
	test	eax, eax
	je	SHORT $LN7@Copy_Trans
	test	esi, esi
	je	SHORT $LN7@Copy_Trans

; 654  : 	{
; 655  : 		return;
; 656  : 	}
; 657  : 	PhysicalGameObj *i2 = ((ScriptableGameObj *)in)->As_PhysicalGameObj();

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

; 658  : 	if (!i2)

	test	edi, edi
	je	SHORT $LN7@Copy_Trans

; 659  : 	{
; 660  : 		return;
; 661  : 	}
; 662  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)out)->As_PhysicalGameObj();

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

; 663  : 	if (!o2)

	test	esi, esi
	je	SHORT $LN7@Copy_Trans

; 664  : 	{
; 665  : 		return;
; 666  : 	}
; 667  : 	o2->Set_Transform(i2->Get_Transform());

	mov	ecx, edi
	call	?Get_Transform@PhysicalGameObj@@QAEPAUMatrix3D@@XZ ; PhysicalGameObj::Get_Transform
	push	eax
	mov	ecx, esi
	call	?Set_Transform@PhysicalGameObj@@QAEXPAUMatrix3D@@@Z ; PhysicalGameObj::Set_Transform
$LN7@Copy_Trans:
	pop	esi
$LN3@Copy_Trans:
	pop	edi

; 668  : }

	ret	0
?Copy_Transform@@YAXPAE0@Z ENDP				; Copy_Transform
_TEXT	ENDS
PUBLIC	?Get_Mass@@YAMPAE@Z				; Get_Mass
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Mass@@YAMPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Mass@@YAMPAE@Z PROC				; Get_Mass, 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@Get_Mass
	test	esi, esi
	je	SHORT $LN2@Get_Mass

; 675  : 	}
; 676  : 	PhysicalGameObj *o = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 677  : 	if (!o)

	test	eax, eax

; 678  : 	{
; 679  : 		return 0;

	je	SHORT $LN2@Get_Mass

; 680  : 	}
; 681  : 	char *p = (char *)o->Physics;
; 682  : #ifdef WIN32
; 683  : 	p += 0x84;
; 684  : #else
; 685  : #ifndef RH8
; 686  : 	p += 0xA0;
; 687  : #else
; 688  : 	p += 0x9C;
; 689  : #endif
; 690  : #endif
; 691  : 	return *(float *)p;

	mov	ecx, DWORD PTR [eax+1908]
	fld	DWORD PTR [ecx+132]
	pop	esi

; 692  : }

	ret	0
$LN2@Get_Mass:

; 673  : 	{
; 674  : 		return 0;

	fldz
	pop	esi

; 692  : }

	ret	0
?Get_Mass@@YAMPAE@Z ENDP				; Get_Mass
_TEXT	ENDS
PUBLIC	?Get_Htree_Name@@YAPBDPAE@Z			; Get_Htree_Name
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Htree_Name@@YAPBDPAE@Z
_TEXT	SEGMENT
_o$ = -4						; size = 4
_obj$ = 8						; size = 4
?Get_Htree_Name@@YAPBDPAE@Z PROC			; Get_Htree_Name, COMDAT

; 695  : {

	push	ebp
	mov	ebp, esp
	push	ecx

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

; 697  : 	{
; 698  : 		return "DUMMY";
; 699  : 	}
; 700  : 	GameObject *o = As_PhysicalGameObj(obj);

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

; 701  : 	if (!o)

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

; 702  : 	{
; 703  : 		return "DUMMY";

	je	SHORT $LN2@Get_Htree_

; 704  : 	}
; 705  : #ifdef WIN32
; 706  : 	_asm {
; 707  : 		mov eax,o

	mov	eax, DWORD PTR _o$[ebp]

; 708  : 		mov ebx,[eax+0x774]

	mov	ebx, DWORD PTR [eax+1908]

; 709  : 		mov ecx,[ebx+0x3C]

	mov	ecx, DWORD PTR [ebx+60]

; 710  : 		mov eax,[ecx]

	mov	eax, DWORD PTR [ecx]

; 711  : 		mov ebx,[eax+0xC8]

	mov	ebx, DWORD PTR [eax+200]

; 712  : 		call ebx

	call	ebx

; 713  : 	}
; 714  : #else
; 715  : 	o+=0x774;
; 716  : 	char *p = (char *)*(unsigned int *)o;
; 717  : 	p+=0x54;
; 718  : 	char *r = (char *)*(unsigned int *)p;
; 719  : #ifndef RH8
; 720  : 	r += 0x1C;
; 721  : #endif
; 722  : 	char *v = (char *)*(unsigned int *)r;
; 723  : #ifndef RH8
; 724  : 	r -= 0x1C;
; 725  : 	v += 4;
; 726  : #endif
; 727  : 	v += 0xCC;
; 728  : 	Get_Htree *h = (Get_Htree*)v;
; 729  : 	Get_Htree gh = (Get_Htree)*h;
; 730  : 	const char *c = gh(r);
; 731  : 	return c;
; 732  : #endif
; 733  : }

	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN2@Get_Htree_:
	pop	esi
	mov	eax, OFFSET ??_C@_05FAECCOPD@DUMMY?$AA@
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
?Get_Htree_Name@@YAPBDPAE@Z ENDP			; Get_Htree_Name
_TEXT	ENDS
PUBLIC	?Get_Sex@@YADPAE@Z				; Get_Sex
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Sex@@YADPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Sex@@YADPAE@Z PROC					; Get_Sex, COMDAT

; 737  : 	return Get_Htree_Name(obj)[2];

	mov	eax, DWORD PTR _obj$[esp-4]
	push	eax
	call	?Get_Htree_Name@@YAPBDPAE@Z		; Get_Htree_Name
	mov	al, BYTE PTR [eax+2]
	add	esp, 4

; 738  : }

	ret	0
?Get_Sex@@YADPAE@Z ENDP					; Get_Sex
_TEXT	ENDS
PUBLIC	?Create_Effect_All_Stealthed_Objects_Area@@YAXABUVector3@@MPBD0H@Z ; Create_Effect_All_Stealthed_Objects_Area
EXTRN	?Is_Stealth@@YA_NPAE@Z:PROC			; Is_Stealth
EXTRN	?Get_Object_Type@@YAHPAE@Z:PROC			; Get_Object_Type
EXTRN	?As_ScriptableGameObj@@YAPAEPAE@Z:PROC		; As_ScriptableGameObj
EXTRN	?BaseGameObjList@@3PAV?$SList@E@@A:DWORD	; BaseGameObjList
; Function compile flags: /Ogtpy
;	COMDAT ?Create_Effect_All_Stealthed_Objects_Area@@YAXABUVector3@@MPBD0H@Z
_TEXT	SEGMENT
_ObjPosition$54288 = -48				; size = 12
_TestPosition$54290 = -36				; size = 12
$T57983 = -24						; size = 12
$T57984 = -12						; size = 12
_Position$ = 8						; size = 4
_Distance$ = 12						; size = 4
_object$ = 16						; size = 4
_offset$ = 20						; size = 4
_team$ = 24						; size = 4
?Create_Effect_All_Stealthed_Objects_Area@@YAXABUVector3@@MPBD0H@Z PROC ; Create_Effect_All_Stealthed_Objects_Area, COMDAT

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

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

; 743  : 	while (x) 

	test	ebx, ebx
	je	$LN6@Create_Eff
	push	ebp
	mov	ebp, DWORD PTR _Position$[esp+52]
	push	esi
	push	edi
	mov	edi, DWORD PTR _offset$[esp+60]
	npad	1
$LL7@Create_Eff:

; 744  : 	{
; 745  : 		GameObject *obj = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [ebx+4]

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

	test	esi, esi
	je	$LN12@Create_Eff
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	$LN12@Create_Eff

; 747  : 		{
; 748  : 			Vector3 ObjPosition = Commands->Get_Position(obj);

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

; 749  : 			Vector3 TestPosition = Position;
; 750  : 			ObjPosition.Z = 0;

	fldz
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _ObjPosition$54288[esp+72], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [ebp]
	mov	DWORD PTR _ObjPosition$54288[esp+76], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR [ebp+4]
	mov	DWORD PTR _ObjPosition$54288[esp+80], eax
	fst	DWORD PTR _ObjPosition$54288[esp+80]
	mov	eax, DWORD PTR [ebp+8]
	mov	DWORD PTR _TestPosition$54290[esp+72], ecx
	mov	DWORD PTR _TestPosition$54290[esp+80], eax

; 751  : 			TestPosition.Z = 0;

	fstp	DWORD PTR _TestPosition$54290[esp+80]

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

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR _TestPosition$54290[esp+76], edx
	lea	ecx, DWORD PTR _TestPosition$54290[esp+72]
	push	ecx
	mov	ecx, DWORD PTR [eax+256]
	lea	edx, DWORD PTR _ObjPosition$54288[esp+76]
	push	edx
	call	ecx
	fcomp	DWORD PTR _Distance$[esp+76]
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	$LN12@Create_Eff

; 753  : 			{
; 754  : 				if ((Get_Object_Type(obj) == team) || (team == 2))

	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	mov	ecx, DWORD PTR _team$[esp+64]
	add	esp, 4
	cmp	eax, ecx
	je	SHORT $LN2@Create_Eff
	cmp	ecx, 2
	jne	SHORT $LN12@Create_Eff
$LN2@Create_Eff:

; 755  : 				{
; 756  : 					bool stealth = Is_Stealth(obj);

	push	esi
	call	?Is_Stealth@@YA_NPAE@Z			; Is_Stealth
	add	esp, 4

; 757  : 					if (stealth)

	test	al, al
	je	SHORT $LN12@Create_Eff

; 758  : 					{
; 759  : 						ObjPosition = Commands->Get_Position(obj);

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

; 760  : 						ObjPosition.X += offset.X;

	fld	DWORD PTR [edi]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _ObjPosition$54288[esp+72], edx
	fadd	DWORD PTR _ObjPosition$54288[esp+72]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _ObjPosition$54288[esp+76], ecx
	mov	edx, DWORD PTR [eax+8]
	fstp	DWORD PTR _ObjPosition$54288[esp+72]

; 761  : 						ObjPosition.Y += offset.Y;

	fld	DWORD PTR [edi+4]

; 762  : 						ObjPosition.Z += offset.Z;
; 763  : 						Commands->Create_Object(object,ObjPosition);

	mov	ecx, DWORD PTR _object$[esp+68]
	fadd	DWORD PTR _ObjPosition$54288[esp+76]
	mov	DWORD PTR _ObjPosition$54288[esp+80], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR _ObjPosition$54288[esp+72]
	fstp	DWORD PTR _ObjPosition$54288[esp+76]
	push	eax
	fld	DWORD PTR [edi+8]
	push	ecx
	fadd	DWORD PTR _ObjPosition$54288[esp+88]
	fstp	DWORD PTR _ObjPosition$54288[esp+88]
	mov	eax, DWORD PTR [edx+100]
	call	eax
	add	esp, 16					; 00000010H
$LN12@Create_Eff:

; 764  : 					}
; 765  : 				}
; 766  : 			}
; 767  : 		}
; 768  : 		x = x->NodeNext;

	mov	ebx, DWORD PTR [ebx]
	test	ebx, ebx
	jne	$LL7@Create_Eff
	pop	edi
	pop	esi
	pop	ebp
$LN6@Create_Eff:
	pop	ebx

; 769  : 	}
; 770  : }

	add	esp, 48					; 00000030H
	ret	0
?Create_Effect_All_Stealthed_Objects_Area@@YAXABUVector3@@MPBD0H@Z ENDP ; Create_Effect_All_Stealthed_Objects_Area
_TEXT	ENDS
PUBLIC	?Create_Effect_All_Of_Preset@@YAXPBD0M_N@Z	; Create_Effect_All_Of_Preset
EXTRN	__stricmp:PROC
EXTRN	?SmartGameObjList@@3PAV?$SList@E@@A:DWORD	; SmartGameObjList
; Function compile flags: /Ogtpy
;	COMDAT ?Create_Effect_All_Of_Preset@@YAXPBD0M_N@Z
_TEXT	SEGMENT
_ObjPosition$54311 = -24				; size = 12
$T57991 = -12						; size = 12
_object$ = 8						; size = 4
_preset$ = 12						; size = 4
_ZAdjust$ = 16						; size = 4
_ZSet$ = 20						; size = 1
?Create_Effect_All_Of_Preset@@YAXPBD0M_N@Z PROC		; Create_Effect_All_Of_Preset, COMDAT

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

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

; 775  : 	while (x) 

	test	ebx, ebx
	je	$LN5@Create_Eff@2
	push	ebp
	push	esi
	push	edi
	npad	9
$LL6@Create_Eff@2:

; 776  : 	{
; 777  : 		GameObject *obj = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [ebx+4]

; 778  : 		if (obj)

	test	esi, esi
	je	$LN3@Create_Eff@2

; 779  : 		{
; 780  : 			if (!_stricmp(preset,Commands->Get_Preset_Name(obj)))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+116]
	push	esi
	call	edx
	push	eax
	mov	eax, DWORD PTR _preset$[esp+44]
	push	eax
	call	__stricmp
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $LN3@Create_Eff@2

; 781  : 			{
; 782  : 				Vector3 ObjPosition = Commands->Get_Position(obj);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+64]
	lea	ecx, DWORD PTR $T57991[esp+40]
	push	esi
	push	ecx
	call	eax
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _ObjPosition$54311[esp+48], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _ObjPosition$54311[esp+52], edx
	mov	eax, DWORD PTR [eax+8]
	add	esp, 8

; 783  : 				if (ZSet)

	cmp	BYTE PTR _ZSet$[esp+36], 0
	mov	DWORD PTR _ObjPosition$54311[esp+48], eax
	je	SHORT $LN2@Create_Eff@2

; 784  : 				{
; 785  : 					ObjPosition.Z = ZAdjust;

	fld	DWORD PTR _ZAdjust$[esp+36]

; 786  : 				}
; 787  : 				else

	jmp	SHORT $LN11@Create_Eff@2
$LN2@Create_Eff@2:

; 788  : 				{
; 789  : 					ObjPosition.Z += ZAdjust;

	fld	DWORD PTR _ObjPosition$54311[esp+48]
	fadd	DWORD PTR _ZAdjust$[esp+36]
$LN11@Create_Eff@2:

; 790  : 				}
; 791  : 				GameObject *o = Commands->Create_Object(object,ObjPosition);

	mov	edx, DWORD PTR _object$[esp+36]
	fstp	DWORD PTR _ObjPosition$54311[esp+48]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _ObjPosition$54311[esp+40]
	push	ecx
	mov	ecx, DWORD PTR [eax+100]
	push	edx
	call	ecx
	mov	edi, eax

; 792  : 				Commands->Set_Facing(o,Commands->Get_Facing(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+72]
	push	esi
	lea	ebp, DWORD PTR [eax+76]
	call	edx
	fstp	DWORD PTR [esp+8]
	mov	eax, DWORD PTR [ebp]
	add	esp, 8
	push	edi
	call	eax
	add	esp, 8
$LN3@Create_Eff@2:

; 793  : 			}
; 794  : 		}
; 795  : 		x = x->NodeNext;

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

; 796  : 	}
; 797  : }

	add	esp, 24					; 00000018H
	ret	0
?Create_Effect_All_Of_Preset@@YAXPBD0M_N@Z ENDP		; Create_Effect_All_Of_Preset
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ; std::_DebugHeapAllocator<char>::allocate
PUBLIC	__CTA2?AVbad_alloc@std@@
PUBLIC	__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
PUBLIC	??0bad_alloc@std@@QAE@ABV01@@Z			; std::bad_alloc::bad_alloc
PUBLIC	__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
EXTRN	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z:PROC	; operator new[]
EXTRN	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ:PROC ; std::_DebugHeapTag_func
EXTRN	__CxxThrowException@8:PROC
EXTRN	??0exception@std@@QAE@ABV01@@Z:PROC		; std::exception::exception
;	COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
; File c:\program files\microsoft visual studio 8\vc\include\exception
xdata$x	SEGMENT
__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVexception@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0exception@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_alloc@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_alloc@std@@
xdata$x	SEGMENT
__CTA2?AVbad_alloc@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVbad_alloc@std@@
xdata$x	SEGMENT
__TI2?AVbad_alloc@std@@ DD 00H
	DD	FLAT:??1bad_alloc@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_alloc@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xdebug', 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T57998 = -12						; size = 12
_this$ = 8						; size = 4
$T58004 = 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 $T58004[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T57998[esp+20]
	mov	DWORD PTR $T58004[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T57998[esp+20]
	push	ecx
	mov	DWORD PTR $T57998[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
$T58010 = -12						; size = 12
$T58015 = 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 $T58015[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T58010[esp+20]
	mov	DWORD PTR $T58015[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T58010[esp+20]
	push	ecx
	mov	DWORD PTR $T58010[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate@2:
$LN8@allocate@2:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ENDP	; std::_DebugHeapAllocator<char>::allocate
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
_TEXT	ENDS
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
;	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
