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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
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
;	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	??_C@_0BA@OPFMGFNB@Vehicle_Blocker?$AA@		; `string'
PUBLIC	??_C@_08KJFDAMJE@vehcol2m?$AA@			; `string'
PUBLIC	?Created@DAN_CnC_Crate@@EAEXPAE@Z		; DAN_CnC_Crate::Created
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
;	COMDAT ??_C@_0BA@OPFMGFNB@Vehicle_Blocker?$AA@
; File d:\source code\stgm\dan.cpp
CONST	SEGMENT
??_C@_0BA@OPFMGFNB@Vehicle_Blocker?$AA@ DB 'Vehicle_Blocker', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08KJFDAMJE@vehcol2m?$AA@
CONST	SEGMENT
??_C@_08KJFDAMJE@vehcol2m?$AA@ DB 'vehcol2m', 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Created@DAN_CnC_Crate@@EAEXPAE@Z
_TEXT	SEGMENT
$T60993 = -12						; size = 12
_obj$ = 8						; size = 4
?Created@DAN_CnC_Crate@@EAEXPAE@Z PROC			; DAN_CnC_Crate::Created, COMDAT
; _this$ = ecx

; 19   : 	// Create the vehicle blocker and save it as a GameObject Variable,so I can destroy 
; 20   : 	// it when the crate is picked up! 
; 21   : 	Commands->Set_Model(obj,"vehcol2m");

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	sub	esp, 12					; 0000000cH
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	edi, DWORD PTR _obj$[esp+24]
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax+160]
	push	OFFSET ??_C@_08KJFDAMJE@vehcol2m?$AA@
	push	edi
	call	ecx

; 22   : 	VehBlock = Commands->Get_ID(Commands->Create_Object("Vehicle_Blocker",Commands->Get_Position(obj)));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR $T60993[esp+36]
	lea	ebx, DWORD PTR [eax+108]
	lea	ebp, DWORD PTR [eax+100]
	mov	eax, DWORD PTR [eax+64]
	push	edi
	push	edx
	call	eax
	mov	ecx, DWORD PTR [ebp]
	push	eax
	push	OFFSET ??_C@_0BA@OPFMGFNB@Vehicle_Blocker?$AA@
	call	ecx
	mov	edx, DWORD PTR [ebx]
	push	eax
	call	edx
	add	esp, 28					; 0000001cH
	pop	edi
	mov	DWORD PTR [esi+28], eax
	pop	esi
	pop	ebp
	pop	ebx

; 23   : }

	add	esp, 12					; 0000000cH
	ret	4
?Created@DAN_CnC_Crate@@EAEXPAE@Z ENDP			; DAN_CnC_Crate::Created
_TEXT	ENDS
PUBLIC	??_C@_0CM@FMOHGIO@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?51000@ ; `string'
PUBLIC	__real@447a0000
PUBLIC	??_C@_0CL@JCJJGOKP@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5500?5@ ; `string'
PUBLIC	__real@43fa0000
PUBLIC	??_C@_0CL@JOHJIEBL@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5100?5@ ; `string'
PUBLIC	__real@42c80000
PUBLIC	??_C@_0DJ@JCIILKJJ@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@ ; `string'
PUBLIC	__real@c47a0000
PUBLIC	??_C@_0DI@GIMPBKE@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@ ; `string'
PUBLIC	__real@c3fa0000
PUBLIC	??_C@_0DI@IMPAJEMH@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@ ; `string'
PUBLIC	__real@c2c80000
PUBLIC	??_C@_03IOFAJBDH@GDI?$AA@			; `string'
PUBLIC	??_C@_03OHGKCNFD@Nod?$AA@			; `string'
PUBLIC	?Points@DAN_CnC_Crate@@AAEXPAEH@Z		; DAN_CnC_Crate::Points
EXTRN	?Console_Input@@YAXPBD@Z:PROC			; Console_Input
EXTRN	_sprintf:PROC
EXTRN	__fltused:DWORD
;	COMDAT ??_C@_0CM@FMOHGIO@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?51000@
CONST	SEGMENT
??_C@_0CM@FMOHGIO@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?51000@ DB 'MESSAGE'
	DB	' [Crate] Enjoy those 1000 points, %s', 00H	; `string'
CONST	ENDS
;	COMDAT __real@447a0000
CONST	SEGMENT
__real@447a0000 DD 0447a0000r			; 1000
CONST	ENDS
;	COMDAT ??_C@_0CL@JCJJGOKP@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5500?5@
CONST	SEGMENT
??_C@_0CL@JCJJGOKP@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5500?5@ DB 'MESSA'
	DB	'GE [Crate] Enjoy those 500 points, %s', 00H	; `string'
CONST	ENDS
;	COMDAT __real@43fa0000
CONST	SEGMENT
__real@43fa0000 DD 043fa0000r			; 500
CONST	ENDS
;	COMDAT ??_C@_0CL@JOHJIEBL@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5100?5@
CONST	SEGMENT
??_C@_0CL@JOHJIEBL@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5100?5@ DB 'MESSA'
	DB	'GE [Crate] Enjoy those 100 Points, %s', 00H	; `string'
CONST	ENDS
;	COMDAT __real@42c80000
CONST	SEGMENT
__real@42c80000 DD 042c80000r			; 100
CONST	ENDS
;	COMDAT ??_C@_0DJ@JCIILKJJ@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@
CONST	SEGMENT
??_C@_0DJ@JCIILKJJ@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@ DB 'MESSA'
	DB	'GE [Crate] Hope you dont miss those 1000 points, %s', 00H ; `string'
CONST	ENDS
;	COMDAT __real@c47a0000
CONST	SEGMENT
__real@c47a0000 DD 0c47a0000r			; -1000
CONST	ENDS
;	COMDAT ??_C@_0DI@GIMPBKE@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@
CONST	SEGMENT
??_C@_0DI@GIMPBKE@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@ DB 'MESSAG'
	DB	'E [Crate] Hope you dont miss those 500 points, %s', 00H ; `string'
CONST	ENDS
;	COMDAT __real@c3fa0000
CONST	SEGMENT
__real@c3fa0000 DD 0c3fa0000r			; -500
CONST	ENDS
;	COMDAT ??_C@_0DI@IMPAJEMH@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@
CONST	SEGMENT
??_C@_0DI@IMPAJEMH@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@ DB 'MESSA'
	DB	'GE [Crate] Hope you dont miss those 100 points, %s', 00H ; `string'
CONST	ENDS
;	COMDAT __real@c2c80000
CONST	SEGMENT
__real@c2c80000 DD 0c2c80000r			; -100
CONST	ENDS
;	COMDAT ??_C@_03IOFAJBDH@GDI?$AA@
CONST	SEGMENT
??_C@_03IOFAJBDH@GDI?$AA@ DB 'GDI', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_03OHGKCNFD@Nod?$AA@
CONST	SEGMENT
??_C@_03OHGKCNFD@Nod?$AA@ DB 'Nod', 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Points@DAN_CnC_Crate@@AAEXPAEH@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
_RandNum$ = 12						; size = 4
?Points@DAN_CnC_Crate@@AAEXPAEH@Z PROC			; DAN_CnC_Crate::Points, COMDAT
; _this$ = ecx

; 113  : 	char *Team = 0;
; 114  : 	if (!Commands->Get_Player_Type(obj))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	sub	esp, 512				; 00000200H
	push	ebx
	mov	ebx, DWORD PTR _obj$[esp+512]
	push	esi
	push	edi
	push	ebx
	xor	edi, edi
	call	ecx
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN13@Points

; 115  : 	{
; 116  : 		Team = "Nod";

	mov	edi, OFFSET ??_C@_03OHGKCNFD@Nod?$AA@
	jmp	SHORT $LN11@Points
$LN13@Points:

; 117  : 	}
; 118  : 	else if (Commands->Get_Player_Type(obj) == 1)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+248]
	push	ebx
	call	eax
	add	esp, 4
	cmp	eax, 1
	jne	SHORT $LN11@Points

; 119  : 	{
; 120  : 		Team = "GDI";

	mov	edi, OFFSET ??_C@_03IOFAJBDH@GDI?$AA@
$LN11@Points:

; 121  : 	}
; 122  : 	char Text[512];
; 123  : 	int Num = Commands->Get_Random_Int(1,7);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+152]
	push	7
	push	1
	call	edx
	mov	esi, eax

; 124  : 	switch (RandNum)

	mov	eax, DWORD PTR _RandNum$[esp+528]
	add	esp, 8
	sub	eax, 1
	je	$LN8@Points
	sub	eax, 1
	jne	$LN5@Points

; 144  : 			}
; 145  : 			break;
; 146  : 		case 2:// Take Points
; 147  : 			if ((1 <= Num) && (Num < 4))

	cmp	esi, 1
	jl	SHORT $LN3@Points
	cmp	esi, 4
	jge	SHORT $LN17@Points

; 148  : 			{
; 149  : 				Commands->Give_Points(obj,-100,true);

	fld	DWORD PTR __real@c2c80000
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	ecx
	mov	ecx, DWORD PTR [eax+636]
	fstp	DWORD PTR [esp]
	push	ebx
	call	ecx

; 150  : 				sprintf(Text,"MESSAGE [Crate] Hope you dont miss those 100 points, %s",Team);

	push	edi
	lea	edx, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0DI@IMPAJEMH@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@
	push	edx
	call	_sprintf

; 151  : 				Console_Input(Text);

	lea	eax, DWORD PTR _Text$[esp+548]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN3@Points:

; 152  : 			}
; 153  : 			if ((4 <= Num) && (Num < 6))

	cmp	esi, 4
	jl	SHORT $LN2@Points
$LN17@Points:
	cmp	esi, 6
	jge	SHORT $LN18@Points

; 154  : 			{
; 155  : 				Commands->Give_Points(obj,-500,true);

	fld	DWORD PTR __real@c3fa0000
	push	1
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+636]
	push	ebx
	call	edx

; 156  : 				sprintf(Text,"MESSAGE [Crate] Hope you dont miss those 500 points, %s",Team);

	push	edi
	lea	eax, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0DI@GIMPBKE@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@
	push	eax
	call	_sprintf

; 157  : 				Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+548]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN2@Points:

; 158  : 			}
; 159  : 			if (Num == 6)

	cmp	esi, 6
$LN18@Points:
	jne	$LN5@Points

; 160  : 			{
; 161  : 				Commands->Give_Points(obj,-1000,true);

	fld	DWORD PTR __real@c47a0000
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+636]
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	ebx
	call	eax

; 162  : 				sprintf(Text,"MESSAGE [Crate] Hope you dont miss those 1000 points, %s",Team);

	push	edi
	push	OFFSET ??_C@_0DJ@JCIILKJJ@MESSAGE?5?$FLCrate?$FN?5Hope?5you?5dont?5mi@

; 163  : 				Console_Input(Text);
; 164  : 			}
; 165  : 			break;

	jmp	$LN19@Points
$LN8@Points:

; 125  : 	{
; 126  : 		case 1:// Give points
; 127  : 			if ((1 <= Num) && (Num < 4))

	cmp	esi, 1
	jl	SHORT $LN7@Points
	cmp	esi, 4
	jge	SHORT $LN16@Points

; 128  : 			{
; 129  : 				Commands->Give_Points(obj,100,true);

	fld	DWORD PTR __real@42c80000
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	ecx
	mov	ecx, DWORD PTR [eax+636]
	fstp	DWORD PTR [esp]
	push	ebx
	call	ecx

; 130  : 				sprintf(Text,"MESSAGE [Crate] Enjoy those 100 Points, %s",Team);

	push	edi
	lea	edx, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0CL@JOHJIEBL@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5100?5@
	push	edx
	call	_sprintf

; 131  : 				Console_Input(Text);

	lea	eax, DWORD PTR _Text$[esp+548]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN7@Points:

; 132  : 			}
; 133  : 			if ((4 <= Num) && (Num < 6))

	cmp	esi, 4
	jl	SHORT $LN6@Points
$LN16@Points:
	cmp	esi, 6
	jge	SHORT $LN20@Points

; 134  : 			{
; 135  : 				Commands->Give_Points(obj,500,true);

	fld	DWORD PTR __real@43fa0000
	push	1
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+636]
	push	ebx
	call	edx

; 136  : 				sprintf(Text,"MESSAGE [Crate] Enjoy those 500 points, %s",Team);

	push	edi
	lea	eax, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0CL@JCJJGOKP@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?5500?5@
	push	eax
	call	_sprintf

; 137  : 				Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+548]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN6@Points:

; 138  : 			}
; 139  : 			if (Num == 6)

	cmp	esi, 6
$LN20@Points:
	jne	SHORT $LN5@Points

; 140  : 			{
; 141  : 				Commands->Give_Points(obj,1000,true);

	fld	DWORD PTR __real@447a0000
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+636]
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	ebx
	call	eax

; 142  : 				sprintf(Text,"MESSAGE [Crate] Enjoy those 1000 points, %s",Team);

	push	edi
	push	OFFSET ??_C@_0CM@FMOHGIO@MESSAGE?5?$FLCrate?$FN?5Enjoy?5those?51000@
$LN19@Points:
	lea	ecx, DWORD PTR _Text$[esp+544]
	push	ecx
	call	_sprintf

; 143  : 				Console_Input(Text);

	lea	edx, DWORD PTR _Text$[esp+548]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN5@Points:
	pop	edi
	pop	esi
	pop	ebx

; 166  : 	}
; 167  : }

	add	esp, 512				; 00000200H
	ret	8
?Points@DAN_CnC_Crate@@AAEXPAEH@Z ENDP			; DAN_CnC_Crate::Points
_TEXT	ENDS
PUBLIC	??_C@_0EE@FBMAKOGL@MESSAGE?5?$FLCrate?$FN?5Some?5poor?5?$CFs?5guy@ ; `string'
PUBLIC	??_C@_05PGGAFPFO@Death?$AA@			; `string'
PUBLIC	??_C@_0BM@HFFMNHJD@Beacon_Ion_Cannon_Anim_Post?$AA@ ; `string'
PUBLIC	?DeathCrate@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::DeathCrate
;	COMDAT ??_C@_0EE@FBMAKOGL@MESSAGE?5?$FLCrate?$FN?5Some?5poor?5?$CFs?5guy@
CONST	SEGMENT
??_C@_0EE@FBMAKOGL@MESSAGE?5?$FLCrate?$FN?5Some?5poor?5?$CFs?5guy@ DB 'ME'
	DB	'SSAGE [Crate] Some poor %s guy just got owned by the Death Cr'
	DB	'ate!', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_05PGGAFPFO@Death?$AA@
CONST	SEGMENT
??_C@_05PGGAFPFO@Death?$AA@ DB 'Death', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BM@HFFMNHJD@Beacon_Ion_Cannon_Anim_Post?$AA@
CONST	SEGMENT
??_C@_0BM@HFFMNHJD@Beacon_Ion_Cannon_Anim_Post?$AA@ DB 'Beacon_Ion_Cannon'
	DB	'_Anim_Post', 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?DeathCrate@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
$T61018 = -524						; size = 12
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?DeathCrate@DAN_CnC_Crate@@AAEXPAE@Z PROC		; DAN_CnC_Crate::DeathCrate, COMDAT
; _this$ = ecx

; 172  : 	char *Team = 0;
; 173  : 	if (!Commands->Get_Player_Type(obj))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	sub	esp, 524				; 0000020cH
	push	ebx
	push	esi
	mov	esi, DWORD PTR _obj$[esp+528]
	push	edi
	push	esi
	xor	ebx, ebx
	call	ecx
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN3@DeathCrate

; 174  : 	{
; 175  : 		Team = "Nod";

	mov	ebx, OFFSET ??_C@_03OHGKCNFD@Nod?$AA@
	jmp	SHORT $LN1@DeathCrate
$LN3@DeathCrate:

; 176  : 	}
; 177  : 	else if (Commands->Get_Player_Type(obj) == 1)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+248]
	push	esi
	call	eax
	add	esp, 4
	cmp	eax, 1
	jne	SHORT $LN1@DeathCrate

; 178  : 	{
; 179  : 		Team = "GDI";

	mov	ebx, OFFSET ??_C@_03IOFAJBDH@GDI?$AA@
$LN1@DeathCrate:

; 180  : 	}
; 181  : 	char Text[512];
; 182  : 	Commands->Create_Object("Beacon_Ion_Cannon_Anim_Post",Commands->Get_Position(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+64]
	lea	ecx, DWORD PTR $T61018[esp+536]
	push	esi
	push	ecx
	lea	edi, DWORD PTR [eax+100]
	call	edx
	push	eax
	mov	eax, DWORD PTR [edi]
	push	OFFSET ??_C@_0BM@HFFMNHJD@Beacon_Ion_Cannon_Anim_Post?$AA@
	call	eax

; 183  : 	Commands->Apply_Damage(obj,1000,"Death",0);

	fld	DWORD PTR __real@447a0000
	add	esp, 16					; 00000010H
	push	0
	push	OFFSET ??_C@_05PGGAFPFO@Death?$AA@
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+616]
	push	esi
	call	edx

; 184  : 	sprintf(Text,"MESSAGE [Crate] Some poor %s guy just got owned by the Death Crate!",Team);

	push	ebx
	lea	eax, DWORD PTR _Text$[esp+556]
	push	OFFSET ??_C@_0EE@FBMAKOGL@MESSAGE?5?$FLCrate?$FN?5Some?5poor?5?$CFs?5guy@
	push	eax
	call	_sprintf

; 185  : 	Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+564]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 32					; 00000020H
	pop	edi
	pop	esi
	pop	ebx

; 186  : }

	add	esp, 524				; 0000020cH
	ret	4
?DeathCrate@DAN_CnC_Crate@@AAEXPAE@Z ENDP		; DAN_CnC_Crate::DeathCrate
_TEXT	ENDS
PUBLIC	??_C@_0DA@NKGKADIE@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5has@ ; `string'
PUBLIC	??_C@_0DC@MJBNDGJD@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@ ; `string'
PUBLIC	__real@3f800000
PUBLIC	?DeHealth@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::DeHealth
EXTRN	?Get_Player_ID@@YAJPAE@Z:PROC			; Get_Player_ID
;	COMDAT ??_C@_0DA@NKGKADIE@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5has@
CONST	SEGMENT
??_C@_0DA@NKGKADIE@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5has@ DB 'PP'
	DB	'AGE %d [Crate] Your Health has been set to 1!', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DC@MJBNDGJD@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@
CONST	SEGMENT
??_C@_0DC@MJBNDGJD@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@ DB 'P'
	DB	'PAGE %d [Crate] You have got the DeHealth Crate!', 00H ; `string'
CONST	ENDS
;	COMDAT __real@3f800000
CONST	SEGMENT
__real@3f800000 DD 03f800000r			; 1
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?DeHealth@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?DeHealth@DAN_CnC_Crate@@AAEXPAE@Z PROC			; DAN_CnC_Crate::DeHealth, COMDAT
; _this$ = ecx

; 206  : {

	sub	esp, 512				; 00000200H
	push	esi
	push	edi

; 207  : 	char Text[512];
; 208  : 	int PlayerID;
; 209  : 	PlayerID = Get_Player_ID(obj);

	mov	edi, DWORD PTR _obj$[esp+516]
	push	edi
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID

; 210  : 	Commands->Set_Health(obj,1);

	fld1
	mov	esi, eax
	fstp	DWORD PTR [esp]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+228]
	push	edi
	call	ecx

; 211  : 	sprintf(Text,"PPAGE %d [Crate] You have got the DeHealth Crate!",PlayerID);

	push	esi
	lea	edx, DWORD PTR _Text$[esp+532]
	push	OFFSET ??_C@_0DC@MJBNDGJD@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@
	push	edx
	call	_sprintf

; 212  : 	Console_Input(Text);

	lea	eax, DWORD PTR _Text$[esp+540]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 213  : 	sprintf(Text,"PPAGE %d [Crate] Your Health has been set to 1!",PlayerID);

	push	esi
	lea	ecx, DWORD PTR _Text$[esp+548]
	push	OFFSET ??_C@_0DA@NKGKADIE@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5has@
	push	ecx
	call	_sprintf

; 214  : 	Console_Input(Text);

	lea	edx, DWORD PTR _Text$[esp+556]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 40					; 00000028H
	pop	edi
	pop	esi

; 215  : }

	add	esp, 512				; 00000200H
	ret	4
?DeHealth@DAN_CnC_Crate@@AAEXPAE@Z ENDP			; DAN_CnC_Crate::DeHealth
_TEXT	ENDS
PUBLIC	??_C@_0DO@ILLJPHKI@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5and@ ; `string'
PUBLIC	??_C@_0DF@BLOGGKPG@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@ ; `string'
PUBLIC	?FullHealth@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::FullHealth
;	COMDAT ??_C@_0DO@ILLJPHKI@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5and@
CONST	SEGMENT
??_C@_0DO@ILLJPHKI@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5and@ DB 'PP'
	DB	'AGE %d [Crate] Your Health and Armour has been replenished!', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DF@BLOGGKPG@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@
CONST	SEGMENT
??_C@_0DF@BLOGGKPG@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@ DB 'P'
	DB	'PAGE %d [Crate] You have got the Full Health Crate!', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?FullHealth@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?FullHealth@DAN_CnC_Crate@@AAEXPAE@Z PROC		; DAN_CnC_Crate::FullHealth, COMDAT
; _this$ = ecx

; 218  : {

	sub	esp, 512				; 00000200H
	push	ebx
	push	esi

; 219  : 	char Text[512];
; 220  : 	int PlayerID;
; 221  : 	PlayerID = Get_Player_ID(obj);

	mov	esi, DWORD PTR _obj$[esp+516]
	push	edi
	push	esi
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	mov	edi, eax

; 222  : 	Commands->Set_Health(obj,Commands->Get_Max_Health(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ebx, DWORD PTR [eax+228]
	mov	eax, DWORD PTR [eax+224]
	push	esi
	call	eax
	fstp	DWORD PTR [esp+4]
	mov	ecx, DWORD PTR [ebx]
	add	esp, 4
	push	esi
	call	ecx

; 223  : 	Commands->Set_Shield_Strength(obj,Commands->Get_Max_Shield_Strength(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+236]
	push	esi
	lea	ebx, DWORD PTR [eax+240]
	call	edx
	fstp	DWORD PTR [esp+8]
	mov	eax, DWORD PTR [ebx]
	add	esp, 8
	push	esi
	call	eax

; 224  : 	sprintf(Text,"PPAGE %d [Crate] You have got the Full Health Crate!",PlayerID);

	push	edi
	lea	ecx, DWORD PTR _Text$[esp+536]
	push	OFFSET ??_C@_0DF@BLOGGKPG@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@
	push	ecx
	call	_sprintf

; 225  : 	Console_Input(Text);

	lea	edx, DWORD PTR _Text$[esp+544]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 226  : 	sprintf(Text,"PPAGE %d [Crate] Your Health and Armour has been replenished!",PlayerID);

	push	edi
	lea	eax, DWORD PTR _Text$[esp+552]
	push	OFFSET ??_C@_0DO@ILLJPHKI@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Health?5and@
	push	eax
	call	_sprintf

; 227  : 	Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+560]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 40					; 00000028H
	pop	edi
	pop	esi
	pop	ebx

; 228  : }

	add	esp, 512				; 00000200H
	ret	4
?FullHealth@DAN_CnC_Crate@@AAEXPAE@Z ENDP		; DAN_CnC_Crate::FullHealth
_TEXT	ENDS
PUBLIC	??_C@_0EA@HPKJGBCK@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@ ; `string'
PUBLIC	??_C@_0DP@JBELJNLO@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?550@ ; `string'
PUBLIC	??_C@_0DP@EKIBNOHC@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@ ; `string'
PUBLIC	??_C@_0EB@KKEOAPHA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@ ; `string'
PUBLIC	??_C@_0EA@BGGECDJM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?55@ ; `string'
PUBLIC	??_C@_0EA@MNKOGAFA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@ ; `string'
PUBLIC	?Money@DAN_CnC_Crate@@AAEXPAEH@Z		; DAN_CnC_Crate::Money
;	COMDAT ??_C@_0EA@HPKJGBCK@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@
CONST	SEGMENT
??_C@_0EA@HPKJGBCK@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@ DB 'P'
	DB	'PAGE %d [Crate] You have got 1000 Credits from the MoneyCrate'
	DB	'!', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0DP@JBELJNLO@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?550@
CONST	SEGMENT
??_C@_0DP@JBELJNLO@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?550@ DB 'P'
	DB	'PAGE %d [Crate] You have got 500 Credits from the MoneyCrate!'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0DP@EKIBNOHC@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@
CONST	SEGMENT
??_C@_0DP@EKIBNOHC@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@ DB 'P'
	DB	'PAGE %d [Crate] You have got 100 Credits from the MoneyCrate!'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0EB@KKEOAPHA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@
CONST	SEGMENT
??_C@_0EB@KKEOAPHA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@ DB 'P'
	DB	'PAGE %d [Crate] You have lost 1000 Credits from the MoneyCrat'
	DB	'e!', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0EA@BGGECDJM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?55@
CONST	SEGMENT
??_C@_0EA@BGGECDJM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?55@ DB 'P'
	DB	'PAGE %d [Crate] You have lost 500 Credits from the MoneyCrate'
	DB	'!', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0EA@MNKOGAFA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@
CONST	SEGMENT
??_C@_0EA@MNKOGAFA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@ DB 'P'
	DB	'PAGE %d [Crate] You have lost 100 Credits from the MoneyCrate'
	DB	'!', 00H					; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Money@DAN_CnC_Crate@@AAEXPAEH@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
_RandNum$ = 12						; size = 4
?Money@DAN_CnC_Crate@@AAEXPAEH@Z PROC			; DAN_CnC_Crate::Money, COMDAT
; _this$ = ecx

; 231  : {

	sub	esp, 512				; 00000200H
	push	ebx
	push	esi
	push	edi

; 232  : 	int PlayerID;
; 233  : 	PlayerID = Get_Player_ID(obj);

	mov	edi, DWORD PTR _obj$[esp+520]
	push	edi
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	mov	ebx, eax

; 234  : 	char Text[512];
; 235  : 	const int Num = Commands->Get_Random_Int(1,7);

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

; 236  : 	switch (RandNum)

	mov	eax, DWORD PTR _RandNum$[esp+532]
	add	esp, 12					; 0000000cH
	sub	eax, 1
	je	$LN8@Money
	sub	eax, 1
	jne	$LN5@Money

; 256  : 			}
; 257  : 			break;
; 258  : 		case 2:
; 259  : 			if ((1 <= Num) && (Num < 4))

	cmp	esi, 1
	jl	SHORT $LN3@Money
	cmp	esi, 4
	jge	SHORT $LN14@Money

; 260  : 			{
; 261  : 				Commands->Give_Money(obj,-100,false);

	fld	DWORD PTR __real@c2c80000
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	eax, DWORD PTR [edx+644]
	push	ecx
	fstp	DWORD PTR [esp]
	push	edi
	call	eax

; 262  : 				sprintf(Text,"PPAGE %d [Crate] You have lost 100 Credits from the MoneyCrate!",PlayerID);

	push	ebx
	lea	ecx, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0EA@MNKOGAFA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@
	push	ecx
	call	_sprintf

; 263  : 				Console_Input(Text);

	lea	edx, DWORD PTR _Text$[esp+548]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN3@Money:

; 264  : 			}
; 265  : 			if ((4 <= Num) && (Num < 6))

	cmp	esi, 4
	jl	SHORT $LN2@Money
$LN14@Money:
	cmp	esi, 6
	jge	SHORT $LN15@Money

; 266  : 			{
; 267  : 				Commands->Give_Money(obj,-500,false);

	fld	DWORD PTR __real@c3fa0000
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	ecx
	mov	ecx, DWORD PTR [eax+644]
	fstp	DWORD PTR [esp]
	push	edi
	call	ecx

; 268  : 				sprintf(Text,"PPAGE %d [Crate] You have lost 500 Credits from the MoneyCrate!",PlayerID);

	push	ebx
	lea	edx, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0EA@BGGECDJM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?55@
	push	edx
	call	_sprintf

; 269  : 				Console_Input(Text);

	lea	eax, DWORD PTR _Text$[esp+548]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN2@Money:

; 270  : 			}
; 271  : 			if (Num == 6)

	cmp	esi, 6
$LN15@Money:
	jne	$LN5@Money

; 272  : 			{
; 273  : 				Commands->Give_Money(obj,-1000,false);

	fld	DWORD PTR __real@c47a0000
	push	0
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+644]
	push	edi
	call	edx

; 274  : 				sprintf(Text,"PPAGE %d [Crate] You have lost 1000 Credits from the MoneyCrate!",PlayerID);

	push	ebx
	push	OFFSET ??_C@_0EB@KKEOAPHA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5lost?51@

; 275  : 				Console_Input(Text);
; 276  : 			}
; 277  : 			break;

	jmp	$LN16@Money
$LN8@Money:

; 237  : 	{
; 238  : 		case 1:
; 239  : 			if ((1 <= Num) && (Num < 4))

	cmp	esi, 1
	jl	SHORT $LN7@Money
	cmp	esi, 4
	jge	SHORT $LN13@Money

; 240  : 			{
; 241  : 				Commands->Give_Money(obj,100,false);

	fld	DWORD PTR __real@42c80000
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+644]
	push	0
	push	ecx
	fstp	DWORD PTR [esp]
	push	edi
	call	eax

; 242  : 				sprintf(Text,"PPAGE %d [Crate] You have got 100 Credits from the MoneyCrate!",PlayerID);

	push	ebx
	lea	ecx, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0DP@EKIBNOHC@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@
	push	ecx
	call	_sprintf

; 243  : 				Console_Input(Text);

	lea	edx, DWORD PTR _Text$[esp+548]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN7@Money:

; 244  : 			}
; 245  : 			if ((4 <= Num) && (Num < 6))

	cmp	esi, 4
	jl	SHORT $LN6@Money
$LN13@Money:
	cmp	esi, 6
	jge	SHORT $LN17@Money

; 246  : 			{
; 247  : 				Commands->Give_Money(obj,500,false);

	fld	DWORD PTR __real@43fa0000
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	ecx
	mov	ecx, DWORD PTR [eax+644]
	fstp	DWORD PTR [esp]
	push	edi
	call	ecx

; 248  : 				sprintf(Text,"PPAGE %d [Crate] You have got 500 Credits from the MoneyCrate!",PlayerID);

	push	ebx
	lea	edx, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0DP@JBELJNLO@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?550@
	push	edx
	call	_sprintf

; 249  : 				Console_Input(Text);

	lea	eax, DWORD PTR _Text$[esp+548]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN6@Money:

; 250  : 			}
; 251  : 			if (Num == 6)

	cmp	esi, 6
$LN17@Money:
	jne	SHORT $LN5@Money

; 252  : 			{
; 253  : 				Commands->Give_Money(obj,1000,false);

	fld	DWORD PTR __real@447a0000
	push	0
	push	ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+644]
	push	edi
	call	edx

; 254  : 				sprintf(Text,"PPAGE %d [Crate] You have got 1000 Credits from the MoneyCrate!",PlayerID);

	push	ebx
	push	OFFSET ??_C@_0EA@HPKJGBCK@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?510@
$LN16@Money:
	lea	eax, DWORD PTR _Text$[esp+544]
	push	eax
	call	_sprintf

; 255  : 				Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+548]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
$LN5@Money:
	pop	edi
	pop	esi
	pop	ebx

; 278  : 	}
; 279  : }

	add	esp, 512				; 00000200H
	ret	8
?Money@DAN_CnC_Crate@@AAEXPAEH@Z ENDP			; DAN_CnC_Crate::Money
_TEXT	ENDS
PUBLIC	??_C@_0ED@FCCMOKPM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5been?5g@ ; `string'
PUBLIC	??_C@_0BH@FLHHBJAG@Tiberium?5Flechette?5Gun?$AA@ ; `string'
PUBLIC	??_C@_0CA@LONNBBEG@POW_TiberiumFlechetteGun_Player?$AA@ ; `string'
PUBLIC	??_C@_0BD@HOPBGNJM@Tiberium?5AutoRifle?$AA@	; `string'
PUBLIC	??_C@_0BN@DFPKBHOD@POW_TiberiumAutoRifle_Player?$AA@ ; `string'
PUBLIC	??_C@_0N@PNCKKCNC@Sniper?5Rifle?$AA@		; `string'
PUBLIC	??_C@_0BH@NMPBHGGK@POW_SniperRifle_Player?$AA@	; `string'
PUBLIC	??_C@_07DGIAOJJ@Shotgun?$AA@			; `string'
PUBLIC	??_C@_0BD@PJGNEDGL@POW_Shotgun_Player?$AA@	; `string'
PUBLIC	??_C@_0P@DLPOPCDE@RocketLauncher?$AA@		; `string'
PUBLIC	??_C@_0BK@MPOBPNAD@POW_RocketLauncher_Player?$AA@ ; `string'
PUBLIC	??_C@_0N@BEBCIPAC@Ramjet?5Rifle?$AA@		; `string'
PUBLIC	??_C@_0BH@GEDCLKJB@POW_RamjetRifle_Player?$AA@	; `string'
PUBLIC	??_C@_07HMKBNLLE@RailGun?$AA@			; `string'
PUBLIC	??_C@_0BD@EEDBCDBM@POW_Railgun_Player?$AA@	; `string'
PUBLIC	??_C@_0BE@BNLHADBG@Personal?5Ion?5Cannon?$AA@	; `string'
PUBLIC	??_C@_0BN@JFMDLPCE@POW_PersonalIonCannon_Player?$AA@ ; `string'
PUBLIC	??_C@_08EOMCENKK@Timed?5C4?$AA@			; `string'
PUBLIC	??_C@_0BF@NCBBDDDP@POW_MineTimed_Player?$AA@	; `string'
PUBLIC	??_C@_0M@JIJMKCGL@Remote?5Mine?$AA@		; `string'
PUBLIC	??_C@_0BG@OOJAAJNC@POW_MineRemote_Player?$AA@	; `string'
PUBLIC	??_C@_0P@LDPJNFDM@Proximity?5Mine?$AA@		; `string'
PUBLIC	??_C@_0BJ@NBMNFBAO@POW_MineProximity_Player?$AA@ ; `string'
PUBLIC	??_C@_0M@JIDFGGKB@Laser?5Rifle?$AA@		; `string'
PUBLIC	??_C@_0BG@PDODNLCD@POW_LaserRifle_Player?$AA@	; `string'
PUBLIC	??_C@_0P@CHLANEGF@Laser?5Chaingun?$AA@		; `string'
PUBLIC	??_C@_0BJ@DCEKIBO@POW_LaserChaingun_Player?$AA@	; `string'
PUBLIC	??_C@_0BB@GIEOMMBO@Grenade?5Launcher?$AA@	; `string'
PUBLIC	??_C@_0BL@PLIKDCOD@POW_GrenadeLauncher_Player?$AA@ ; `string'
PUBLIC	??_C@_0N@PCEMONCD@FlameThrower?$AA@		; `string'
PUBLIC	??_C@_0BI@CPKKILGH@POW_Flamethrower_Player?$AA@	; `string'
PUBLIC	??_C@_0N@MJKCECGH@Chem?5Sprayer?$AA@		; `string'
PUBLIC	??_C@_0BH@IEBFNIJ@POW_ChemSprayer_Player?$AA@	; `string'
PUBLIC	??_C@_08HGFIDDGE@ChainGun?$AA@			; `string'
PUBLIC	??_C@_0BE@MNHLMFIN@POW_Chaingun_Player?$AA@	; `string'
PUBLIC	??_C@_09BALDGHFC@AutoRifle?$AA@			; `string'
PUBLIC	??_C@_0BN@LNEEPDJK@CnC_POW_AutoRifle_Player_GDI?$AA@ ; `string'
PUBLIC	??_C@_0O@KHEPPGKC@Random?5Weapon?$AA@		; `string'
PUBLIC	?RandomWeapon@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::RandomWeapon
EXTRN	?Grant_Powerup@@YAXPAEPBD@Z:PROC		; Grant_Powerup
;	COMDAT ??_C@_0ED@FCCMOKPM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5been?5g@
CONST	SEGMENT
??_C@_0ED@FCCMOKPM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5been?5g@ DB 'P'
	DB	'PAGE %d [Crate] You have been given a %s from the Weapons Loc'
	DB	'ker!', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@FLHHBJAG@Tiberium?5Flechette?5Gun?$AA@
CONST	SEGMENT
??_C@_0BH@FLHHBJAG@Tiberium?5Flechette?5Gun?$AA@ DB 'Tiberium Flechette G'
	DB	'un', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0CA@LONNBBEG@POW_TiberiumFlechetteGun_Player?$AA@
CONST	SEGMENT
??_C@_0CA@LONNBBEG@POW_TiberiumFlechetteGun_Player?$AA@ DB 'POW_TiberiumF'
	DB	'lechetteGun_Player', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@HOPBGNJM@Tiberium?5AutoRifle?$AA@
CONST	SEGMENT
??_C@_0BD@HOPBGNJM@Tiberium?5AutoRifle?$AA@ DB 'Tiberium AutoRifle', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BN@DFPKBHOD@POW_TiberiumAutoRifle_Player?$AA@
CONST	SEGMENT
??_C@_0BN@DFPKBHOD@POW_TiberiumAutoRifle_Player?$AA@ DB 'POW_TiberiumAuto'
	DB	'Rifle_Player', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@PNCKKCNC@Sniper?5Rifle?$AA@
CONST	SEGMENT
??_C@_0N@PNCKKCNC@Sniper?5Rifle?$AA@ DB 'Sniper Rifle', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@NMPBHGGK@POW_SniperRifle_Player?$AA@
CONST	SEGMENT
??_C@_0BH@NMPBHGGK@POW_SniperRifle_Player?$AA@ DB 'POW_SniperRifle_Player'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_07DGIAOJJ@Shotgun?$AA@
CONST	SEGMENT
??_C@_07DGIAOJJ@Shotgun?$AA@ DB 'Shotgun', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@PJGNEDGL@POW_Shotgun_Player?$AA@
CONST	SEGMENT
??_C@_0BD@PJGNEDGL@POW_Shotgun_Player?$AA@ DB 'POW_Shotgun_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@DLPOPCDE@RocketLauncher?$AA@
CONST	SEGMENT
??_C@_0P@DLPOPCDE@RocketLauncher?$AA@ DB 'RocketLauncher', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BK@MPOBPNAD@POW_RocketLauncher_Player?$AA@
CONST	SEGMENT
??_C@_0BK@MPOBPNAD@POW_RocketLauncher_Player?$AA@ DB 'POW_RocketLauncher_'
	DB	'Player', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@BEBCIPAC@Ramjet?5Rifle?$AA@
CONST	SEGMENT
??_C@_0N@BEBCIPAC@Ramjet?5Rifle?$AA@ DB 'Ramjet Rifle', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@GEDCLKJB@POW_RamjetRifle_Player?$AA@
CONST	SEGMENT
??_C@_0BH@GEDCLKJB@POW_RamjetRifle_Player?$AA@ DB 'POW_RamjetRifle_Player'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_07HMKBNLLE@RailGun?$AA@
CONST	SEGMENT
??_C@_07HMKBNLLE@RailGun?$AA@ DB 'RailGun', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@EEDBCDBM@POW_Railgun_Player?$AA@
CONST	SEGMENT
??_C@_0BD@EEDBCDBM@POW_Railgun_Player?$AA@ DB 'POW_Railgun_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@BNLHADBG@Personal?5Ion?5Cannon?$AA@
CONST	SEGMENT
??_C@_0BE@BNLHADBG@Personal?5Ion?5Cannon?$AA@ DB 'Personal Ion Cannon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BN@JFMDLPCE@POW_PersonalIonCannon_Player?$AA@
CONST	SEGMENT
??_C@_0BN@JFMDLPCE@POW_PersonalIonCannon_Player?$AA@ DB 'POW_PersonalIonC'
	DB	'annon_Player', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_08EOMCENKK@Timed?5C4?$AA@
CONST	SEGMENT
??_C@_08EOMCENKK@Timed?5C4?$AA@ DB 'Timed C4', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@NCBBDDDP@POW_MineTimed_Player?$AA@
CONST	SEGMENT
??_C@_0BF@NCBBDDDP@POW_MineTimed_Player?$AA@ DB 'POW_MineTimed_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@JIJMKCGL@Remote?5Mine?$AA@
CONST	SEGMENT
??_C@_0M@JIJMKCGL@Remote?5Mine?$AA@ DB 'Remote Mine', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@OOJAAJNC@POW_MineRemote_Player?$AA@
CONST	SEGMENT
??_C@_0BG@OOJAAJNC@POW_MineRemote_Player?$AA@ DB 'POW_MineRemote_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@LDPJNFDM@Proximity?5Mine?$AA@
CONST	SEGMENT
??_C@_0P@LDPJNFDM@Proximity?5Mine?$AA@ DB 'Proximity Mine', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BJ@NBMNFBAO@POW_MineProximity_Player?$AA@
CONST	SEGMENT
??_C@_0BJ@NBMNFBAO@POW_MineProximity_Player?$AA@ DB 'POW_MineProximity_Pl'
	DB	'ayer', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@JIDFGGKB@Laser?5Rifle?$AA@
CONST	SEGMENT
??_C@_0M@JIDFGGKB@Laser?5Rifle?$AA@ DB 'Laser Rifle', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@PDODNLCD@POW_LaserRifle_Player?$AA@
CONST	SEGMENT
??_C@_0BG@PDODNLCD@POW_LaserRifle_Player?$AA@ DB 'POW_LaserRifle_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@CHLANEGF@Laser?5Chaingun?$AA@
CONST	SEGMENT
??_C@_0P@CHLANEGF@Laser?5Chaingun?$AA@ DB 'Laser Chaingun', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BJ@DCEKIBO@POW_LaserChaingun_Player?$AA@
CONST	SEGMENT
??_C@_0BJ@DCEKIBO@POW_LaserChaingun_Player?$AA@ DB 'POW_LaserChaingun_Pla'
	DB	'yer', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@GIEOMMBO@Grenade?5Launcher?$AA@
CONST	SEGMENT
??_C@_0BB@GIEOMMBO@Grenade?5Launcher?$AA@ DB 'Grenade Launcher', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BL@PLIKDCOD@POW_GrenadeLauncher_Player?$AA@
CONST	SEGMENT
??_C@_0BL@PLIKDCOD@POW_GrenadeLauncher_Player?$AA@ DB 'POW_GrenadeLaunche'
	DB	'r_Player', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@PCEMONCD@FlameThrower?$AA@
CONST	SEGMENT
??_C@_0N@PCEMONCD@FlameThrower?$AA@ DB 'FlameThrower', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BI@CPKKILGH@POW_Flamethrower_Player?$AA@
CONST	SEGMENT
??_C@_0BI@CPKKILGH@POW_Flamethrower_Player?$AA@ DB 'POW_Flamethrower_Play'
	DB	'er', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@MJKCECGH@Chem?5Sprayer?$AA@
CONST	SEGMENT
??_C@_0N@MJKCECGH@Chem?5Sprayer?$AA@ DB 'Chem Sprayer', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@IEBFNIJ@POW_ChemSprayer_Player?$AA@
CONST	SEGMENT
??_C@_0BH@IEBFNIJ@POW_ChemSprayer_Player?$AA@ DB 'POW_ChemSprayer_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08HGFIDDGE@ChainGun?$AA@
CONST	SEGMENT
??_C@_08HGFIDDGE@ChainGun?$AA@ DB 'ChainGun', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@MNHLMFIN@POW_Chaingun_Player?$AA@
CONST	SEGMENT
??_C@_0BE@MNHLMFIN@POW_Chaingun_Player?$AA@ DB 'POW_Chaingun_Player', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09BALDGHFC@AutoRifle?$AA@
CONST	SEGMENT
??_C@_09BALDGHFC@AutoRifle?$AA@ DB 'AutoRifle', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0BN@LNEEPDJK@CnC_POW_AutoRifle_Player_GDI?$AA@
CONST	SEGMENT
??_C@_0BN@LNEEPDJK@CnC_POW_AutoRifle_Player_GDI?$AA@ DB 'CnC_POW_AutoRifl'
	DB	'e_Player_GDI', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@KHEPPGKC@Random?5Weapon?$AA@
CONST	SEGMENT
??_C@_0O@KHEPPGKC@Random?5Weapon?$AA@ DB 'Random Weapon', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?RandomWeapon@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?RandomWeapon@DAN_CnC_Crate@@AAEXPAE@Z PROC		; DAN_CnC_Crate::RandomWeapon, COMDAT
; _this$ = ecx

; 282  : {

	sub	esp, 512				; 00000200H
	push	ebx
	push	esi
	push	edi

; 283  : 	int PlayerID;
; 284  : 	PlayerID = Get_Player_ID(obj);

	mov	edi, DWORD PTR _obj$[esp+520]
	push	edi
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	mov	ebx, eax

; 285  : 	char Text[512];
; 286  : 	int RandNum = Commands->Get_Random_Int(1,19);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+152]
	push	19					; 00000013H
	push	1

; 287  : 	char *Weapon;
; 288  : 	Weapon = "Random Weapon";

	mov	esi, OFFSET ??_C@_0O@KHEPPGKC@Random?5Weapon?$AA@
	call	ecx

; 289  : 	switch (RandNum)

	add	eax, -1
	add	esp, 12					; 0000000cH
	cmp	eax, 17					; 00000011H
	ja	$LN19@RandomWeap
	jmp	DWORD PTR $LN24@RandomWeap[eax*4]
$LN18@RandomWeap:

; 290  : 	{
; 291  : 		case 1:
; 292  : 			Grant_Powerup(obj,"CnC_POW_AutoRifle_Player_GDI");

	push	OFFSET ??_C@_0BN@LNEEPDJK@CnC_POW_AutoRifle_Player_GDI?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 293  : 			Weapon = "AutoRifle";

	mov	esi, OFFSET ??_C@_09BALDGHFC@AutoRifle?$AA@

; 294  : 			break;

	jmp	$LN23@RandomWeap
$LN17@RandomWeap:

; 295  : 		case 2:
; 296  : 			Grant_Powerup(obj,"POW_Chaingun_Player");

	push	OFFSET ??_C@_0BE@MNHLMFIN@POW_Chaingun_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 297  : 			Weapon = "ChainGun";

	mov	esi, OFFSET ??_C@_08HGFIDDGE@ChainGun?$AA@

; 298  : 			break;

	jmp	$LN23@RandomWeap
$LN16@RandomWeap:

; 299  : 		case 3:
; 300  : 			Grant_Powerup(obj,"POW_ChemSprayer_Player");

	push	OFFSET ??_C@_0BH@IEBFNIJ@POW_ChemSprayer_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 301  : 			Weapon = "Chem Sprayer";

	mov	esi, OFFSET ??_C@_0N@MJKCECGH@Chem?5Sprayer?$AA@

; 302  : 			break;

	jmp	$LN23@RandomWeap
$LN15@RandomWeap:

; 303  : 		case 4:
; 304  : 			Grant_Powerup(obj,"POW_Flamethrower_Player");

	push	OFFSET ??_C@_0BI@CPKKILGH@POW_Flamethrower_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 305  : 			Weapon = "FlameThrower";

	mov	esi, OFFSET ??_C@_0N@PCEMONCD@FlameThrower?$AA@

; 306  : 			break;

	jmp	$LN23@RandomWeap
$LN14@RandomWeap:

; 307  : 		case 5:
; 308  : 			Grant_Powerup(obj,"POW_GrenadeLauncher_Player");

	push	OFFSET ??_C@_0BL@PLIKDCOD@POW_GrenadeLauncher_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 309  : 			Weapon = "Grenade Launcher";

	mov	esi, OFFSET ??_C@_0BB@GIEOMMBO@Grenade?5Launcher?$AA@

; 310  : 			break;

	jmp	$LN23@RandomWeap
$LN13@RandomWeap:

; 311  : 		case 6:
; 312  : 			Grant_Powerup(obj,"POW_LaserChaingun_Player");

	push	OFFSET ??_C@_0BJ@DCEKIBO@POW_LaserChaingun_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 313  : 			Weapon = "Laser Chaingun";

	mov	esi, OFFSET ??_C@_0P@CHLANEGF@Laser?5Chaingun?$AA@

; 314  : 			break;

	jmp	$LN23@RandomWeap
$LN12@RandomWeap:

; 315  : 		case 7:
; 316  : 			Grant_Powerup(obj,"POW_LaserRifle_Player");

	push	OFFSET ??_C@_0BG@PDODNLCD@POW_LaserRifle_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 317  : 			Weapon = "Laser Rifle";

	mov	esi, OFFSET ??_C@_0M@JIDFGGKB@Laser?5Rifle?$AA@

; 318  : 			break;

	jmp	$LN23@RandomWeap
$LN11@RandomWeap:

; 319  : 		case 8:
; 320  : 			Grant_Powerup(obj,"POW_MineProximity_Player");

	push	OFFSET ??_C@_0BJ@NBMNFBAO@POW_MineProximity_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 321  : 			Weapon = "Proximity Mine";

	mov	esi, OFFSET ??_C@_0P@LDPJNFDM@Proximity?5Mine?$AA@

; 322  : 			break;

	jmp	$LN23@RandomWeap
$LN10@RandomWeap:

; 323  : 		case 9:
; 324  : 			Grant_Powerup(obj,"POW_MineRemote_Player");

	push	OFFSET ??_C@_0BG@OOJAAJNC@POW_MineRemote_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 325  : 			Weapon = "Remote Mine";

	mov	esi, OFFSET ??_C@_0M@JIJMKCGL@Remote?5Mine?$AA@

; 326  : 			break;

	jmp	$LN23@RandomWeap
$LN9@RandomWeap:

; 327  : 		case 10:
; 328  : 			Grant_Powerup(obj,"POW_MineTimed_Player");

	push	OFFSET ??_C@_0BF@NCBBDDDP@POW_MineTimed_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 329  : 			Weapon = "Timed C4";

	mov	esi, OFFSET ??_C@_08EOMCENKK@Timed?5C4?$AA@

; 330  : 			break;

	jmp	$LN23@RandomWeap
$LN8@RandomWeap:

; 331  : 		case 11:
; 332  : 			Grant_Powerup(obj,"POW_PersonalIonCannon_Player");

	push	OFFSET ??_C@_0BN@JFMDLPCE@POW_PersonalIonCannon_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 333  : 			Weapon = "Personal Ion Cannon";

	mov	esi, OFFSET ??_C@_0BE@BNLHADBG@Personal?5Ion?5Cannon?$AA@

; 334  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN7@RandomWeap:

; 335  : 		case 12:
; 336  : 			Grant_Powerup(obj,"POW_Railgun_Player");

	push	OFFSET ??_C@_0BD@EEDBCDBM@POW_Railgun_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 337  : 			Weapon = "RailGun";

	mov	esi, OFFSET ??_C@_07HMKBNLLE@RailGun?$AA@

; 338  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN6@RandomWeap:

; 339  : 		case 13:
; 340  : 			Grant_Powerup(obj,"POW_RamjetRifle_Player");

	push	OFFSET ??_C@_0BH@GEDCLKJB@POW_RamjetRifle_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 341  : 			Weapon = "Ramjet Rifle";

	mov	esi, OFFSET ??_C@_0N@BEBCIPAC@Ramjet?5Rifle?$AA@

; 342  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN5@RandomWeap:

; 343  : 		case 14:
; 344  : 			Grant_Powerup(obj,"POW_RocketLauncher_Player");

	push	OFFSET ??_C@_0BK@MPOBPNAD@POW_RocketLauncher_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 345  : 			Weapon = "RocketLauncher";

	mov	esi, OFFSET ??_C@_0P@DLPOPCDE@RocketLauncher?$AA@

; 346  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN4@RandomWeap:

; 347  : 		case 15:
; 348  : 			Grant_Powerup(obj,"POW_Shotgun_Player");

	push	OFFSET ??_C@_0BD@PJGNEDGL@POW_Shotgun_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 349  : 			Weapon = "Shotgun";

	mov	esi, OFFSET ??_C@_07DGIAOJJ@Shotgun?$AA@

; 350  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN3@RandomWeap:

; 351  : 		case 16:
; 352  : 			Grant_Powerup(obj,"POW_SniperRifle_Player");

	push	OFFSET ??_C@_0BH@NMPBHGGK@POW_SniperRifle_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 353  : 			Weapon = "Sniper Rifle";

	mov	esi, OFFSET ??_C@_0N@PNCKKCNC@Sniper?5Rifle?$AA@

; 354  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN2@RandomWeap:

; 355  : 		case 17:
; 356  : 			Grant_Powerup(obj,"POW_TiberiumAutoRifle_Player");

	push	OFFSET ??_C@_0BN@DFPKBHOD@POW_TiberiumAutoRifle_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 357  : 			Weapon = "Tiberium AutoRifle";

	mov	esi, OFFSET ??_C@_0BD@HOPBGNJM@Tiberium?5AutoRifle?$AA@

; 358  : 			break;

	jmp	SHORT $LN23@RandomWeap
$LN1@RandomWeap:

; 359  : 		case 18:
; 360  : 			Grant_Powerup(obj,"POW_TiberiumFlechetteGun_Player");

	push	OFFSET ??_C@_0CA@LONNBBEG@POW_TiberiumFlechetteGun_Player?$AA@
	push	edi
	call	?Grant_Powerup@@YAXPAEPBD@Z		; Grant_Powerup

; 361  : 			Weapon = "Tiberium Flechette Gun";

	mov	esi, OFFSET ??_C@_0BH@FLHHBJAG@Tiberium?5Flechette?5Gun?$AA@
$LN23@RandomWeap:

; 359  : 		case 18:
; 360  : 			Grant_Powerup(obj,"POW_TiberiumFlechetteGun_Player");

	add	esp, 8
$LN19@RandomWeap:

; 362  : 			break;
; 363  : 	}
; 364  : 	sprintf(Text,"PPAGE %d [Crate] You have been given a %s from the Weapons Locker!",PlayerID,Weapon);

	push	esi
	push	ebx
	lea	edx, DWORD PTR _Text$[esp+532]
	push	OFFSET ??_C@_0ED@FCCMOKPM@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5been?5g@
	push	edx
	call	_sprintf

; 365  : 	Console_Input(Text);

	lea	eax, DWORD PTR _Text$[esp+540]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 20					; 00000014H
	pop	edi
	pop	esi
	pop	ebx

; 366  : }

	add	esp, 512				; 00000200H
	ret	4
	npad	3
$LN24@RandomWeap:
	DD	$LN18@RandomWeap
	DD	$LN17@RandomWeap
	DD	$LN16@RandomWeap
	DD	$LN15@RandomWeap
	DD	$LN14@RandomWeap
	DD	$LN13@RandomWeap
	DD	$LN12@RandomWeap
	DD	$LN11@RandomWeap
	DD	$LN10@RandomWeap
	DD	$LN9@RandomWeap
	DD	$LN8@RandomWeap
	DD	$LN7@RandomWeap
	DD	$LN6@RandomWeap
	DD	$LN5@RandomWeap
	DD	$LN4@RandomWeap
	DD	$LN3@RandomWeap
	DD	$LN2@RandomWeap
	DD	$LN1@RandomWeap
?RandomWeapon@DAN_CnC_Crate@@AAEXPAE@Z ENDP		; DAN_CnC_Crate::RandomWeapon
_TEXT	ENDS
PUBLIC	??_C@_0EK@IEJILPIP@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5got?5@ ; `string'
PUBLIC	?SpyCrate@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::SpyCrate
;	COMDAT ??_C@_0EK@IEJILPIP@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5got?5@
CONST	SEGMENT
??_C@_0EK@IEJILPIP@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5got?5@ DB 'M'
	DB	'ESSAGE [Crate] Some %s guy got the Spy Crate! Better watch yo'
	DB	'ur base, %s', 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?SpyCrate@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?SpyCrate@DAN_CnC_Crate@@AAEXPAE@Z PROC			; DAN_CnC_Crate::SpyCrate, COMDAT
; _this$ = ecx

; 370  : 	char *Team = 0;
; 371  : 	char *OtherTeam = 0;
; 372  : 	if (!Commands->Get_Player_Type(obj))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	sub	esp, 512				; 00000200H
	push	ebx
	mov	ebx, DWORD PTR _obj$[esp+512]
	push	esi
	push	edi
	push	ebx
	xor	esi, esi
	xor	edi, edi
	call	ecx
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN3@SpyCrate

; 373  : 	{
; 374  : 		Team = "Nod";

	mov	esi, OFFSET ??_C@_03OHGKCNFD@Nod?$AA@

; 375  : 		OtherTeam = "GDI";

	mov	edi, OFFSET ??_C@_03IOFAJBDH@GDI?$AA@
	jmp	SHORT $LN1@SpyCrate
$LN3@SpyCrate:

; 376  : 	}
; 377  : 	else if (Commands->Get_Player_Type(obj) == 1)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+248]
	push	ebx
	call	eax
	add	esp, 4
	cmp	eax, 1
	jne	SHORT $LN1@SpyCrate

; 378  : 	{
; 379  : 		Team = "GDI";

	mov	esi, OFFSET ??_C@_03IOFAJBDH@GDI?$AA@

; 380  : 		OtherTeam = "Nod";

	mov	edi, OFFSET ??_C@_03OHGKCNFD@Nod?$AA@
$LN1@SpyCrate:

; 381  : 	}
; 382  : 	char Text[512];
; 383  : 	Commands->Set_Is_Visible(obj,false);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+624]
	push	0
	push	ebx
	call	edx

; 384  : 	sprintf(Text,"MESSAGE [Crate] Some %s guy got the Spy Crate! Better watch your base, %s",Team,OtherTeam);

	push	edi
	push	esi
	lea	eax, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0EK@IEJILPIP@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5got?5@
	push	eax
	call	_sprintf

; 385  : 	Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+548]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
	pop	edi
	pop	esi
	pop	ebx

; 386  : }

	add	esp, 512				; 00000200H
	ret	4
?SpyCrate@DAN_CnC_Crate@@AAEXPAE@Z ENDP			; DAN_CnC_Crate::SpyCrate
_TEXT	ENDS
PUBLIC	??_C@_0DE@GIGKJILE@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5foun@ ; `string'
PUBLIC	?StealthSuit@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::StealthSuit
;	COMDAT ??_C@_0DE@GIGKJILE@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5foun@
CONST	SEGMENT
??_C@_0DE@GIGKJILE@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5foun@ DB 'ME'
	DB	'SSAGE [Crate] Some %s guy found the Stealth Suit!', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?StealthSuit@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?StealthSuit@DAN_CnC_Crate@@AAEXPAE@Z PROC		; DAN_CnC_Crate::StealthSuit, COMDAT
; _this$ = ecx

; 390  : 	char *Team = 0;
; 391  : 	if (!Commands->Get_Player_Type(obj))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	sub	esp, 512				; 00000200H
	push	esi
	push	edi
	mov	edi, DWORD PTR _obj$[esp+516]
	push	edi
	xor	esi, esi
	call	ecx
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN3@StealthSui

; 392  : 	{
; 393  : 		Team = "Nod";

	mov	esi, OFFSET ??_C@_03OHGKCNFD@Nod?$AA@
	jmp	SHORT $LN1@StealthSui
$LN3@StealthSui:

; 394  : 	}
; 395  : 	else if (Commands->Get_Player_Type(obj) == 1)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+248]
	push	edi
	call	eax
	add	esp, 4
	cmp	eax, 1
	jne	SHORT $LN1@StealthSui

; 396  : 	{
; 397  : 		Team = "GDI";

	mov	esi, OFFSET ??_C@_03IOFAJBDH@GDI?$AA@
$LN1@StealthSui:

; 398  : 	}
; 399  : 	char Text[512];
; 400  : 	Commands->Enable_Stealth(obj,true);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+708]
	push	1
	push	edi
	call	edx

; 401  : 	sprintf(Text,"MESSAGE [Crate] Some %s guy found the Stealth Suit!",Team);

	push	esi
	lea	eax, DWORD PTR _Text$[esp+532]
	push	OFFSET ??_C@_0DE@GIGKJILE@MESSAGE?5?$FLCrate?$FN?5Some?5?$CFs?5guy?5foun@
	push	eax
	call	_sprintf

; 402  : 	Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+540]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 24					; 00000018H
	pop	edi
	pop	esi

; 403  : }

	add	esp, 512				; 00000200H
	ret	4
?StealthSuit@DAN_CnC_Crate@@AAEXPAE@Z ENDP		; DAN_CnC_Crate::StealthSuit
_TEXT	ENDS
PUBLIC	??_C@_0EC@JCFFNCHJ@MESSAGE?5?$FLCrate?$FN?5Awwww?0?5some?5poor@ ; `string'
PUBLIC	__real@bf800000
PUBLIC	?Theif@DAN_CnC_Crate@@AAEXPAE@Z			; DAN_CnC_Crate::Theif
;	COMDAT ??_C@_0EC@JCFFNCHJ@MESSAGE?5?$FLCrate?$FN?5Awwww?0?5some?5poor@
CONST	SEGMENT
??_C@_0EC@JCFFNCHJ@MESSAGE?5?$FLCrate?$FN?5Awwww?0?5some?5poor@ DB 'MESSA'
	DB	'GE [Crate] Awwww, some poor %s guy lost all his money! Pwnt!', 00H ; `string'
CONST	ENDS
;	COMDAT __real@bf800000
CONST	SEGMENT
__real@bf800000 DD 0bf800000r			; -1
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Theif@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?Theif@DAN_CnC_Crate@@AAEXPAE@Z PROC			; DAN_CnC_Crate::Theif, COMDAT
; _this$ = ecx

; 407  : 	char *Team = 0;
; 408  : 	if (!Commands->Get_Player_Type(obj))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+248]
	sub	esp, 512				; 00000200H
	push	ebx
	push	esi
	mov	esi, DWORD PTR _obj$[esp+516]
	push	edi
	push	esi
	xor	ebx, ebx
	call	ecx
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN3@Theif

; 409  : 	{
; 410  : 		Team = "Nod";

	mov	ebx, OFFSET ??_C@_03OHGKCNFD@Nod?$AA@
	jmp	SHORT $LN1@Theif
$LN3@Theif:

; 411  : 	}
; 412  : 	else if (Commands->Get_Player_Type(obj) == 1)

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+248]
	push	esi
	call	eax
	add	esp, 4
	cmp	eax, 1
	jne	SHORT $LN1@Theif

; 413  : 	{
; 414  : 		Team = "GDI";

	mov	ebx, OFFSET ??_C@_03IOFAJBDH@GDI?$AA@
$LN1@Theif:

; 415  : 	}
; 416  : 	char Text[512];
; 417  : 	Commands->Give_Money(obj,(Commands->Get_Money(obj)*-1),false);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+640]
	push	0
	push	esi
	lea	edi, DWORD PTR [eax+644]
	call	ecx
	fmul	DWORD PTR __real@bf800000
	mov	edx, DWORD PTR [edi]
	fstp	DWORD PTR [esp]
	push	esi
	call	edx

; 418  : 	sprintf(Text,"MESSAGE [Crate] Awwww, some poor %s guy lost all his money! Pwnt!",Team);

	push	ebx
	lea	eax, DWORD PTR _Text$[esp+540]
	push	OFFSET ??_C@_0EC@JCFFNCHJ@MESSAGE?5?$FLCrate?$FN?5Awwww?0?5some?5poor@
	push	eax
	call	_sprintf

; 419  : 	Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+548]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 28					; 0000001cH
	pop	edi
	pop	esi
	pop	ebx

; 420  : }

	add	esp, 512				; 00000200H
	ret	4
?Theif@DAN_CnC_Crate@@AAEXPAE@Z ENDP			; DAN_CnC_Crate::Theif
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@DAN_CnC_Crate@@EAEXXZ ; DAN_CnC_Crate::Register_Auto_Save_Variables
EXTRN	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z:PROC ; ScriptImpClass::Auto_Save_Variable
; Function compile flags: /Ogtpy
;	COMDAT ?Register_Auto_Save_Variables@DAN_CnC_Crate@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@DAN_CnC_Crate@@EAEXXZ PROC ; DAN_CnC_Crate::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 424  : 	Auto_Save_Variable(1,4,&VehBlock);

	lea	eax, DWORD PTR [ecx+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 425  : }

	ret	0
?Register_Auto_Save_Variables@DAN_CnC_Crate@@EAEXXZ ENDP ; DAN_CnC_Crate::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	??_C@_0BJ@GBJDLGFE@DAN_Wreckage_Rebuildable?$AA@ ; `string'
PUBLIC	??_C@_0BA@BKACAECP@Wreckage_Preset?$AA@		; `string'
PUBLIC	?Killed@DAN_Drop_Wreckage_On_Death@@EAEXPAE0@Z	; DAN_Drop_Wreckage_On_Death::Killed
EXTRN	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z:PROC	; ScriptImpClass::Get_Parameter
;	COMDAT ??_C@_0BJ@GBJDLGFE@DAN_Wreckage_Rebuildable?$AA@
CONST	SEGMENT
??_C@_0BJ@GBJDLGFE@DAN_Wreckage_Rebuildable?$AA@ DB 'DAN_Wreckage_Rebuild'
	DB	'able', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@BKACAECP@Wreckage_Preset?$AA@
CONST	SEGMENT
??_C@_0BA@BKACAECP@Wreckage_Preset?$AA@ DB 'Wreckage_Preset', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Killed@DAN_Drop_Wreckage_On_Death@@EAEXPAE0@Z
_TEXT	SEGMENT
$T61057 = -12						; size = 12
_obj$ = 8						; size = 4
_shooter$ = 12						; size = 4
?Killed@DAN_Drop_Wreckage_On_Death@@EAEXPAE0@Z PROC	; DAN_Drop_Wreckage_On_Death::Killed, COMDAT
; _this$ = ecx

; 429  : 	GameObject *CurTank;
; 430  : 	CurTank = Commands->Create_Object(Get_Parameter("Wreckage_Preset"),Commands->Get_Position(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+64]
	sub	esp, 12					; 0000000cH
	push	ebx
	push	esi
	mov	esi, DWORD PTR _obj$[esp+16]
	push	edi
	mov	edi, ecx
	lea	ecx, DWORD PTR $T61057[esp+24]
	push	esi
	push	ecx
	lea	ebx, DWORD PTR [eax+100]
	call	edx
	add	esp, 8
	push	eax
	push	OFFSET ??_C@_0BA@BKACAECP@Wreckage_Preset?$AA@
	mov	ecx, edi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	mov	eax, DWORD PTR [ebx]
	call	eax
	mov	edi, eax

; 431  : 	Commands->Set_Facing(CurTank,Commands->Get_Facing(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+72]
	push	esi
	lea	ebx, DWORD PTR [eax+76]
	call	ecx
	fstp	DWORD PTR [esp+8]
	mov	edx, DWORD PTR [ebx]
	add	esp, 8
	push	edi
	call	edx

; 432  : 	Commands->Attach_Script(CurTank,"DAN_Wreckage_Rebuildable",Commands->Get_Preset_Name(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ebx, DWORD PTR [eax+120]
	mov	eax, DWORD PTR [eax+116]
	push	esi
	call	eax
	mov	ecx, DWORD PTR [ebx]
	push	eax
	push	OFFSET ??_C@_0BJ@GBJDLGFE@DAN_Wreckage_Rebuildable?$AA@
	push	edi
	call	ecx
	add	esp, 24					; 00000018H
	pop	edi
	pop	esi
	pop	ebx

; 433  : }

	add	esp, 12					; 0000000cH
	ret	8
?Killed@DAN_Drop_Wreckage_On_Death@@EAEXPAE0@Z ENDP	; DAN_Drop_Wreckage_On_Death::Killed
_TEXT	ENDS
PUBLIC	__real@00000000
PUBLIC	__real@42480000
PUBLIC	?Created@DAN_Wreckage_Rebuildable@@EAEXPAE@Z	; DAN_Wreckage_Rebuildable::Created
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
CONST	ENDS
;	COMDAT __real@42480000
CONST	SEGMENT
__real@42480000 DD 042480000r			; 50
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Created@DAN_Wreckage_Rebuildable@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@DAN_Wreckage_Rebuildable@@EAEXPAE@Z PROC	; DAN_Wreckage_Rebuildable::Created, COMDAT
; _this$ = ecx

; 437  : 	Commands->Set_Player_Type(obj,-2);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+252]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	-2					; fffffffeH
	push	esi
	call	ecx

; 438  : 	Commands->Set_Health(obj,50);

	fld	DWORD PTR __real@42480000
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp+4]
	mov	eax, DWORD PTR [edx+228]
	add	esp, 4
	push	esi
	call	eax

; 439  : 	Commands->Set_Shield_Strength(obj,0);

	fldz
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp+4]
	mov	edx, DWORD PTR [ecx+240]
	add	esp, 4
	push	esi
	call	edx
	add	esp, 8
	pop	esi

; 440  : }

	ret	4
?Created@DAN_Wreckage_Rebuildable@@EAEXPAE@Z ENDP	; DAN_Wreckage_Rebuildable::Created
_TEXT	ENDS
PUBLIC	__real@40a00000
PUBLIC	??_C@_0P@LNANEEHL@Vehicle_Preset?$AA@		; `string'
PUBLIC	?Damaged@DAN_Wreckage_Rebuildable@@EAEXPAE0M@Z	; DAN_Wreckage_Rebuildable::Damaged
;	COMDAT __real@40a00000
CONST	SEGMENT
__real@40a00000 DD 040a00000r			; 5
CONST	ENDS
;	COMDAT ??_C@_0P@LNANEEHL@Vehicle_Preset?$AA@
CONST	SEGMENT
??_C@_0P@LNANEEHL@Vehicle_Preset?$AA@ DB 'Vehicle_Preset', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Damaged@DAN_Wreckage_Rebuildable@@EAEXPAE0M@Z
_TEXT	SEGMENT
_CurPosition$56738 = -24				; size = 12
$T61069 = -12						; size = 12
$T61068 = -12						; size = 12
_TotalHealth$56736 = 8					; size = 4
_obj$ = 8						; size = 4
_damager$ = 12						; size = 4
tv160 = 16						; size = 4
tv128 = 16						; size = 4
_MaxHealth$56737 = 16					; size = 4
_damage$ = 16						; size = 4
?Damaged@DAN_Wreckage_Rebuildable@@EAEXPAE0M@Z PROC	; DAN_Wreckage_Rebuildable::Damaged, COMDAT
; _this$ = ecx

; 444  : 	if (damage < 0)

	fldz
	sub	esp, 24					; 00000018H
	fcomp	DWORD PTR _damage$[esp+20]
	push	ebx
	mov	ebx, ecx
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	$LN1@Damaged

; 445  : 	{
; 446  : 		float TotalHealth = Commands->Get_Health(obj) + Commands->Get_Shield_Strength(obj);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+232]
	push	edi
	mov	edi, DWORD PTR _obj$[esp+28]
	push	edi
	call	ecx
	fstp	DWORD PTR tv128[esp+32]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+220]
	push	edi
	call	eax
	fadd	DWORD PTR tv128[esp+36]

; 447  : 		const float MaxHealth = Commands->Get_Max_Health(obj) + Commands->Get_Max_Shield_Strength(obj);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+236]
	push	edi
	fstp	DWORD PTR _TotalHealth$56736[esp+40]
	call	edx
	fstp	DWORD PTR tv160[esp+40]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+224]
	push	edi
	call	ecx
	fadd	DWORD PTR tv160[esp+44]

; 448  : 		Vector3 CurPosition = Commands->Get_Position(obj);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+64]
	lea	edx, DWORD PTR $T61068[esp+48]
	fstp	DWORD PTR _MaxHealth$56737[esp+44]
	push	edi
	push	edx
	call	ecx

; 449  : 		if (TotalHealth == MaxHealth)

	fld	DWORD PTR _MaxHealth$56737[esp+52]
	mov	edx, DWORD PTR [eax]
	fcomp	DWORD PTR _TotalHealth$56736[esp+52]
	mov	DWORD PTR _CurPosition$56738[esp+56], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _CurPosition$56738[esp+60], ecx
	mov	edx, DWORD PTR [eax+8]
	fnstsw	ax
	add	esp, 24					; 00000018H
	test	ah, 68					; 00000044H
	mov	DWORD PTR _CurPosition$56738[esp+40], edx
	jp	$LN5@Damaged

; 450  : 		{
; 451  : 			GameObject *CurTank = Commands->Create_Object(Get_Parameter("Vehicle_Preset"),Commands->Get_Position(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [eax+64]
	push	esi
	lea	ecx, DWORD PTR $T61069[esp+36]
	push	edi
	push	ecx
	lea	esi, DWORD PTR [eax+100]
	call	edx
	add	esp, 8
	push	eax
	push	OFFSET ??_C@_0P@LNANEEHL@Vehicle_Preset?$AA@
	mov	ecx, ebx
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	mov	eax, DWORD PTR [esi]
	call	eax
	mov	esi, eax

; 452  : 			Commands->Set_Facing(CurTank,Commands->Get_Facing(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+72]
	push	edi
	lea	ebx, DWORD PTR [eax+76]
	call	ecx
	fstp	DWORD PTR [esp+8]
	mov	edx, DWORD PTR [ebx]
	add	esp, 8
	push	esi
	call	edx

; 453  : 			Commands->Set_Health(CurTank,5);

	fld	DWORD PTR __real@40a00000
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp+4]
	mov	ecx, DWORD PTR [eax+228]
	add	esp, 4
	push	esi
	call	ecx

; 454  : 			Commands->Set_Shield_Strength(CurTank,0);

	fldz
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR [esp+4]
	mov	eax, DWORD PTR [edx+240]
	add	esp, 4
	push	esi
	call	eax

; 455  : 			Commands->Set_Player_Type(CurTank,Commands->Get_Player_Type(damager));

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

; 456  : 			CurPosition.Z += 1;

	fld	DWORD PTR _CurPosition$56738[esp+64]
	fadd	DWORD PTR __real@3f800000

; 457  : 			Commands->Set_Position(CurTank,CurPosition);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _CurPosition$56738[esp+56]
	push	ecx
	fstp	DWORD PTR _CurPosition$56738[esp+68]
	mov	eax, DWORD PTR [edx+60]
	push	esi
	call	eax

; 458  : 			Commands->Destroy_Object(obj); 

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+92]
	push	edi
	call	edx
	add	esp, 32					; 00000020H
	pop	esi
$LN5@Damaged:
	pop	edi
$LN1@Damaged:
	pop	ebx

; 459  : 		}
; 460  : 	}
; 461  : }

	add	esp, 24					; 00000018H
	ret	12					; 0000000cH
?Damaged@DAN_Wreckage_Rebuildable@@EAEXPAE0M@Z ENDP	; DAN_Wreckage_Rebuildable::Damaged
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAE@XZ	; ScriptRegistrant<DAN_CnC_Crate>::~ScriptRegistrant<DAN_CnC_Crate>
EXTRN	??1ScriptFactory@@UAE@XZ:PROC			; ScriptFactory::~ScriptFactory
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAE@XZ PROC	; ScriptRegistrant<DAN_CnC_Crate>::~ScriptRegistrant<DAN_CnC_Crate>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAE@XZ ENDP	; ScriptRegistrant<DAN_CnC_Crate>::~ScriptRegistrant<DAN_CnC_Crate>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAE@XZ ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::~ScriptRegistrant<DAN_Drop_Wreckage_On_Death>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAE@XZ PROC ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::~ScriptRegistrant<DAN_Drop_Wreckage_On_Death>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAE@XZ ENDP ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::~ScriptRegistrant<DAN_Drop_Wreckage_On_Death>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAE@XZ ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::~ScriptRegistrant<DAN_Wreckage_Rebuildable>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAE@XZ PROC ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::~ScriptRegistrant<DAN_Wreckage_Rebuildable>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAE@XZ ENDP ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::~ScriptRegistrant<DAN_Wreckage_Rebuildable>
_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
$T61091 = -12						; size = 12
_this$ = 8						; size = 4
$T61097 = 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 $T61097[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T61091[esp+20]
	mov	DWORD PTR $T61097[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T61091[esp+20]
	push	ecx
	mov	DWORD PTR $T61091[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
$T61103 = -12						; size = 12
$T61108 = 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 $T61108[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T61103[esp+20]
	mov	DWORD PTR $T61108[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T61103[esp+20]
	push	ecx
	mov	DWORD PTR $T61103[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	??_7?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@	; ScriptRegistrant<DAN_CnC_Crate>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VDAN_CnC_Crate@@@@QAE@PAD0@Z ; ScriptRegistrant<DAN_CnC_Crate>::ScriptRegistrant<DAN_CnC_Crate>
PUBLIC	??_R4?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@	; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VDAN_CnC_Crate@@@@@8	; ScriptRegistrant<DAN_CnC_Crate> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VDAN_CnC_Crate@@@@8	; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VDAN_CnC_Crate@@@@8	; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_CnC_Crate@@@@8 ; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@ScriptFactory@@8			; ScriptFactory::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVScriptFactory@@@8			; ScriptFactory `RTTI Type Descriptor'
PUBLIC	??_R3ScriptFactory@@8				; ScriptFactory::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ScriptFactory@@8				; ScriptFactory::`RTTI Base Class Array'
PUBLIC	?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<DAN_CnC_Crate>::Create
EXTRN	??0ScriptFactory@@QAE@PAD0@Z:PROC		; ScriptFactory::ScriptFactory
EXTRN	??_E?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<DAN_CnC_Crate>::`vector deleting destructor'
;	COMDAT ??_R2ScriptFactory@@8
; File d:\source code\stgm\scripts.h
rdata$r	SEGMENT
??_R2ScriptFactory@@8 DD FLAT:??_R1A@?0A@EA@ScriptFactory@@8 ; ScriptFactory::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3ScriptFactory@@8
rdata$r	SEGMENT
??_R3ScriptFactory@@8 DD 00H				; ScriptFactory::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVScriptFactory@@@8
_DATA	SEGMENT
??_R0?AVScriptFactory@@@8 DD FLAT:??_7type_info@@6B@	; ScriptFactory `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVScriptFactory@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ScriptFactory@@8 DD FLAT:??_R0?AVScriptFactory@@@8 ; ScriptFactory::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_CnC_Crate@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_CnC_Crate@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VDAN_CnC_Crate@@@@@8 ; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VDAN_CnC_Crate@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VDAN_CnC_Crate@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VDAN_CnC_Crate@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_CnC_Crate@@@@8 ; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VDAN_CnC_Crate@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VDAN_CnC_Crate@@@@8 DD 00H	; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VDAN_CnC_Crate@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VDAN_CnC_Crate@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VDAN_CnC_Crate@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<DAN_CnC_Crate> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VDAN_CnC_Crate@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@ DD 00H	; ScriptRegistrant<DAN_CnC_Crate>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VDAN_CnC_Crate@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VDAN_CnC_Crate@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@ ; ScriptRegistrant<DAN_CnC_Crate>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VDAN_CnC_Crate@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VDAN_CnC_Crate@@@@QAE@PAD0@Z PROC	; ScriptRegistrant<DAN_CnC_Crate>::ScriptRegistrant<DAN_CnC_Crate>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VDAN_CnC_Crate@@@@QAE@PAD0@Z ENDP	; ScriptRegistrant<DAN_CnC_Crate>::ScriptRegistrant<DAN_CnC_Crate>
_TEXT	ENDS
PUBLIC	?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z ; ScriptImpClass::SetFactory
; Function compile flags: /Ogtpy
;	COMDAT ?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z PROC ; ScriptImpClass::SetFactory, COMDAT
; _this$ = ecx

; 145  : 		Factory = ptr;

	mov	eax, DWORD PTR _ptr$[esp-4]
	mov	DWORD PTR [ecx+20], eax

; 146  : 	}

	ret	4
?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z ENDP ; ScriptImpClass::SetFactory
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@ ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@QAE@PAD0@Z ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::ScriptRegistrant<DAN_Drop_Wreckage_On_Death>
PUBLIC	??_R4?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@ ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@@8 ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::Create
EXTRN	??_E?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@@8 ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8 DD 00H ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@ DD 00H ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@ ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@QAE@PAD0@Z PROC ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::ScriptRegistrant<DAN_Drop_Wreckage_On_Death>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::ScriptRegistrant<DAN_Drop_Wreckage_On_Death>
_TEXT	ENDS
PUBLIC	??_7?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@ ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`vftable'
PUBLIC	??0?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@QAE@PAD0@Z ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::ScriptRegistrant<DAN_Wreckage_Rebuildable>
PUBLIC	??_R4?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@ ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@@8 ; ScriptRegistrant<DAN_Wreckage_Rebuildable> `RTTI Type Descriptor'
PUBLIC	??_R3?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::Create
EXTRN	??_E?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAXI@Z:PROC ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 DD FLAT:??_R0?AV?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@@8 ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8
rdata$r	SEGMENT
??_R2?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 DD FLAT:??_R1A@?0A@EA@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptFactory@@8
rdata$r	ENDS
;	COMDAT ??_R3?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8
rdata$r	SEGMENT
??_R3?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8 DD 00H ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@@8
_DATA	SEGMENT
??_R0?AV?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@@8 DD FLAT:??_7type_info@@6B@ ; ScriptRegistrant<DAN_Wreckage_Rebuildable> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@
rdata$r	SEGMENT
??_R4?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@ DD 00H ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@@8
	DD	FLAT:??_R3?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@ DD FLAT:??_R4?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@ ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`vftable'
	DD	FLAT:??_E?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAXI@Z
	DD	FLAT:?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@QAE@PAD0@Z PROC ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::ScriptRegistrant<DAN_Wreckage_Rebuildable>, COMDAT
; _this$ = ecx

; 481  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET ??_7?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@

; 482  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::ScriptRegistrant<DAN_Wreckage_Rebuildable>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAXI@Z PROC	; ScriptRegistrant<DAN_CnC_Crate>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAXI@Z ENDP	; ScriptRegistrant<DAN_CnC_Crate>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAXI@Z PROC ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAXI@Z PROC ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

	ret	0
??0?$allocator@D@std@@QAE@XZ ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	??0?$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	??_7DAN_CnC_Crate@@6B@				; DAN_CnC_Crate::`vftable'
PUBLIC	??0DAN_CnC_Crate@@QAE@XZ			; DAN_CnC_Crate::DAN_CnC_Crate
PUBLIC	??_R4DAN_CnC_Crate@@6B@				; DAN_CnC_Crate::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVDAN_CnC_Crate@@@8			; DAN_CnC_Crate `RTTI Type Descriptor'
PUBLIC	??_R3DAN_CnC_Crate@@8				; DAN_CnC_Crate::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2DAN_CnC_Crate@@8				; DAN_CnC_Crate::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@DAN_CnC_Crate@@8			; DAN_CnC_Crate::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@ScriptImpClass@@8			; ScriptImpClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVScriptImpClass@@@8			; ScriptImpClass `RTTI Type Descriptor'
PUBLIC	??_R3ScriptImpClass@@8				; ScriptImpClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ScriptImpClass@@8				; ScriptImpClass::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@ScriptClass@@8			; ScriptClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVScriptClass@@@8				; ScriptClass `RTTI Type Descriptor'
PUBLIC	??_R3ScriptClass@@8				; ScriptClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2ScriptClass@@8				; ScriptClass::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@GameObjObserverClass@@8		; GameObjObserverClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVGameObjObserverClass@@@8		; GameObjObserverClass `RTTI Type Descriptor'
PUBLIC	??_R3GameObjObserverClass@@8			; GameObjObserverClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2GameObjObserverClass@@8			; GameObjObserverClass::`RTTI Base Class Array'
PUBLIC	?Custom@DAN_CnC_Crate@@EAEXPAEHH0@Z		; DAN_CnC_Crate::Custom
EXTRN	??0ScriptImpClass@@QAE@XZ:PROC			; ScriptImpClass::ScriptImpClass
EXTRN	??_EDAN_CnC_Crate@@UAEPAXI@Z:PROC		; DAN_CnC_Crate::`vector deleting destructor'
EXTRN	?Get_Name@ScriptImpClass@@UAEPADXZ:PROC		; ScriptImpClass::Get_Name
EXTRN	?Attach@ScriptImpClass@@UAEXPAE@Z:PROC		; ScriptImpClass::Attach
EXTRN	?Detach@ScriptImpClass@@UAEXPAE@Z:PROC		; ScriptImpClass::Detach
EXTRN	?Destroyed@ScriptImpClass@@UAEXPAE@Z:PROC	; ScriptImpClass::Destroyed
EXTRN	?Killed@ScriptImpClass@@UAEXPAE0@Z:PROC		; ScriptImpClass::Killed
EXTRN	?Damaged@ScriptImpClass@@UAEXPAE0M@Z:PROC	; ScriptImpClass::Damaged
EXTRN	?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z:PROC ; ScriptImpClass::Sound_Heard
EXTRN	?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z:PROC	; ScriptImpClass::Enemy_Seen
EXTRN	?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z:PROC ; ScriptImpClass::Action_Complete
EXTRN	?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z:PROC	; ScriptImpClass::Timer_Expired
EXTRN	?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z:PROC ; ScriptImpClass::Animation_Complete
EXTRN	?Poked@ScriptImpClass@@UAEXPAE0@Z:PROC		; ScriptImpClass::Poked
EXTRN	?Entered@ScriptImpClass@@UAEXPAE0@Z:PROC	; ScriptImpClass::Entered
EXTRN	?Exited@ScriptImpClass@@UAEXPAE0@Z:PROC		; ScriptImpClass::Exited
EXTRN	?Owner@ScriptImpClass@@UAEPAEXZ:PROC		; ScriptImpClass::Owner
EXTRN	?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ:PROC	; ScriptImpClass::Get_Owner_Ptr
EXTRN	?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z:PROC ; ScriptImpClass::Set_Parameters_String
EXTRN	?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z:PROC ; ScriptImpClass::Get_Parameters_String
EXTRN	?Save@ScriptImpClass@@UAEXAAE@Z:PROC		; ScriptImpClass::Save
EXTRN	?Load@ScriptImpClass@@UAEXAAE@Z:PROC		; ScriptImpClass::Load
EXTRN	?Save_Data@ScriptImpClass@@UAEXAAE@Z:PROC	; ScriptImpClass::Save_Data
EXTRN	?Load_Data@ScriptImpClass@@UAEXAAE@Z:PROC	; ScriptImpClass::Load_Data
;	COMDAT ??_R2GameObjObserverClass@@8
rdata$r	SEGMENT
??_R2GameObjObserverClass@@8 DD FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8 ; GameObjObserverClass::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3GameObjObserverClass@@8
rdata$r	SEGMENT
??_R3GameObjObserverClass@@8 DD 00H			; GameObjObserverClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVGameObjObserverClass@@@8
_DATA	SEGMENT
??_R0?AVGameObjObserverClass@@@8 DD FLAT:??_7type_info@@6B@ ; GameObjObserverClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVGameObjObserverClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@GameObjObserverClass@@8 DD FLAT:??_R0?AVGameObjObserverClass@@@8 ; GameObjObserverClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R2ScriptClass@@8
rdata$r	SEGMENT
??_R2ScriptClass@@8 DD FLAT:??_R1A@?0A@EA@ScriptClass@@8 ; ScriptClass::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3ScriptClass@@8
rdata$r	SEGMENT
??_R3ScriptClass@@8 DD 00H				; ScriptClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2ScriptClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVScriptClass@@@8
_DATA	SEGMENT
??_R0?AVScriptClass@@@8 DD FLAT:??_7type_info@@6B@	; ScriptClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVScriptClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@ScriptClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ScriptClass@@8 DD FLAT:??_R0?AVScriptClass@@@8 ; ScriptClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ScriptClass@@8
rdata$r	ENDS
;	COMDAT ??_R2ScriptImpClass@@8
rdata$r	SEGMENT
??_R2ScriptImpClass@@8 DD FLAT:??_R1A@?0A@EA@ScriptImpClass@@8 ; ScriptImpClass::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3ScriptImpClass@@8
rdata$r	SEGMENT
??_R3ScriptImpClass@@8 DD 00H				; ScriptImpClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2ScriptImpClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVScriptImpClass@@@8
_DATA	SEGMENT
??_R0?AVScriptImpClass@@@8 DD FLAT:??_7type_info@@6B@	; ScriptImpClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVScriptImpClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@ScriptImpClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@ScriptImpClass@@8 DD FLAT:??_R0?AVScriptImpClass@@@8 ; ScriptImpClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3ScriptImpClass@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@DAN_CnC_Crate@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@DAN_CnC_Crate@@8 DD FLAT:??_R0?AVDAN_CnC_Crate@@@8 ; DAN_CnC_Crate::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3DAN_CnC_Crate@@8
rdata$r	ENDS
;	COMDAT ??_R2DAN_CnC_Crate@@8
rdata$r	SEGMENT
??_R2DAN_CnC_Crate@@8 DD FLAT:??_R1A@?0A@EA@DAN_CnC_Crate@@8 ; DAN_CnC_Crate::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3DAN_CnC_Crate@@8
rdata$r	SEGMENT
??_R3DAN_CnC_Crate@@8 DD 00H				; DAN_CnC_Crate::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2DAN_CnC_Crate@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVDAN_CnC_Crate@@@8
_DATA	SEGMENT
??_R0?AVDAN_CnC_Crate@@@8 DD FLAT:??_7type_info@@6B@	; DAN_CnC_Crate `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVDAN_CnC_Crate@@', 00H
_DATA	ENDS
;	COMDAT ??_R4DAN_CnC_Crate@@6B@
rdata$r	SEGMENT
??_R4DAN_CnC_Crate@@6B@ DD 00H				; DAN_CnC_Crate::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVDAN_CnC_Crate@@@8
	DD	FLAT:??_R3DAN_CnC_Crate@@8
rdata$r	ENDS
;	COMDAT ??_7DAN_CnC_Crate@@6B@
CONST	SEGMENT
??_7DAN_CnC_Crate@@6B@ DD FLAT:??_R4DAN_CnC_Crate@@6B@	; DAN_CnC_Crate::`vftable'
	DD	FLAT:??_EDAN_CnC_Crate@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@DAN_CnC_Crate@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@DAN_CnC_Crate@@EAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@DAN_CnC_Crate@@EAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0DAN_CnC_Crate@@QAE@XZ
_TEXT	SEGMENT
??0DAN_CnC_Crate@@QAE@XZ PROC				; DAN_CnC_Crate::DAN_CnC_Crate, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7DAN_CnC_Crate@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0DAN_CnC_Crate@@QAE@XZ ENDP				; DAN_CnC_Crate::DAN_CnC_Crate
_TEXT	ENDS
PUBLIC	??_7DAN_Drop_Wreckage_On_Death@@6B@		; DAN_Drop_Wreckage_On_Death::`vftable'
PUBLIC	??0DAN_Drop_Wreckage_On_Death@@QAE@XZ		; DAN_Drop_Wreckage_On_Death::DAN_Drop_Wreckage_On_Death
PUBLIC	??_R4DAN_Drop_Wreckage_On_Death@@6B@		; DAN_Drop_Wreckage_On_Death::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVDAN_Drop_Wreckage_On_Death@@@8		; DAN_Drop_Wreckage_On_Death `RTTI Type Descriptor'
PUBLIC	??_R3DAN_Drop_Wreckage_On_Death@@8		; DAN_Drop_Wreckage_On_Death::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2DAN_Drop_Wreckage_On_Death@@8		; DAN_Drop_Wreckage_On_Death::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@DAN_Drop_Wreckage_On_Death@@8	; DAN_Drop_Wreckage_On_Death::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_EDAN_Drop_Wreckage_On_Death@@UAEPAXI@Z:PROC	; DAN_Drop_Wreckage_On_Death::`vector deleting destructor'
EXTRN	?Created@ScriptImpClass@@UAEXPAE@Z:PROC		; ScriptImpClass::Created
EXTRN	?Custom@ScriptImpClass@@UAEXPAEHH0@Z:PROC	; ScriptImpClass::Custom
EXTRN	?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ:PROC ; ScriptImpClass::Register_Auto_Save_Variables
;	COMDAT ??_R1A@?0A@EA@DAN_Drop_Wreckage_On_Death@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@DAN_Drop_Wreckage_On_Death@@8 DD FLAT:??_R0?AVDAN_Drop_Wreckage_On_Death@@@8 ; DAN_Drop_Wreckage_On_Death::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3DAN_Drop_Wreckage_On_Death@@8
rdata$r	ENDS
;	COMDAT ??_R2DAN_Drop_Wreckage_On_Death@@8
rdata$r	SEGMENT
??_R2DAN_Drop_Wreckage_On_Death@@8 DD FLAT:??_R1A@?0A@EA@DAN_Drop_Wreckage_On_Death@@8 ; DAN_Drop_Wreckage_On_Death::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3DAN_Drop_Wreckage_On_Death@@8
rdata$r	SEGMENT
??_R3DAN_Drop_Wreckage_On_Death@@8 DD 00H		; DAN_Drop_Wreckage_On_Death::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2DAN_Drop_Wreckage_On_Death@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVDAN_Drop_Wreckage_On_Death@@@8
_DATA	SEGMENT
??_R0?AVDAN_Drop_Wreckage_On_Death@@@8 DD FLAT:??_7type_info@@6B@ ; DAN_Drop_Wreckage_On_Death `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVDAN_Drop_Wreckage_On_Death@@', 00H
_DATA	ENDS
;	COMDAT ??_R4DAN_Drop_Wreckage_On_Death@@6B@
rdata$r	SEGMENT
??_R4DAN_Drop_Wreckage_On_Death@@6B@ DD 00H		; DAN_Drop_Wreckage_On_Death::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVDAN_Drop_Wreckage_On_Death@@@8
	DD	FLAT:??_R3DAN_Drop_Wreckage_On_Death@@8
rdata$r	ENDS
;	COMDAT ??_7DAN_Drop_Wreckage_On_Death@@6B@
CONST	SEGMENT
??_7DAN_Drop_Wreckage_On_Death@@6B@ DD FLAT:??_R4DAN_Drop_Wreckage_On_Death@@6B@ ; DAN_Drop_Wreckage_On_Death::`vftable'
	DD	FLAT:??_EDAN_Drop_Wreckage_On_Death@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@DAN_Drop_Wreckage_On_Death@@EAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0DAN_Drop_Wreckage_On_Death@@QAE@XZ
_TEXT	SEGMENT
??0DAN_Drop_Wreckage_On_Death@@QAE@XZ PROC		; DAN_Drop_Wreckage_On_Death::DAN_Drop_Wreckage_On_Death, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7DAN_Drop_Wreckage_On_Death@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0DAN_Drop_Wreckage_On_Death@@QAE@XZ ENDP		; DAN_Drop_Wreckage_On_Death::DAN_Drop_Wreckage_On_Death
_TEXT	ENDS
PUBLIC	??_7DAN_Wreckage_Rebuildable@@6B@		; DAN_Wreckage_Rebuildable::`vftable'
PUBLIC	??0DAN_Wreckage_Rebuildable@@QAE@XZ		; DAN_Wreckage_Rebuildable::DAN_Wreckage_Rebuildable
PUBLIC	??_R4DAN_Wreckage_Rebuildable@@6B@		; DAN_Wreckage_Rebuildable::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVDAN_Wreckage_Rebuildable@@@8		; DAN_Wreckage_Rebuildable `RTTI Type Descriptor'
PUBLIC	??_R3DAN_Wreckage_Rebuildable@@8		; DAN_Wreckage_Rebuildable::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2DAN_Wreckage_Rebuildable@@8		; DAN_Wreckage_Rebuildable::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@DAN_Wreckage_Rebuildable@@8	; DAN_Wreckage_Rebuildable::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_EDAN_Wreckage_Rebuildable@@UAEPAXI@Z:PROC	; DAN_Wreckage_Rebuildable::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@DAN_Wreckage_Rebuildable@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@DAN_Wreckage_Rebuildable@@8 DD FLAT:??_R0?AVDAN_Wreckage_Rebuildable@@@8 ; DAN_Wreckage_Rebuildable::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3DAN_Wreckage_Rebuildable@@8
rdata$r	ENDS
;	COMDAT ??_R2DAN_Wreckage_Rebuildable@@8
rdata$r	SEGMENT
??_R2DAN_Wreckage_Rebuildable@@8 DD FLAT:??_R1A@?0A@EA@DAN_Wreckage_Rebuildable@@8 ; DAN_Wreckage_Rebuildable::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@ScriptImpClass@@8
	DD	FLAT:??_R1A@?0A@EA@ScriptClass@@8
	DD	FLAT:??_R1A@?0A@EA@GameObjObserverClass@@8
rdata$r	ENDS
;	COMDAT ??_R3DAN_Wreckage_Rebuildable@@8
rdata$r	SEGMENT
??_R3DAN_Wreckage_Rebuildable@@8 DD 00H			; DAN_Wreckage_Rebuildable::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2DAN_Wreckage_Rebuildable@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVDAN_Wreckage_Rebuildable@@@8
_DATA	SEGMENT
??_R0?AVDAN_Wreckage_Rebuildable@@@8 DD FLAT:??_7type_info@@6B@ ; DAN_Wreckage_Rebuildable `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVDAN_Wreckage_Rebuildable@@', 00H
_DATA	ENDS
;	COMDAT ??_R4DAN_Wreckage_Rebuildable@@6B@
rdata$r	SEGMENT
??_R4DAN_Wreckage_Rebuildable@@6B@ DD 00H		; DAN_Wreckage_Rebuildable::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVDAN_Wreckage_Rebuildable@@@8
	DD	FLAT:??_R3DAN_Wreckage_Rebuildable@@8
rdata$r	ENDS
;	COMDAT ??_7DAN_Wreckage_Rebuildable@@6B@
CONST	SEGMENT
??_7DAN_Wreckage_Rebuildable@@6B@ DD FLAT:??_R4DAN_Wreckage_Rebuildable@@6B@ ; DAN_Wreckage_Rebuildable::`vftable'
	DD	FLAT:??_EDAN_Wreckage_Rebuildable@@UAEPAXI@Z
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@DAN_Wreckage_Rebuildable@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@DAN_Wreckage_Rebuildable@@EAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0DAN_Wreckage_Rebuildable@@QAE@XZ
_TEXT	SEGMENT
??0DAN_Wreckage_Rebuildable@@QAE@XZ PROC		; DAN_Wreckage_Rebuildable::DAN_Wreckage_Rebuildable, COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7DAN_Wreckage_Rebuildable@@6B@
	mov	eax, esi
	pop	esi
	ret	0
??0DAN_Wreckage_Rebuildable@@QAE@XZ ENDP		; DAN_Wreckage_Rebuildable::DAN_Wreckage_Rebuildable
_TEXT	ENDS
PUBLIC	??1DAN_CnC_Crate@@UAE@XZ			; DAN_CnC_Crate::~DAN_CnC_Crate
EXTRN	??1ScriptImpClass@@UAE@XZ:PROC			; ScriptImpClass::~ScriptImpClass
; Function compile flags: /Ogtpy
;	COMDAT ??1DAN_CnC_Crate@@UAE@XZ
_TEXT	SEGMENT
??1DAN_CnC_Crate@@UAE@XZ PROC				; DAN_CnC_Crate::~DAN_CnC_Crate, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1DAN_CnC_Crate@@UAE@XZ ENDP				; DAN_CnC_Crate::~DAN_CnC_Crate
_TEXT	ENDS
PUBLIC	??1DAN_Drop_Wreckage_On_Death@@UAE@XZ		; DAN_Drop_Wreckage_On_Death::~DAN_Drop_Wreckage_On_Death
; Function compile flags: /Ogtpy
;	COMDAT ??1DAN_Drop_Wreckage_On_Death@@UAE@XZ
_TEXT	SEGMENT
??1DAN_Drop_Wreckage_On_Death@@UAE@XZ PROC		; DAN_Drop_Wreckage_On_Death::~DAN_Drop_Wreckage_On_Death, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1DAN_Drop_Wreckage_On_Death@@UAE@XZ ENDP		; DAN_Drop_Wreckage_On_Death::~DAN_Drop_Wreckage_On_Death
_TEXT	ENDS
PUBLIC	??1DAN_Wreckage_Rebuildable@@UAE@XZ		; DAN_Wreckage_Rebuildable::~DAN_Wreckage_Rebuildable
; Function compile flags: /Ogtpy
;	COMDAT ??1DAN_Wreckage_Rebuildable@@UAE@XZ
_TEXT	SEGMENT
??1DAN_Wreckage_Rebuildable@@UAE@XZ PROC		; DAN_Wreckage_Rebuildable::~DAN_Wreckage_Rebuildable, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1DAN_Wreckage_Rebuildable@@UAE@XZ ENDP		; DAN_Wreckage_Rebuildable::~DAN_Wreckage_Rebuildable
_TEXT	ENDS
PUBLIC	??_C@_0DA@KOANLGJC@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Armour?5has@ ; `string'
PUBLIC	??_C@_0DC@OEPLOBAA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@ ; `string'
PUBLIC	?DeArmour@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::DeArmour
;	COMDAT ??_C@_0DA@KOANLGJC@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Armour?5has@
; File d:\source code\stgm\dan.cpp
CONST	SEGMENT
??_C@_0DA@KOANLGJC@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Armour?5has@ DB 'PP'
	DB	'AGE %d [Crate] Your Armour has been set to 1!', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DC@OEPLOBAA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@
CONST	SEGMENT
??_C@_0DC@OEPLOBAA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@ DB 'P'
	DB	'PAGE %d [Crate] You have got the DeArmour Crate!', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?DeArmour@DAN_CnC_Crate@@AAEXPAE@Z
_TEXT	SEGMENT
_Text$ = -512						; size = 512
_obj$ = 8						; size = 4
?DeArmour@DAN_CnC_Crate@@AAEXPAE@Z PROC			; DAN_CnC_Crate::DeArmour, COMDAT
; _this$ = ecx

; 189  : {

	sub	esp, 512				; 00000200H
	push	ebx
	push	esi

; 190  : 	char Text[512];
; 191  : 	int PlayerID;
; 192  : 	PlayerID = Get_Player_ID(obj);

	mov	esi, DWORD PTR _obj$[esp+516]
	push	edi
	push	esi
	mov	ebx, ecx
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	mov	edi, eax

; 193  : 	if (Commands->Get_Shield_Strength(obj) > 1)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+232]
	push	esi
	call	ecx
	fld1
	fcom	ST(1)
	add	esp, 8
	fnstsw	ax
	fstp	ST(1)
	test	ah, 5
	jp	SHORT $LN6@DeArmour

; 194  : 	{
; 195  : 		Commands->Set_Shield_Strength(obj,1);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+240]
	push	ecx
	fstp	DWORD PTR [esp]
	push	esi
	call	eax

; 196  : 		sprintf(Text,"PPAGE %d [Crate] You have got the DeArmour Crate!",PlayerID);

	push	edi
	lea	ecx, DWORD PTR _Text$[esp+536]
	push	OFFSET ??_C@_0DC@OEPLOBAA@PPAGE?5?$CFd?5?$FLCrate?$FN?5You?5have?5got?5th@
	push	ecx
	call	_sprintf

; 197  : 		Console_Input(Text);

	lea	edx, DWORD PTR _Text$[esp+544]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 198  : 		sprintf(Text,"PPAGE %d [Crate] Your Armour has been set to 1!",PlayerID);

	push	edi
	lea	eax, DWORD PTR _Text$[esp+552]
	push	OFFSET ??_C@_0DA@KOANLGJC@PPAGE?5?$CFd?5?$FLCrate?$FN?5Your?5Armour?5has@
	push	eax
	call	_sprintf

; 199  : 		Console_Input(Text);

	lea	ecx, DWORD PTR _Text$[esp+560]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input
	add	esp, 40					; 00000028H
	pop	edi
	pop	esi
	pop	ebx

; 203  : }

	add	esp, 512				; 00000200H
	ret	4
$LN6@DeArmour:

; 200  : 	}
; 201  : 	else
; 202  : 		DeHealth(obj);

	push	esi
	fstp	ST(0)
	mov	ecx, ebx
	call	?DeHealth@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::DeHealth
	pop	edi
	pop	esi
	pop	ebx

; 203  : }

	add	esp, 512				; 00000200H
	ret	4
?DeArmour@DAN_CnC_Crate@@AAEXPAE@Z ENDP			; DAN_CnC_Crate::DeArmour
_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
PUBLIC	??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@ ; `string'
PUBLIC	??_C@_0CO@NPBAPBE@ScriptRegistrant?$DMclass?5DAN_CnC_C@ ; `string'
EXTRN	??2@YAPAXI@Z:PROC				; operator new
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@ DB 'd:\source'
	DB	' code\stgm\scripts.h', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0CO@NPBAPBE@ScriptRegistrant?$DMclass?5DAN_CnC_C@
CONST	SEGMENT
??_C@_0CO@NPBAPBE@ScriptRegistrant?$DMclass?5DAN_CnC_C@ DB 'ScriptRegistr'
	DB	'ant<class DAN_CnC_Crate>::Create', 00H	; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T61220 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<DAN_CnC_Crate>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0CO@NPBAPBE@ScriptRegistrant?$DMclass?5DAN_CnC_C@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	32					; 00000020H
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T61220[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7DAN_CnC_Crate@@6B@
	jmp	SHORT $LN4@Create
$LN3@Create:
	xor	esi, esi
$LN4@Create:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T61220[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VDAN_CnC_Crate@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<DAN_CnC_Crate>::Create
PUBLIC	??_C@_0DL@MBHDMDNB@ScriptRegistrant?$DMclass?5DAN_Drop_@ ; `string'
;	COMDAT ??_C@_0DL@MBHDMDNB@ScriptRegistrant?$DMclass?5DAN_Drop_@
CONST	SEGMENT
??_C@_0DL@MBHDMDNB@ScriptRegistrant?$DMclass?5DAN_Drop_@ DB 'ScriptRegist'
	DB	'rant<class DAN_Drop_Wreckage_On_Death>::Create', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T61246 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0DL@MBHDMDNB@ScriptRegistrant?$DMclass?5DAN_Drop_@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	28					; 0000001cH
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T61246[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create@2
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7DAN_Drop_Wreckage_On_Death@@6B@
	jmp	SHORT $LN4@Create@2
$LN3@Create@2:
	xor	esi, esi
$LN4@Create@2:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T61246[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<DAN_Drop_Wreckage_On_Death>::Create
PUBLIC	??_C@_0DJ@CJNBOBLB@ScriptRegistrant?$DMclass?5DAN_Wreck@ ; `string'
;	COMDAT ??_C@_0DJ@CJNBOBLB@ScriptRegistrant?$DMclass?5DAN_Wreck@
CONST	SEGMENT
??_C@_0DJ@CJNBOBLB@ScriptRegistrant?$DMclass?5DAN_Wreck@ DB 'ScriptRegist'
	DB	'rant<class DAN_Wreckage_Rebuildable>::Create', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ$0
__ehfuncinfo$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T61269 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ PROC ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::Create, COMDAT
; _this$ = ecx

; 487  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	push	edi

; 488  : 	ScriptImpClass *scr = new T;

	push	OFFSET ??_C@_0DJ@CJNBOBLB@ScriptRegistrant?$DMclass?5DAN_Wreck@
	push	488					; 000001e8H
	push	OFFSET ??_C@_0BO@INLPCLGJ@d?3?2source?5code?2stgm?2scripts?4h?$AA@
	mov	edi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	28					; 0000001cH
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T61269[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $LN3@Create@3
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET ??_7DAN_Wreckage_Rebuildable@@6B@
	jmp	SHORT $LN4@Create@3
$LN3@Create@3:
	xor	esi, esi
$LN4@Create@3:

; 489  : 	scr->SetFactory(this);
; 490  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	edx

; 491  : 	return scr;
; 492  : };

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ$0:
	mov	eax, DWORD PTR $T61269[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET __ehfuncinfo$?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Create@?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<DAN_Wreckage_Rebuildable>::Create
; Function compile flags: /Ogtpy
;	COMDAT ??_GDAN_CnC_Crate@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GDAN_CnC_Crate@@UAEPAXI@Z PROC			; DAN_CnC_Crate::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_GDAN_CnC_Crate@@UAEPAXI@Z ENDP			; DAN_CnC_Crate::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GDAN_Drop_Wreckage_On_Death@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GDAN_Drop_Wreckage_On_Death@@UAEPAXI@Z PROC		; DAN_Drop_Wreckage_On_Death::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@6
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@6:
	mov	eax, esi
	pop	esi
	ret	4
??_GDAN_Drop_Wreckage_On_Death@@UAEPAXI@Z ENDP		; DAN_Drop_Wreckage_On_Death::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GDAN_Wreckage_Rebuildable@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GDAN_Wreckage_Rebuildable@@UAEPAXI@Z PROC		; DAN_Wreckage_Rebuildable::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@7
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@7:
	mov	eax, esi
	pop	esi
	ret	4
??_GDAN_Wreckage_Rebuildable@@UAEPAXI@Z ENDP		; DAN_Wreckage_Rebuildable::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_0DE@DFGNMDND@?$FLCrate?5Script?$FN?5Error?3?5Non?9Exista@ ; `string'
PUBLIC	??_C@_05IDJBDIO@Theif?$AA@			; `string'
PUBLIC	??_C@_0O@NCDPHFJO@Random_Weapon?$AA@		; `string'
PUBLIC	??_C@_09BKEBHOJH@Spy_Crate?$AA@			; `string'
PUBLIC	??_C@_05INIBOMDG@Money?$AA@			; `string'
PUBLIC	??_C@_0M@CNCIDAIH@Full_Health?$AA@		; `string'
PUBLIC	??_C@_08OLMBCAOE@DeArmour?$AA@			; `string'
PUBLIC	??_C@_08GCAIFBH@DeHealth?$AA@			; `string'
PUBLIC	??_C@_0N@IEOKPBOP@Stealth_Suit?$AA@		; `string'
PUBLIC	??_C@_0M@BBADFEMH@Death_Crate?$AA@		; `string'
PUBLIC	??_C@_06KANFALAM@Points?$AA@			; `string'
EXTRN	?Console_Output@@YAXPBDZZ:PROC			; Console_Output
EXTRN	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z:PROC ; ScriptImpClass::Get_Int_Parameter
;	COMDAT ??_C@_0DE@DFGNMDND@?$FLCrate?5Script?$FN?5Error?3?5Non?9Exista@
; File d:\source code\stgm\dan.cpp
CONST	SEGMENT
??_C@_0DE@DFGNMDND@?$FLCrate?5Script?$FN?5Error?3?5Non?9Exista@ DB '[Crat'
	DB	'e Script] Error: Non-Existant Function called!', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_05IDJBDIO@Theif?$AA@
CONST	SEGMENT
??_C@_05IDJBDIO@Theif?$AA@ DB 'Theif', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@NCDPHFJO@Random_Weapon?$AA@
CONST	SEGMENT
??_C@_0O@NCDPHFJO@Random_Weapon?$AA@ DB 'Random_Weapon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09BKEBHOJH@Spy_Crate?$AA@
CONST	SEGMENT
??_C@_09BKEBHOJH@Spy_Crate?$AA@ DB 'Spy_Crate', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_05INIBOMDG@Money?$AA@
CONST	SEGMENT
??_C@_05INIBOMDG@Money?$AA@ DB 'Money', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@CNCIDAIH@Full_Health?$AA@
CONST	SEGMENT
??_C@_0M@CNCIDAIH@Full_Health?$AA@ DB 'Full_Health', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08OLMBCAOE@DeArmour?$AA@
CONST	SEGMENT
??_C@_08OLMBCAOE@DeArmour?$AA@ DB 'DeArmour', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_08GCAIFBH@DeHealth?$AA@
CONST	SEGMENT
??_C@_08GCAIFBH@DeHealth?$AA@ DB 'DeHealth', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@IEOKPBOP@Stealth_Suit?$AA@
CONST	SEGMENT
??_C@_0N@IEOKPBOP@Stealth_Suit?$AA@ DB 'Stealth_Suit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@BBADFEMH@Death_Crate?$AA@
CONST	SEGMENT
??_C@_0M@BBADFEMH@Death_Crate?$AA@ DB 'Death_Crate', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_06KANFALAM@Points?$AA@
CONST	SEGMENT
??_C@_06KANFALAM@Points?$AA@ DB 'Points', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Custom@DAN_CnC_Crate@@EAEXPAEHH0@Z
_TEXT	SEGMENT
_Chance$56487 = -276					; size = 40
_Params$56476 = -236					; size = 40
_Number$56490 = -196					; size = 196
_obj$ = 8						; size = 4
_message$ = 12						; size = 4
_param$ = 16						; size = 4
_sender$ = 20						; size = 4
?Custom@DAN_CnC_Crate@@EAEXPAEHH0@Z PROC		; DAN_CnC_Crate::Custom, COMDAT
; _this$ = ecx

; 26   : {

	sub	esp, 276				; 00000114H

; 27   : 	if (message == CUSTOM_EVENT_POWERUP)

	cmp	DWORD PTR _message$[esp+272], 1000000025 ; 3b9aca19H
	push	esi
	mov	esi, ecx
	jne	$LN12@Custom

; 28   : 	{
; 29   : 		Commands->Destroy_Object(Commands->Find_Object(VehBlock));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR [eax+96]
	push	ebx
	push	ebp
	push	edi
	push	ecx
	lea	edi, DWORD PTR [eax+92]
	call	edx
	push	eax
	mov	eax, DWORD PTR [edi]
	call	eax
	add	esp, 8

; 30   : 		// Holds whether or not each powerup is enabled!
; 31   : 		const int Params[] = {Get_Int_Parameter("Points"),			// 0<- 'ID' of powerup

	push	OFFSET ??_C@_06KANFALAM@Points?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 32   : 								Get_Int_Parameter("Death_Crate"),	// 1

	push	OFFSET ??_C@_0M@BBADFEMH@Death_Crate?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+296], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 33   : 								Get_Int_Parameter("Stealth_Suit"),	// 2

	push	OFFSET ??_C@_0N@IEOKPBOP@Stealth_Suit?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+300], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 34   : 								Get_Int_Parameter("DeHealth"),		// 3

	push	OFFSET ??_C@_08GCAIFBH@DeHealth?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+304], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 35   : 								Get_Int_Parameter("DeArmour"),		// 4

	push	OFFSET ??_C@_08OLMBCAOE@DeArmour?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+308], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 36   : 								Get_Int_Parameter("Full_Health"),	// 5

	push	OFFSET ??_C@_0M@CNCIDAIH@Full_Health?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+312], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 37   : 								Get_Int_Parameter("Money"),			// 6

	push	OFFSET ??_C@_05INIBOMDG@Money?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+316], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 38   : 								Get_Int_Parameter("Spy_Crate"),		// 7

	push	OFFSET ??_C@_09BKEBHOJH@Spy_Crate?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+320], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 39   : 								Get_Int_Parameter("Random_Weapon"),	// 8

	push	OFFSET ??_C@_0O@NCDPHFJO@Random_Weapon?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+324], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 40   : 								Get_Int_Parameter("Theif")};		// 9

	push	OFFSET ??_C@_05IDJBDIO@Theif?$AA@
	mov	ecx, esi
	mov	DWORD PTR _Params$56476[esp+328], eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	DWORD PTR _Params$56476[esp+328], eax

; 41   : 		// The chance of each Powerup occuring. The higher,the more likely
; 42   : 		const int Chance[] = {4,			// 0

	mov	eax, 4

; 43   : 							 4,				// 1
; 44   : 							 2,				// 2
; 45   : 							 5,				// 3

	mov	ecx, 5
	mov	DWORD PTR _Chance$56487[esp+292], eax
	mov	DWORD PTR _Chance$56487[esp+296], eax

; 46   : 							 5,				// 4
; 47   : 							 4,				// 5

	mov	DWORD PTR _Chance$56487[esp+312], eax

; 48   : 							 4,				// 6

	mov	DWORD PTR _Chance$56487[esp+316], eax

; 49   : 							 1,				// 7
; 50   : 							 5,				// 8
; 51   : 							 4};			// 9

	mov	DWORD PTR _Chance$56487[esp+328], eax

; 52   : 		int y = 0;

	xor	ebx, ebx

; 53   : 		int Total = 0;

	xor	ebp, ebp
	mov	DWORD PTR _Chance$56487[esp+300], 2
	mov	DWORD PTR _Chance$56487[esp+304], ecx
	mov	DWORD PTR _Chance$56487[esp+308], ecx
	mov	DWORD PTR _Chance$56487[esp+320], 1
	mov	DWORD PTR _Chance$56487[esp+324], ecx

; 54   : 		int Number[49]; // This number MUST be the sum of what Chance[] holds.
; 55   : 		// This loop cycles through Params[] and looks for enabled Powerups
; 56   : 		// It then puts the powerup 'ID' in Number as many times as the number in Chance[]
; 57   : 		for (int x = 0; x < 9; x++)

	xor	eax, eax
$LL28@Custom:

; 58   : 		{
; 59   : 			if (Params[x] >= 1)

	cmp	DWORD PTR _Params$56476[esp+eax*4+292], 1
	jl	SHORT $LN19@Custom
	mov	ecx, DWORD PTR _Chance$56487[esp+eax*4+292]

; 60   : 			{
; 61   : 				for (int z = 0; z <= Chance[x]; z++)

	test	ecx, ecx
	jl	SHORT $LN19@Custom
	lea	edx, DWORD PTR [ecx+1]
	lea	edi, DWORD PTR _Number$56490[esp+ebx*4+292]
	mov	ecx, edx
	add	ebx, edx
	rep stosd
	add	ebp, edx
$LN19@Custom:
	add	eax, 1
	cmp	eax, 9
	jl	SHORT $LL28@Custom

; 62   : 				{
; 63   : 					Number[y] = x;
; 64   : 					y++;
; 65   : 					Total++;
; 66   : 				}
; 67   : 			}
; 68   : 		}
; 69   : 		int RandNum = Commands->Get_Random_Int(1,(Total + 1));

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+152]
	add	ebp, 1
	push	ebp
	push	1
	call	edx
	mov	edi, eax

; 70   : 		const int RandParam = Commands->Get_Random_Int(1,3);

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

; 71   : 		// Just add the function on the end when you want to add a new powerup!
; 72   : 		switch (Number[RandNum])

	mov	ecx, DWORD PTR _Number$56490[esp+edi*4+308]
	add	esp, 16					; 00000010H
	cmp	ecx, 9
	pop	edi
	pop	ebp
	pop	ebx
	ja	$LN1@Custom
	jmp	DWORD PTR $LN29@Custom[ecx*4]
$LN11@Custom:

; 73   : 		{
; 74   : 			case 0:
; 75   : 				Points(sender,RandParam);

	mov	edx, DWORD PTR _sender$[esp+276]
	push	eax
	push	edx
	mov	ecx, esi
	call	?Points@DAN_CnC_Crate@@AAEXPAEH@Z	; DAN_CnC_Crate::Points
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN10@Custom:

; 76   : 				break;
; 77   : 			case 1:
; 78   : 				DeathCrate(obj);

	mov	eax, DWORD PTR _obj$[esp+276]
	push	eax
	mov	ecx, esi
	call	?DeathCrate@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::DeathCrate
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN9@Custom:

; 79   : 				break;
; 80   : 			case 2:
; 81   : 				StealthSuit(sender);

	mov	ecx, DWORD PTR _sender$[esp+276]
	push	ecx
	mov	ecx, esi
	call	?StealthSuit@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::StealthSuit
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN8@Custom:

; 82   : 				break;
; 83   : 			case 3:
; 84   : 				DeHealth(sender);

	mov	edx, DWORD PTR _sender$[esp+276]
	push	edx
	mov	ecx, esi
	call	?DeHealth@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::DeHealth
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN7@Custom:

; 85   : 				break;
; 86   : 			case 4:
; 87   : 				DeArmour(sender);

	mov	eax, DWORD PTR _sender$[esp+276]
	push	eax
	mov	ecx, esi
	call	?DeArmour@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::DeArmour
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN6@Custom:

; 88   : 				break;
; 89   : 			case 5:
; 90   : 				FullHealth(sender);

	mov	ecx, DWORD PTR _sender$[esp+276]
	push	ecx
	mov	ecx, esi
	call	?FullHealth@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::FullHealth
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN5@Custom:

; 91   : 				break;
; 92   : 			case 6:
; 93   : 				Money(sender,RandParam);

	mov	edx, DWORD PTR _sender$[esp+276]
	push	eax
	push	edx
	mov	ecx, esi
	call	?Money@DAN_CnC_Crate@@AAEXPAEH@Z	; DAN_CnC_Crate::Money
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN4@Custom:

; 94   : 				break;
; 95   : 			case 7:
; 96   : 				SpyCrate(sender);

	mov	eax, DWORD PTR _sender$[esp+276]
	push	eax
	mov	ecx, esi
	call	?SpyCrate@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::SpyCrate
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN3@Custom:

; 97   : 				break;
; 98   : 			case 8:
; 99   : 				RandomWeapon(sender);

	mov	ecx, DWORD PTR _sender$[esp+276]
	push	ecx
	mov	ecx, esi
	call	?RandomWeapon@DAN_CnC_Crate@@AAEXPAE@Z	; DAN_CnC_Crate::RandomWeapon
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN2@Custom:

; 100  : 				break;
; 101  : 			case 9:
; 102  : 				Theif(sender);

	mov	edx, DWORD PTR _sender$[esp+276]
	push	edx
	mov	ecx, esi
	call	?Theif@DAN_CnC_Crate@@AAEXPAE@Z		; DAN_CnC_Crate::Theif
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN1@Custom:

; 103  : 				break;
; 104  : 			default:
; 105  : 				Console_Output("[Crate Script] Error: Non-Existant Function called!");

	push	OFFSET ??_C@_0DE@DFGNMDND@?$FLCrate?5Script?$FN?5Error?3?5Non?9Exista@
	call	?Console_Output@@YAXPBDZZ		; Console_Output
	add	esp, 4
$LN12@Custom:
	pop	esi

; 106  : 				break;
; 107  : 		}
; 108  : 	}
; 109  : }

	add	esp, 276				; 00000114H
	ret	16					; 00000010H
$LN29@Custom:
	DD	$LN11@Custom
	DD	$LN10@Custom
	DD	$LN9@Custom
	DD	$LN8@Custom
	DD	$LN7@Custom
	DD	$LN6@Custom
	DD	$LN5@Custom
	DD	$LN4@Custom
	DD	$LN3@Custom
	DD	$LN2@Custom
?Custom@DAN_CnC_Crate@@EAEXPAEHH0@Z ENDP		; DAN_CnC_Crate::Custom
_TEXT	ENDS
PUBLIC	??_C@_0O@HFMLEFFA@DAN_CnC_Crate?$AA@		; `string'
PUBLIC	??_C@_0IK@JCFAOJPL@Death_Crate?3int?0Stealth_Suit?3int@ ; `string'
EXTRN	_atexit:PROC
;	COMDAT ??_C@_0O@HFMLEFFA@DAN_CnC_Crate?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0O@HFMLEFFA@DAN_CnC_Crate?$AA@ DB 'DAN_CnC_Crate', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0IK@JCFAOJPL@Death_Crate?3int?0Stealth_Suit?3int@
CONST	SEGMENT
??_C@_0IK@JCFAOJPL@Death_Crate?3int?0Stealth_Suit?3int@ DB 'Death_Crate:i'
	DB	'nt,Stealth_Suit:int,DeHealth:int,DeArmour:int,Full_Health:int'
	DB	',Money:int,Spy_Crate:int,Random_Weapon:int,Points:int,Theif:i'
	DB	'nt', 00H					; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\dan.cpp
CONST	ENDS
;	COMDAT ??__EDAN_CnC_Crate_Registrant@@YAXXZ
text$yc	SEGMENT
??__EDAN_CnC_Crate_Registrant@@YAXXZ PROC		; `dynamic initializer for 'DAN_CnC_Crate_Registrant'', COMDAT

; 463  : ScriptRegistrant<DAN_CnC_Crate> DAN_CnC_Crate_Registrant("DAN_CnC_Crate","Death_Crate:int,Stealth_Suit:int,DeHealth:int,DeArmour:int,Full_Health:int,Money:int,Spy_Crate:int,Random_Weapon:int,Points:int,Theif:int");

	push	OFFSET ??_C@_0IK@JCFAOJPL@Death_Crate?3int?0Stealth_Suit?3int@
	push	OFFSET ??_C@_0O@HFMLEFFA@DAN_CnC_Crate?$AA@
	mov	ecx, OFFSET ?DAN_CnC_Crate_Registrant@@3V?$ScriptRegistrant@VDAN_CnC_Crate@@@@A ; DAN_CnC_Crate_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FDAN_CnC_Crate_Registrant@@YAXXZ ; `dynamic atexit destructor for 'DAN_CnC_Crate_Registrant''
	mov	DWORD PTR ?DAN_CnC_Crate_Registrant@@3V?$ScriptRegistrant@VDAN_CnC_Crate@@@@A, OFFSET ??_7?$ScriptRegistrant@VDAN_CnC_Crate@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__EDAN_CnC_Crate_Registrant@@YAXXZ ENDP		; `dynamic initializer for 'DAN_CnC_Crate_Registrant''
text$yc	ENDS
PUBLIC	??_C@_0BL@CHLLAFDD@DAN_Drop_Wreckage_On_Death?$AA@ ; `string'
PUBLIC	??_C@_0BH@BDPHDFEA@Wreckage_Preset?3string?$AA@	; `string'
;	COMDAT ??_C@_0BL@CHLLAFDD@DAN_Drop_Wreckage_On_Death?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BL@CHLLAFDD@DAN_Drop_Wreckage_On_Death?$AA@ DB 'DAN_Drop_Wreckage_'
	DB	'On_Death', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@BDPHDFEA@Wreckage_Preset?3string?$AA@
CONST	SEGMENT
??_C@_0BH@BDPHDFEA@Wreckage_Preset?3string?$AA@ DB 'Wreckage_Preset:strin'
	DB	'g', 00H					; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\dan.cpp
CONST	ENDS
;	COMDAT ??__EDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ
text$yc	SEGMENT
??__EDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ PROC	; `dynamic initializer for 'DAN_Drop_Wreckage_On_Death_Registrant'', COMDAT

; 464  : ScriptRegistrant<DAN_Drop_Wreckage_On_Death> DAN_Drop_Wreckage_On_Death_Registrant("DAN_Drop_Wreckage_On_Death","Wreckage_Preset:string");

	push	OFFSET ??_C@_0BH@BDPHDFEA@Wreckage_Preset?3string?$AA@
	push	OFFSET ??_C@_0BL@CHLLAFDD@DAN_Drop_Wreckage_On_Death?$AA@
	mov	ecx, OFFSET ?DAN_Drop_Wreckage_On_Death_Registrant@@3V?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@A ; DAN_Drop_Wreckage_On_Death_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ ; `dynamic atexit destructor for 'DAN_Drop_Wreckage_On_Death_Registrant''
	mov	DWORD PTR ?DAN_Drop_Wreckage_On_Death_Registrant@@3V?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@A, OFFSET ??_7?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__EDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ ENDP	; `dynamic initializer for 'DAN_Drop_Wreckage_On_Death_Registrant''
text$yc	ENDS
PUBLIC	??_C@_0BG@JJNJEEOF@Vehicle_Preset?3string?$AA@	; `string'
;	COMDAT ??_C@_0BG@JJNJEEOF@Vehicle_Preset?3string?$AA@
; File d:\source code\stgm\scripts.h
CONST	SEGMENT
??_C@_0BG@JJNJEEOF@Vehicle_Preset?3string?$AA@ DB 'Vehicle_Preset:string', 00H ; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\dan.cpp
CONST	ENDS
;	COMDAT ??__EDAN_Wreckage_Rebuildable_Registrant@@YAXXZ
text$yc	SEGMENT
??__EDAN_Wreckage_Rebuildable_Registrant@@YAXXZ PROC	; `dynamic initializer for 'DAN_Wreckage_Rebuildable_Registrant'', COMDAT

; 465  : ScriptRegistrant<DAN_Wreckage_Rebuildable> DAN_Wreckage_Rebuildable_Registrant("DAN_Wreckage_Rebuildable","Vehicle_Preset:string");

	push	OFFSET ??_C@_0BG@JJNJEEOF@Vehicle_Preset?3string?$AA@
	push	OFFSET ??_C@_0BJ@GBJDLGFE@DAN_Wreckage_Rebuildable?$AA@
	mov	ecx, OFFSET ?DAN_Wreckage_Rebuildable_Registrant@@3V?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@A ; DAN_Wreckage_Rebuildable_Registrant
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	push	OFFSET ??__FDAN_Wreckage_Rebuildable_Registrant@@YAXXZ ; `dynamic atexit destructor for 'DAN_Wreckage_Rebuildable_Registrant''
	mov	DWORD PTR ?DAN_Wreckage_Rebuildable_Registrant@@3V?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@A, OFFSET ??_7?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@6B@
	call	_atexit
	pop	ecx
	ret	0
??__EDAN_Wreckage_Rebuildable_Registrant@@YAXXZ ENDP	; `dynamic initializer for 'DAN_Wreckage_Rebuildable_Registrant''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FDAN_CnC_Crate_Registrant@@YAXXZ
text$yd	SEGMENT
??__FDAN_CnC_Crate_Registrant@@YAXXZ PROC		; `dynamic atexit destructor for 'DAN_CnC_Crate_Registrant'', COMDAT
	mov	ecx, OFFSET ?DAN_CnC_Crate_Registrant@@3V?$ScriptRegistrant@VDAN_CnC_Crate@@@@A ; DAN_CnC_Crate_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FDAN_CnC_Crate_Registrant@@YAXXZ ENDP		; `dynamic atexit destructor for 'DAN_CnC_Crate_Registrant''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ
text$yd	SEGMENT
??__FDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ PROC	; `dynamic atexit destructor for 'DAN_Drop_Wreckage_On_Death_Registrant'', COMDAT
	mov	ecx, OFFSET ?DAN_Drop_Wreckage_On_Death_Registrant@@3V?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@A ; DAN_Drop_Wreckage_On_Death_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ ENDP	; `dynamic atexit destructor for 'DAN_Drop_Wreckage_On_Death_Registrant''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__FDAN_Wreckage_Rebuildable_Registrant@@YAXXZ
text$yd	SEGMENT
??__FDAN_Wreckage_Rebuildable_Registrant@@YAXXZ PROC	; `dynamic atexit destructor for 'DAN_Wreckage_Rebuildable_Registrant'', COMDAT
	mov	ecx, OFFSET ?DAN_Wreckage_Rebuildable_Registrant@@3V?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@A ; DAN_Wreckage_Rebuildable_Registrant
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??__FDAN_Wreckage_Rebuildable_Registrant@@YAXXZ ENDP	; `dynamic atexit destructor for 'DAN_Wreckage_Rebuildable_Registrant''
text$yd	ENDS
PUBLIC	?DAN_Drop_Wreckage_On_Death_Registrant@@3V?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@A ; DAN_Drop_Wreckage_On_Death_Registrant
PUBLIC	?DAN_Wreckage_Rebuildable_Registrant@@3V?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@A ; DAN_Wreckage_Rebuildable_Registrant
PUBLIC	?DAN_CnC_Crate_Registrant@@3V?$ScriptRegistrant@VDAN_CnC_Crate@@@@A ; DAN_CnC_Crate_Registrant
_BSS	SEGMENT
?DAN_Drop_Wreckage_On_Death_Registrant@@3V?$ScriptRegistrant@VDAN_Drop_Wreckage_On_Death@@@@A DB 010H DUP (?) ; DAN_Drop_Wreckage_On_Death_Registrant
?DAN_Wreckage_Rebuildable_Registrant@@3V?$ScriptRegistrant@VDAN_Wreckage_Rebuildable@@@@A DB 010H DUP (?) ; DAN_Wreckage_Rebuildable_Registrant
?DAN_CnC_Crate_Registrant@@3V?$ScriptRegistrant@VDAN_CnC_Crate@@@@A DB 010H DUP (?) ; DAN_CnC_Crate_Registrant
_BSS	ENDS
CRT$XCU	SEGMENT
_DAN_CnC_Crate_Registrant$initializer$ DD FLAT:??__EDAN_CnC_Crate_Registrant@@YAXXZ
_DAN_Drop_Wreckage_On_Death_Registrant$initializer$ DD FLAT:??__EDAN_Drop_Wreckage_On_Death_Registrant@@YAXXZ
_DAN_Wreckage_Rebuildable_Registrant$initializer$ DD FLAT:??__EDAN_Wreckage_Rebuildable_Registrant@@YAXXZ
CRT$XCU	ENDS
END
