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

	TITLE	d:\Source Code\STGM\sttibcrystal.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
PUBLIC	?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A	; gzTibCrystalMgr
_BSS	SEGMENT
?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A DD 01H DUP (?) ; gzTibCrystalMgr
_BSS	ENDS
;	COMDAT ?end@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?end@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 02H		; std::_Iosb<int>::end
CONST	ENDS
;	COMDAT ?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 01H		; std::_Iosb<int>::cur
CONST	ENDS
;	COMDAT ?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 00H		; std::_Iosb<int>::beg
CONST	ENDS
;	COMDAT ?binary@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?binary@?$_Iosb@H@std@@2W4_Openmode@12@B DD 020H	; std::_Iosb<int>::binary
CONST	ENDS
;	COMDAT ?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B DD 080H	; std::_Iosb<int>::_Noreplace
CONST	ENDS
;	COMDAT ?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 040H	; std::_Iosb<int>::_Nocreate
CONST	ENDS
;	COMDAT ?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B DD 010H		; std::_Iosb<int>::trunc
CONST	ENDS
;	COMDAT ?app@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?app@?$_Iosb@H@std@@2W4_Openmode@12@B DD 08H		; std::_Iosb<int>::app
CONST	ENDS
;	COMDAT ?ate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?ate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 04H		; std::_Iosb<int>::ate
CONST	ENDS
;	COMDAT ?out@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?out@?$_Iosb@H@std@@2W4_Openmode@12@B DD 02H		; std::_Iosb<int>::out
CONST	ENDS
;	COMDAT ?in@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?in@?$_Iosb@H@std@@2W4_Openmode@12@B DD 01H		; std::_Iosb<int>::in
CONST	ENDS
;	COMDAT ?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B DD 010H	; std::_Iosb<int>::_Hardfail
CONST	ENDS
;	COMDAT ?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 04H		; std::_Iosb<int>::badbit
CONST	ENDS
;	COMDAT ?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 02H		; std::_Iosb<int>::failbit
CONST	ENDS
;	COMDAT ?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 01H		; std::_Iosb<int>::eofbit
CONST	ENDS
;	COMDAT ?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 00H		; std::_Iosb<int>::goodbit
CONST	ENDS
;	COMDAT ?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 03000H	; std::_Iosb<int>::floatfield
CONST	ENDS
;	COMDAT ?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0e00H	; std::_Iosb<int>::basefield
CONST	ENDS
;	COMDAT ?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01c0H	; std::_Iosb<int>::adjustfield
CONST	ENDS
;	COMDAT ?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08000H	; std::_Iosb<int>::_Stdio
CONST	ENDS
;	COMDAT ?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04000H	; std::_Iosb<int>::boolalpha
CONST	ENDS
;	COMDAT ?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02000H	; std::_Iosb<int>::fixed
CONST	ENDS
;	COMDAT ?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01000H	; std::_Iosb<int>::scientific
CONST	ENDS
;	COMDAT ?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0800H		; std::_Iosb<int>::hex
CONST	ENDS
;	COMDAT ?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0400H		; std::_Iosb<int>::oct
CONST	ENDS
;	COMDAT ?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0200H		; std::_Iosb<int>::dec
CONST	ENDS
;	COMDAT ?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0100H	; std::_Iosb<int>::internal
CONST	ENDS
;	COMDAT ?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 080H		; std::_Iosb<int>::right
CONST	ENDS
;	COMDAT ?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 040H		; std::_Iosb<int>::left
CONST	ENDS
;	COMDAT ?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 020H	; std::_Iosb<int>::showpos
CONST	ENDS
;	COMDAT ?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 010H	; std::_Iosb<int>::showpoint
CONST	ENDS
;	COMDAT ?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08H	; std::_Iosb<int>::showbase
CONST	ENDS
;	COMDAT ?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04H	; std::_Iosb<int>::uppercase
CONST	ENDS
;	COMDAT ?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02H	; std::_Iosb<int>::unitbuf
CONST	ENDS
;	COMDAT ?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01H		; std::_Iosb<int>::skipws
CONST	ENDS
;	COMDAT ?table_size@?$ctype@D@std@@2IB
CONST	SEGMENT
?table_size@?$ctype@D@std@@2IB DD 0100H			; std::ctype<char>::table_size
CONST	ENDS
;	COMDAT ?none@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?none@?$_Locbase@H@std@@2HB DD 00H			; std::_Locbase<int>::none
CONST	ENDS
;	COMDAT ?all@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?all@?$_Locbase@H@std@@2HB DD 03fH			; std::_Locbase<int>::all
CONST	ENDS
;	COMDAT ?messages@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?messages@?$_Locbase@H@std@@2HB DD 020H			; std::_Locbase<int>::messages
CONST	ENDS
;	COMDAT ?time@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?time@?$_Locbase@H@std@@2HB DD 010H			; std::_Locbase<int>::time
CONST	ENDS
;	COMDAT ?numeric@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?numeric@?$_Locbase@H@std@@2HB DD 08H			; std::_Locbase<int>::numeric
CONST	ENDS
;	COMDAT ?monetary@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?monetary@?$_Locbase@H@std@@2HB DD 04H			; std::_Locbase<int>::monetary
CONST	ENDS
;	COMDAT ?ctype@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?ctype@?$_Locbase@H@std@@2HB DD 02H			; std::_Locbase<int>::ctype
CONST	ENDS
;	COMDAT ?collate@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?collate@?$_Locbase@H@std@@2HB DD 01H			; std::_Locbase<int>::collate
CONST	ENDS
_DATA	SEGMENT
__bad_alloc_Message DD FLAT:??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
_DATA	ENDS
;	COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@
CONST	SEGMENT
??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string'
CONST	ENDS
PUBLIC	??_7bad_alloc@std@@6B@				; std::bad_alloc::`vftable'
PUBLIC	??0bad_alloc@std@@QAE@PBD@Z			; std::bad_alloc::bad_alloc
PUBLIC	??_R4bad_alloc@std@@6B@				; std::bad_alloc::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVbad_alloc@std@@@8			; std::bad_alloc `RTTI Type Descriptor'
PUBLIC	??_R3bad_alloc@std@@8				; std::bad_alloc::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2bad_alloc@std@@8				; std::bad_alloc::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@bad_alloc@std@@8			; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@exception@std@@8			; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVexception@std@@@8			; std::exception `RTTI Type Descriptor'
PUBLIC	??_R3exception@std@@8				; std::exception::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2exception@std@@8				; std::exception::`RTTI Base Class Array'
EXTRN	??0exception@std@@QAE@ABQBD@Z:PROC		; std::exception::exception
EXTRN	??_7type_info@@6B@:QWORD			; type_info::`vftable'
EXTRN	??_Ebad_alloc@std@@UAEPAXI@Z:PROC		; std::bad_alloc::`vector deleting destructor'
EXTRN	?what@exception@std@@UBEPBDXZ:PROC		; std::exception::what
;	COMDAT ??_R2exception@std@@8
; File c:\program files (x86)\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	??0aCriticalSection@@QAE@XZ			; aCriticalSection::aCriticalSection
EXTRN	__imp__InitializeCriticalSection@4:PROC
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\acriticalsection.h
;	COMDAT ??0aCriticalSection@@QAE@XZ
_TEXT	SEGMENT
??0aCriticalSection@@QAE@XZ PROC			; aCriticalSection::aCriticalSection, COMDAT
; _this$ = ecx

; 7    : 	aCriticalSection()

	push	esi
	mov	esi, ecx

; 8    : 	{
; 9    : 		InitializeCriticalSection(&this->m_session);

	push	esi
	call	DWORD PTR __imp__InitializeCriticalSection@4

; 10   : 	};

	mov	eax, esi
	pop	esi
	ret	0
??0aCriticalSection@@QAE@XZ ENDP			; aCriticalSection::aCriticalSection
_TEXT	ENDS
PUBLIC	??1aCriticalSection@@QAE@XZ			; aCriticalSection::~aCriticalSection
EXTRN	__imp__DeleteCriticalSection@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ??1aCriticalSection@@QAE@XZ
_TEXT	SEGMENT
??1aCriticalSection@@QAE@XZ PROC			; aCriticalSection::~aCriticalSection, COMDAT
; _this$ = ecx

; 13   : 		DeleteCriticalSection(&this->m_session);

	push	ecx
	call	DWORD PTR __imp__DeleteCriticalSection@4

; 14   : 	};

	ret	0
??1aCriticalSection@@QAE@XZ ENDP			; aCriticalSection::~aCriticalSection
_TEXT	ENDS
PUBLIC	?GetLength@aStringData@@QAEIXZ			; aStringData::GetLength
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\astring.h
;	COMDAT ?GetLength@aStringData@@QAEIXZ
_TEXT	SEGMENT
?GetLength@aStringData@@QAEIXZ PROC			; aStringData::GetLength, COMDAT
; _this$ = ecx

; 31   : 	inline unsigned int GetLength() { return this->m_length; };

	mov	eax, DWORD PTR [ecx+4]
	ret	0
?GetLength@aStringData@@QAEIXZ ENDP			; aStringData::GetLength
_TEXT	ENDS
PUBLIC	?GetBuffer@aStringData@@QAEPAXXZ		; aStringData::GetBuffer
; Function compile flags: /Ogtpy
;	COMDAT ?GetBuffer@aStringData@@QAEPAXXZ
_TEXT	SEGMENT
?GetBuffer@aStringData@@QAEPAXXZ PROC			; aStringData::GetBuffer, COMDAT
; _this$ = ecx

; 33   : 	inline void *GetBuffer() { return this->m_ptr; };

	mov	eax, DWORD PTR [ecx]
	ret	0
?GetBuffer@aStringData@@QAEPAXXZ ENDP			; aStringData::GetBuffer
_TEXT	ENDS
PUBLIC	?GetData@aStringBase@@QBEPAVaStringData@@XZ	; aStringBase::GetData
; Function compile flags: /Ogtpy
;	COMDAT ?GetData@aStringBase@@QBEPAVaStringData@@XZ
_TEXT	SEGMENT
?GetData@aStringBase@@QBEPAVaStringData@@XZ PROC	; aStringBase::GetData, COMDAT
; _this$ = ecx

; 55   : 	inline aStringData *GetData() const { return this->m_data; };

	mov	eax, DWORD PTR [ecx+4]
	ret	0
?GetData@aStringBase@@QBEPAVaStringData@@XZ ENDP	; aStringBase::GetData
_TEXT	ENDS
PUBLIC	?IsEmpty@aStringBase@@QBE_NXZ			; aStringBase::IsEmpty
; Function compile flags: /Ogtpy
;	COMDAT ?IsEmpty@aStringBase@@QBE_NXZ
_TEXT	SEGMENT
?IsEmpty@aStringBase@@QBE_NXZ PROC			; aStringBase::IsEmpty, COMDAT
; _this$ = ecx

; 63   : 	bool IsEmpty() const { return (this->m_data == NULL || this->m_data->GetLength() == 0 || this->m_data->GetBuffer() == NULL); };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@IsEmpty
	cmp	DWORD PTR [eax+4], 0
	je	SHORT $LN3@IsEmpty
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN3@IsEmpty
	xor	eax, eax
	ret	0
$LN3@IsEmpty:
	mov	eax, 1
	ret	0
?IsEmpty@aStringBase@@QBE_NXZ ENDP			; aStringBase::IsEmpty
_TEXT	ENDS
PUBLIC	??_7aString@@6B@				; aString::`vftable'
PUBLIC	??0aString@@QAE@ABV0@@Z				; aString::aString
PUBLIC	??_R4aString@@6B@				; aString::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVaString@@@8				; aString `RTTI Type Descriptor'
PUBLIC	??_R3aString@@8					; aString::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aString@@8					; aString::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@aString@@8			; aString::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@aStringBase@@8			; aStringBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVaStringBase@@@8				; aStringBase `RTTI Type Descriptor'
PUBLIC	??_R3aStringBase@@8				; aStringBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aStringBase@@8				; aStringBase::`RTTI Base Class Array'
PUBLIC	?CharSize@aString@@UBEIXZ			; aString::CharSize
EXTRN	??0aStringBase@@QAE@ABV0@@Z:PROC		; aStringBase::aStringBase
EXTRN	??_EaString@@UAEPAXI@Z:PROC			; aString::`vector deleting destructor'
;	COMDAT ??_R2aStringBase@@8
rdata$r	SEGMENT
??_R2aStringBase@@8 DD FLAT:??_R1A@?0A@EA@aStringBase@@8 ; aStringBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3aStringBase@@8
rdata$r	SEGMENT
??_R3aStringBase@@8 DD 00H				; aStringBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaStringBase@@@8
_DATA	SEGMENT
??_R0?AVaStringBase@@@8 DD FLAT:??_7type_info@@6B@	; aStringBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaStringBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@aStringBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aStringBase@@8 DD FLAT:??_R0?AVaStringBase@@@8 ; aStringBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@aString@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aString@@8 DD FLAT:??_R0?AVaString@@@8	; aString::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aString@@8
rdata$r	ENDS
;	COMDAT ??_R2aString@@8
rdata$r	SEGMENT
??_R2aString@@8 DD FLAT:??_R1A@?0A@EA@aString@@8	; aString::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R3aString@@8
rdata$r	SEGMENT
??_R3aString@@8 DD 00H					; aString::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2aString@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaString@@@8
_DATA	SEGMENT
??_R0?AVaString@@@8 DD FLAT:??_7type_info@@6B@		; aString `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaString@@', 00H
_DATA	ENDS
;	COMDAT ??_R4aString@@6B@
rdata$r	SEGMENT
??_R4aString@@6B@ DD 00H				; aString::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVaString@@@8
	DD	FLAT:??_R3aString@@8
rdata$r	ENDS
;	COMDAT ??_7aString@@6B@
CONST	SEGMENT
??_7aString@@6B@ DD FLAT:??_R4aString@@6B@		; aString::`vftable'
	DD	FLAT:??_EaString@@UAEPAXI@Z
	DD	FLAT:?CharSize@aString@@UBEIXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0aString@@QAE@ABV0@@Z
_TEXT	SEGMENT
_str$ = 8						; size = 4
??0aString@@QAE@ABV0@@Z PROC				; aString::aString, COMDAT
; _this$ = ecx

; 134  : 	aString(const aString& str) : aStringBase(str) { };

	mov	eax, DWORD PTR _str$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	mov	DWORD PTR [esi], OFFSET ??_7aString@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0aString@@QAE@ABV0@@Z ENDP				; aString::aString
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?CharSize@aString@@UBEIXZ
_TEXT	SEGMENT
?CharSize@aString@@UBEIXZ PROC				; aString::CharSize, COMDAT
; _this$ = ecx

; 143  : 	unsigned int CharSize() const { return 1; };

	mov	eax, 1
	ret	0
?CharSize@aString@@UBEIXZ ENDP				; aString::CharSize
_TEXT	ENDS
PUBLIC	?GetString@aString@@QBEPBDXZ			; aString::GetString
; Function compile flags: /Ogtpy
;	COMDAT ?GetString@aString@@QBEPBDXZ
_TEXT	SEGMENT
?GetString@aString@@QBEPBDXZ PROC			; aString::GetString, COMDAT
; _this$ = ecx

; 146  : 	const char *GetString() const { return (this->m_data) ? (const char*)this->m_data->GetBuffer() : NULL; };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString
	mov	eax, DWORD PTR [eax]
	ret	0
$LN3@GetString:
	xor	eax, eax
	ret	0
?GetString@aString@@QBEPBDXZ ENDP			; aString::GetString
_TEXT	ENDS
PUBLIC	??BaString@@QAEQBDXZ				; aString::operator char const * const
; Function compile flags: /Ogtpy
;	COMDAT ??BaString@@QAEQBDXZ
_TEXT	SEGMENT
??BaString@@QAEQBDXZ PROC				; aString::operator char const * const, COMDAT
; _this$ = ecx

; 154  : 	operator const char* const() { return this->GetString(); };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN5@operator
	mov	eax, DWORD PTR [eax]
	ret	0
$LN5@operator:
	xor	eax, eax
	ret	0
??BaString@@QAEQBDXZ ENDP				; aString::operator char const * const
_TEXT	ENDS
PUBLIC	??1aString@@UAE@XZ				; aString::~aString
EXTRN	??1aStringBase@@UAE@XZ:PROC			; aStringBase::~aStringBase
; Function compile flags: /Ogtpy
;	COMDAT ??1aString@@UAE@XZ
_TEXT	SEGMENT
??1aString@@UAE@XZ PROC					; aString::~aString, COMDAT
; _this$ = ecx
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??1aString@@UAE@XZ ENDP					; aString::~aString
_TEXT	ENDS
PUBLIC	??_7aWideString@@6B@				; aWideString::`vftable'
PUBLIC	??0aWideString@@QAE@ABV0@@Z			; aWideString::aWideString
PUBLIC	??_R4aWideString@@6B@				; aWideString::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVaWideString@@@8				; aWideString `RTTI Type Descriptor'
PUBLIC	??_R3aWideString@@8				; aWideString::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aWideString@@8				; aWideString::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@aWideString@@8			; aWideString::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?CharSize@aWideString@@UBEIXZ			; aWideString::CharSize
EXTRN	??_EaWideString@@UAEPAXI@Z:PROC			; aWideString::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@aWideString@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aWideString@@8 DD FLAT:??_R0?AVaWideString@@@8 ; aWideString::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aWideString@@8
rdata$r	ENDS
;	COMDAT ??_R2aWideString@@8
rdata$r	SEGMENT
??_R2aWideString@@8 DD FLAT:??_R1A@?0A@EA@aWideString@@8 ; aWideString::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R3aWideString@@8
rdata$r	SEGMENT
??_R3aWideString@@8 DD 00H				; aWideString::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2aWideString@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaWideString@@@8
_DATA	SEGMENT
??_R0?AVaWideString@@@8 DD FLAT:??_7type_info@@6B@	; aWideString `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaWideString@@', 00H
_DATA	ENDS
;	COMDAT ??_R4aWideString@@6B@
rdata$r	SEGMENT
??_R4aWideString@@6B@ DD 00H				; aWideString::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVaWideString@@@8
	DD	FLAT:??_R3aWideString@@8
rdata$r	ENDS
;	COMDAT ??_7aWideString@@6B@
CONST	SEGMENT
??_7aWideString@@6B@ DD FLAT:??_R4aWideString@@6B@	; aWideString::`vftable'
	DD	FLAT:??_EaWideString@@UAEPAXI@Z
	DD	FLAT:?CharSize@aWideString@@UBEIXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0aWideString@@QAE@ABV0@@Z
_TEXT	SEGMENT
_str$ = 8						; size = 4
??0aWideString@@QAE@ABV0@@Z PROC			; aWideString::aWideString, COMDAT
; _this$ = ecx

; 229  : 	aWideString(const aWideString& str) : aStringBase(str) { };

	mov	eax, DWORD PTR _str$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	mov	DWORD PTR [esi], OFFSET ??_7aWideString@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0aWideString@@QAE@ABV0@@Z ENDP			; aWideString::aWideString
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?CharSize@aWideString@@UBEIXZ
_TEXT	SEGMENT
?CharSize@aWideString@@UBEIXZ PROC			; aWideString::CharSize, COMDAT
; _this$ = ecx

; 238  : 	unsigned int CharSize() const { return 2; };

	mov	eax, 2
	ret	0
?CharSize@aWideString@@UBEIXZ ENDP			; aWideString::CharSize
_TEXT	ENDS
PUBLIC	?GetString@aWideString@@QBEPB_WXZ		; aWideString::GetString
; Function compile flags: /Ogtpy
;	COMDAT ?GetString@aWideString@@QBEPB_WXZ
_TEXT	SEGMENT
?GetString@aWideString@@QBEPB_WXZ PROC			; aWideString::GetString, COMDAT
; _this$ = ecx

; 239  : 	const wchar_t *GetString() const { return (this->m_data) ? (const wchar_t*)this->m_data->GetBuffer() : NULL; };

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString@2
	mov	eax, DWORD PTR [eax]
	ret	0
$LN3@GetString@2:
	xor	eax, eax
	ret	0
?GetString@aWideString@@QBEPB_WXZ ENDP			; aWideString::GetString
_TEXT	ENDS
PUBLIC	??1aWideString@@UAE@XZ				; aWideString::~aWideString
; Function compile flags: /Ogtpy
;	COMDAT ??1aWideString@@UAE@XZ
_TEXT	SEGMENT
??1aWideString@@UAE@XZ PROC				; aWideString::~aWideString, COMDAT
; _this$ = ecx
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??1aWideString@@UAE@XZ ENDP				; aWideString::~aWideString
_TEXT	ENDS
PUBLIC	?Get@aRandom@@AAEKXZ				; aRandom::Get
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\arandom.h
;	COMDAT ?Get@aRandom@@AAEKXZ
_TEXT	SEGMENT
?Get@aRandom@@AAEKXZ PROC				; aRandom::Get, COMDAT
; _this$ = ecx

; 9    : 		if ((this->m_count++) > 64)

	mov	eax, DWORD PTR [ecx]
	cmp	eax, 64					; 00000040H
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	jle	SHORT $LN1@Get

; 10   : 			this->m_count = 1;

	mov	DWORD PTR [ecx], 1
$LN1@Get:

; 11   : 		this->m_seed = (this->m_seed * 0x015a4e33) + this->m_count;

	mov	eax, DWORD PTR [ecx+4]
	imul	eax, 22695475				; 015a4e33H
	add	eax, DWORD PTR [ecx]
	mov	DWORD PTR [ecx+4], eax

; 12   : 		return (this->m_seed >> 16) & 0xFFFF;

	movzx	eax, WORD PTR [ecx+6]

; 13   : 	};

	ret	0
?Get@aRandom@@AAEKXZ ENDP				; aRandom::Get
_TEXT	ENDS
PUBLIC	?Get_Int@aRandom@@QAEJJJ@Z			; aRandom::Get_Int
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Int@aRandom@@QAEJJJ@Z
_TEXT	SEGMENT
_Min$ = 8						; size = 4
_Max$ = 12						; size = 4
?Get_Int@aRandom@@QAEJJJ@Z PROC				; aRandom::Get_Int, COMDAT
; _this$ = ecx

; 46   : 		if (Min == Max)

	mov	eax, DWORD PTR _Min$[esp-4]
	push	esi
	mov	esi, DWORD PTR _Max$[esp]
	cmp	eax, esi

; 47   : 			return Min;

	je	SHORT $LN3@Get_Int
	push	edi

; 48   : 		long Minimum = Min, Maximum = Max;

	mov	edi, eax

; 49   : 		if (Min > Max)

	jle	SHORT $LN1@Get_Int

; 50   : 		{
; 51   : 			Minimum = Max;

	mov	edi, esi

; 52   : 			Maximum = Min;

	mov	esi, eax
$LN1@Get_Int:

; 53   : 		}
; 54   : 		return Minimum + this->Get() % ((Maximum +1) - Minimum);

	mov	eax, DWORD PTR [ecx]
	cmp	eax, 64					; 00000040H
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	jle	SHORT $LN5@Get_Int
	mov	DWORD PTR [ecx], 1
$LN5@Get_Int:
	mov	eax, DWORD PTR [ecx+4]
	imul	eax, 22695475				; 015a4e33H
	add	eax, DWORD PTR [ecx]
	sub	esi, edi
	mov	DWORD PTR [ecx+4], eax
	movzx	eax, WORD PTR [ecx+6]
	add	esi, 1
	xor	edx, edx
	div	esi
	mov	eax, edx
	add	eax, edi
	pop	edi
$LN3@Get_Int:
	pop	esi

; 55   : 	};

	ret	8
?Get_Int@aRandom@@QAEJJJ@Z ENDP				; aRandom::Get_Int
_TEXT	ENDS
PUBLIC	?GetPlayer@gzEventPlayerBase@@QAEPAVnc_cPlayer@@XZ ; gzEventPlayerBase::GetPlayer
; Function compile flags: /Ogtpy
; File d:\source code\stgm\steventbase.h
;	COMDAT ?GetPlayer@gzEventPlayerBase@@QAEPAVnc_cPlayer@@XZ
_TEXT	SEGMENT
?GetPlayer@gzEventPlayerBase@@QAEPAVnc_cPlayer@@XZ PROC	; gzEventPlayerBase::GetPlayer, COMDAT
; _this$ = ecx

; 134  : 		return this->m_player;

	mov	eax, DWORD PTR [ecx+24]

; 135  : 	};

	ret	0
?GetPlayer@gzEventPlayerBase@@QAEPAVnc_cPlayer@@XZ ENDP	; gzEventPlayerBase::GetPlayer
_TEXT	ENDS
PUBLIC	?Skip@stEventSkippable@gzEventPlayerPurchase@@QAEXXZ ; gzEventPlayerPurchase::stEventSkippable::Skip
; Function compile flags: /Ogtpy
;	COMDAT ?Skip@stEventSkippable@gzEventPlayerPurchase@@QAEXXZ
_TEXT	SEGMENT
?Skip@stEventSkippable@gzEventPlayerPurchase@@QAEXXZ PROC ; gzEventPlayerPurchase::stEventSkippable::Skip, COMDAT
; _this$ = ecx

; 150  : 	EVT_SKIPPABLE();

	mov	BYTE PTR [ecx], 0
	ret	0
?Skip@stEventSkippable@gzEventPlayerPurchase@@QAEXXZ ENDP ; gzEventPlayerPurchase::stEventSkippable::Skip
_TEXT	ENDS
PUBLIC	?Skip@gzEventPlayerPurchase@@QAEXXZ		; gzEventPlayerPurchase::Skip
; Function compile flags: /Ogtpy
;	COMDAT ?Skip@gzEventPlayerPurchase@@QAEXXZ
_TEXT	SEGMENT
?Skip@gzEventPlayerPurchase@@QAEXXZ PROC		; gzEventPlayerPurchase::Skip, COMDAT
; _this$ = ecx

; 150  : 	EVT_SKIPPABLE();

	mov	BYTE PTR [ecx+52], 0
	ret	0
?Skip@gzEventPlayerPurchase@@QAEXXZ ENDP		; gzEventPlayerPurchase::Skip
_TEXT	ENDS
PUBLIC	?Skip@stEventSkippable@gzEventObjectPowerupGrant@@QAEXXZ ; gzEventObjectPowerupGrant::stEventSkippable::Skip
; Function compile flags: /Ogtpy
;	COMDAT ?Skip@stEventSkippable@gzEventObjectPowerupGrant@@QAEXXZ
_TEXT	SEGMENT
?Skip@stEventSkippable@gzEventObjectPowerupGrant@@QAEXXZ PROC ; gzEventObjectPowerupGrant::stEventSkippable::Skip, COMDAT
; _this$ = ecx

; 272  : 	EVT_SKIPPABLE();

	mov	BYTE PTR [ecx], 0
	ret	0
?Skip@stEventSkippable@gzEventObjectPowerupGrant@@QAEXXZ ENDP ; gzEventObjectPowerupGrant::stEventSkippable::Skip
_TEXT	ENDS
PUBLIC	?Skip@gzEventObjectPowerupGrant@@QAEXXZ		; gzEventObjectPowerupGrant::Skip
; Function compile flags: /Ogtpy
;	COMDAT ?Skip@gzEventObjectPowerupGrant@@QAEXXZ
_TEXT	SEGMENT
?Skip@gzEventObjectPowerupGrant@@QAEXXZ PROC		; gzEventObjectPowerupGrant::Skip, COMDAT
; _this$ = ecx

; 272  : 	EVT_SKIPPABLE();

	mov	BYTE PTR [ecx+32], 0
	ret	0
?Skip@gzEventObjectPowerupGrant@@QAEXXZ ENDP		; gzEventObjectPowerupGrant::Skip
_TEXT	ENDS
PUBLIC	??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@	; `string'
PUBLIC	??_C@_0L@MOILIICA@General?4?$CFs?$AA@		; `string'
PUBLIC	?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z	; stSettingsBase::Load_Bool
EXTRN	?cGame@@3AAPAVnc_cGameData@@A:DWORD		; cGame
EXTRN	?ToLong@aString@@QAEJXZ:PROC			; aString::ToLong
EXTRN	?Format@aString@@SA?AV1@PBDZZ:PROC		; aString::Format
EXTRN	??0aString@@QAE@H@Z:PROC			; aString::aString
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@ DB '"%s".%s', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@MOILIICA@General?4?$CFs?$AA@
CONST	SEGMENT
??_C@_0L@MOILIICA@General?4?$CFs?$AA@ DB 'General.%s', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$3
	DD	03H
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$4
	DD	04H
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$5
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stsetting.h
xdata$x	ENDS
;	COMDAT ?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z
_TEXT	SEGMENT
$T65776 = -60						; size = 8
$T65779 = -52						; size = 8
$T65778 = -44						; size = 8
$T65777 = -36						; size = 8
$T65781 = -28						; size = 8
$T65780 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_item$ = 8						; size = 4
_default$ = 12						; size = 1
_map$ = 16						; size = 1
_global$ = 20						; size = 1
?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z PROC		; stSettingsBase::Load_Bool, COMDAT
; _this$ = ecx

; 26   : 	{

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 48					; 00000030H
	push	ebx

; 27   : 		bool ret = default;

	mov	bl, BYTE PTR _default$[esp+60]
	push	esi
	mov	esi, ecx

; 28   : 		if (this->m_cfg != NULL)

	cmp	DWORD PTR [esi+12], 0
	je	$LN31@Load_Bool

; 29   : 		{
; 30   : 			if (global)

	cmp	BYTE PTR _global$[esp+64], 0
	push	edi
	mov	edi, DWORD PTR _item$[esp+68]
	je	$LN2@Load_Bool

; 31   : 				ret = this->m_cfg->GetData(aString::Format("General.%s", item), ret).ToLong();

	movzx	eax, bl
	push	eax
	lea	ecx, DWORD PTR $T65776[esp+76]
	call	??0aString@@QAE@H@Z			; aString::aString
	push	edi
	lea	ecx, DWORD PTR $T65777[esp+76]
	push	OFFSET ??_C@_0L@MOILIICA@General?4?$CFs?$AA@
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+92], 0
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	ebx, DWORD PTR $T65776[esp+72]
	push	ebx
	push	eax
	lea	eax, DWORD PTR $T65778[esp+80]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+92], 1
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+80], 2
	call	?ToLong@aString@@QAEJXZ			; aString::ToLong
	test	eax, eax
	lea	ecx, DWORD PTR $T65778[esp+72]
	setne	bl
	mov	BYTE PTR __$EHRec$[esp+80], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65777[esp+72]
	mov	BYTE PTR __$EHRec$[esp+80], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65776[esp+72]
	mov	DWORD PTR __$EHRec$[esp+80], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN2@Load_Bool:

; 32   : 			if (map)

	cmp	BYTE PTR _map$[esp+68], 0
	je	$LN30@Load_Bool

; 33   : 				ret = this->m_cfg->GetData(aString::Format("\"%s\".%s", cGame->MapName.m_Buffer, item), ret).ToLong();

	movzx	eax, bl
	push	eax
	lea	ecx, DWORD PTR $T65779[esp+76]
	call	??0aString@@QAE@H@Z			; aString::aString
	mov	ecx, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+40]
	push	edi
	push	eax
	lea	ecx, DWORD PTR $T65780[esp+80]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+96], 3
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	esi, DWORD PTR $T65779[esp+72]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T65781[esp+80]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+92], 4
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+80], 5
	call	?ToLong@aString@@QAEJXZ			; aString::ToLong
	test	eax, eax
	lea	ecx, DWORD PTR $T65781[esp+72]
	setne	bl
	mov	BYTE PTR __$EHRec$[esp+80], 4
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65780[esp+72]
	mov	BYTE PTR __$EHRec$[esp+80], 3
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+80], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN30@Load_Bool:
	pop	edi
	pop	esi

; 34   : 		}
; 35   : 		return ret;

	mov	al, bl
	pop	ebx

; 36   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	mov	DWORD PTR fs:0, ecx
	add	esp, 60					; 0000003cH
	ret	16					; 00000010H
$LN31@Load_Bool:
	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	pop	esi
	mov	al, bl
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 60					; 0000003cH
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$0:
	lea	ecx, DWORD PTR $T65776[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$1:
	lea	ecx, DWORD PTR $T65777[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$2:
	lea	ecx, DWORD PTR $T65778[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$3:
	lea	ecx, DWORD PTR $T65779[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$4:
	lea	ecx, DWORD PTR $T65780[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z$5:
	lea	ecx, DWORD PTR $T65781[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z:
	mov	eax, OFFSET __ehfuncinfo$?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z ENDP		; stSettingsBase::Load_Bool
PUBLIC	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z	; stSettingsBase::Load_Float
EXTRN	?ToDouble@aString@@QAENXZ:PROC			; aString::ToDouble
EXTRN	??0aString@@QAE@N@Z:PROC			; aString::aString
EXTRN	__fltused:DWORD
;	COMDAT xdata$x
; File d:\source code\alib\include\astring.h
xdata$x	SEGMENT
__ehfuncinfo$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$3
	DD	03H
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$4
	DD	04H
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$5
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stsetting.h
xdata$x	ENDS
;	COMDAT ?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z
_TEXT	SEGMENT
_ret$ = -116						; size = 4
$T65827 = -112						; size = 8
$T65830 = -104						; size = 8
$T65829 = -96						; size = 8
$T65828 = -88						; size = 8
$T65832 = -80						; size = 8
$T65831 = -72						; size = 8
__$EHRec$ = -12						; size = 12
_item$ = 8						; size = 4
_default$ = 12						; size = 4
_map$ = 16						; size = 1
_global$ = 20						; size = 1
?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z PROC		; stSettingsBase::Load_Float, COMDAT
; _this$ = ecx

; 44   : 	{

	push	ebp
	mov	ebp, esp
	and	esp, -64				; ffffffc0H
	mov	eax, DWORD PTR fs:0

; 45   : 		float ret = default;

	fld	DWORD PTR _default$[ebp]
	push	-1
	fld	ST(0)
	push	__ehhandler$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 104				; 00000068H
	push	ebx
	push	esi
	mov	esi, ecx

; 46   : 		if (this->m_cfg != NULL)

	cmp	DWORD PTR [esi+12], 0
	push	edi
	je	$LN34@Load_Float

; 47   : 		{
; 48   : 			if (global)

	cmp	BYTE PTR _global$[ebp], 0
	mov	edi, DWORD PTR _item$[ebp]
	je	$LN37@Load_Float

; 49   : 				ret = (float)this->m_cfg->GetData(aString::Format("General.%s", item), ret).ToDouble();

	sub	esp, 8
	fstp	ST(0)
	lea	ecx, DWORD PTR $T65827[esp+136]
	fstp	QWORD PTR [esp]
	call	??0aString@@QAE@N@Z			; aString::aString
	push	edi
	lea	eax, DWORD PTR $T65828[esp+132]
	push	OFFSET ??_C@_0L@MOILIICA@General?4?$CFs?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+148], 0
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	ebx, DWORD PTR $T65827[esp+128]
	push	ebx
	push	eax
	lea	eax, DWORD PTR $T65829[esp+136]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+148], 1
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+136], 2
	call	?ToDouble@aString@@QAENXZ		; aString::ToDouble
	fstp	DWORD PTR _ret$[esp+128]
	lea	ecx, DWORD PTR $T65829[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65828[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, ebx
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	fld	DWORD PTR _ret$[esp+128]
	jmp	SHORT $LN2@Load_Float
$LN37@Load_Float:
	fstp	ST(1)
$LN2@Load_Float:

; 50   : 			if (map)

	cmp	BYTE PTR _map$[ebp], 0
	je	$LN1@Load_Float

; 51   : 				ret = (float)this->m_cfg->GetData(aString::Format("\"%s\".%s", cGame->MapName.m_Buffer, item), ret).ToDouble();

	sub	esp, 8
	lea	ecx, DWORD PTR $T65830[esp+136]
	fstp	QWORD PTR [esp]
	call	??0aString@@QAE@N@Z			; aString::aString
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+40]
	push	edi
	push	edx
	lea	eax, DWORD PTR $T65831[esp+136]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+152], 3
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	esi, DWORD PTR $T65830[esp+128]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T65832[esp+136]
	mov	bl, 4
	push	eax
	mov	BYTE PTR __$EHRec$[esp+148], bl
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+136], 5
	call	?ToDouble@aString@@QAENXZ		; aString::ToDouble
	fstp	DWORD PTR _ret$[esp+128]
	lea	ecx, DWORD PTR $T65832[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65831[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 3
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 52   : 		}
; 53   : 		return ret;

	fld	DWORD PTR _ret$[esp+128]

; 54   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	16					; 00000010H
$LN34@Load_Float:

; 46   : 		if (this->m_cfg != NULL)

	fstp	ST(1)
$LN1@Load_Float:

; 54   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$0:
	lea	ecx, DWORD PTR $T65827[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$1:
	lea	ecx, DWORD PTR $T65828[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$2:
	lea	ecx, DWORD PTR $T65829[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$3:
	lea	ecx, DWORD PTR $T65830[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$4:
	lea	ecx, DWORD PTR $T65831[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z$5:
	lea	ecx, DWORD PTR $T65832[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z:
	mov	eax, OFFSET __ehfuncinfo$?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ENDP		; stSettingsBase::Load_Float
PUBLIC	?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z		; stSettingsBase::Load_Int
;	COMDAT xdata$x
; File d:\source code\alib\include\astring.h
xdata$x	SEGMENT
__ehfuncinfo$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$3
	DD	03H
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$4
	DD	04H
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$5
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stsetting.h
xdata$x	ENDS
;	COMDAT ?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z
_TEXT	SEGMENT
$T65883 = -60						; size = 8
$T65886 = -52						; size = 8
$T65885 = -44						; size = 8
$T65884 = -36						; size = 8
$T65888 = -28						; size = 8
$T65887 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_item$ = 8						; size = 4
_default$ = 12						; size = 4
_map$ = 16						; size = 1
_global$ = 20						; size = 1
?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z PROC		; stSettingsBase::Load_Int, COMDAT
; _this$ = ecx

; 62   : 	{

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 48					; 00000030H
	push	esi
	mov	esi, ecx

; 63   : 		int ret = default;
; 64   : 		if (this->m_cfg != NULL)

	cmp	DWORD PTR [esi+12], 0
	push	edi
	mov	edi, DWORD PTR _default$[esp+64]
	je	$LN31@Load_Int

; 65   : 		{
; 66   : 			if (global)

	cmp	BYTE PTR _global$[esp+64], 0
	push	ebp
	mov	ebp, DWORD PTR _item$[esp+68]
	je	SHORT $LN2@Load_Int

; 67   : 				ret = this->m_cfg->GetData(aString::Format("General.%s", item), ret).ToLong();

	push	edi
	lea	ecx, DWORD PTR $T65883[esp+76]
	call	??0aString@@QAE@H@Z			; aString::aString
	push	ebp
	lea	eax, DWORD PTR $T65884[esp+76]
	push	OFFSET ??_C@_0L@MOILIICA@General?4?$CFs?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+92], 0
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	edi, DWORD PTR $T65883[esp+72]
	push	edi
	push	eax
	lea	eax, DWORD PTR $T65885[esp+80]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+92], 1
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+80], 2
	call	?ToLong@aString@@QAEJXZ			; aString::ToLong
	lea	ecx, DWORD PTR $T65885[esp+72]
	mov	edi, eax
	mov	BYTE PTR __$EHRec$[esp+80], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65884[esp+72]
	mov	BYTE PTR __$EHRec$[esp+80], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65883[esp+72]
	mov	DWORD PTR __$EHRec$[esp+80], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN2@Load_Int:

; 68   : 			if (map)

	cmp	BYTE PTR _map$[esp+68], 0
	je	$LN30@Load_Int

; 69   : 				ret = this->m_cfg->GetData(aString::Format("\"%s\".%s", cGame->MapName.m_Buffer, item), ret).ToLong();

	push	edi
	lea	ecx, DWORD PTR $T65886[esp+76]
	call	??0aString@@QAE@H@Z			; aString::aString
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+40]
	push	ebp
	push	edx
	lea	eax, DWORD PTR $T65887[esp+80]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+96], 3
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	esi, DWORD PTR $T65886[esp+72]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T65888[esp+80]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+92], 4
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+80], 5
	call	?ToLong@aString@@QAEJXZ			; aString::ToLong
	lea	ecx, DWORD PTR $T65888[esp+72]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+80], 4
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65887[esp+72]
	mov	BYTE PTR __$EHRec$[esp+80], 3
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65886[esp+72]
	mov	DWORD PTR __$EHRec$[esp+80], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	pop	ebp
	pop	edi

; 70   : 		}
; 71   : 		return ret;

	mov	eax, esi
	pop	esi

; 72   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	mov	DWORD PTR fs:0, ecx
	add	esp, 60					; 0000003cH
	ret	16					; 00000010H
$LN30@Load_Int:
	pop	ebp

; 70   : 		}
; 71   : 		return ret;

	mov	eax, edi
	pop	edi
	pop	esi

; 72   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	mov	DWORD PTR fs:0, ecx
	add	esp, 60					; 0000003cH
	ret	16					; 00000010H
$LN31@Load_Int:
	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 60					; 0000003cH
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$0:
	lea	ecx, DWORD PTR $T65883[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$1:
	lea	ecx, DWORD PTR $T65884[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$2:
	lea	ecx, DWORD PTR $T65885[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$3:
	lea	ecx, DWORD PTR $T65886[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$4:
	lea	ecx, DWORD PTR $T65887[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z$5:
	lea	ecx, DWORD PTR $T65888[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z:
	mov	eax, OFFSET __ehfuncinfo$?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z ENDP		; stSettingsBase::Load_Int
PUBLIC	?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z ; stSettingsBase::Load_String
EXTRN	??0aString@@QAE@PBD@Z:PROC			; aString::aString
;	COMDAT xdata$x
; File d:\source code\alib\include\astring.h
xdata$x	SEGMENT
__unwindtable$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z$1
__ehfuncinfo$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stsetting.h
xdata$x	ENDS
;	COMDAT ?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z
_TEXT	SEGMENT
$T65936 = -28						; size = 4
$T65931 = -28						; size = 8
$T65932 = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_section$ = 12						; size = 4
_item$ = 16						; size = 4
_default$ = 20						; size = 4
?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z PROC ; stSettingsBase::Load_String, COMDAT
; _this$ = ecx

; 92   : 	{

	push	-1
	push	__ehhandler$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 16					; 00000010H
	push	esi
	mov	esi, ecx
	mov	DWORD PTR $T65936[esp+32], 0

; 93   : 		if (this->m_cfg != NULL)

	cmp	DWORD PTR [esi+12], 0
	je	SHORT $LN1@Load_Strin

; 94   : 			return this->m_cfg->GetData(aString::Format("\"%s\".%s", section, item), default);

	mov	eax, DWORD PTR _default$[esp+28]
	push	eax
	lea	ecx, DWORD PTR $T65931[esp+36]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	mov	ecx, DWORD PTR _item$[esp+28]
	mov	edx, DWORD PTR _section$[esp+28]
	push	ecx
	push	edx
	lea	eax, DWORD PTR $T65932[esp+40]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+56], 0
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	lea	esi, DWORD PTR $T65931[esp+32]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+32]
	push	eax
	mov	eax, DWORD PTR [edx+24]
	push	esi
	mov	BYTE PTR __$EHRec$[esp+52], 1
	call	eax
	lea	ecx, DWORD PTR $T65932[esp+32]
	mov	BYTE PTR __$EHRec$[esp+40], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65931[esp+32]
	mov	DWORD PTR __$EHRec$[esp+40], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 95   : 		return default;

	mov	eax, esi
	pop	esi

; 96   : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	16					; 00000010H
$LN1@Load_Strin:

; 95   : 		return default;

	mov	ecx, DWORD PTR _default$[esp+28]
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+28]
	push	ecx
	mov	ecx, esi
	call	??0aString@@QAE@PBD@Z			; aString::aString

; 96   : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z$0:
	lea	ecx, DWORD PTR $T65931[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z$1:
	lea	ecx, DWORD PTR $T65932[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z:
	mov	eax, OFFSET __ehfuncinfo$?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z ENDP ; stSettingsBase::Load_String
PUBLIC	??_7stSettingsBase@@6B@				; stSettingsBase::`vftable'
PUBLIC	??0stSettingsBase@@QAE@XZ			; stSettingsBase::stSettingsBase
PUBLIC	??_R4stSettingsBase@@6B@			; stSettingsBase::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVstSettingsBase@@@8			; stSettingsBase `RTTI Type Descriptor'
PUBLIC	??_R3stSettingsBase@@8				; stSettingsBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2stSettingsBase@@8				; stSettingsBase::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@stSettingsBase@@8			; stSettingsBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Delete@stSettingsBase@@UAEXXZ			; stSettingsBase::Delete
EXTRN	?gzSettingsMgr@@3PAVgzSettingsManager@@A:DWORD	; gzSettingsMgr
EXTRN	__purecall:PROC
;	COMDAT ??_R1A@?0A@EA@stSettingsBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@stSettingsBase@@8 DD FLAT:??_R0?AVstSettingsBase@@@8 ; stSettingsBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3stSettingsBase@@8
rdata$r	ENDS
;	COMDAT ??_R2stSettingsBase@@8
rdata$r	SEGMENT
??_R2stSettingsBase@@8 DD FLAT:??_R1A@?0A@EA@stSettingsBase@@8 ; stSettingsBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3stSettingsBase@@8
rdata$r	SEGMENT
??_R3stSettingsBase@@8 DD 00H				; stSettingsBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2stSettingsBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVstSettingsBase@@@8
_DATA	SEGMENT
??_R0?AVstSettingsBase@@@8 DD FLAT:??_7type_info@@6B@	; stSettingsBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVstSettingsBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R4stSettingsBase@@6B@
rdata$r	SEGMENT
??_R4stSettingsBase@@6B@ DD 00H				; stSettingsBase::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVstSettingsBase@@@8
	DD	FLAT:??_R3stSettingsBase@@8
rdata$r	ENDS
;	COMDAT ??_7stSettingsBase@@6B@
CONST	SEGMENT
??_7stSettingsBase@@6B@ DD FLAT:??_R4stSettingsBase@@6B@ ; stSettingsBase::`vftable'
	DD	FLAT:?Delete@stSettingsBase@@UAEXXZ
	DD	FLAT:__purecall
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0stSettingsBase@@QAE@XZ
_TEXT	SEGMENT
$T65956 = -4						; size = 4
??0stSettingsBase@@QAE@XZ PROC				; stSettingsBase::stSettingsBase, COMDAT
; _this$ = ecx

; 101  : 	stSettingsBase()

	push	ecx

; 102  : 	{
; 103  : 		this->m_cfg = NULL;

	xor	eax, eax
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi+12], eax

; 104  : 		this->m_confModTime = 0;

	mov	DWORD PTR [esi+16], eax
	mov	DWORD PTR [esi+20], eax

; 105  : 		this->m_owner = NULL;

	mov	DWORD PTR [esi+8], eax
	mov	DWORD PTR [esi], OFFSET ??_7stSettingsBase@@6B@

; 106  : 		gzSettingsMgr->m_list.Add(this);

	mov	ecx, DWORD PTR ?gzSettingsMgr@@3PAVgzSettingsManager@@A ; gzSettingsMgr
	add	ecx, 36					; 00000024H
	mov	DWORD PTR $T65956[esp+8], esi
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+12]
	lea	edx, DWORD PTR $T65956[esp+8]
	push	edx
	call	eax

; 107  : 	};

	mov	eax, esi
	pop	esi
	pop	ecx
	ret	0
??0stSettingsBase@@QAE@XZ ENDP				; stSettingsBase::stSettingsBase
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@stSettingsBase@@UAEXXZ
_TEXT	SEGMENT
?Delete@stSettingsBase@@UAEXXZ PROC			; stSettingsBase::Delete, COMDAT
; _this$ = ecx

; 108  : 	virtual void Delete() { };

	ret	0
?Delete@stSettingsBase@@UAEXXZ ENDP			; stSettingsBase::Delete
_TEXT	ENDS
PUBLIC	?SetOwner@stSettingsBase@@QAEXPAVgzSettingsEvent@@@Z ; stSettingsBase::SetOwner
; Function compile flags: /Ogtpy
;	COMDAT ?SetOwner@stSettingsBase@@QAEXPAVgzSettingsEvent@@@Z
_TEXT	SEGMENT
_owner$ = 8						; size = 4
?SetOwner@stSettingsBase@@QAEXPAVgzSettingsEvent@@@Z PROC ; stSettingsBase::SetOwner, COMDAT
; _this$ = ecx

; 113  : 	void SetOwner(gzSettingsEvent *owner) { this->m_owner = owner; };

	mov	eax, DWORD PTR _owner$[esp-4]
	mov	DWORD PTR [ecx+8], eax
	ret	4
?SetOwner@stSettingsBase@@QAEXPAVgzSettingsEvent@@@Z ENDP ; stSettingsBase::SetOwner
_TEXT	ENDS
PUBLIC	?GetGame@gzGameManager@@QAEPAVgzGameModeBase@@XZ ; gzGameManager::GetGame
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stgame.h
;	COMDAT ?GetGame@gzGameManager@@QAEPAVgzGameModeBase@@XZ
_TEXT	SEGMENT
?GetGame@gzGameManager@@QAEPAVgzGameModeBase@@XZ PROC	; gzGameManager::GetGame, COMDAT
; _this$ = ecx

; 108  : 	gzGameModeBase *GetGame() { return this->m_gameMode; };

	mov	eax, DWORD PTR [ecx+40]
	ret	0
?GetGame@gzGameManager@@QAEPAVgzGameModeBase@@XZ ENDP	; gzGameManager::GetGame
_TEXT	ENDS
PUBLIC	?SetTibCrystal@gzPlayer@@QAEXPAVgzTiberiumCrystal@@@Z ; gzPlayer::SetTibCrystal
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stplayer.h
;	COMDAT ?SetTibCrystal@gzPlayer@@QAEXPAVgzTiberiumCrystal@@@Z
_TEXT	SEGMENT
_crystal$ = 8						; size = 4
?SetTibCrystal@gzPlayer@@QAEXPAVgzTiberiumCrystal@@@Z PROC ; gzPlayer::SetTibCrystal, COMDAT
; _this$ = ecx

; 87   : 	inline void SetTibCrystal(gzTiberiumCrystal *crystal) { this->m_tibCrystal = crystal; };

	mov	eax, DWORD PTR _crystal$[esp-4]
	mov	DWORD PTR [ecx+68], eax
	ret	4
?SetTibCrystal@gzPlayer@@QAEXPAVgzTiberiumCrystal@@@Z ENDP ; gzPlayer::SetTibCrystal
_TEXT	ENDS
PUBLIC	?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ	; gzPlayer::GetPlayerData
; Function compile flags: /Ogtpy
;	COMDAT ?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ
_TEXT	SEGMENT
?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ PROC	; gzPlayer::GetPlayerData, COMDAT
; _this$ = ecx

; 88   : 	inline nc_cPlayer *GetPlayerData() { return this->m_gameData; };

	mov	eax, DWORD PTR [ecx+76]
	ret	0
?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ ENDP	; gzPlayer::GetPlayerData
_TEXT	ENDS
PUBLIC	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ	; gzPlayer::GetPlayerName
; Function compile flags: /Ogtpy
;	COMDAT ?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ
_TEXT	SEGMENT
$T65976 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ PROC	; gzPlayer::GetPlayerName, COMDAT
; _this$ = ecx

; 107  : 	inline aWideString GetPlayerName() { return this->m_name; };

	push	ecx
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	add	ecx, 80					; 00000050H
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR $T65976[esp+12], 0
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	mov	DWORD PTR [esi], OFFSET ??_7aWideString@@6B@
	mov	eax, esi
	pop	esi
	pop	ecx
	ret	4
?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ENDP	; gzPlayer::GetPlayerName
_TEXT	ENDS
PUBLIC	?Delete@gzSettingsTibCrystal@@UAEXXZ		; gzSettingsTibCrystal::Delete
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
;	COMDAT ?Delete@gzSettingsTibCrystal@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzSettingsTibCrystal@@UAEXXZ PROC		; gzSettingsTibCrystal::Delete, COMDAT
; _this$ = ecx

; 9    : {

	push	esi
	mov	esi, ecx

; 10   : 	this->m_modelList.Clear();

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

; 11   : 	this->m_posList.Clear();

	mov	eax, DWORD PTR [esi+88]
	mov	edx, DWORD PTR [eax+4]
	lea	ecx, DWORD PTR [esi+88]
	pop	esi
	jmp	edx
?Delete@gzSettingsTibCrystal@@UAEXXZ ENDP		; gzSettingsTibCrystal::Delete
_TEXT	ENDS
PUBLIC	??_7gzManagerEvent@@6B@				; gzManagerEvent::`vftable'
PUBLIC	??0gzManagerEvent@@QAE@XZ			; gzManagerEvent::gzManagerEvent
PUBLIC	??_R4gzManagerEvent@@6B@			; gzManagerEvent::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzManagerEvent@@@8			; gzManagerEvent `RTTI Type Descriptor'
PUBLIC	??_R3gzManagerEvent@@8				; gzManagerEvent::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzManagerEvent@@8				; gzManagerEvent::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzManagerEvent@@8			; gzManagerEvent::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?ChildObjCreation@gzManagerEvent@@UAEXPAVgzBase@@@Z ; gzManagerEvent::ChildObjCreation
;	COMDAT ??_R1A@?0A@EA@gzManagerEvent@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzManagerEvent@@8 DD FLAT:??_R0?AVgzManagerEvent@@@8 ; gzManagerEvent::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzManagerEvent@@8
rdata$r	ENDS
;	COMDAT ??_R2gzManagerEvent@@8
rdata$r	SEGMENT
??_R2gzManagerEvent@@8 DD FLAT:??_R1A@?0A@EA@gzManagerEvent@@8 ; gzManagerEvent::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3gzManagerEvent@@8
rdata$r	SEGMENT
??_R3gzManagerEvent@@8 DD 00H				; gzManagerEvent::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2gzManagerEvent@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzManagerEvent@@@8
_DATA	SEGMENT
??_R0?AVgzManagerEvent@@@8 DD FLAT:??_7type_info@@6B@	; gzManagerEvent `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzManagerEvent@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzManagerEvent@@6B@
rdata$r	SEGMENT
??_R4gzManagerEvent@@6B@ DD 00H				; gzManagerEvent::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzManagerEvent@@@8
	DD	FLAT:??_R3gzManagerEvent@@8
rdata$r	ENDS
;	COMDAT ??_7gzManagerEvent@@6B@
CONST	SEGMENT
??_7gzManagerEvent@@6B@ DD FLAT:??_R4gzManagerEvent@@6B@ ; gzManagerEvent::`vftable'
	DD	FLAT:__purecall
	DD	FLAT:?ChildObjCreation@gzManagerEvent@@UAEXPAVgzBase@@@Z
	DD	FLAT:__purecall
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzManagerEvent@@QAE@XZ
_TEXT	SEGMENT
??0gzManagerEvent@@QAE@XZ PROC				; gzManagerEvent::gzManagerEvent, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET ??_7gzManagerEvent@@6B@
	ret	0
??0gzManagerEvent@@QAE@XZ ENDP				; gzManagerEvent::gzManagerEvent
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.h
_TEXT	ENDS
;	COMDAT ?ChildObjCreation@gzManagerEvent@@UAEXPAVgzBase@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?ChildObjCreation@gzManagerEvent@@UAEXPAVgzBase@@@Z PROC ; gzManagerEvent::ChildObjCreation, COMDAT
; _this$ = ecx

; 110  : 	virtual void ChildObjCreation(gzBase *) { };

	ret	4
?ChildObjCreation@gzManagerEvent@@UAEXPAVgzBase@@@Z ENDP ; gzManagerEvent::ChildObjCreation
_TEXT	ENDS
PUBLIC	??_7gzSettingsEvent@@6B@			; gzSettingsEvent::`vftable'
PUBLIC	??0gzSettingsEvent@@QAE@XZ			; gzSettingsEvent::gzSettingsEvent
PUBLIC	??_R4gzSettingsEvent@@6B@			; gzSettingsEvent::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzSettingsEvent@@@8			; gzSettingsEvent `RTTI Type Descriptor'
PUBLIC	??_R3gzSettingsEvent@@8				; gzSettingsEvent::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzSettingsEvent@@8				; gzSettingsEvent::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzSettingsEvent@@8		; gzSettingsEvent::`RTTI Base Class Descriptor at (0,-1,0,64)'
;	COMDAT ??_R1A@?0A@EA@gzSettingsEvent@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzSettingsEvent@@8 DD FLAT:??_R0?AVgzSettingsEvent@@@8 ; gzSettingsEvent::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R2gzSettingsEvent@@8
rdata$r	SEGMENT
??_R2gzSettingsEvent@@8 DD FLAT:??_R1A@?0A@EA@gzSettingsEvent@@8 ; gzSettingsEvent::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3gzSettingsEvent@@8
rdata$r	SEGMENT
??_R3gzSettingsEvent@@8 DD 00H				; gzSettingsEvent::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzSettingsEvent@@@8
_DATA	SEGMENT
??_R0?AVgzSettingsEvent@@@8 DD FLAT:??_7type_info@@6B@	; gzSettingsEvent `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzSettingsEvent@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzSettingsEvent@@6B@
rdata$r	SEGMENT
??_R4gzSettingsEvent@@6B@ DD 00H			; gzSettingsEvent::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzSettingsEvent@@@8
	DD	FLAT:??_R3gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_7gzSettingsEvent@@6B@
CONST	SEGMENT
??_7gzSettingsEvent@@6B@ DD FLAT:??_R4gzSettingsEvent@@6B@ ; gzSettingsEvent::`vftable'
	DD	FLAT:__purecall
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzSettingsEvent@@QAE@XZ
_TEXT	SEGMENT
??0gzSettingsEvent@@QAE@XZ PROC				; gzSettingsEvent::gzSettingsEvent, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET ??_7gzSettingsEvent@@6B@
	ret	0
??0gzSettingsEvent@@QAE@XZ ENDP				; gzSettingsEvent::gzSettingsEvent
_TEXT	ENDS
PUBLIC	?Object_PowerupGrant@gzTibCrystalManager@@UAEXAAVgzEventObjectPowerupGrant@@@Z ; gzTibCrystalManager::Object_PowerupGrant
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
;	COMDAT ?Object_PowerupGrant@gzTibCrystalManager@@UAEXAAVgzEventObjectPowerupGrant@@@Z
_TEXT	SEGMENT
_evt$ = 8						; size = 4
?Object_PowerupGrant@gzTibCrystalManager@@UAEXAAVgzEventObjectPowerupGrant@@@Z PROC ; gzTibCrystalManager::Object_PowerupGrant, COMDAT
; _this$ = ecx

; 141  : 	if (evt.m_powerup == this->m_flags[0] || evt.m_powerup == this->m_flags[1])

	mov	edx, DWORD PTR _evt$[esp-4]
	mov	eax, DWORD PTR [edx+24]
	cmp	eax, DWORD PTR [ecx+52]
	je	SHORT $LN1@Object_Pow
	cmp	eax, DWORD PTR [ecx+56]
	jne	SHORT $LN7@Object_Pow
$LN1@Object_Pow:

; 142  : 		evt.Skip();

	mov	BYTE PTR [edx+32], 0
$LN7@Object_Pow:

; 143  : }

	ret	4
?Object_PowerupGrant@gzTibCrystalManager@@UAEXAAVgzEventObjectPowerupGrant@@@Z ENDP ; gzTibCrystalManager::Object_PowerupGrant
_TEXT	ENDS
PUBLIC	?ChildObjDeletion@gzTibCrystalManager@@UAEXPAVgzBase@@@Z ; gzTibCrystalManager::ChildObjDeletion
; Function compile flags: /Ogtpy
;	COMDAT ?ChildObjDeletion@gzTibCrystalManager@@UAEXPAVgzBase@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?ChildObjDeletion@gzTibCrystalManager@@UAEXPAVgzBase@@@Z PROC ; gzTibCrystalManager::ChildObjDeletion, COMDAT
; _this$ = ecx

; 146  : 	this->m_crystal = NULL;

	mov	DWORD PTR [ecx+12], 0

; 147  : }

	ret	4
?ChildObjDeletion@gzTibCrystalManager@@UAEXPAVgzBase@@@Z ENDP ; gzTibCrystalManager::ChildObjDeletion
_TEXT	ENDS
PUBLIC	??_C@_0O@OHGHGLBD@POW_Data_Disc?$AA@		; `string'
PUBLIC	?Settings_Loaded@gzTibCrystalManager@@UAEXXZ	; gzTibCrystalManager::Settings_Loaded
EXTRN	?Set_Transform@nc_PhysicalGameObj@@QAEXPAUnc_Matrix3D@@@Z:PROC ; nc_PhysicalGameObj::Set_Transform
EXTRN	?Create_Object@nc_ObjectLibraryManager@@SAPAVnc_ScriptableGameObj@@PBD@Z:PROC ; nc_ObjectLibraryManager::Create_Object
EXTRN	?Find_Building@nc_BaseControllerClass@@QAEPAVnc_BuildingGameObj@@W4BuildingType@@@Z:PROC ; nc_BaseControllerClass::Find_Building
EXTRN	?Find_Base@nc_BaseControllerClass@@SAPAV1@H@Z:PROC ; nc_BaseControllerClass::Find_Base
;	COMDAT ??_C@_0O@OHGHGLBD@POW_Data_Disc?$AA@
CONST	SEGMENT
??_C@_0O@OHGHGLBD@POW_Data_Disc?$AA@ DB 'POW_Data_Disc', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Settings_Loaded@gzTibCrystalManager@@UAEXXZ
_TEXT	SEGMENT
?Settings_Loaded@gzTibCrystalManager@@UAEXXZ PROC	; gzTibCrystalManager::Settings_Loaded, COMDAT
; _this$ = ecx

; 150  : 	if (this->m_settings->m_enable)

	mov	eax, DWORD PTR [ecx+20]
	cmp	BYTE PTR [eax+24], 0
	je	$LN2@Settings_L
	push	ebx
	push	esi
	push	edi

; 151  : 	{
; 152  : 		// Dump location is in HarvesterClass
; 153  : 		for (int i = 0; i < 2; i++)

	xor	ebx, ebx
	lea	esi, DWORD PTR [ecx+12]
$LL4@Settings_L:

; 154  : 		{
; 155  : 			nc_BaseControllerClass *Base = nc_BaseControllerClass::Find_Base(i);

	push	ebx
	call	?Find_Base@nc_BaseControllerClass@@SAPAV1@H@Z ; nc_BaseControllerClass::Find_Base
	mov	edi, eax
	add	esp, 4

; 156  : 			if (Base && Base->Find_Building(nc_REFINERY))

	test	edi, edi
	je	SHORT $LN3@Settings_L
	push	3
	mov	ecx, edi
	call	?Find_Building@nc_BaseControllerClass@@QAEPAVnc_BuildingGameObj@@W4BuildingType@@@Z ; nc_BaseControllerClass::Find_Building
	test	eax, eax
	je	SHORT $LN3@Settings_L

; 157  : 			{
; 158  : 				this->m_flags[i] = gzStatic_Cast(nc_PowerUpGameObj, nc_ObjectLibraryManager::Create_Object("POW_Data_Disc"));

	push	OFFSET ??_C@_0O@OHGHGLBD@POW_Data_Disc?$AA@
	call	?Create_Object@nc_ObjectLibraryManager@@SAPAVnc_ScriptableGameObj@@PBD@Z ; nc_ObjectLibraryManager::Create_Object
	add	esp, 4

; 159  : 				this->m_flags[i]->As_PhysicalGameObj()->Set_Transform(&Base->Find_Building(nc_REFINERY)->As_RefineryGameObj()->DockPosition);

	push	3
	mov	ecx, edi
	mov	DWORD PTR [esi], eax
	call	?Find_Building@nc_BaseControllerClass@@QAEPAVnc_BuildingGameObj@@W4BuildingType@@@Z ; nc_BaseControllerClass::Find_Building
	mov	edx, DWORD PTR [eax]
	mov	edi, DWORD PTR [esi]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+132]
	call	eax
	mov	edx, DWORD PTR [edi]
	add	eax, 2180				; 00000884H
	push	eax
	mov	eax, DWORD PTR [edx+36]
	mov	ecx, edi
	call	eax
	mov	ecx, eax
	call	?Set_Transform@nc_PhysicalGameObj@@QAEXPAUnc_Matrix3D@@@Z ; nc_PhysicalGameObj::Set_Transform

; 160  : 				this->m_flags[i]->Set_Player_Type(i);

	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+108]
	push	ebx
	call	eax

; 161  : 				this->m_flags[i]->Set_Object_Dirty_Bit(nc_DB_CREATION, false);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	lea	ecx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [edx+56]
	push	0
	push	15					; 0000000fH
	call	eax
$LN3@Settings_L:
	add	ebx, 1
	add	esi, 4
	cmp	ebx, 2
	jl	SHORT $LL4@Settings_L
	pop	edi
	pop	esi
	pop	ebx
$LN2@Settings_L:

; 162  : #ifdef TIBMSG
; 163  : 				nc_Vector3 pos;
; 164  : 				this->m_flags[i]->As_PhysicalGameObj()->Get_Position(&pos);
; 165  : 				DebugLog("[TibCrystal] Flag(%d) has been set to dump zone of Refinery of team %d. X; %f  Y; %f  Z; %f",
; 166  : 					this->m_flags[i]->NetworkID,
; 167  : 					i,
; 168  : 					pos.X,
; 169  : 					pos.Y,
; 170  : 					pos.Z
; 171  : 				);
; 172  : #endif
; 173  : 			}
; 174  : 		}
; 175  : 	}
; 176  : }

	ret	0
?Settings_Loaded@gzTibCrystalManager@@UAEXXZ ENDP	; gzTibCrystalManager::Settings_Loaded
_TEXT	ENDS
PUBLIC	?GetFlag@gzTibCrystalManager@@QAEPAVnc_PowerUpGameObj@@H@Z ; gzTibCrystalManager::GetFlag
; Function compile flags: /Ogtpy
;	COMDAT ?GetFlag@gzTibCrystalManager@@QAEPAVnc_PowerUpGameObj@@H@Z
_TEXT	SEGMENT
_team$ = 8						; size = 4
?GetFlag@gzTibCrystalManager@@QAEPAVnc_PowerUpGameObj@@H@Z PROC ; gzTibCrystalManager::GetFlag, COMDAT
; _this$ = ecx

; 179  : 	if (team <= -1 || team >= 2)

	mov	eax, DWORD PTR _team$[esp-4]
	cmp	eax, 1
	ja	SHORT $LN1@GetFlag

; 181  : 	return this->m_flags[team];

	mov	eax, DWORD PTR [ecx+eax*4+52]

; 182  : }

	ret	4
$LN1@GetFlag:

; 180  : 		return NULL;

	xor	eax, eax

; 182  : }

	ret	4
?GetFlag@gzTibCrystalManager@@QAEPAVnc_PowerUpGameObj@@H@Z ENDP ; gzTibCrystalManager::GetFlag
_TEXT	ENDS
PUBLIC	?Delete@gzTiberiumCrystal@@UAEXXZ		; gzTiberiumCrystal::Delete
EXTRN	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z:PROC ; nc_GameObjManager::Find_PhysicalGameObj
; Function compile flags: /Ogtpy
;	COMDAT ?Delete@gzTiberiumCrystal@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzTiberiumCrystal@@UAEXXZ PROC			; gzTiberiumCrystal::Delete, COMDAT
; _this$ = ecx

; 215  : {

	push	ebx
	push	ebp
	push	esi
	mov	esi, ecx

; 216  : 	nc_PhysicalGameObj	*crystalObj	= nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalId),

	mov	eax, DWORD PTR [esi+36]
	push	edi
	push	eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj

; 217  : 						*boneObj	= nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalBoneId);

	mov	ecx, DWORD PTR [esi+40]
	push	ecx
	mov	edi, eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj

; 218  : 	if (crystalObj)

	xor	ebp, ebp
	add	esp, 8
	cmp	edi, ebp
	mov	ebx, eax
	je	SHORT $LN2@Delete

; 219  : 		crystalObj->Set_Delete_Pending();

	mov	edx, DWORD PTR [edi+8]
	mov	eax, DWORD PTR [edx+44]
	lea	ecx, DWORD PTR [edi+8]
	call	eax
$LN2@Delete:

; 220  : 	if (boneObj)

	cmp	ebx, ebp
	je	SHORT $LN1@Delete

; 221  : 		boneObj->Set_Delete_Pending();

	mov	edx, DWORD PTR [ebx+8]
	mov	eax, DWORD PTR [edx+44]
	lea	ecx, DWORD PTR [ebx+8]
	call	eax
$LN1@Delete:

; 222  : 
; 223  : 	this->m_crystalId		= 0;
; 224  : 	this->m_crystalBoneId	= 0;
; 225  : 	this->m_state			= 0;
; 226  : 	this->m_dropCount		= 0;
; 227  : 	this->m_picker			= NULL;
; 228  : 	this->m_pickerWeapons.Clear();

	mov	edx, DWORD PTR [esi+84]
	mov	eax, DWORD PTR [edx+4]
	lea	ecx, DWORD PTR [esi+84]
	mov	DWORD PTR [esi+36], ebp
	mov	DWORD PTR [esi+40], ebp
	mov	DWORD PTR [esi+48], ebp
	mov	DWORD PTR [esi+52], ebp
	mov	DWORD PTR [esi+76], ebp
	call	eax
	pop	edi

; 229  : 	this->m_flag			= NULL;

	mov	DWORD PTR [esi+100], ebp
	pop	esi
	pop	ebp
	pop	ebx

; 230  : }

	ret	0
?Delete@gzTiberiumCrystal@@UAEXXZ ENDP			; gzTiberiumCrystal::Delete
_TEXT	ENDS
PUBLIC	?Level_Ended@gzTiberiumCrystal@@UAEXXZ		; gzTiberiumCrystal::Level_Ended
; Function compile flags: /Ogtpy
;	COMDAT ?Level_Ended@gzTiberiumCrystal@@UAEXXZ
_TEXT	SEGMENT
?Level_Ended@gzTiberiumCrystal@@UAEXXZ PROC		; gzTiberiumCrystal::Level_Ended, COMDAT
; _this$ = ecx

; 233  : 	this->SetDeletePending();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+12]
	jmp	edx
?Level_Ended@gzTiberiumCrystal@@UAEXXZ ENDP		; gzTiberiumCrystal::Level_Ended
_TEXT	ENDS
PUBLIC	?Player_Purchase@gzTiberiumCrystal@@UAEXAAVgzEventPlayerPurchase@@@Z ; gzTiberiumCrystal::Player_Purchase
; Function compile flags: /Ogtpy
;	COMDAT ?Player_Purchase@gzTiberiumCrystal@@UAEXAAVgzEventPlayerPurchase@@@Z
_TEXT	SEGMENT
_evt$ = 8						; size = 4
?Player_Purchase@gzTiberiumCrystal@@UAEXAAVgzEventPlayerPurchase@@@Z PROC ; gzTiberiumCrystal::Player_Purchase, COMDAT
; _this$ = ecx

; 342  : 	if (this->m_picker && evt.GetPlayer() == this->m_picker->GetPlayerData())

	mov	eax, DWORD PTR [ecx+76]
	test	eax, eax
	je	SHORT $LN10@Player_Pur
	mov	ecx, DWORD PTR _evt$[esp-4]
	mov	edx, DWORD PTR [ecx+24]
	cmp	edx, DWORD PTR [eax+76]
	jne	SHORT $LN10@Player_Pur

; 343  : 	{
; 344  : 		evt.m_retCode = 1;

	mov	DWORD PTR [ecx+48], 1

; 345  : 		evt.Skip();

	mov	BYTE PTR [ecx+52], 0
$LN10@Player_Pur:

; 346  : 	}
; 347  : }

	ret	4
?Player_Purchase@gzTiberiumCrystal@@UAEXAAVgzEventPlayerPurchase@@@Z ENDP ; gzTiberiumCrystal::Player_Purchase
_TEXT	ENDS
PUBLIC	?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ	; gzTiberiumCrystal::NotifyFlagDeletion
EXTRN	?Send_Object_Update@nc_cNetwork@@SAXPAVnc_NetworkObjectClass@@H@Z:PROC ; nc_cNetwork::Send_Object_Update
; Function compile flags: /Ogtpy
;	COMDAT ?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ
_TEXT	SEGMENT
?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ PROC	; gzTiberiumCrystal::NotifyFlagDeletion, COMDAT
; _this$ = ecx

; 536  : {

	push	esi
	mov	esi, ecx

; 537  : 	if (this->m_picker != NULL)

	cmp	DWORD PTR [esi+76], 0
	je	SHORT $LN1@NotifyFlag

; 538  : 	{
; 539  : 		this->m_flag->DeletePending = true;

	mov	eax, DWORD PTR [esi+100]
	mov	BYTE PTR [eax+1188], 1

; 540  : 		nc_cNetwork::Send_Object_Update(this->m_flag, this->m_picker->GetPlayerData()->PlayerId);

	mov	eax, DWORD PTR [esi+100]
	test	eax, eax
	je	SHORT $LN4@NotifyFlag
	add	eax, 8
	jmp	SHORT $LN5@NotifyFlag
$LN4@NotifyFlag:
	xor	eax, eax
$LN5@NotifyFlag:
	mov	ecx, DWORD PTR [esi+76]
	mov	edx, DWORD PTR [ecx+76]
	mov	ecx, DWORD PTR [edx+1884]
	push	ecx
	push	eax
	call	?Send_Object_Update@nc_cNetwork@@SAXPAVnc_NetworkObjectClass@@H@Z ; nc_cNetwork::Send_Object_Update

; 541  : 		this->m_flag->DeletePending = false;

	mov	edx, DWORD PTR [esi+100]
	mov	BYTE PTR [edx+1188], 0

; 542  : 		this->m_flag->Set_Object_Dirty_Bit(this->m_picker->GetPlayerData()->PlayerId, nc_DB_CREATION, false);

	mov	eax, DWORD PTR [esi+100]
	mov	edx, DWORD PTR [esi+76]
	mov	edx, DWORD PTR [edx+76]
	mov	edx, DWORD PTR [edx+1884]
	add	esp, 8
	lea	ecx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+52]
	push	0
	push	15					; 0000000fH
	push	edx
	call	eax
$LN1@NotifyFlag:
	pop	esi

; 543  : 	}
; 544  : }

	ret	0
?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ ENDP	; gzTiberiumCrystal::NotifyFlagDeletion
_TEXT	ENDS
PUBLIC	?GetCrystalId@gzTiberiumCrystal@@QAEIXZ		; gzTiberiumCrystal::GetCrystalId
; Function compile flags: /Ogtpy
;	COMDAT ?GetCrystalId@gzTiberiumCrystal@@QAEIXZ
_TEXT	SEGMENT
?GetCrystalId@gzTiberiumCrystal@@QAEIXZ PROC		; gzTiberiumCrystal::GetCrystalId, COMDAT
; _this$ = ecx

; 547  : 	return this->m_crystalId;

	mov	eax, DWORD PTR [ecx+36]

; 548  : }

	ret	0
?GetCrystalId@gzTiberiumCrystal@@QAEIXZ ENDP		; gzTiberiumCrystal::GetCrystalId
_TEXT	ENDS
PUBLIC	?SetCrystalId@gzTiberiumCrystal@@QAEXI@Z	; gzTiberiumCrystal::SetCrystalId
; Function compile flags: /Ogtpy
;	COMDAT ?SetCrystalId@gzTiberiumCrystal@@QAEXI@Z
_TEXT	SEGMENT
_id$ = 8						; size = 4
?SetCrystalId@gzTiberiumCrystal@@QAEXI@Z PROC		; gzTiberiumCrystal::SetCrystalId, COMDAT
; _this$ = ecx

; 551  : 	this->m_crystalId = id;

	mov	eax, DWORD PTR _id$[esp-4]
	mov	DWORD PTR [ecx+36], eax

; 552  : }

	ret	4
?SetCrystalId@gzTiberiumCrystal@@QAEXI@Z ENDP		; gzTiberiumCrystal::SetCrystalId
_TEXT	ENDS
PUBLIC	?GetCrystalBoneId@gzTiberiumCrystal@@QAEIXZ	; gzTiberiumCrystal::GetCrystalBoneId
; Function compile flags: /Ogtpy
;	COMDAT ?GetCrystalBoneId@gzTiberiumCrystal@@QAEIXZ
_TEXT	SEGMENT
?GetCrystalBoneId@gzTiberiumCrystal@@QAEIXZ PROC	; gzTiberiumCrystal::GetCrystalBoneId, COMDAT
; _this$ = ecx

; 555  : 	return this->m_crystalBoneId;

	mov	eax, DWORD PTR [ecx+40]

; 556  : }

	ret	0
?GetCrystalBoneId@gzTiberiumCrystal@@QAEIXZ ENDP	; gzTiberiumCrystal::GetCrystalBoneId
_TEXT	ENDS
PUBLIC	?SetCrystalBoneId@gzTiberiumCrystal@@QAEXI@Z	; gzTiberiumCrystal::SetCrystalBoneId
; Function compile flags: /Ogtpy
;	COMDAT ?SetCrystalBoneId@gzTiberiumCrystal@@QAEXI@Z
_TEXT	SEGMENT
_id$ = 8						; size = 4
?SetCrystalBoneId@gzTiberiumCrystal@@QAEXI@Z PROC	; gzTiberiumCrystal::SetCrystalBoneId, COMDAT
; _this$ = ecx

; 559  : 	this->m_crystalBoneId = id;

	mov	eax, DWORD PTR _id$[esp-4]
	mov	DWORD PTR [ecx+40], eax

; 560  : }

	ret	4
?SetCrystalBoneId@gzTiberiumCrystal@@QAEXI@Z ENDP	; gzTiberiumCrystal::SetCrystalBoneId
_TEXT	ENDS
PUBLIC	?GetPosId@gzTiberiumCrystal@@QAEHXZ		; gzTiberiumCrystal::GetPosId
; Function compile flags: /Ogtpy
;	COMDAT ?GetPosId@gzTiberiumCrystal@@QAEHXZ
_TEXT	SEGMENT
?GetPosId@gzTiberiumCrystal@@QAEHXZ PROC		; gzTiberiumCrystal::GetPosId, COMDAT
; _this$ = ecx

; 563  : 	return this->m_posId;

	mov	eax, DWORD PTR [ecx+44]

; 564  : }

	ret	0
?GetPosId@gzTiberiumCrystal@@QAEHXZ ENDP		; gzTiberiumCrystal::GetPosId
_TEXT	ENDS
PUBLIC	?SetPosId@gzTiberiumCrystal@@QAEXH@Z		; gzTiberiumCrystal::SetPosId
; Function compile flags: /Ogtpy
;	COMDAT ?SetPosId@gzTiberiumCrystal@@QAEXH@Z
_TEXT	SEGMENT
_id$ = 8						; size = 4
?SetPosId@gzTiberiumCrystal@@QAEXH@Z PROC		; gzTiberiumCrystal::SetPosId, COMDAT
; _this$ = ecx

; 567  : 	this->m_posId = id;

	mov	eax, DWORD PTR _id$[esp-4]
	mov	DWORD PTR [ecx+44], eax

; 568  : }

	ret	4
?SetPosId@gzTiberiumCrystal@@QAEXH@Z ENDP		; gzTiberiumCrystal::SetPosId
_TEXT	ENDS
PUBLIC	?SetLiveTime@gzTiberiumCrystal@@QAEXM@Z		; gzTiberiumCrystal::SetLiveTime
; Function compile flags: /Ogtpy
;	COMDAT ?SetLiveTime@gzTiberiumCrystal@@QAEXM@Z
_TEXT	SEGMENT
_secs$ = 8						; size = 4
?SetLiveTime@gzTiberiumCrystal@@QAEXM@Z PROC		; gzTiberiumCrystal::SetLiveTime, COMDAT
; _this$ = ecx

; 571  : 	this->m_liveCounter = secs;

	fld	DWORD PTR _secs$[esp-4]
	fstp	DWORD PTR [ecx+64]

; 572  : }

	ret	4
?SetLiveTime@gzTiberiumCrystal@@QAEXM@Z ENDP		; gzTiberiumCrystal::SetLiveTime
_TEXT	ENDS
PUBLIC	?GetPicker@gzTiberiumCrystal@@QAEPAVgzPlayer@@XZ ; gzTiberiumCrystal::GetPicker
; Function compile flags: /Ogtpy
;	COMDAT ?GetPicker@gzTiberiumCrystal@@QAEPAVgzPlayer@@XZ
_TEXT	SEGMENT
?GetPicker@gzTiberiumCrystal@@QAEPAVgzPlayer@@XZ PROC	; gzTiberiumCrystal::GetPicker, COMDAT
; _this$ = ecx

; 575  : 	return this->m_picker;

	mov	eax, DWORD PTR [ecx+76]

; 576  : }

	ret	0
?GetPicker@gzTiberiumCrystal@@QAEPAVgzPlayer@@XZ ENDP	; gzTiberiumCrystal::GetPicker
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@ ; `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 (x86)\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@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@
CONST	SEGMENT
??_C@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@ DB 'C:\Pr'
	DB	'ogram Files (x86)\Microsoft Visual Studio 8\VC\include\xdebug'
	DB	00H						; `string'
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T66082 = -12						; size = 12
_this$ = 8						; size = 4
$T66088 = 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@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@
	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 $T66088[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T66082[esp+20]
	mov	DWORD PTR $T66088[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T66082[esp+20]
	push	ecx
	mov	DWORD PTR $T66082[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
$T66094 = -12						; size = 12
$T66099 = 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@_0ED@MOJMIMJH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsoft@
	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 $T66099[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T66094[esp+20]
	mov	DWORD PTR $T66099[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T66094[esp+20]
	push	ecx
	mov	DWORD PTR $T66094[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?$aVector@PAVaStringData@@@@6B@		; aVector<aStringData *>::`vftable'
PUBLIC	??0?$aVector@PAVaStringData@@@@QAE@XZ		; aVector<aStringData *>::aVector<aStringData *>
PUBLIC	??_R4?$aVector@PAVaStringData@@@@6B@		; aVector<aStringData *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@PAVaStringData@@@@@8		; aVector<aStringData *> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@PAVaStringData@@@@8		; aVector<aStringData *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@PAVaStringData@@@@8		; aVector<aStringData *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@PAVaStringData@@@@8	; aVector<aStringData *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$aVector@PAVaStringData@@@@UAEXXZ	; aVector<aStringData *>::Clear
PUBLIC	?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z	; aVector<aStringData *>::Resize
PUBLIC	?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z ; aVector<aStringData *>::Add
PUBLIC	?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z ; aVector<aStringData *>::Insert
PUBLIC	?Delete@?$aVector@PAVaStringData@@@@UAEXI@Z	; aVector<aStringData *>::Delete
EXTRN	??_E?$aVector@PAVaStringData@@@@UAEPAXI@Z:PROC	; aVector<aStringData *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@PAVaStringData@@@@8
; File d:\source code\alib\include\avector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@PAVaStringData@@@@8 DD FLAT:??_R0?AV?$aVector@PAVaStringData@@@@@8 ; aVector<aStringData *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@PAVaStringData@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@PAVaStringData@@@@8
rdata$r	SEGMENT
??_R2?$aVector@PAVaStringData@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@PAVaStringData@@@@8 ; aVector<aStringData *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@PAVaStringData@@@@8
rdata$r	SEGMENT
??_R3?$aVector@PAVaStringData@@@@8 DD 00H		; aVector<aStringData *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@PAVaStringData@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@PAVaStringData@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@PAVaStringData@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<aStringData *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@PAVaStringData@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@PAVaStringData@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@PAVaStringData@@@@6B@ DD 00H		; aVector<aStringData *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@PAVaStringData@@@@@8
	DD	FLAT:??_R3?$aVector@PAVaStringData@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@PAVaStringData@@@@6B@
CONST	SEGMENT
??_7?$aVector@PAVaStringData@@@@6B@ DD FLAT:??_R4?$aVector@PAVaStringData@@@@6B@ ; aVector<aStringData *>::`vftable'
	DD	FLAT:??_E?$aVector@PAVaStringData@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@PAVaStringData@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z
	DD	FLAT:?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z
	DD	FLAT:?Delete@?$aVector@PAVaStringData@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aVector@PAVaStringData@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aVector@PAVaStringData@@@@QAE@XZ PROC		; aVector<aStringData *>::aVector<aStringData *>, COMDAT
; _this$ = ecx

; 27   : 	aVector()

	mov	eax, ecx

; 28   : 	{
; 29   : 		this->m_vector = NULL;

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@PAVaStringData@@@@6B@
	mov	DWORD PTR [eax+4], ecx

; 30   : 		this->m_alloc  = 0;

	mov	DWORD PTR [eax+8], ecx

; 31   : 		this->m_items  = 0;

	mov	DWORD PTR [eax+12], ecx

; 32   : 	};

	ret	0
??0?$aVector@PAVaStringData@@@@QAE@XZ ENDP		; aVector<aStringData *>::aVector<aStringData *>
_TEXT	ENDS
PUBLIC	?Count@?$aVector@PAVaStringData@@@@QBEIXZ	; aVector<aStringData *>::Count
; Function compile flags: /Ogtpy
;	COMDAT ?Count@?$aVector@PAVaStringData@@@@QBEIXZ
_TEXT	SEGMENT
?Count@?$aVector@PAVaStringData@@@@QBEIXZ PROC		; aVector<aStringData *>::Count, COMDAT
; _this$ = ecx

; 65   : 	inline unsigned int Count() const { return this->m_items; };

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@PAVaStringData@@@@QBEIXZ ENDP		; aVector<aStringData *>::Count
_TEXT	ENDS
PUBLIC	??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@ ; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
;	COMDAT ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
CONST	SEGMENT
??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@ DB 'D:\Source '
	DB	'Code\aLib\include\aVector.h', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Clear@?$aVector@PAVaStringData@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@PAVaStringData@@@@UAEXXZ PROC		; aVector<aStringData *>::Clear, COMDAT
; _this$ = ecx

; 67   : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 68   : 		if (this->m_vector != NULL)

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	je	SHORT $LN6@Clear

; 69   : 		{
; 70   : //#if (VECTOR_USE_CRT == 1)
; 71   : //			free(this->m_vector);
; 72   : //#else
; 73   : 			delete[] this->m_vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 74   : //#endif
; 75   : 			this->m_vector = NULL;

	mov	DWORD PTR [esi+4], edi
$LN6@Clear:

; 76   : 		}
; 77   : 		this->m_alloc = 0;
; 78   : 		this->m_items = 0;

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

; 79   : 	};

	ret	0
?Clear@?$aVector@PAVaStringData@@@@UAEXXZ ENDP		; aVector<aStringData *>::Clear
_TEXT	ENDS
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	_memcpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z PROC	; aVector<aStringData *>::Resize, COMDAT
; _this$ = ecx

; 81   : 	{

	push	esi
	push	edi

; 82   : 		if (this->m_alloc != nSize)

	mov	edi, DWORD PTR _nSize$[esp+4]
	mov	esi, ecx
	cmp	DWORD PTR [esi+8], edi
	je	SHORT $LN11@Resize

; 83   : 		{
; 84   : 			if (nSize > 0)

	test	edi, edi
	jbe	SHORT $LN3@Resize
	push	ebx

; 85   : 			{
; 86   : 
; 87   : //#if (VECTOR_USE_CRT == 1)
; 88   : //				this->m_vector = (T *)realloc(this->m_vector, nSize * sizeof(T));
; 89   : //#else
; 90   : 				T* newVec = new T[nSize];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	90					; 0000005aH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, edi
	mov	edx, 4
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 91   : 				if (this->m_vector != NULL)

	mov	eax, DWORD PTR [esi+4]
	add	esp, 16					; 00000010H
	test	eax, eax
	je	SHORT $LN10@Resize

; 92   : 				{
; 93   : 					memcpy(newVec, this->m_vector, nSize * sizeof(T));

	lea	ecx, DWORD PTR [edi*4]
	push	ecx
	push	eax
	push	ebx
	call	_memcpy

; 94   : 					delete[] this->m_vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	94					; 0000005eH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [esi+4]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH
$LN10@Resize:

; 95   : 				}
; 96   : 				this->m_vector = newVec;

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

; 97   : //#endif
; 98   : 
; 99   : 				this->m_alloc = nSize;

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
$LN3@Resize:

; 100  : 			}
; 101  : 			else
; 102  : 				this->Clear();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	call	edx
$LN11@Resize:
	pop	edi

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z ENDP	; aVector<aStringData *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z PROC ; aVector<aStringData *>::Add, COMDAT
; _this$ = ecx

; 107  : 	{

	push	esi
	mov	esi, ecx

; 108  : 		if (this->Resize(this->m_items + 1))

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	add	ecx, 1
	push	ecx
	mov	ecx, esi
	call	edx
	test	al, al
	je	SHORT $LN1@Add

; 109  : 			this->m_vector[this->m_items++] = obj;

	mov	edx, DWORD PTR _obj$[esp]
	mov	eax, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [edx]
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR [ecx+eax*4], edx
	add	DWORD PTR [esi+12], 1
$LN1@Add:
	pop	esi

; 110  : 	}

	ret	4
?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z ENDP ; aVector<aStringData *>::Add
_TEXT	ENDS
EXTRN	_memmove:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z PROC ; aVector<aStringData *>::Insert, COMDAT
; _this$ = ecx

; 112  : 	{

	push	esi
	mov	esi, ecx

; 113  : 		if (index > this->m_items)

	mov	eax, DWORD PTR [esi+12]
	push	edi
	mov	edi, DWORD PTR _index$[esp+4]
	cmp	edi, eax
	jbe	SHORT $LN3@Insert

; 114  : 			this->Add(obj);

	mov	ecx, DWORD PTR _obj$[esp+4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+12]
	push	ecx
	mov	ecx, esi
	call	edx
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
$LN3@Insert:

; 115  : 		else if (this->Resize(this->m_items + 1))

	mov	edx, DWORD PTR [esi]
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR [edx+8]
	call	eax
	test	al, al
	je	SHORT $LN1@Insert

; 116  : 		{
; 117  : 			memmove(&this->m_vector[index + 1], &this->m_vector[index], (this->m_items++ - index) * sizeof(T));

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, ecx
	add	ecx, 1
	sub	eax, edi
	mov	DWORD PTR [esi+12], ecx
	mov	ecx, DWORD PTR [esi+4]
	add	eax, eax
	add	eax, eax
	lea	ecx, DWORD PTR [ecx+edi*4]
	push	eax
	push	ecx
	add	ecx, 4
	push	ecx
	call	_memmove

; 118  : 			this->m_vector[index] = obj;

	mov	eax, DWORD PTR _obj$[esp+16]
	mov	edx, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax]
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [edx+edi*4], ecx
$LN1@Insert:
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z ENDP ; aVector<aStringData *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@PAVaStringData@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@PAVaStringData@@@@UAEXI@Z PROC	; aVector<aStringData *>::Delete, COMDAT
; _this$ = ecx

; 123  : 		if (index >= this->m_items)

	mov	edx, DWORD PTR _index$[esp-4]
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+12]
	cmp	edx, eax
	jae	SHORT $LN2@Delete@2

; 124  : 			return;
; 125  : 		if (--this->m_items == 0)

	add	eax, -1
	mov	DWORD PTR [esi+12], eax
	jne	SHORT $LN3@Delete@2

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@2:

; 127  : 		else
; 128  : 		{
; 129  : 			if (index < this->m_items)

	cmp	edx, eax
	jae	SHORT $LN1@Delete@2

; 130  : 				memmove(&this->m_vector[index], &this->m_vector[index + 1], (this->m_items - index) * sizeof(T));

	mov	ecx, DWORD PTR [esi+4]
	sub	eax, edx
	add	eax, eax
	lea	ecx, DWORD PTR [ecx+edx*4]
	add	eax, eax
	push	eax
	lea	edx, DWORD PTR [ecx+4]
	push	edx
	push	ecx
	call	_memmove
	add	esp, 12					; 0000000cH
$LN1@Delete@2:

; 131  : 			this->Resize(this->m_items);

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	push	ecx
	mov	ecx, esi
	call	edx
$LN2@Delete@2:
	pop	esi

; 132  : 		}
; 133  : 	}

	ret	4
?Delete@?$aVector@PAVaStringData@@@@UAEXI@Z ENDP	; aVector<aStringData *>::Delete
_TEXT	ENDS
PUBLIC	?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ	; aStringArrayBase<aString>::Clear
EXTRN	?DecRef@aStringData@@QAEXXZ:PROC		; aStringData::DecRef
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\astring.h
;	COMDAT ?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ PROC	; aStringArrayBase<aString>::Clear, COMDAT
; _this$ = ecx

; 80   : 	{

	push	ebx
	push	esi
	push	edi
	mov	esi, ecx

; 81   : 		for (unsigned int i = 0; i < this->m_items; i++)

	xor	ebx, ebx
	xor	edi, edi
	cmp	DWORD PTR [esi+12], ebx
	jbe	SHORT $LN1@Clear@2
	npad	2
$LL3@Clear@2:

; 82   : 			this->m_vector[i]->DecRef();

	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax+edi*4]
	call	?DecRef@aStringData@@QAEXXZ		; aStringData::DecRef
	add	edi, 1
	cmp	edi, DWORD PTR [esi+12]
	jb	SHORT $LL3@Clear@2
$LN1@Clear@2:

; 83   : 		this->aVector<aStringData *>::Clear();

	cmp	DWORD PTR [esi+4], ebx
	je	SHORT $LN13@Clear@2
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+4]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], ebx
$LN13@Clear@2:
	pop	edi
	mov	DWORD PTR [esi+12], ebx
	mov	DWORD PTR [esi+8], ebx
	pop	esi
	pop	ebx

; 84   : 	};

	ret	0
?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ ENDP	; aStringArrayBase<aString>::Clear
_TEXT	ENDS
PUBLIC	??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z ; aStringArrayBase<aString>::operator[]
EXTRN	?SetData@aStringBase@@QAEXPAVaStringData@@@Z:PROC ; aStringBase::SetData
EXTRN	??0aString@@QAE@XZ:PROC				; aString::aString
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z$0
__ehfuncinfo$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z
_TEXT	SEGMENT
$T66155 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_pos$ = 12						; size = 4
??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z PROC ; aStringArrayBase<aString>::operator[], COMDAT
; _this$ = ecx

; 86   : 	{

	push	-1
	push	__ehhandler$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	DWORD PTR $T66155[esp+20], 0

; 87   : 		T ret;

	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	push	edi
	mov	edi, ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	??0aString@@QAE@XZ			; aString::aString

; 88   : 		ret.SetData(this->m_vector[pos]);
; 89   : 		return ret;

	mov	eax, DWORD PTR [edi+4]
	mov	ecx, DWORD PTR _pos$[esp+20]
	mov	edx, DWORD PTR [eax+ecx*4]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+36], 0
	mov	DWORD PTR $T66155[esp+28], 1
	call	?SetData@aStringBase@@QAEXPAVaStringData@@@Z ; aStringBase::SetData

; 90   : 	};

	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	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z$0:
	mov	eax, DWORD PTR $T66155[ebp]
	and	eax, 1
	je	$LN4@operator@2
	and	DWORD PTR $T66155[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1aString@@UAE@XZ
$LN4@operator@2:
	ret	0
__ehhandler$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z:
	mov	eax, OFFSET __ehfuncinfo$??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z ENDP ; aStringArrayBase<aString>::operator[]
PUBLIC	?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z ; aStringArrayBase<aString>::Add
EXTRN	?IncRef@aStringData@@QAEXXZ:PROC		; aStringData::IncRef
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z$0
__ehfuncinfo$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
_content$ = 8						; size = 8
?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z PROC ; aStringArrayBase<aString>::Add, COMDAT
; _this$ = ecx

; 92   : 	{

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	push	esi
	push	edi
	mov	esi, ecx

; 93   : 		content.GetData()->IncRef();

	mov	ecx, DWORD PTR _content$[esp+20]
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	?IncRef@aStringData@@QAEXXZ		; aStringData::IncRef

; 94   : 		this->aVector<aStringData *>::Add(content.GetData());

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	mov	edi, DWORD PTR _content$[esp+20]
	add	ecx, 1
	push	ecx
	mov	ecx, esi
	call	edx
	test	al, al
	je	SHORT $LN8@Add@2
	mov	eax, DWORD PTR [esi+12]
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR [ecx+eax*4], edi
	add	DWORD PTR [esi+12], 1
$LN8@Add@2:

; 95   : 	};

	lea	ecx, DWORD PTR _content$[esp+16]
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	pop	esi
	add	esp, 12					; 0000000cH
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z$0:
	lea	ecx, DWORD PTR _content$[ebp-4]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z:
	mov	eax, OFFSET __ehfuncinfo$?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z ENDP ; aStringArrayBase<aString>::Add
PUBLIC	?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ ; nc_DynamicVectorClass<nc_WeaponClass *>::Count
; Function compile flags: /Ogtpy
; File d:\source code\fds lib\new\fds_vector.h
;	COMDAT ?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ
_TEXT	SEGMENT
?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ PROC ; nc_DynamicVectorClass<nc_WeaponClass *>::Count, COMDAT
; _this$ = ecx

; 375  : 		return ActiveCount;

	mov	eax, DWORD PTR [ecx+16]

; 376  : 	}

	ret	0
?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ ENDP ; nc_DynamicVectorClass<nc_WeaponClass *>::Count
_TEXT	ENDS
PUBLIC	??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z ; nc_VectorClass<nc_WeaponClass *>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z PROC ; nc_VectorClass<nc_WeaponClass *>::operator[], COMDAT
; _this$ = ecx

; 341  : 		return Vector[index];

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

; 342  : 	}

	ret	4
??A?$nc_VectorClass@PAVnc_WeaponClass@@@@QAEAAPAVnc_WeaponClass@@H@Z ENDP ; nc_VectorClass<nc_WeaponClass *>::operator[]
_TEXT	ENDS
PUBLIC	??_7?$aVector@Unc_Vector3@@@@6B@		; aVector<nc_Vector3>::`vftable'
PUBLIC	??0?$aVector@Unc_Vector3@@@@QAE@XZ		; aVector<nc_Vector3>::aVector<nc_Vector3>
PUBLIC	??_R4?$aVector@Unc_Vector3@@@@6B@		; aVector<nc_Vector3>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@Unc_Vector3@@@@@8		; aVector<nc_Vector3> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@Unc_Vector3@@@@8			; aVector<nc_Vector3>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@Unc_Vector3@@@@8			; aVector<nc_Vector3>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@Unc_Vector3@@@@8	; aVector<nc_Vector3>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$aVector@Unc_Vector3@@@@UAEXXZ		; aVector<nc_Vector3>::Clear
PUBLIC	?Resize@?$aVector@Unc_Vector3@@@@UAE_NI@Z	; aVector<nc_Vector3>::Resize
PUBLIC	?Add@?$aVector@Unc_Vector3@@@@UAEXABUnc_Vector3@@@Z ; aVector<nc_Vector3>::Add
PUBLIC	?Insert@?$aVector@Unc_Vector3@@@@UAEXIABUnc_Vector3@@@Z ; aVector<nc_Vector3>::Insert
PUBLIC	?Delete@?$aVector@Unc_Vector3@@@@UAEXI@Z	; aVector<nc_Vector3>::Delete
EXTRN	??_E?$aVector@Unc_Vector3@@@@UAEPAXI@Z:PROC	; aVector<nc_Vector3>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@Unc_Vector3@@@@8
; File d:\source code\alib\include\avector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@Unc_Vector3@@@@8 DD FLAT:??_R0?AV?$aVector@Unc_Vector3@@@@@8 ; aVector<nc_Vector3>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@Unc_Vector3@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@Unc_Vector3@@@@8
rdata$r	SEGMENT
??_R2?$aVector@Unc_Vector3@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@Unc_Vector3@@@@8 ; aVector<nc_Vector3>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@Unc_Vector3@@@@8
rdata$r	SEGMENT
??_R3?$aVector@Unc_Vector3@@@@8 DD 00H			; aVector<nc_Vector3>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@Unc_Vector3@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@Unc_Vector3@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@Unc_Vector3@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<nc_Vector3> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@Unc_Vector3@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@Unc_Vector3@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@Unc_Vector3@@@@6B@ DD 00H		; aVector<nc_Vector3>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@Unc_Vector3@@@@@8
	DD	FLAT:??_R3?$aVector@Unc_Vector3@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@Unc_Vector3@@@@6B@
CONST	SEGMENT
??_7?$aVector@Unc_Vector3@@@@6B@ DD FLAT:??_R4?$aVector@Unc_Vector3@@@@6B@ ; aVector<nc_Vector3>::`vftable'
	DD	FLAT:??_E?$aVector@Unc_Vector3@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@Unc_Vector3@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@Unc_Vector3@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@Unc_Vector3@@@@UAEXABUnc_Vector3@@@Z
	DD	FLAT:?Insert@?$aVector@Unc_Vector3@@@@UAEXIABUnc_Vector3@@@Z
	DD	FLAT:?Delete@?$aVector@Unc_Vector3@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aVector@Unc_Vector3@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aVector@Unc_Vector3@@@@QAE@XZ PROC			; aVector<nc_Vector3>::aVector<nc_Vector3>, COMDAT
; _this$ = ecx

; 27   : 	aVector()

	mov	eax, ecx

; 28   : 	{
; 29   : 		this->m_vector = NULL;

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@Unc_Vector3@@@@6B@
	mov	DWORD PTR [eax+4], ecx

; 30   : 		this->m_alloc  = 0;

	mov	DWORD PTR [eax+8], ecx

; 31   : 		this->m_items  = 0;

	mov	DWORD PTR [eax+12], ecx

; 32   : 	};

	ret	0
??0?$aVector@Unc_Vector3@@@@QAE@XZ ENDP			; aVector<nc_Vector3>::aVector<nc_Vector3>
_TEXT	ENDS
PUBLIC	??A?$aVector@Unc_Vector3@@@@QAEAAUnc_Vector3@@I@Z ; aVector<nc_Vector3>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$aVector@Unc_Vector3@@@@QAEAAUnc_Vector3@@I@Z
_TEXT	SEGMENT
_nPos$ = 8						; size = 4
??A?$aVector@Unc_Vector3@@@@QAEAAUnc_Vector3@@I@Z PROC	; aVector<nc_Vector3>::operator[], COMDAT
; _this$ = ecx

; 64   : 	T& operator[](unsigned int nPos) { return this->m_vector[nPos]; };

	mov	eax, DWORD PTR _nPos$[esp-4]
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	eax, DWORD PTR [ecx+eax*4]
	ret	4
??A?$aVector@Unc_Vector3@@@@QAEAAUnc_Vector3@@I@Z ENDP	; aVector<nc_Vector3>::operator[]
_TEXT	ENDS
PUBLIC	?Count@?$aVector@Unc_Vector3@@@@QBEIXZ		; aVector<nc_Vector3>::Count
; Function compile flags: /Ogtpy
;	COMDAT ?Count@?$aVector@Unc_Vector3@@@@QBEIXZ
_TEXT	SEGMENT
?Count@?$aVector@Unc_Vector3@@@@QBEIXZ PROC		; aVector<nc_Vector3>::Count, COMDAT
; _this$ = ecx

; 65   : 	inline unsigned int Count() const { return this->m_items; };

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@Unc_Vector3@@@@QBEIXZ ENDP		; aVector<nc_Vector3>::Count
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Clear@?$aVector@Unc_Vector3@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@Unc_Vector3@@@@UAEXXZ PROC		; aVector<nc_Vector3>::Clear, COMDAT
; _this$ = ecx

; 67   : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 68   : 		if (this->m_vector != NULL)

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	je	SHORT $LN6@Clear@3

; 69   : 		{
; 70   : //#if (VECTOR_USE_CRT == 1)
; 71   : //			free(this->m_vector);
; 72   : //#else
; 73   : 			delete[] this->m_vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 74   : //#endif
; 75   : 			this->m_vector = NULL;

	mov	DWORD PTR [esi+4], edi
$LN6@Clear@3:

; 76   : 		}
; 77   : 		this->m_alloc = 0;
; 78   : 		this->m_items = 0;

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

; 79   : 	};

	ret	0
?Clear@?$aVector@Unc_Vector3@@@@UAEXXZ ENDP		; aVector<nc_Vector3>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Resize@?$aVector@Unc_Vector3@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@Unc_Vector3@@@@UAE_NI@Z PROC		; aVector<nc_Vector3>::Resize, COMDAT
; _this$ = ecx

; 81   : 	{

	push	esi

; 82   : 		if (this->m_alloc != nSize)

	mov	esi, DWORD PTR _nSize$[esp]
	push	edi
	mov	edi, ecx
	cmp	DWORD PTR [edi+8], esi
	je	SHORT $LN11@Resize@2

; 83   : 		{
; 84   : 			if (nSize > 0)

	test	esi, esi
	jbe	SHORT $LN3@Resize@2
	push	ebx

; 85   : 			{
; 86   : 
; 87   : //#if (VECTOR_USE_CRT == 1)
; 88   : //				this->m_vector = (T *)realloc(this->m_vector, nSize * sizeof(T));
; 89   : //#else
; 90   : 				T* newVec = new T[nSize];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	90					; 0000005aH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, esi
	mov	edx, 12					; 0000000cH
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 91   : 				if (this->m_vector != NULL)

	mov	eax, DWORD PTR [edi+4]
	add	esp, 16					; 00000010H
	test	eax, eax
	je	SHORT $LN10@Resize@2

; 92   : 				{
; 93   : 					memcpy(newVec, this->m_vector, nSize * sizeof(T));

	lea	ecx, DWORD PTR [esi+esi*2]
	add	ecx, ecx
	add	ecx, ecx
	push	ecx
	push	eax
	push	ebx
	call	_memcpy

; 94   : 					delete[] this->m_vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	94					; 0000005eH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [edi+4]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH
$LN10@Resize@2:

; 95   : 				}
; 96   : 				this->m_vector = newVec;

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

; 97   : //#endif
; 98   : 
; 99   : 				this->m_alloc = nSize;

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
$LN3@Resize@2:

; 100  : 			}
; 101  : 			else
; 102  : 				this->Clear();

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	call	edx
$LN11@Resize@2:
	pop	edi

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
?Resize@?$aVector@Unc_Vector3@@@@UAE_NI@Z ENDP		; aVector<nc_Vector3>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@Unc_Vector3@@@@UAEXABUnc_Vector3@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@Unc_Vector3@@@@UAEXABUnc_Vector3@@@Z PROC ; aVector<nc_Vector3>::Add, COMDAT
; _this$ = ecx

; 107  : 	{

	push	esi
	mov	esi, ecx

; 108  : 		if (this->Resize(this->m_items + 1))

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	add	ecx, 1
	push	ecx
	mov	ecx, esi
	call	edx
	test	al, al
	je	SHORT $LN1@Add@3

; 109  : 			this->m_vector[this->m_items++] = obj;

	mov	eax, DWORD PTR [esi+12]
	mov	ecx, DWORD PTR [esi+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	eax, DWORD PTR [ecx+eax*4]
	mov	ecx, DWORD PTR _obj$[esp]
	mov	edx, DWORD PTR [ecx]
	mov	DWORD PTR [eax], edx
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax+4], edx
	mov	ecx, DWORD PTR [ecx+8]
	mov	DWORD PTR [eax+8], ecx
	add	DWORD PTR [esi+12], 1
$LN1@Add@3:
	pop	esi

; 110  : 	}

	ret	4
?Add@?$aVector@Unc_Vector3@@@@UAEXABUnc_Vector3@@@Z ENDP ; aVector<nc_Vector3>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@Unc_Vector3@@@@UAEXIABUnc_Vector3@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@Unc_Vector3@@@@UAEXIABUnc_Vector3@@@Z PROC ; aVector<nc_Vector3>::Insert, COMDAT
; _this$ = ecx

; 112  : 	{

	push	esi
	mov	esi, ecx

; 113  : 		if (index > this->m_items)

	mov	eax, DWORD PTR [esi+12]
	push	edi
	mov	edi, DWORD PTR _index$[esp+4]
	cmp	edi, eax
	jbe	SHORT $LN3@Insert@2

; 114  : 			this->Add(obj);

	mov	ecx, DWORD PTR _obj$[esp+4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+12]
	push	ecx
	mov	ecx, esi
	call	edx
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
$LN3@Insert@2:

; 115  : 		else if (this->Resize(this->m_items + 1))

	mov	edx, DWORD PTR [esi]
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR [edx+8]
	call	eax
	test	al, al
	je	SHORT $LN1@Insert@2

; 116  : 		{
; 117  : 			memmove(&this->m_vector[index + 1], &this->m_vector[index], (this->m_items++ - index) * sizeof(T));

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, ecx
	sub	eax, edi
	add	ecx, 1
	lea	eax, DWORD PTR [eax+eax*2]
	lea	edi, DWORD PTR [edi+edi*2]
	mov	DWORD PTR [esi+12], ecx
	mov	ecx, DWORD PTR [esi+4]
	add	eax, eax
	add	edi, edi
	add	eax, eax
	add	edi, edi
	add	ecx, edi
	push	eax
	push	ecx
	add	ecx, 12					; 0000000cH
	push	ecx
	call	_memmove

; 118  : 			this->m_vector[index] = obj;

	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR _obj$[esp+16]
	mov	edx, DWORD PTR [ecx]
	add	esp, 12					; 0000000cH
	add	eax, edi
	mov	DWORD PTR [eax], edx
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax+4], edx
	mov	ecx, DWORD PTR [ecx+8]
	mov	DWORD PTR [eax+8], ecx
$LN1@Insert@2:
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@Unc_Vector3@@@@UAEXIABUnc_Vector3@@@Z ENDP ; aVector<nc_Vector3>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@Unc_Vector3@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@Unc_Vector3@@@@UAEXI@Z PROC		; aVector<nc_Vector3>::Delete, COMDAT
; _this$ = ecx

; 122  : 	{

	push	esi
	mov	esi, ecx

; 123  : 		if (index >= this->m_items)

	mov	eax, DWORD PTR [esi+12]
	mov	ecx, DWORD PTR _index$[esp]
	cmp	ecx, eax
	jae	SHORT $LN2@Delete@3

; 124  : 			return;
; 125  : 		if (--this->m_items == 0)

	add	eax, -1
	mov	DWORD PTR [esi+12], eax
	jne	SHORT $LN3@Delete@3

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@3:

; 127  : 		else
; 128  : 		{
; 129  : 			if (index < this->m_items)

	cmp	ecx, eax
	jae	SHORT $LN1@Delete@3

; 130  : 				memmove(&this->m_vector[index], &this->m_vector[index + 1], (this->m_items - index) * sizeof(T));

	sub	eax, ecx
	push	edi
	mov	edi, DWORD PTR [esi+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	edx, DWORD PTR [ecx+ecx*2]
	add	eax, eax
	lea	edx, DWORD PTR [edi+edx*4]
	add	eax, eax
	push	eax
	lea	ecx, DWORD PTR [edx+12]
	push	ecx
	push	edx
	call	_memmove
	add	esp, 12					; 0000000cH
	pop	edi
$LN1@Delete@3:

; 131  : 			this->Resize(this->m_items);

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [edx+8]
	push	eax
	mov	ecx, esi
	call	edx
$LN2@Delete@3:
	pop	esi

; 132  : 		}
; 133  : 	}

	ret	4
?Delete@?$aVector@Unc_Vector3@@@@UAEXI@Z ENDP		; aVector<nc_Vector3>::Delete
_TEXT	ENDS
PUBLIC	??_7?$aVector@UgzPickerWeaponData@@@@6B@	; aVector<gzPickerWeaponData>::`vftable'
PUBLIC	??0?$aVector@UgzPickerWeaponData@@@@QAE@XZ	; aVector<gzPickerWeaponData>::aVector<gzPickerWeaponData>
PUBLIC	??_R4?$aVector@UgzPickerWeaponData@@@@6B@	; aVector<gzPickerWeaponData>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@UgzPickerWeaponData@@@@@8	; aVector<gzPickerWeaponData> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@UgzPickerWeaponData@@@@8		; aVector<gzPickerWeaponData>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@UgzPickerWeaponData@@@@8		; aVector<gzPickerWeaponData>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@UgzPickerWeaponData@@@@8 ; aVector<gzPickerWeaponData>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$aVector@UgzPickerWeaponData@@@@UAEXXZ	; aVector<gzPickerWeaponData>::Clear
PUBLIC	?Resize@?$aVector@UgzPickerWeaponData@@@@UAE_NI@Z ; aVector<gzPickerWeaponData>::Resize
PUBLIC	?Add@?$aVector@UgzPickerWeaponData@@@@UAEXABUgzPickerWeaponData@@@Z ; aVector<gzPickerWeaponData>::Add
PUBLIC	?Insert@?$aVector@UgzPickerWeaponData@@@@UAEXIABUgzPickerWeaponData@@@Z ; aVector<gzPickerWeaponData>::Insert
PUBLIC	?Delete@?$aVector@UgzPickerWeaponData@@@@UAEXI@Z ; aVector<gzPickerWeaponData>::Delete
EXTRN	??_E?$aVector@UgzPickerWeaponData@@@@UAEPAXI@Z:PROC ; aVector<gzPickerWeaponData>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@UgzPickerWeaponData@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@UgzPickerWeaponData@@@@8 DD FLAT:??_R0?AV?$aVector@UgzPickerWeaponData@@@@@8 ; aVector<gzPickerWeaponData>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@UgzPickerWeaponData@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@UgzPickerWeaponData@@@@8
rdata$r	SEGMENT
??_R2?$aVector@UgzPickerWeaponData@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@UgzPickerWeaponData@@@@8 ; aVector<gzPickerWeaponData>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@UgzPickerWeaponData@@@@8
rdata$r	SEGMENT
??_R3?$aVector@UgzPickerWeaponData@@@@8 DD 00H		; aVector<gzPickerWeaponData>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@UgzPickerWeaponData@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@UgzPickerWeaponData@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@UgzPickerWeaponData@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<gzPickerWeaponData> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@UgzPickerWeaponData@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@UgzPickerWeaponData@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@UgzPickerWeaponData@@@@6B@ DD 00H	; aVector<gzPickerWeaponData>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@UgzPickerWeaponData@@@@@8
	DD	FLAT:??_R3?$aVector@UgzPickerWeaponData@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@UgzPickerWeaponData@@@@6B@
CONST	SEGMENT
??_7?$aVector@UgzPickerWeaponData@@@@6B@ DD FLAT:??_R4?$aVector@UgzPickerWeaponData@@@@6B@ ; aVector<gzPickerWeaponData>::`vftable'
	DD	FLAT:??_E?$aVector@UgzPickerWeaponData@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@UgzPickerWeaponData@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@UgzPickerWeaponData@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@UgzPickerWeaponData@@@@UAEXABUgzPickerWeaponData@@@Z
	DD	FLAT:?Insert@?$aVector@UgzPickerWeaponData@@@@UAEXIABUgzPickerWeaponData@@@Z
	DD	FLAT:?Delete@?$aVector@UgzPickerWeaponData@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aVector@UgzPickerWeaponData@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aVector@UgzPickerWeaponData@@@@QAE@XZ PROC		; aVector<gzPickerWeaponData>::aVector<gzPickerWeaponData>, COMDAT
; _this$ = ecx

; 27   : 	aVector()

	mov	eax, ecx

; 28   : 	{
; 29   : 		this->m_vector = NULL;

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@UgzPickerWeaponData@@@@6B@
	mov	DWORD PTR [eax+4], ecx

; 30   : 		this->m_alloc  = 0;

	mov	DWORD PTR [eax+8], ecx

; 31   : 		this->m_items  = 0;

	mov	DWORD PTR [eax+12], ecx

; 32   : 	};

	ret	0
??0?$aVector@UgzPickerWeaponData@@@@QAE@XZ ENDP		; aVector<gzPickerWeaponData>::aVector<gzPickerWeaponData>
_TEXT	ENDS
PUBLIC	??A?$aVector@UgzPickerWeaponData@@@@QAEAAUgzPickerWeaponData@@I@Z ; aVector<gzPickerWeaponData>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$aVector@UgzPickerWeaponData@@@@QAEAAUgzPickerWeaponData@@I@Z
_TEXT	SEGMENT
_nPos$ = 8						; size = 4
??A?$aVector@UgzPickerWeaponData@@@@QAEAAUgzPickerWeaponData@@I@Z PROC ; aVector<gzPickerWeaponData>::operator[], COMDAT
; _this$ = ecx

; 64   : 	T& operator[](unsigned int nPos) { return this->m_vector[nPos]; };

	mov	eax, DWORD PTR _nPos$[esp-4]
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	eax, DWORD PTR [ecx+eax*4]
	ret	4
??A?$aVector@UgzPickerWeaponData@@@@QAEAAUgzPickerWeaponData@@I@Z ENDP ; aVector<gzPickerWeaponData>::operator[]
_TEXT	ENDS
PUBLIC	?Count@?$aVector@UgzPickerWeaponData@@@@QBEIXZ	; aVector<gzPickerWeaponData>::Count
; Function compile flags: /Ogtpy
;	COMDAT ?Count@?$aVector@UgzPickerWeaponData@@@@QBEIXZ
_TEXT	SEGMENT
?Count@?$aVector@UgzPickerWeaponData@@@@QBEIXZ PROC	; aVector<gzPickerWeaponData>::Count, COMDAT
; _this$ = ecx

; 65   : 	inline unsigned int Count() const { return this->m_items; };

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@UgzPickerWeaponData@@@@QBEIXZ ENDP	; aVector<gzPickerWeaponData>::Count
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Clear@?$aVector@UgzPickerWeaponData@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@UgzPickerWeaponData@@@@UAEXXZ PROC	; aVector<gzPickerWeaponData>::Clear, COMDAT
; _this$ = ecx

; 67   : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 68   : 		if (this->m_vector != NULL)

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	je	SHORT $LN6@Clear@4

; 69   : 		{
; 70   : //#if (VECTOR_USE_CRT == 1)
; 71   : //			free(this->m_vector);
; 72   : //#else
; 73   : 			delete[] this->m_vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H

; 74   : //#endif
; 75   : 			this->m_vector = NULL;

	mov	DWORD PTR [esi+4], edi
$LN6@Clear@4:

; 76   : 		}
; 77   : 		this->m_alloc = 0;
; 78   : 		this->m_items = 0;

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

; 79   : 	};

	ret	0
?Clear@?$aVector@UgzPickerWeaponData@@@@UAEXXZ ENDP	; aVector<gzPickerWeaponData>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Resize@?$aVector@UgzPickerWeaponData@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@UgzPickerWeaponData@@@@UAE_NI@Z PROC	; aVector<gzPickerWeaponData>::Resize, COMDAT
; _this$ = ecx

; 81   : 	{

	push	esi

; 82   : 		if (this->m_alloc != nSize)

	mov	esi, DWORD PTR _nSize$[esp]
	push	edi
	mov	edi, ecx
	cmp	DWORD PTR [edi+8], esi
	je	SHORT $LN11@Resize@3

; 83   : 		{
; 84   : 			if (nSize > 0)

	test	esi, esi
	jbe	SHORT $LN3@Resize@3
	push	ebx

; 85   : 			{
; 86   : 
; 87   : //#if (VECTOR_USE_CRT == 1)
; 88   : //				this->m_vector = (T *)realloc(this->m_vector, nSize * sizeof(T));
; 89   : //#else
; 90   : 				T* newVec = new T[nSize];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	90					; 0000005aH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, esi
	mov	edx, 12					; 0000000cH
	mul	edx
	seto	cl
	neg	ecx
	or	ecx, eax
	push	ecx
	call	??_U@YAPAXI@Z				; operator new[]
	mov	ebx, eax

; 91   : 				if (this->m_vector != NULL)

	mov	eax, DWORD PTR [edi+4]
	add	esp, 16					; 00000010H
	test	eax, eax
	je	SHORT $LN10@Resize@3

; 92   : 				{
; 93   : 					memcpy(newVec, this->m_vector, nSize * sizeof(T));

	lea	ecx, DWORD PTR [esi+esi*2]
	add	ecx, ecx
	add	ecx, ecx
	push	ecx
	push	eax
	push	ebx
	call	_memcpy

; 94   : 					delete[] this->m_vector;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	94					; 0000005eH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [edi+4]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 28					; 0000001cH
$LN10@Resize@3:

; 95   : 				}
; 96   : 				this->m_vector = newVec;

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

; 97   : //#endif
; 98   : 
; 99   : 				this->m_alloc = nSize;

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
$LN3@Resize@3:

; 100  : 			}
; 101  : 			else
; 102  : 				this->Clear();

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	call	edx
$LN11@Resize@3:
	pop	edi

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
?Resize@?$aVector@UgzPickerWeaponData@@@@UAE_NI@Z ENDP	; aVector<gzPickerWeaponData>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@UgzPickerWeaponData@@@@UAEXABUgzPickerWeaponData@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@UgzPickerWeaponData@@@@UAEXABUgzPickerWeaponData@@@Z PROC ; aVector<gzPickerWeaponData>::Add, COMDAT
; _this$ = ecx

; 107  : 	{

	push	esi
	mov	esi, ecx

; 108  : 		if (this->Resize(this->m_items + 1))

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+8]
	add	ecx, 1
	push	ecx
	mov	ecx, esi
	call	edx
	test	al, al
	je	SHORT $LN1@Add@4

; 109  : 			this->m_vector[this->m_items++] = obj;

	mov	eax, DWORD PTR [esi+12]
	mov	ecx, DWORD PTR [esi+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	eax, DWORD PTR [ecx+eax*4]
	mov	ecx, DWORD PTR _obj$[esp]
	mov	edx, DWORD PTR [ecx]
	mov	DWORD PTR [eax], edx
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax+4], edx
	mov	ecx, DWORD PTR [ecx+8]
	mov	DWORD PTR [eax+8], ecx
	add	DWORD PTR [esi+12], 1
$LN1@Add@4:
	pop	esi

; 110  : 	}

	ret	4
?Add@?$aVector@UgzPickerWeaponData@@@@UAEXABUgzPickerWeaponData@@@Z ENDP ; aVector<gzPickerWeaponData>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@UgzPickerWeaponData@@@@UAEXIABUgzPickerWeaponData@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@UgzPickerWeaponData@@@@UAEXIABUgzPickerWeaponData@@@Z PROC ; aVector<gzPickerWeaponData>::Insert, COMDAT
; _this$ = ecx

; 112  : 	{

	push	esi
	mov	esi, ecx

; 113  : 		if (index > this->m_items)

	mov	eax, DWORD PTR [esi+12]
	push	edi
	mov	edi, DWORD PTR _index$[esp+4]
	cmp	edi, eax
	jbe	SHORT $LN3@Insert@3

; 114  : 			this->Add(obj);

	mov	ecx, DWORD PTR _obj$[esp+4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+12]
	push	ecx
	mov	ecx, esi
	call	edx
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
$LN3@Insert@3:

; 115  : 		else if (this->Resize(this->m_items + 1))

	mov	edx, DWORD PTR [esi]
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR [edx+8]
	call	eax
	test	al, al
	je	SHORT $LN1@Insert@3

; 116  : 		{
; 117  : 			memmove(&this->m_vector[index + 1], &this->m_vector[index], (this->m_items++ - index) * sizeof(T));

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, ecx
	sub	eax, edi
	add	ecx, 1
	lea	eax, DWORD PTR [eax+eax*2]
	lea	edi, DWORD PTR [edi+edi*2]
	mov	DWORD PTR [esi+12], ecx
	mov	ecx, DWORD PTR [esi+4]
	add	eax, eax
	add	edi, edi
	add	eax, eax
	add	edi, edi
	add	ecx, edi
	push	eax
	push	ecx
	add	ecx, 12					; 0000000cH
	push	ecx
	call	_memmove

; 118  : 			this->m_vector[index] = obj;

	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR _obj$[esp+16]
	mov	edx, DWORD PTR [ecx]
	add	esp, 12					; 0000000cH
	add	eax, edi
	mov	DWORD PTR [eax], edx
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax+4], edx
	mov	ecx, DWORD PTR [ecx+8]
	mov	DWORD PTR [eax+8], ecx
$LN1@Insert@3:
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@UgzPickerWeaponData@@@@UAEXIABUgzPickerWeaponData@@@Z ENDP ; aVector<gzPickerWeaponData>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@UgzPickerWeaponData@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@UgzPickerWeaponData@@@@UAEXI@Z PROC	; aVector<gzPickerWeaponData>::Delete, COMDAT
; _this$ = ecx

; 122  : 	{

	push	esi
	mov	esi, ecx

; 123  : 		if (index >= this->m_items)

	mov	eax, DWORD PTR [esi+12]
	mov	ecx, DWORD PTR _index$[esp]
	cmp	ecx, eax
	jae	SHORT $LN2@Delete@4

; 124  : 			return;
; 125  : 		if (--this->m_items == 0)

	add	eax, -1
	mov	DWORD PTR [esi+12], eax
	jne	SHORT $LN3@Delete@4

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@4:

; 127  : 		else
; 128  : 		{
; 129  : 			if (index < this->m_items)

	cmp	ecx, eax
	jae	SHORT $LN1@Delete@4

; 130  : 				memmove(&this->m_vector[index], &this->m_vector[index + 1], (this->m_items - index) * sizeof(T));

	sub	eax, ecx
	push	edi
	mov	edi, DWORD PTR [esi+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	edx, DWORD PTR [ecx+ecx*2]
	add	eax, eax
	lea	edx, DWORD PTR [edi+edx*4]
	add	eax, eax
	push	eax
	lea	ecx, DWORD PTR [edx+12]
	push	ecx
	push	edx
	call	_memmove
	add	esp, 12					; 0000000cH
	pop	edi
$LN1@Delete@4:

; 131  : 			this->Resize(this->m_items);

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [edx+8]
	push	eax
	mov	ecx, esi
	call	edx
$LN2@Delete@4:
	pop	esi

; 132  : 		}
; 133  : 	}

	ret	4
?Delete@?$aVector@UgzPickerWeaponData@@@@UAEXI@Z ENDP	; aVector<gzPickerWeaponData>::Delete
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??_H@YGXPAXIHP6EPAX0@Z@Z			; `vector constructor iterator'
; Function compile flags: /Ogtpy
;	COMDAT ??_H@YGXPAXIHP6EPAX0@Z@Z
_TEXT	SEGMENT
___t$ = 8						; size = 4
___s$ = 12						; size = 4
___n$ = 16						; size = 4
___f$ = 20						; size = 4
??_H@YGXPAXIHP6EPAX0@Z@Z PROC				; `vector constructor iterator', COMDAT
	push	edi
	mov	edi, DWORD PTR ___n$[esp]
	sub	edi, 1
	js	SHORT $LN1@vector
	push	ebx
	mov	ebx, DWORD PTR ___f$[esp+4]
	push	ebp
	mov	ebp, DWORD PTR ___s$[esp+8]
	push	esi
	mov	esi, DWORD PTR ___t$[esp+12]
	npad	7
$LL2@vector:
	mov	ecx, esi
	call	ebx
	add	esi, ebp
	sub	edi, 1
	jns	SHORT $LL2@vector
	pop	esi
	pop	ebp
	pop	ebx
$LN1@vector:
	pop	edi
	ret	16					; 00000010H
??_H@YGXPAXIHP6EPAX0@Z@Z ENDP				; `vector constructor iterator'
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\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 (x86)\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>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaString@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaString@@UAEPAXI@Z PROC				; aString::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	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
??_GaString@@UAEPAXI@Z ENDP				; aString::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaWideString@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaWideString@@UAEPAXI@Z PROC				; aWideString::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	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
??_GaWideString@@UAEPAXI@Z ENDP				; aWideString::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?GetInt@aRandom@@QAEJJJ@Z			; aRandom::GetInt
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\arandom.h
;	COMDAT ?GetInt@aRandom@@QAEJJJ@Z
_TEXT	SEGMENT
_min$ = 8						; size = 4
_max$ = 12						; size = 4
?GetInt@aRandom@@QAEJJJ@Z PROC				; aRandom::GetInt, COMDAT
; _this$ = ecx

; 42   : 		return this->Get_Int(min, max);

	mov	eax, DWORD PTR _min$[esp-4]
	push	esi
	mov	esi, DWORD PTR _max$[esp]
	cmp	eax, esi
	je	SHORT $LN5@GetInt
	push	edi
	mov	edi, eax
	jle	SHORT $LN3@GetInt
	mov	edi, esi
	mov	esi, eax
$LN3@GetInt:
	mov	eax, DWORD PTR [ecx]
	cmp	eax, 64					; 00000040H
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	jle	SHORT $LN7@GetInt
	mov	DWORD PTR [ecx], 1
$LN7@GetInt:
	mov	eax, DWORD PTR [ecx+4]
	imul	eax, 22695475				; 015a4e33H
	add	eax, DWORD PTR [ecx]
	sub	esi, edi
	mov	DWORD PTR [ecx+4], eax
	movzx	eax, WORD PTR [ecx+6]
	add	esi, 1
	xor	edx, edx
	div	esi
	mov	eax, edx
	add	eax, edi
	pop	edi
$LN5@GetInt:
	pop	esi

; 43   : 	};

	ret	8
?GetInt@aRandom@@QAEJJJ@Z ENDP				; aRandom::GetInt
_TEXT	ENDS
PUBLIC	??_C@_0EL@KHBKOJ@?$FLTibCrystal?$FN?5Error?5?9?5Tiberium?5Cr@ ; `string'
PUBLIC	??_C@_07ECEMPDJM@General?$AA@			; `string'
PUBLIC	??_C@_08OIJLOEBJ@Model_?$CFd?$AA@		; `string'
PUBLIC	__real@c2480000
PUBLIC	__real@4479c000
PUBLIC	??_C@_07OBGJHCAF@PosZ_?$CFd?$AA@		; `string'
PUBLIC	??_C@_07KGMJAINF@PosY_?$CFd?$AA@		; `string'
PUBLIC	??_C@_07JLKJCBGF@PosX_?$CFd?$AA@		; `string'
PUBLIC	??_C@_0GC@NCIFJCLI@Tiberium?5Crystal?5Harvest?5feature@ ; `string'
PUBLIC	??_C@_0O@ELJJIHPP@TibPoisonTime?$AA@		; `string'
PUBLIC	__real@40000000
PUBLIC	??_C@_0BA@LBAFGLNL@TibPoisonDamage?$AA@		; `string'
PUBLIC	__real@3f800000
PUBLIC	??_C@_08JBPKJILL@DropLive?$AA@			; `string'
PUBLIC	__real@41f00000
PUBLIC	??_C@_0BB@BLJJJG@MaximumDropCount?$AA@		; `string'
PUBLIC	__real@42700000
PUBLIC	??_C@_08OKENMNDJ@LiveTime?$AA@			; `string'
PUBLIC	__real@44160000
PUBLIC	??_C@_0M@OHCGONOF@MaximumGrow?$AA@		; `string'
PUBLIC	??_C@_0M@HHFFPNAP@MinimumGrow?$AA@		; `string'
PUBLIC	??_C@_0BF@HAIFLJAB@SuccessCarrierAmount?$AA@	; `string'
PUBLIC	??_C@_0O@IALPMHNM@SuccessAmount?$AA@		; `string'
PUBLIC	__real@00000000
PUBLIC	??_C@_06CKGENIKG@Enable?$AA@			; `string'
PUBLIC	??_C@_0DI@NLDLGPHP@?$FLError?$FN?5TibCrystal?4ini?5can?5not?5b@ ; `string'
PUBLIC	??_C@_0P@PGGILFHH@TibCrystal?4ini?$AA@		; `string'
PUBLIC	??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@	; `string'
PUBLIC	?Load@gzSettingsTibCrystal@@UAEXXZ		; gzSettingsTibCrystal::Load
EXTRN	?gzGameMgr@@3PAVgzGameManager@@A:DWORD		; gzGameMgr
EXTRN	??_M@YGXPAXIHP6EX0@Z@Z:PROC			; `eh vector destructor iterator'
EXTRN	?Printf@aString@@QAAXPBDZZ:PROC			; aString::Printf
EXTRN	??_L@YGXPAXIHP6EX0@Z1@Z:PROC			; `eh vector constructor iterator'
EXTRN	?Out@stConsole@@SAXPBDZZ:PROC			; stConsole::Out
EXTRN	??0aTextConfig@@QAE@ABVaString@@_N@Z:PROC	; aTextConfig::aTextConfig
EXTRN	??2@YAPAXI@Z:PROC				; operator new
;	COMDAT ??_C@_0EL@KHBKOJ@?$FLTibCrystal?$FN?5Error?5?9?5Tiberium?5Cr@
; File d:\source code\stgm\stgame.h
CONST	SEGMENT
??_C@_0EL@KHBKOJ@?$FLTibCrystal?$FN?5Error?5?9?5Tiberium?5Cr@ DB '[TibCry'
	DB	'stal] Error - Tiberium Crystal can not be enabled in %s game '
	DB	'mode.', 0aH, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_07ECEMPDJM@General?$AA@
CONST	SEGMENT
??_C@_07ECEMPDJM@General?$AA@ DB 'General', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_08OIJLOEBJ@Model_?$CFd?$AA@
CONST	SEGMENT
??_C@_08OIJLOEBJ@Model_?$CFd?$AA@ DB 'Model_%d', 00H	; `string'
CONST	ENDS
;	COMDAT __real@c2480000
CONST	SEGMENT
__real@c2480000 DD 0c2480000r			; -50
CONST	ENDS
;	COMDAT __real@4479c000
CONST	SEGMENT
__real@4479c000 DD 04479c000r			; 999
CONST	ENDS
;	COMDAT ??_C@_07OBGJHCAF@PosZ_?$CFd?$AA@
CONST	SEGMENT
??_C@_07OBGJHCAF@PosZ_?$CFd?$AA@ DB 'PosZ_%d', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_07KGMJAINF@PosY_?$CFd?$AA@
CONST	SEGMENT
??_C@_07KGMJAINF@PosY_?$CFd?$AA@ DB 'PosY_%d', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_07JLKJCBGF@PosX_?$CFd?$AA@
CONST	SEGMENT
??_C@_07JLKJCBGF@PosX_?$CFd?$AA@ DB 'PosX_%d', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0GC@NCIFJCLI@Tiberium?5Crystal?5Harvest?5feature@
CONST	SEGMENT
??_C@_0GC@NCIFJCLI@Tiberium?5Crystal?5Harvest?5feature@ DB 'Tiberium Crys'
	DB	'tal Harvest feature has been disabled because no amount will '
	DB	'be given upon success.', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@ELJJIHPP@TibPoisonTime?$AA@
CONST	SEGMENT
??_C@_0O@ELJJIHPP@TibPoisonTime?$AA@ DB 'TibPoisonTime', 00H ; `string'
CONST	ENDS
;	COMDAT __real@40000000
CONST	SEGMENT
__real@40000000 DD 040000000r			; 2
CONST	ENDS
;	COMDAT ??_C@_0BA@LBAFGLNL@TibPoisonDamage?$AA@
CONST	SEGMENT
??_C@_0BA@LBAFGLNL@TibPoisonDamage?$AA@ DB 'TibPoisonDamage', 00H ; `string'
CONST	ENDS
;	COMDAT __real@3f800000
CONST	SEGMENT
__real@3f800000 DD 03f800000r			; 1
CONST	ENDS
;	COMDAT ??_C@_08JBPKJILL@DropLive?$AA@
CONST	SEGMENT
??_C@_08JBPKJILL@DropLive?$AA@ DB 'DropLive', 00H	; `string'
CONST	ENDS
;	COMDAT __real@41f00000
CONST	SEGMENT
__real@41f00000 DD 041f00000r			; 30
CONST	ENDS
;	COMDAT ??_C@_0BB@BLJJJG@MaximumDropCount?$AA@
CONST	SEGMENT
??_C@_0BB@BLJJJG@MaximumDropCount?$AA@ DB 'MaximumDropCount', 00H ; `string'
CONST	ENDS
;	COMDAT __real@42700000
CONST	SEGMENT
__real@42700000 DD 042700000r			; 60
CONST	ENDS
;	COMDAT ??_C@_08OKENMNDJ@LiveTime?$AA@
CONST	SEGMENT
??_C@_08OKENMNDJ@LiveTime?$AA@ DB 'LiveTime', 00H	; `string'
CONST	ENDS
;	COMDAT __real@44160000
CONST	SEGMENT
__real@44160000 DD 044160000r			; 600
CONST	ENDS
;	COMDAT ??_C@_0M@OHCGONOF@MaximumGrow?$AA@
CONST	SEGMENT
??_C@_0M@OHCGONOF@MaximumGrow?$AA@ DB 'MaximumGrow', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@HHFFPNAP@MinimumGrow?$AA@
CONST	SEGMENT
??_C@_0M@HHFFPNAP@MinimumGrow?$AA@ DB 'MinimumGrow', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@HAIFLJAB@SuccessCarrierAmount?$AA@
CONST	SEGMENT
??_C@_0BF@HAIFLJAB@SuccessCarrierAmount?$AA@ DB 'SuccessCarrierAmount', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@IALPMHNM@SuccessAmount?$AA@
CONST	SEGMENT
??_C@_0O@IALPMHNM@SuccessAmount?$AA@ DB 'SuccessAmount', 00H ; `string'
CONST	ENDS
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
CONST	ENDS
;	COMDAT ??_C@_06CKGENIKG@Enable?$AA@
CONST	SEGMENT
??_C@_06CKGENIKG@Enable?$AA@ DB 'Enable', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0DI@NLDLGPHP@?$FLError?$FN?5TibCrystal?4ini?5can?5not?5b@
CONST	SEGMENT
??_C@_0DI@NLDLGPHP@?$FLError?$FN?5TibCrystal?4ini?5can?5not?5b@ DB '[Erro'
	DB	'r] TibCrystal.ini can not be loaded or not found.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@PGGILFHH@TibCrystal?4ini?$AA@
CONST	SEGMENT
??_C@_0P@PGGILFHH@TibCrystal?4ini?$AA@ DB 'TibCrystal.ini', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@
CONST	SEGMENT
??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@ DB '.\sttibcrystal.cpp', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Load@gzSettingsTibCrystal@@UAEXXZ DD 019930522H
	DD	07H
	DD	FLAT:__unwindtable$?Load@gzSettingsTibCrystal@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Load@gzSettingsTibCrystal@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$3
	DD	04H
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$4
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$4
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
xdata$x	ENDS
;	COMDAT ?Load@gzSettingsTibCrystal@@UAEXXZ
_TEXT	SEGMENT
$T66338 = -76						; size = 4
$T66330 = -72						; size = 4
$T66323 = -72						; size = 4
_model$58477 = -68					; size = 8
_pos$58461 = -60					; size = 12
$T66324 = -60						; size = 8
$T66329 = -48						; size = 8
_posName$58462 = -40					; size = 24
__$EHRec$ = -12						; size = 12
?Load@gzSettingsTibCrystal@@UAEXXZ PROC			; gzSettingsTibCrystal::Load, COMDAT
; _this$ = ecx

; 14   : {

	push	ebp
	mov	ebp, esp
	and	esp, -8					; fffffff8H
	push	-1
	push	__ehhandler$?Load@gzSettingsTibCrystal@@UAEXXZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 68					; 00000044H
	push	ebx
	push	ebp
	push	esi
	mov	esi, ecx
	xor	ebx, ebx

; 15   : 	this->Delete();

	mov	DWORD PTR $T66338[esp+92], ebx
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax]
	push	edi
	call	edx

; 16   : 
; 17   : 	this->m_cfg = new aTextConfig("TibCrystal.ini");

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	17					; 00000011H
	push	OFFSET ??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	52					; 00000034H
	call	??2@YAPAXI@Z				; operator new
	mov	edi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T66323[esp+96], edi
	test	edi, edi
	mov	DWORD PTR __$EHRec$[esp+104], ebx
	je	SHORT $LN21@Load
	push	OFFSET ??_C@_0P@PGGILFHH@TibCrystal?4ini?$AA@
	lea	ecx, DWORD PTR $T66324[esp+100]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	0
	lea	eax, DWORD PTR $T66324[esp+100]
	mov	ebx, 1
	push	eax
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[esp+112], 1
	mov	DWORD PTR $T66338[esp+104], ebx
	call	??0aTextConfig@@QAE@ABVaString@@_N@Z	; aTextConfig::aTextConfig
	jmp	SHORT $LN22@Load
$LN21@Load:
	xor	eax, eax
$LN22@Load:
	or	ebp, -1
	test	bl, 1
	mov	DWORD PTR [esi+12], eax
	mov	DWORD PTR __$EHRec$[esp+104], ebp
	je	SHORT $LN32@Load
	lea	ecx, DWORD PTR $T66324[esp+96]
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN32@Load:

; 18   : 	if (!this->m_cfg->IsLoaded())

	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+12]
	call	eax
	test	al, al
	jne	SHORT $LN18@Load

; 19   : 		stConsole::Out("[Error] TibCrystal.ini can not be loaded or not found.\n");

	push	OFFSET ??_C@_0DI@NLDLGPHP@?$FLError?$FN?5TibCrystal?4ini?5can?5not?5b@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 4
$LN18@Load:

; 20   : 
; 21   : 	this->m_enable					= this->Load_Bool("Enable", false);

	push	1
	push	1
	push	0
	push	OFFSET ??_C@_06CKGENIKG@Enable?$AA@
	mov	ecx, esi
	call	?Load_Bool@stSettingsBase@@IAE_NPBD_N11@Z ; stSettingsBase::Load_Bool

; 22   : 	this->m_successAmount			= this->Load_Float("SuccessAmount", 0.0f);

	fldz
	push	1
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_0O@IALPMHNM@SuccessAmount?$AA@
	mov	ecx, esi
	mov	BYTE PTR [esi+24], al
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+28]

; 23   : 	this->m_successCarrierAmount	= this->Load_Float("SuccessCarrierAmount", 0.0f);

	fldz
	push	1
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_0BF@HAIFLJAB@SuccessCarrierAmount?$AA@
	mov	ecx, esi
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+32]

; 24   : 
; 25   : #if ISDEV()
; 26   : 	this->m_spawnMin				= 5;
; 27   : 	this->m_spawnMax				= 5;
; 28   : #else
; 29   : 	this->m_spawnMin				= this->Load_Int("MinimumSpawn", 5) * 60;
; 30   : 	this->m_spawnMax				= this->Load_Int("MaximumSpawn", 10) * 60;
; 31   : #endif
; 32   : 
; 33   : 	this->m_growMin					= this->Load_Int("MinimumGrow", 60);

	push	1
	push	1
	mov	eax, 5
	push	60					; 0000003cH
	push	OFFSET ??_C@_0M@HHFFPNAP@MinimumGrow?$AA@
	mov	ecx, esi
	mov	DWORD PTR [esi+52], eax
	mov	DWORD PTR [esi+56], eax
	call	?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z	; stSettingsBase::Load_Int

; 34   : 	this->m_growMax					= this->Load_Int("MaximumGrow", 180);

	push	1
	push	1
	push	180					; 000000b4H
	push	OFFSET ??_C@_0M@OHCGONOF@MaximumGrow?$AA@
	mov	ecx, esi
	mov	DWORD PTR [esi+60], eax
	call	?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z	; stSettingsBase::Load_Int

; 35   : 	this->m_liveTime				= this->Load_Float("LiveTime", 600.0f) * 60.0f;

	fld	DWORD PTR __real@44160000
	push	1
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_08OKENMNDJ@LiveTime?$AA@
	mov	ecx, esi
	mov	DWORD PTR [esi+64], eax
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fmul	DWORD PTR __real@42700000

; 36   : 	this->m_dropCountMax			= this->Load_Int("MaximumDropCount", 3);

	push	1
	push	1
	mov	ebx, 3
	fstp	DWORD PTR [esi+68]
	push	ebx
	push	OFFSET ??_C@_0BB@BLJJJG@MaximumDropCount?$AA@
	mov	ecx, esi
	call	?Load_Int@stSettingsBase@@IAEHPBDH_N1@Z	; stSettingsBase::Load_Int

; 37   : 	this->m_dropLive				= this->Load_Float("DropLive", 30.0f);

	fld	DWORD PTR __real@41f00000
	push	1
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_08JBPKJILL@DropLive?$AA@
	mov	ecx, esi
	mov	DWORD PTR [esi+72], eax
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+76]

; 38   : 	this->m_tibPoisonDamage			= this->Load_Float("TibPoisonDamage", 1.0f);

	fld1
	push	1
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_0BA@LBAFGLNL@TibPoisonDamage?$AA@
	mov	ecx, esi
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+84]

; 39   : 	this->m_tibPoisonDamageTime		= this->Load_Float("TibPoisonTime", 2.0f);

	push	1
	push	1
	push	ecx
	fld	DWORD PTR __real@40000000
	mov	ecx, esi
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_0O@ELJJIHPP@TibPoisonTime?$AA@
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+80]

; 40   : 
; 41   : 	if (this->m_successAmount <= 0.0f && this->m_successCarrierAmount <= 0.0f)

	fldz
	fcom	DWORD PTR [esi+28]
	fnstsw	ax
	test	ah, 1
	jne	SHORT $LN95@Load
	fcomp	DWORD PTR [esi+32]
	fnstsw	ax
	test	ah, 1
	jne	SHORT $LN17@Load

; 42   : 	{
; 43   : 		this->m_enable = false;
; 44   : 		stConsole::Out("Tiberium Crystal Harvest feature has been disabled because no amount will be given upon success.\n");

	push	OFFSET ??_C@_0GC@NCIFJCLI@Tiberium?5Crystal?5Harvest?5feature@
	mov	BYTE PTR [esi+24], 0
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 4
	jmp	SHORT $LN17@Load
$LN95@Load:
	fstp	ST(0)
$LN17@Load:

; 45   : 	}
; 46   : 
; 47   : 	if (this->m_enable)

	cmp	BYTE PTR [esi+24], 0
	je	$LN13@Load

; 48   : 	{
; 49   : 		for (int id = 1; ; id++)

	mov	edi, 1
$LL15@Load:

; 50   : 		{
; 51   : 			nc_Vector3 pos;
; 52   : 			aString posName[3];

	push	OFFSET ??1aString@@UAE@XZ
	push	OFFSET ??0aString@@QAE@XZ		; aString::aString
	push	ebx
	push	8
	lea	ecx, DWORD PTR _posName$58462[esp+112]
	push	ecx
	call	??_L@YGXPAXIHP6EX0@Z1@Z

; 53   : 			posName[0].Printf("PosX_%d",id);

	push	edi
	lea	edx, DWORD PTR _posName$58462[esp+100]
	push	OFFSET ??_C@_07JLKJCBGF@PosX_?$CFd?$AA@
	push	edx
	mov	DWORD PTR __$EHRec$[esp+116], ebx
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 54   : 			posName[1].Printf("PosY_%d",id);

	push	edi
	lea	eax, DWORD PTR _posName$58462[esp+120]
	push	OFFSET ??_C@_07KGMJAINF@PosY_?$CFd?$AA@
	push	eax
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 55   : 			posName[2].Printf("PosZ_%d",id);

	push	edi
	lea	ecx, DWORD PTR _posName$58462[esp+140]
	push	OFFSET ??_C@_07OBGJHCAF@PosZ_?$CFd?$AA@
	push	ecx
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 56   : 			pos.X = this->Load_Float(posName[0].GetString(), 999.0f, true, false);

	mov	eax, DWORD PTR _posName$58462[esp+136]
	add	esp, 36					; 00000024H
	test	eax, eax
	je	SHORT $LN42@Load
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN43@Load
$LN42@Load:
	xor	eax, eax
$LN43@Load:
	fld	DWORD PTR __real@4479c000
	push	0
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	eax
	mov	ecx, esi
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR _pos$58461[esp+96]

; 57   : 			pos.Y = this->Load_Float(posName[1].GetString(), 999.0f, true, false);

	mov	eax, DWORD PTR _posName$58462[esp+108]
	test	eax, eax
	je	SHORT $LN48@Load
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN49@Load
$LN48@Load:
	xor	eax, eax
$LN49@Load:
	fld	DWORD PTR __real@4479c000
	push	0
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	eax
	mov	ecx, esi
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fstp	DWORD PTR _pos$58461[esp+100]

; 58   : 			pos.Z = this->Load_Float(posName[2].GetString(), 999.0f, true, false);

	mov	eax, DWORD PTR _posName$58462[esp+116]
	test	eax, eax
	je	SHORT $LN54@Load
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN55@Load
$LN54@Load:
	xor	eax, eax
$LN55@Load:
	fld	DWORD PTR __real@4479c000
	push	0
	push	1
	push	ecx
	fstp	DWORD PTR [esp]
	push	eax
	mov	ecx, esi
	call	?Load_Float@stSettingsBase@@IAEMPBDM_N1@Z ; stSettingsBase::Load_Float
	fst	DWORD PTR _pos$58461[esp+104]

; 59   : 			if (pos.X != 999.0f && pos.Y != 999.0f && pos.Z != -50.0f)

	fld	DWORD PTR __real@4479c000
	fcom	DWORD PTR _pos$58461[esp+96]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN98@Load
	fcomp	DWORD PTR _pos$58461[esp+100]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN101@Load
	fld	DWORD PTR __real@c2480000
	fucompp
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN12@Load

; 60   : 				this->m_posList.Add(pos);

	mov	edx, DWORD PTR [esi+88]
	mov	edx, DWORD PTR [edx+12]
	lea	ecx, DWORD PTR [esi+88]
	lea	eax, DWORD PTR _pos$58461[esp+96]
	push	eax
	call	edx

; 63   : 		}

	push	OFFSET ??1aString@@UAE@XZ
	push	ebx
	push	8
	lea	eax, DWORD PTR _posName$58462[esp+108]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+120], ebp
	call	??_M@YGXPAXIHP6EX0@Z@Z
	add	edi, 1
	jmp	$LL15@Load
$LN98@Load:

; 59   : 			if (pos.X != 999.0f && pos.Y != 999.0f && pos.Z != -50.0f)

	fstp	ST(0)
$LN101@Load:
	fstp	ST(0)
$LN12@Load:

; 61   : 			else
; 62   : 				break;

	push	OFFSET ??1aString@@UAE@XZ
	push	ebx
	push	8
	lea	ecx, DWORD PTR _posName$58462[esp+108]
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+120], ebp
	call	??_M@YGXPAXIHP6EX0@Z@Z
$LN13@Load:

; 64   : 	}
; 65   : 	if (this->m_posList.Count() == 0)

	cmp	DWORD PTR [esi+100], 0
	jne	SHORT $LN10@Load

; 66   : 		this->m_enable = false;

	mov	BYTE PTR [esi+24], 0

; 67   : 	else

	jmp	$LN6@Load
$LN10@Load:

; 68   : 	{
; 69   : 		for (int id = 1; ; id++)

	mov	ebx, 1
	lea	ebp, DWORD PTR [ebx+3]
$LL8@Load:

; 70   : 		{
; 71   : 			aString model = this->Load_String("General", aString::Format("Model_%d", id).GetString(), "");

	push	ebx
	lea	edx, DWORD PTR $T66329[esp+100]
	push	OFFSET ??_C@_08OIJLOEBJ@Model_?$CFd?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+104], ebp
	je	SHORT $LN62@Load
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN63@Load
$LN62@Load:
	xor	eax, eax
$LN63@Load:
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	eax
	push	OFFSET ??_C@_07ECEMPDJM@General?$AA@
	lea	eax, DWORD PTR _model$58477[esp+108]
	push	eax
	mov	ecx, esi
	call	?Load_String@stSettingsBase@@IAE?AVaString@@PBD00@Z ; stSettingsBase::Load_String
	lea	ecx, DWORD PTR $T66329[esp+96]
	mov	BYTE PTR __$EHRec$[esp+104], 6
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 72   : 
; 73   : 			if (model.IsEmpty())

	mov	eax, DWORD PTR _model$58477[esp+100]
	test	eax, eax
	je	SHORT $LN71@Load
	cmp	DWORD PTR [eax+4], 0
	je	SHORT $LN71@Load
	cmp	DWORD PTR [eax], 0
	je	SHORT $LN71@Load

; 75   : 
; 76   : 			this->m_modelList.Add(model);

	sub	esp, 8
	mov	edi, esp
	lea	ecx, DWORD PTR _model$58477[esp+104]
	mov	DWORD PTR $T66330[esp+104], esp
	push	ecx
	mov	ecx, edi
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	lea	ecx, DWORD PTR [esi+36]
	mov	DWORD PTR [edi], OFFSET ??_7aString@@6B@
	call	?Add@?$aStringArrayBase@VaString@@@@QAEXVaString@@@Z ; aStringArrayBase<aString>::Add

; 77   : 		}

	lea	ecx, DWORD PTR _model$58477[esp+96]
	mov	DWORD PTR __$EHRec$[esp+104], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	add	ebx, 1
	jmp	$LL8@Load

; 72   : 
; 73   : 			if (model.IsEmpty())

$LN71@Load:

; 74   : 				break;

	lea	ecx, DWORD PTR _model$58477[esp+96]
	mov	DWORD PTR __$EHRec$[esp+104], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN6@Load:

; 78   : 	}
; 79   : 
; 80   : 	delete this->m_cfg;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	80					; 00000050H
	push	OFFSET ??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+12]
	add	esp, 12					; 0000000cH
	test	ecx, ecx
	je	SHORT $LN25@Load
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN25@Load:

; 81   : 	this->m_cfg = NULL;

	mov	DWORD PTR [esi+12], 0

; 82   : 
; 83   : 	switch (gzGameMgr->m_settings->m_GameMode)

	mov	ecx, DWORD PTR ?gzGameMgr@@3PAVgzGameManager@@A ; gzGameMgr
	mov	edx, DWORD PTR [ecx+72]
	mov	eax, DWORD PTR [edx+24]
	add	eax, -4					; fffffffcH
	cmp	eax, 2
	ja	SHORT $LN1@Load

; 84   : 	{
; 85   : 		case GAMEMODE_SNIPER:
; 86   : 		case GAMEMODE_500SNIP:
; 87   : 		case GAMEMODE_DM:
; 88   : 			if (this->m_enable)

	cmp	BYTE PTR [esi+24], 0
	je	SHORT $LN1@Load

; 89   : 			{
; 90   : 				stConsole::Out("[TibCrystal] Error - Tiberium Crystal can not be enabled in %s game mode.\n", gzGameMgr->GetGame()->ModeName());

	mov	ecx, DWORD PTR [ecx+40]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+136]
	call	edx
	push	eax
	push	OFFSET ??_C@_0EL@KHBKOJ@?$FLTibCrystal?$FN?5Error?5?9?5Tiberium?5Cr@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 8

; 91   : 				this->m_enable = false;

	mov	BYTE PTR [esi+24], 0
$LN1@Load:

; 92   : 			}
; 93   : 	}
; 94   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+96]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	pop	esi
	pop	ebp
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$0:
	mov	eax, DWORD PTR $T66323[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$1:
	mov	eax, DWORD PTR $T66338[ebp]
	and	eax, 1
	je	$LN31@Load
	and	DWORD PTR $T66338[ebp], -2		; fffffffeH
	lea	ecx, DWORD PTR $T66324[ebp]
	jmp	??1aString@@UAE@XZ
$LN31@Load:
	ret	0
__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$2:
	push	OFFSET ??1aString@@UAE@XZ
	push	3
	push	8
	lea	eax, DWORD PTR _posName$58462[ebp]
	push	eax
	call	??_M@YGXPAXIHP6EX0@Z@Z
	ret	0
__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$3:
	lea	ecx, DWORD PTR $T66329[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load@gzSettingsTibCrystal@@UAEXXZ$4:
	lea	ecx, DWORD PTR _model$58477[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load@gzSettingsTibCrystal@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Load@gzSettingsTibCrystal@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load@gzSettingsTibCrystal@@UAEXXZ ENDP			; gzSettingsTibCrystal::Load
PUBLIC	??_C@_04NPLPABOK@neck?$AA@			; `string'
PUBLIC	??_C@_0BB@NHJNEILC@Invisible_Object?$AA@	; `string'
PUBLIC	?Drop@gzTiberiumCrystal@@QAEXXZ			; gzTiberiumCrystal::Drop
EXTRN	?Attach_To_Object_Bone@nc_PhysicalGameObj@@QAEXPAV1@PBD@Z:PROC ; nc_PhysicalGameObj::Attach_To_Object_Bone
EXTRN	?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A:DWORD ; nc_cNetwork::PServerConnection
;	COMDAT ??_C@_04NPLPABOK@neck?$AA@
; File d:\source code\stgm\stplayer.h
CONST	SEGMENT
??_C@_04NPLPABOK@neck?$AA@ DB 'neck', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@NHJNEILC@Invisible_Object?$AA@
CONST	SEGMENT
??_C@_0BB@NHJNEILC@Invisible_Object?$AA@ DB 'Invisible_Object', 00H ; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
CONST	ENDS
;	COMDAT ?Drop@gzTiberiumCrystal@@QAEXXZ
_TEXT	SEGMENT
?Drop@gzTiberiumCrystal@@QAEXXZ PROC			; gzTiberiumCrystal::Drop, COMDAT
; _this$ = ecx

; 487  : {

	push	ebp
	push	esi
	mov	esi, ecx

; 488  : 	if (this->m_picker && this->m_crystalBoneId == 0)

	xor	ebp, ebp
	cmp	DWORD PTR [esi+76], ebp
	je	$LN1@Drop
	cmp	DWORD PTR [esi+40], ebp
	jne	$LN1@Drop

; 489  : 	{
; 490  : 		nc_PhysicalGameObj *crystalObj = nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalId);

	mov	eax, DWORD PTR [esi+36]
	push	ebx
	push	eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj
	mov	ebx, eax
	add	esp, 4

; 491  : 		if (crystalObj)

	cmp	ebx, ebp
	je	$LN12@Drop

; 492  : 		{
; 493  : 			this->m_dropCount++;

	add	DWORD PTR [esi+52], 1

; 494  : 			this->m_picker->SetTibCrystal(NULL);

	mov	ecx, DWORD PTR [esi+76]
	mov	DWORD PTR [ecx+68], ebp

; 495  : 			if (nc_cNetwork::PServerConnection->RemoteList[this->m_picker->GetPlayerData()->PlayerId])

	mov	edx, DWORD PTR [esi+76]
	mov	eax, DWORD PTR [edx+76]
	mov	edx, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	ecx, DWORD PTR [eax+1884]
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [eax+1352]
	cmp	DWORD PTR [edx+ecx*4], ebp
	je	SHORT $LN3@Drop

; 496  : 				this->NotifyFlagDeletion();

	mov	ecx, esi
	call	?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ ; gzTiberiumCrystal::NotifyFlagDeletion
$LN3@Drop:

; 497  : 			this->m_flag = NULL;
; 498  : 			if (this->m_dropCount >= gzTibCrystalMgr->m_settings->m_dropCountMax)

	mov	edx, DWORD PTR [esi+52]
	mov	DWORD PTR [esi+100], ebp
	mov	eax, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	ecx, DWORD PTR [eax+60]
	cmp	edx, DWORD PTR [ecx+72]
	jb	SHORT $LN2@Drop

; 499  : 			{
; 500  : #ifdef TIBMSG
; 501  : 				DebugLog("[TibCrystal] %d has spoiled because max drop count reached.", this->m_crystalId);
; 502  : #endif
; 503  : 				this->SetDeletePending();

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+12]
	pop	ebx
	mov	ecx, esi
	pop	esi
	pop	ebp
	jmp	edx
$LN2@Drop:
	push	edi

; 504  : 			}
; 505  : 			else
; 506  : 			{
; 507  : 				nc_ScriptableGameObj *boneObj = nc_ObjectLibraryManager::Create_Object("Invisible_Object");

	push	OFFSET ??_C@_0BB@NHJNEILC@Invisible_Object?$AA@
	call	?Create_Object@nc_ObjectLibraryManager@@SAPAVnc_ScriptableGameObj@@PBD@Z ; nc_ObjectLibraryManager::Create_Object
	add	esp, 4
	mov	edi, eax

; 508  : 				boneObj->As_PhysicalGameObj()->Attach_To_Object_Bone(crystalObj, "neck");

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+36]
	push	OFFSET ??_C@_04NPLPABOK@neck?$AA@
	push	ebx
	mov	ecx, edi
	call	edx
	mov	ecx, eax
	call	?Attach_To_Object_Bone@nc_PhysicalGameObj@@QAEXPAV1@PBD@Z ; nc_PhysicalGameObj::Attach_To_Object_Bone

; 509  : 				this->m_crystalBoneId = boneObj->NetworkID;

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

; 510  : 				this->m_dropSpoilCounter = gzTibCrystalMgr->m_settings->m_dropLive;

	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+76]

; 511  : 				this->m_picker = NULL;
; 512  : 				this->m_pickerSoldierId = 0;
; 513  : 				this->m_pickerWeapons.Clear();

	mov	eax, DWORD PTR [esi+84]
	mov	edx, DWORD PTR [eax+4]
	fstp	DWORD PTR [esi+56]
	pop	edi
	lea	ecx, DWORD PTR [esi+84]
	pop	ebx
	mov	DWORD PTR [esi+76], ebp
	mov	DWORD PTR [esi+80], ebp
	pop	esi
	pop	ebp
	jmp	edx
$LN12@Drop:
	pop	ebx
$LN1@Drop:
	pop	esi
	pop	ebp

; 514  : 			}
; 515  : 		}
; 516  : 	}
; 517  : }

	ret	0
?Drop@gzTiberiumCrystal@@QAEXXZ ENDP			; gzTiberiumCrystal::Drop
_TEXT	ENDS
PUBLIC	?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ	; gzTiberiumCrystal::RestoreWeapons
EXTRN	?Select_Next@nc_WeaponBagClass@@QAEXXZ:PROC	; nc_WeaponBagClass::Select_Next
EXTRN	?Add_Weapon@nc_WeaponBagClass@@QAEXPBVnc_WeaponDefinitionClass@@H_N@Z:PROC ; nc_WeaponBagClass::Add_Weapon
; Function compile flags: /Ogtpy
;	COMDAT ?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ
_TEXT	SEGMENT
?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ PROC		; gzTiberiumCrystal::RestoreWeapons, COMDAT
; _this$ = ecx

; 519  : {

	push	esi
	mov	esi, ecx

; 520  : 	if (this->m_picker)

	mov	eax, DWORD PTR [esi+76]
	test	eax, eax
	je	SHORT $LN1@RestoreWea

; 521  : 	{
; 522  : 		nc_WeaponBagClass *wBag = this->m_picker->GetPlayerData()->Owner.Reference->obj->As_SmartGameObj()->WeaponBag;

	mov	eax, DWORD PTR [eax+76]
	mov	ecx, DWORD PTR [eax+20]
	mov	ecx, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+44]
	push	ebx
	push	ebp
	call	eax
	mov	ebp, DWORD PTR [eax+1968]

; 523  : 		for (unsigned int i = 0; i < this->m_pickerWeapons.Count(); i++)

	xor	ebx, ebx
	cmp	DWORD PTR [esi+96], ebx
	jbe	SHORT $LN3@RestoreWea
	push	edi
	xor	edi, edi
	npad	4
$LL5@RestoreWea:

; 524  : 		{
; 525  : 			int bullets = this->m_pickerWeapons[i].Inventory + this->m_pickerWeapons[i].Loaded;

	mov	ecx, DWORD PTR [esi+88]
	lea	eax, DWORD PTR [edi+ecx]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [eax+8]
	add	eax, ecx

; 526  : 			if (this->m_pickerWeapons[i].Inventory == -1)

	cmp	ecx, -1
	jne	SHORT $LN2@RestoreWea

; 527  : 				bullets = -1;

	or	eax, ecx
$LN2@RestoreWea:

; 528  : 			wBag->Add_Weapon(this->m_pickerWeapons[i].WeaponDef, bullets, true);

	mov	edx, DWORD PTR [esi+88]
	push	1
	push	eax
	mov	eax, DWORD PTR [edi+edx]
	push	eax
	mov	ecx, ebp
	call	?Add_Weapon@nc_WeaponBagClass@@QAEXPBVnc_WeaponDefinitionClass@@H_N@Z ; nc_WeaponBagClass::Add_Weapon
	add	ebx, 1
	add	edi, 12					; 0000000cH
	cmp	ebx, DWORD PTR [esi+96]
	jb	SHORT $LL5@RestoreWea
	pop	edi
$LN3@RestoreWea:

; 529  : 		}
; 530  : 
; 531  : 		if (wBag->Vector.Count() > 1)

	cmp	DWORD PTR [ebp+20], 1
	jle	SHORT $LN25@RestoreWea

; 532  : 			wBag->Select_Next();

	mov	ecx, ebp
	pop	ebp
	pop	ebx
	pop	esi
	jmp	?Select_Next@nc_WeaponBagClass@@QAEXXZ	; nc_WeaponBagClass::Select_Next
$LN25@RestoreWea:
	pop	ebp
	pop	ebx
$LN1@RestoreWea:
	pop	esi

; 533  : 	}
; 534  : }

	ret	0
?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ ENDP		; gzTiberiumCrystal::RestoreWeapons
_TEXT	ENDS
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
; File c:\program files (x86)\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	??1?$aVector@PAVaStringData@@@@UAE@XZ		; aVector<aStringData *>::~aVector<aStringData *>
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\avector.h
;	COMDAT ??1?$aVector@PAVaStringData@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@PAVaStringData@@@@UAE@XZ PROC		; aVector<aStringData *>::~aVector<aStringData *>, COMDAT
; _this$ = ecx

; 45   : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 46   : 		this->Clear();

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAVaStringData@@@@6B@
	je	SHORT $LN8@aVector
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN8@aVector:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi

; 47   : 	};

	ret	0
??1?$aVector@PAVaStringData@@@@UAE@XZ ENDP		; aVector<aStringData *>::~aVector<aStringData *>
_TEXT	ENDS
PUBLIC	??_7?$aStringArrayBase@VaString@@@@6B@		; aStringArrayBase<aString>::`vftable'
PUBLIC	??1?$aStringArrayBase@VaString@@@@UAE@XZ	; aStringArrayBase<aString>::~aStringArrayBase<aString>
PUBLIC	??_R4?$aStringArrayBase@VaString@@@@6B@		; aStringArrayBase<aString>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aStringArrayBase@VaString@@@@@8	; aStringArrayBase<aString> `RTTI Type Descriptor'
PUBLIC	??_R3?$aStringArrayBase@VaString@@@@8		; aStringArrayBase<aString>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aStringArrayBase@VaString@@@@8		; aStringArrayBase<aString>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aStringArrayBase@VaString@@@@8	; aStringArrayBase<aString>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Delete@?$aStringArrayBase@VaString@@@@UAEXI@Z	; aStringArrayBase<aString>::Delete
EXTRN	??_E?$aStringArrayBase@VaString@@@@UAEPAXI@Z:PROC ; aStringArrayBase<aString>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aStringArrayBase@VaString@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aStringArrayBase@VaString@@@@8 DD FLAT:??_R0?AV?$aStringArrayBase@VaString@@@@@8 ; aStringArrayBase<aString>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aStringArrayBase@VaString@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aStringArrayBase@VaString@@@@8
rdata$r	SEGMENT
??_R2?$aStringArrayBase@VaString@@@@8 DD FLAT:??_R1A@?0A@EA@?$aStringArrayBase@VaString@@@@8 ; aStringArrayBase<aString>::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$aVector@PAVaStringData@@@@8
rdata$r	ENDS
;	COMDAT ??_R3?$aStringArrayBase@VaString@@@@8
rdata$r	SEGMENT
??_R3?$aStringArrayBase@VaString@@@@8 DD 00H		; aStringArrayBase<aString>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2?$aStringArrayBase@VaString@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aStringArrayBase@VaString@@@@@8
_DATA	SEGMENT
??_R0?AV?$aStringArrayBase@VaString@@@@@8 DD FLAT:??_7type_info@@6B@ ; aStringArrayBase<aString> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aStringArrayBase@VaString@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aStringArrayBase@VaString@@@@6B@
rdata$r	SEGMENT
??_R4?$aStringArrayBase@VaString@@@@6B@ DD 00H		; aStringArrayBase<aString>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aStringArrayBase@VaString@@@@@8
	DD	FLAT:??_R3?$aStringArrayBase@VaString@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aStringArrayBase@VaString@@@@6B@
CONST	SEGMENT
??_7?$aStringArrayBase@VaString@@@@6B@ DD FLAT:??_R4?$aStringArrayBase@VaString@@@@6B@ ; aStringArrayBase<aString>::`vftable'
	DD	FLAT:??_E?$aStringArrayBase@VaString@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z
	DD	FLAT:?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z
	DD	FLAT:?Delete@?$aStringArrayBase@VaString@@@@UAEXI@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1?$aStringArrayBase@VaString@@@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1?$aStringArrayBase@VaString@@@@UAE@XZ$0
__ehfuncinfo$??1?$aStringArrayBase@VaString@@@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1?$aStringArrayBase@VaString@@@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\astring.h
xdata$x	ENDS
;	COMDAT ??1?$aStringArrayBase@VaString@@@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$aStringArrayBase@VaString@@@@UAE@XZ PROC		; aStringArrayBase<aString>::~aStringArrayBase<aString>, COMDAT
; _this$ = ecx

; 76   : 	{

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

; 77   : 		this->Clear();

	call	?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ ; aStringArrayBase<aString>::Clear

; 78   : 	};

	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAVaStringData@@@@6B@
	je	SHORT $LN11@aStringArr
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN11@aStringArr:
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1?$aStringArrayBase@VaString@@@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$aVector@PAVaStringData@@@@UAE@XZ	; aVector<aStringData *>::~aVector<aStringData *>
__ehhandler$??1?$aStringArrayBase@VaString@@@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1?$aStringArrayBase@VaString@@@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1?$aStringArrayBase@VaString@@@@UAE@XZ ENDP		; aStringArrayBase<aString>::~aStringArrayBase<aString>
; Function compile flags: /Ogtpy
;	COMDAT ?Delete@?$aStringArrayBase@VaString@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aStringArrayBase@VaString@@@@UAEXI@Z PROC	; aStringArrayBase<aString>::Delete, COMDAT
; _this$ = ecx

; 110  : 	{

	push	esi
	push	edi

; 111  : 		if (index >= this->m_items)

	mov	edi, DWORD PTR _index$[esp+4]
	mov	esi, ecx
	cmp	edi, DWORD PTR [esi+12]
	jae	SHORT $LN2@Delete@5

; 112  : 			return;
; 113  : 		this->m_vector[index]->DecRef();

	mov	eax, DWORD PTR [esi+4]
	mov	ecx, DWORD PTR [eax+edi*4]
	call	?DecRef@aStringData@@QAEXXZ		; aStringData::DecRef

; 114  : 		this->aVector<aStringData *>::Delete(index);

	push	edi
	mov	ecx, esi
	call	?Delete@?$aVector@PAVaStringData@@@@UAEXI@Z ; aVector<aStringData *>::Delete
$LN2@Delete@5:
	pop	edi
	pop	esi

; 115  : 	};

	ret	4
?Delete@?$aStringArrayBase@VaString@@@@UAEXI@Z ENDP	; aStringArrayBase<aString>::Delete
_TEXT	ENDS
PUBLIC	??1?$aVector@Unc_Vector3@@@@UAE@XZ		; aVector<nc_Vector3>::~aVector<nc_Vector3>
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\avector.h
;	COMDAT ??1?$aVector@Unc_Vector3@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@Unc_Vector3@@@@UAE@XZ PROC			; aVector<nc_Vector3>::~aVector<nc_Vector3>, COMDAT
; _this$ = ecx

; 45   : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 46   : 		this->Clear();

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@Unc_Vector3@@@@6B@
	je	SHORT $LN8@aVector@2
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN8@aVector@2:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi

; 47   : 	};

	ret	0
??1?$aVector@Unc_Vector3@@@@UAE@XZ ENDP			; aVector<nc_Vector3>::~aVector<nc_Vector3>
_TEXT	ENDS
PUBLIC	??1?$aVector@UgzPickerWeaponData@@@@UAE@XZ	; aVector<gzPickerWeaponData>::~aVector<gzPickerWeaponData>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$aVector@UgzPickerWeaponData@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@UgzPickerWeaponData@@@@UAE@XZ PROC		; aVector<gzPickerWeaponData>::~aVector<gzPickerWeaponData>, COMDAT
; _this$ = ecx

; 45   : 	{

	push	esi
	push	edi
	mov	esi, ecx

; 46   : 		this->Clear();

	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@UgzPickerWeaponData@@@@6B@
	je	SHORT $LN8@aVector@3
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN8@aVector@3:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi

; 47   : 	};

	ret	0
??1?$aVector@UgzPickerWeaponData@@@@UAE@XZ ENDP		; aVector<gzPickerWeaponData>::~aVector<gzPickerWeaponData>
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@XZ		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_DebugHeapAllocator@D@std@@QAE@XZ PROC		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	0
??0?$_DebugHeapAllocator@D@std@@QAE@XZ ENDP		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@PAVaStringData@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@PAVaStringData@@@@UAEPAXI@Z PROC		; aVector<aStringData *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAVaStringData@@@@6B@
	je	SHORT $LN6@scalar@4
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], 0
$LN6@scalar@4:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@PAVaStringData@@@@UAEPAXI@Z ENDP		; aVector<aStringData *>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@Unc_Vector3@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@Unc_Vector3@@@@UAEPAXI@Z PROC		; aVector<nc_Vector3>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@Unc_Vector3@@@@6B@
	je	SHORT $LN6@scalar@5
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], 0
$LN6@scalar@5:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@Unc_Vector3@@@@UAEPAXI@Z ENDP		; aVector<nc_Vector3>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@UgzPickerWeaponData@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@UgzPickerWeaponData@@@@UAEPAXI@Z PROC	; aVector<gzPickerWeaponData>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@UgzPickerWeaponData@@@@6B@
	je	SHORT $LN6@scalar@6
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], 0
$LN6@scalar@6:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@6
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@6:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@UgzPickerWeaponData@@@@UAEPAXI@Z ENDP	; aVector<gzPickerWeaponData>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z PROC	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z ENDP	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	??1aStringArray@@UAE@XZ				; aStringArray::~aStringArray
; Function compile flags: /Ogtpy
;	COMDAT ??1aStringArray@@UAE@XZ
_TEXT	SEGMENT
??1aStringArray@@UAE@XZ PROC				; aStringArray::~aStringArray, COMDAT
; _this$ = ecx
	jmp	??1?$aStringArrayBase@VaString@@@@UAE@XZ ; aStringArrayBase<aString>::~aStringArrayBase<aString>
??1aStringArray@@UAE@XZ ENDP				; aStringArray::~aStringArray
_TEXT	ENDS
PUBLIC	??0?$aStringArrayBase@VaString@@@@QAE@XZ	; aStringArrayBase<aString>::aStringArrayBase<aString>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$aStringArrayBase@VaString@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aStringArrayBase@VaString@@@@QAE@XZ PROC		; aStringArrayBase<aString>::aStringArrayBase<aString>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aStringArrayBase@VaString@@@@6B@
	ret	0
??0?$aStringArrayBase@VaString@@@@QAE@XZ ENDP		; aStringArrayBase<aString>::aStringArrayBase<aString>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aStringArrayBase@VaString@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aStringArrayBase@VaString@@@@UAEPAXI@Z PROC	; aStringArrayBase<aString>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$aStringArrayBase@VaString@@@@UAE@XZ ; aStringArrayBase<aString>::~aStringArrayBase<aString>
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@7
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@7:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aStringArrayBase@VaString@@@@UAEPAXI@Z ENDP	; aStringArrayBase<aString>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	__real@bf800000
PUBLIC	??_7gzTiberiumCrystal@@6B@			; gzTiberiumCrystal::`vftable'
PUBLIC	??0gzTiberiumCrystal@@QAE@XZ			; gzTiberiumCrystal::gzTiberiumCrystal
PUBLIC	??_R4gzTiberiumCrystal@@6B@			; gzTiberiumCrystal::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzTiberiumCrystal@@@8			; gzTiberiumCrystal `RTTI Type Descriptor'
PUBLIC	??_R3gzTiberiumCrystal@@8			; gzTiberiumCrystal::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzTiberiumCrystal@@8			; gzTiberiumCrystal::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzTiberiumCrystal@@8		; gzTiberiumCrystal::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@EventHandler@@8			; EventHandler::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVEventHandler@@@8			; EventHandler `RTTI Type Descriptor'
PUBLIC	??_R3EventHandler@@8				; EventHandler::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2EventHandler@@8				; EventHandler::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzBase@@8				; gzBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVgzBase@@@8				; gzBase `RTTI Type Descriptor'
PUBLIC	??_R3gzBase@@8					; gzBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzBase@@8					; gzBase::`RTTI Base Class Array'
PUBLIC	?GetName@gzTiberiumCrystal@@UAEPBDXZ		; gzTiberiumCrystal::GetName
PUBLIC	?Level_Loaded@EventHandler@@UAEXXZ		; EventHandler::Level_Loaded
PUBLIC	?Think@gzTiberiumCrystal@@UAEXXZ		; gzTiberiumCrystal::Think
PUBLIC	?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ; EventHandler::Player_Joined
PUBLIC	?Player_Left@gzTiberiumCrystal@@UAEXAAVgzEventPlayerBase@@@Z ; gzTiberiumCrystal::Player_Left
PUBLIC	?Player_BandwidthChange@EventHandler@@UAEXAAVgzEventPlayerBandwidth@@@Z ; EventHandler::Player_BandwidthChange
PUBLIC	?Player_Suicide@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ; EventHandler::Player_Suicide
PUBLIC	?Player_TeamChange@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ; EventHandler::Player_TeamChange
PUBLIC	?Player_Chat@EventHandler@@UAEXAAVgzEventPlayerChat@@@Z ; EventHandler::Player_Chat
PUBLIC	?Player_Radio@EventHandler@@UAEXAAVgzEventPlayerRadio@@@Z ; EventHandler::Player_Radio
PUBLIC	?Player_SerialHash@EventHandler@@UAEXAAVgzEventPlayerSerialHash@@@Z ; EventHandler::Player_SerialHash
PUBLIC	?Player_RawDamage@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z ; EventHandler::Player_RawDamage
PUBLIC	?Object_Created@EventHandler@@UAEXAAVgzEventObjectCreate@@@Z ; EventHandler::Object_Created
PUBLIC	?Object_Init@EventHandler@@UAEXAAVgzEventObjectInit@@@Z ; EventHandler::Object_Init
PUBLIC	?Object_Damaged@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z ; EventHandler::Object_Damaged
PUBLIC	?Object_Killed@gzTiberiumCrystal@@UAEXAAVgzEventObjectKill@@@Z ; gzTiberiumCrystal::Object_Killed
PUBLIC	?Object_Transition@gzTiberiumCrystal@@UAEXAAVgzEventObjectTransition@@@Z ; gzTiberiumCrystal::Object_Transition
PUBLIC	?Object_JumpStart@EventHandler@@UAEXAAVgzEventObjectJump@@@Z ; EventHandler::Object_JumpStart
PUBLIC	?Object_JumpComplete@EventHandler@@UAEXAAVgzEventObjectJump@@@Z ; EventHandler::Object_JumpComplete
PUBLIC	?Object_SoldierSquished@EventHandler@@UAEXAAVgzEventObjectKill@@@Z ; EventHandler::Object_SoldierSquished
PUBLIC	?Object_C4Creation@EventHandler@@UAEXAAVgzEventObjectC4Creation@@@Z ; EventHandler::Object_C4Creation
PUBLIC	?Object_C4Detonate@EventHandler@@UAEXAAVgzEventObjectC4Detonation@@@Z ; EventHandler::Object_C4Detonate
PUBLIC	?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z ; gzTiberiumCrystal::Object_PowerupGrant
PUBLIC	?Object_Fire@EventHandler@@UAEXAAVgzEventObjectFire@@@Z ; EventHandler::Object_Fire
PUBLIC	?Object_FlipKill@EventHandler@@UAEXAAVgzEventObjectFlipKill@@@Z ; EventHandler::Object_FlipKill
PUBLIC	?Net_WolPage@EventHandler@@UAEXAAVgzEventNetWolPage@@@Z ; EventHandler::Net_WolPage
PUBLIC	?Net_SerialAuth@EventHandler@@UAEXAAVgzEventNetSerialAuth@@@Z ; EventHandler::Net_SerialAuth
PUBLIC	?Bhs_Poke@EventHandler@@UAEXAAVgzEventBhsPoke@@@Z ; EventHandler::Bhs_Poke
PUBLIC	?Bhs_Version@EventHandler@@UAEXAAVgzEventBhsVersion@@@Z ; EventHandler::Bhs_Version
EXTRN	??1EventHandler@@UAE@XZ:PROC			; EventHandler::~EventHandler
EXTRN	?SetChildOwner@gzBase@@QAEXPAVgzManagerEvent@@@Z:PROC ; gzBase::SetChildOwner
EXTRN	?RegisterEvent@EventHandler@@QAEXHH@Z:PROC	; EventHandler::RegisterEvent
EXTRN	??0EventHandler@@QAE@XZ:PROC			; EventHandler::EventHandler
EXTRN	??_EgzTiberiumCrystal@@UAEPAXI@Z:PROC		; gzTiberiumCrystal::`vector deleting destructor'
EXTRN	?SetDeletePending@gzBase@@UAEXXZ:PROC		; gzBase::SetDeletePending
;	COMDAT ??_R2gzBase@@8
rdata$r	SEGMENT
??_R2gzBase@@8 DD FLAT:??_R1A@?0A@EA@gzBase@@8		; gzBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3gzBase@@8
rdata$r	SEGMENT
??_R3gzBase@@8 DD 00H					; gzBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzBase@@@8
_DATA	SEGMENT
??_R0?AVgzBase@@@8 DD FLAT:??_7type_info@@6B@		; gzBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@gzBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzBase@@8 DD FLAT:??_R0?AVgzBase@@@8	; gzBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R2EventHandler@@8
rdata$r	SEGMENT
??_R2EventHandler@@8 DD FLAT:??_R1A@?0A@EA@EventHandler@@8 ; EventHandler::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3EventHandler@@8
rdata$r	SEGMENT
??_R3EventHandler@@8 DD 00H				; EventHandler::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2EventHandler@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVEventHandler@@@8
_DATA	SEGMENT
??_R0?AVEventHandler@@@8 DD FLAT:??_7type_info@@6B@	; EventHandler `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVEventHandler@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@EventHandler@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@EventHandler@@8 DD FLAT:??_R0?AVEventHandler@@@8 ; EventHandler::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3EventHandler@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@gzTiberiumCrystal@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzTiberiumCrystal@@8 DD FLAT:??_R0?AVgzTiberiumCrystal@@@8 ; gzTiberiumCrystal::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzTiberiumCrystal@@8
rdata$r	ENDS
;	COMDAT ??_R2gzTiberiumCrystal@@8
rdata$r	SEGMENT
??_R2gzTiberiumCrystal@@8 DD FLAT:??_R1A@?0A@EA@gzTiberiumCrystal@@8 ; gzTiberiumCrystal::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzTiberiumCrystal@@8
rdata$r	SEGMENT
??_R3gzTiberiumCrystal@@8 DD 00H			; gzTiberiumCrystal::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2gzTiberiumCrystal@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzTiberiumCrystal@@@8
_DATA	SEGMENT
??_R0?AVgzTiberiumCrystal@@@8 DD FLAT:??_7type_info@@6B@ ; gzTiberiumCrystal `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzTiberiumCrystal@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzTiberiumCrystal@@6B@
rdata$r	SEGMENT
??_R4gzTiberiumCrystal@@6B@ DD 00H			; gzTiberiumCrystal::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzTiberiumCrystal@@@8
	DD	FLAT:??_R3gzTiberiumCrystal@@8
rdata$r	ENDS
;	COMDAT __real@bf800000
CONST	SEGMENT
__real@bf800000 DD 0bf800000r			; -1
CONST	ENDS
;	COMDAT ??_7gzTiberiumCrystal@@6B@
CONST	SEGMENT
??_7gzTiberiumCrystal@@6B@ DD FLAT:??_R4gzTiberiumCrystal@@6B@ ; gzTiberiumCrystal::`vftable'
	DD	FLAT:??_EgzTiberiumCrystal@@UAEPAXI@Z
	DD	FLAT:?GetName@gzTiberiumCrystal@@UAEPBDXZ
	DD	FLAT:?Delete@gzTiberiumCrystal@@UAEXXZ
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@EventHandler@@UAEXXZ
	DD	FLAT:?Level_Ended@gzTiberiumCrystal@@UAEXXZ
	DD	FLAT:?Think@gzTiberiumCrystal@@UAEXXZ
	DD	FLAT:?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_Left@gzTiberiumCrystal@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_Purchase@gzTiberiumCrystal@@UAEXAAVgzEventPlayerPurchase@@@Z
	DD	FLAT:?Player_BandwidthChange@EventHandler@@UAEXAAVgzEventPlayerBandwidth@@@Z
	DD	FLAT:?Player_Suicide@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_TeamChange@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_Chat@EventHandler@@UAEXAAVgzEventPlayerChat@@@Z
	DD	FLAT:?Player_Radio@EventHandler@@UAEXAAVgzEventPlayerRadio@@@Z
	DD	FLAT:?Player_SerialHash@EventHandler@@UAEXAAVgzEventPlayerSerialHash@@@Z
	DD	FLAT:?Player_RawDamage@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z
	DD	FLAT:?Object_Created@EventHandler@@UAEXAAVgzEventObjectCreate@@@Z
	DD	FLAT:?Object_Init@EventHandler@@UAEXAAVgzEventObjectInit@@@Z
	DD	FLAT:?Object_Damaged@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z
	DD	FLAT:?Object_Killed@gzTiberiumCrystal@@UAEXAAVgzEventObjectKill@@@Z
	DD	FLAT:?Object_Transition@gzTiberiumCrystal@@UAEXAAVgzEventObjectTransition@@@Z
	DD	FLAT:?Object_JumpStart@EventHandler@@UAEXAAVgzEventObjectJump@@@Z
	DD	FLAT:?Object_JumpComplete@EventHandler@@UAEXAAVgzEventObjectJump@@@Z
	DD	FLAT:?Object_SoldierSquished@EventHandler@@UAEXAAVgzEventObjectKill@@@Z
	DD	FLAT:?Object_C4Creation@EventHandler@@UAEXAAVgzEventObjectC4Creation@@@Z
	DD	FLAT:?Object_C4Detonate@EventHandler@@UAEXAAVgzEventObjectC4Detonation@@@Z
	DD	FLAT:?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z
	DD	FLAT:?Object_Fire@EventHandler@@UAEXAAVgzEventObjectFire@@@Z
	DD	FLAT:?Object_FlipKill@EventHandler@@UAEXAAVgzEventObjectFlipKill@@@Z
	DD	FLAT:?Net_WolPage@EventHandler@@UAEXAAVgzEventNetWolPage@@@Z
	DD	FLAT:?Net_SerialAuth@EventHandler@@UAEXAAVgzEventNetSerialAuth@@@Z
	DD	FLAT:?Bhs_Poke@EventHandler@@UAEXAAVgzEventBhsPoke@@@Z
	DD	FLAT:?Bhs_Version@EventHandler@@UAEXAAVgzEventBhsVersion@@@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0gzTiberiumCrystal@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzTiberiumCrystal@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzTiberiumCrystal@@QAE@XZ$1
__ehfuncinfo$??0gzTiberiumCrystal@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0gzTiberiumCrystal@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
xdata$x	ENDS
;	COMDAT ??0gzTiberiumCrystal@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0gzTiberiumCrystal@@QAE@XZ PROC			; gzTiberiumCrystal::gzTiberiumCrystal, COMDAT
; _this$ = ecx

; 185  : {

	push	-1
	push	__ehhandler$??0gzTiberiumCrystal@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+28], esi
	call	??0EventHandler@@QAE@XZ			; EventHandler::EventHandler
	xor	ebx, ebx
	mov	DWORD PTR [esi], OFFSET ??_7gzTiberiumCrystal@@6B@
	mov	DWORD PTR __$EHRec$[esp+36], ebx
	mov	DWORD PTR [esi+84], OFFSET ??_7?$aVector@UgzPickerWeaponData@@@@6B@
	mov	DWORD PTR [esi+88], ebx
	mov	DWORD PTR [esi+92], ebx
	mov	DWORD PTR [esi+96], ebx

; 186  : 	this->RegisterEvent(EVT_GAME_THINK);

	push	ebx
	push	4098					; 00001002H
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+44], 1
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 187  : 	this->RegisterEvent(EVT_GAME_LEVEL_ENDED);

	push	ebx
	push	4097					; 00001001H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 188  : 	this->RegisterEvent(EVT_PLAYER_LEFT);

	push	ebx
	push	8193					; 00002001H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 189  : 	this->RegisterEvent(EVT_PLAYER_PURCHASE);

	push	ebx
	push	8201					; 00002009H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 190  : 	this->RegisterEvent(EVT_OBJECT_KILL);

	push	ebx
	push	12291					; 00003003H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 191  : 	this->RegisterEvent(EVT_OBJECT_TRANSITION, 1);

	push	1
	push	12293					; 00003005H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 192  : 	this->RegisterEvent(EVT_OBJECT_POWERUP_GRANT);

	push	ebx
	push	12304					; 00003010H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 193  : 
; 194  : 	this->SetChildOwner(gzTibCrystalMgr);

	mov	eax, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	cmp	eax, ebx
	je	SHORT $LN6@gzTiberium
	add	eax, 36					; 00000024H
	jmp	SHORT $LN7@gzTiberium
$LN6@gzTiberium:
	xor	eax, eax
$LN7@gzTiberium:
	push	eax
	mov	ecx, esi
	call	?SetChildOwner@gzBase@@QAEXPAVgzManagerEvent@@@Z ; gzBase::SetChildOwner

; 195  : 
; 196  : 	this->m_crystalId			= 0;
; 197  : 	this->m_crystalBoneId		= 0;
; 198  : 	this->m_posId				= -1;
; 199  : 	this->m_state				= 0;
; 200  : 	this->m_dropCount			= 0;
; 201  : 	this->m_dropSpoilCounter	= -1.0f;

	fld	DWORD PTR __real@bf800000
	fstp	DWORD PTR [esi+56]
	mov	DWORD PTR [esi+36], ebx

; 202  : 	this->m_damagePickerCounter	= 0.0f;

	fldz
	mov	DWORD PTR [esi+40], ebx
	fst	DWORD PTR [esi+60]
	mov	DWORD PTR [esi+48], ebx

; 203  : 	this->m_liveCounter			= 0.0f;

	fst	DWORD PTR [esi+64]
	mov	DWORD PTR [esi+52], ebx

; 204  : 	this->m_nextGrowCounter		= 0.0f;
; 205  : 	this->m_harvestable			= false;

	mov	BYTE PTR [esi+72], bl
	fstp	DWORD PTR [esi+68]

; 206  : 	this->m_picker				= NULL;

	mov	DWORD PTR [esi+76], ebx

; 207  : 	this->m_pickerSoldierId		= 0;

	mov	DWORD PTR [esi+80], ebx
	mov	DWORD PTR [esi+44], -1
	lea	edi, DWORD PTR [esi+108]

; 208  : 
; 209  : #if VERC(1, 0, 1)
; 210  : 	for (int i = 1; i <= 127; i++)
; 211  : 		this->m_pickupBlockCounter[i] = 0.0f;

	xor	eax, eax
	mov	ecx, 127				; 0000007fH
	rep stosd

; 212  : #endif
; 213  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzTiberiumCrystal@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__unwindfunclet$??0gzTiberiumCrystal@@QAE@XZ$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 84					; 00000054H
	jmp	??1?$aVector@UgzPickerWeaponData@@@@UAE@XZ ; aVector<gzPickerWeaponData>::~aVector<gzPickerWeaponData>
__ehhandler$??0gzTiberiumCrystal@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0gzTiberiumCrystal@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzTiberiumCrystal@@QAE@XZ ENDP			; gzTiberiumCrystal::gzTiberiumCrystal
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.h
;	COMDAT ?Level_Loaded@EventHandler@@UAEXXZ
_TEXT	SEGMENT
?Level_Loaded@EventHandler@@UAEXXZ PROC			; EventHandler::Level_Loaded, COMDAT
; _this$ = ecx

; 62   : 	virtual void Level_Loaded()	{ };

	ret	0
?Level_Loaded@EventHandler@@UAEXXZ ENDP			; EventHandler::Level_Loaded
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z PROC ; EventHandler::Player_Joined, COMDAT
; _this$ = ecx

; 67   : 	virtual void Player_Joined(gzEventPlayerBase &) { };

	ret	4
?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ENDP ; EventHandler::Player_Joined
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_BandwidthChange@EventHandler@@UAEXAAVgzEventPlayerBandwidth@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_BandwidthChange@EventHandler@@UAEXAAVgzEventPlayerBandwidth@@@Z PROC ; EventHandler::Player_BandwidthChange, COMDAT
; _this$ = ecx

; 70   : 	virtual void Player_BandwidthChange(gzEventPlayerBandwidth &) { };

	ret	4
?Player_BandwidthChange@EventHandler@@UAEXAAVgzEventPlayerBandwidth@@@Z ENDP ; EventHandler::Player_BandwidthChange
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_Suicide@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_Suicide@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z PROC ; EventHandler::Player_Suicide, COMDAT
; _this$ = ecx

; 71   : 	virtual void Player_Suicide(gzEventPlayerBase &) { };

	ret	4
?Player_Suicide@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ENDP ; EventHandler::Player_Suicide
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_TeamChange@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_TeamChange@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z PROC ; EventHandler::Player_TeamChange, COMDAT
; _this$ = ecx

; 72   : 	virtual void Player_TeamChange(gzEventPlayerBase &) { };

	ret	4
?Player_TeamChange@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ENDP ; EventHandler::Player_TeamChange
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_Chat@EventHandler@@UAEXAAVgzEventPlayerChat@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_Chat@EventHandler@@UAEXAAVgzEventPlayerChat@@@Z PROC ; EventHandler::Player_Chat, COMDAT
; _this$ = ecx

; 73   : 	virtual void Player_Chat(gzEventPlayerChat &) { };

	ret	4
?Player_Chat@EventHandler@@UAEXAAVgzEventPlayerChat@@@Z ENDP ; EventHandler::Player_Chat
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_Radio@EventHandler@@UAEXAAVgzEventPlayerRadio@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_Radio@EventHandler@@UAEXAAVgzEventPlayerRadio@@@Z PROC ; EventHandler::Player_Radio, COMDAT
; _this$ = ecx

; 74   : 	virtual void Player_Radio(gzEventPlayerRadio &) { };

	ret	4
?Player_Radio@EventHandler@@UAEXAAVgzEventPlayerRadio@@@Z ENDP ; EventHandler::Player_Radio
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_SerialHash@EventHandler@@UAEXAAVgzEventPlayerSerialHash@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_SerialHash@EventHandler@@UAEXAAVgzEventPlayerSerialHash@@@Z PROC ; EventHandler::Player_SerialHash, COMDAT
; _this$ = ecx

; 75   : 	virtual void Player_SerialHash(gzEventPlayerSerialHash &) { };

	ret	4
?Player_SerialHash@EventHandler@@UAEXAAVgzEventPlayerSerialHash@@@Z ENDP ; EventHandler::Player_SerialHash
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_RawDamage@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_RawDamage@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z PROC ; EventHandler::Player_RawDamage, COMDAT
; _this$ = ecx

; 76   : 	virtual void Player_RawDamage(gzEventObjectDamage &) { };

	ret	4
?Player_RawDamage@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z ENDP ; EventHandler::Player_RawDamage
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Created@EventHandler@@UAEXAAVgzEventObjectCreate@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_Created@EventHandler@@UAEXAAVgzEventObjectCreate@@@Z PROC ; EventHandler::Object_Created, COMDAT
; _this$ = ecx

; 79   : 	virtual void Object_Created(gzEventObjectCreate &) { };

	ret	4
?Object_Created@EventHandler@@UAEXAAVgzEventObjectCreate@@@Z ENDP ; EventHandler::Object_Created
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Init@EventHandler@@UAEXAAVgzEventObjectInit@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_Init@EventHandler@@UAEXAAVgzEventObjectInit@@@Z PROC ; EventHandler::Object_Init, COMDAT
; _this$ = ecx

; 80   : 	virtual void Object_Init(gzEventObjectInit &) { };

	ret	4
?Object_Init@EventHandler@@UAEXAAVgzEventObjectInit@@@Z ENDP ; EventHandler::Object_Init
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Damaged@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_Damaged@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z PROC ; EventHandler::Object_Damaged, COMDAT
; _this$ = ecx

; 81   : 	virtual void Object_Damaged(gzEventObjectDamage &) { };

	ret	4
?Object_Damaged@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z ENDP ; EventHandler::Object_Damaged
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_JumpStart@EventHandler@@UAEXAAVgzEventObjectJump@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_JumpStart@EventHandler@@UAEXAAVgzEventObjectJump@@@Z PROC ; EventHandler::Object_JumpStart, COMDAT
; _this$ = ecx

; 84   : 	virtual void Object_JumpStart(gzEventObjectJump &) { };

	ret	4
?Object_JumpStart@EventHandler@@UAEXAAVgzEventObjectJump@@@Z ENDP ; EventHandler::Object_JumpStart
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_JumpComplete@EventHandler@@UAEXAAVgzEventObjectJump@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_JumpComplete@EventHandler@@UAEXAAVgzEventObjectJump@@@Z PROC ; EventHandler::Object_JumpComplete, COMDAT
; _this$ = ecx

; 85   : 	virtual void Object_JumpComplete(gzEventObjectJump &) { };

	ret	4
?Object_JumpComplete@EventHandler@@UAEXAAVgzEventObjectJump@@@Z ENDP ; EventHandler::Object_JumpComplete
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_SoldierSquished@EventHandler@@UAEXAAVgzEventObjectKill@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_SoldierSquished@EventHandler@@UAEXAAVgzEventObjectKill@@@Z PROC ; EventHandler::Object_SoldierSquished, COMDAT
; _this$ = ecx

; 86   : 	virtual void Object_SoldierSquished(gzEventObjectKill &) { };

	ret	4
?Object_SoldierSquished@EventHandler@@UAEXAAVgzEventObjectKill@@@Z ENDP ; EventHandler::Object_SoldierSquished
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_C4Creation@EventHandler@@UAEXAAVgzEventObjectC4Creation@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_C4Creation@EventHandler@@UAEXAAVgzEventObjectC4Creation@@@Z PROC ; EventHandler::Object_C4Creation, COMDAT
; _this$ = ecx

; 87   : 	virtual void Object_C4Creation(gzEventObjectC4Creation &) { };

	ret	4
?Object_C4Creation@EventHandler@@UAEXAAVgzEventObjectC4Creation@@@Z ENDP ; EventHandler::Object_C4Creation
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_C4Detonate@EventHandler@@UAEXAAVgzEventObjectC4Detonation@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_C4Detonate@EventHandler@@UAEXAAVgzEventObjectC4Detonation@@@Z PROC ; EventHandler::Object_C4Detonate, COMDAT
; _this$ = ecx

; 88   : 	virtual void Object_C4Detonate(gzEventObjectC4Detonation &) { };

	ret	4
?Object_C4Detonate@EventHandler@@UAEXAAVgzEventObjectC4Detonation@@@Z ENDP ; EventHandler::Object_C4Detonate
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Fire@EventHandler@@UAEXAAVgzEventObjectFire@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_Fire@EventHandler@@UAEXAAVgzEventObjectFire@@@Z PROC ; EventHandler::Object_Fire, COMDAT
; _this$ = ecx

; 90   : 	virtual void Object_Fire(gzEventObjectFire &) { };

	ret	4
?Object_Fire@EventHandler@@UAEXAAVgzEventObjectFire@@@Z ENDP ; EventHandler::Object_Fire
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_FlipKill@EventHandler@@UAEXAAVgzEventObjectFlipKill@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_FlipKill@EventHandler@@UAEXAAVgzEventObjectFlipKill@@@Z PROC ; EventHandler::Object_FlipKill, COMDAT
; _this$ = ecx

; 91   : 	virtual void Object_FlipKill(gzEventObjectFlipKill &) { };

	ret	4
?Object_FlipKill@EventHandler@@UAEXAAVgzEventObjectFlipKill@@@Z ENDP ; EventHandler::Object_FlipKill
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Net_WolPage@EventHandler@@UAEXAAVgzEventNetWolPage@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Net_WolPage@EventHandler@@UAEXAAVgzEventNetWolPage@@@Z PROC ; EventHandler::Net_WolPage, COMDAT
; _this$ = ecx

; 94   : 	virtual void Net_WolPage(gzEventNetWolPage &) { };

	ret	4
?Net_WolPage@EventHandler@@UAEXAAVgzEventNetWolPage@@@Z ENDP ; EventHandler::Net_WolPage
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Net_SerialAuth@EventHandler@@UAEXAAVgzEventNetSerialAuth@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Net_SerialAuth@EventHandler@@UAEXAAVgzEventNetSerialAuth@@@Z PROC ; EventHandler::Net_SerialAuth, COMDAT
; _this$ = ecx

; 95   : 	virtual void Net_SerialAuth(gzEventNetSerialAuth &) { };

	ret	4
?Net_SerialAuth@EventHandler@@UAEXAAVgzEventNetSerialAuth@@@Z ENDP ; EventHandler::Net_SerialAuth
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Bhs_Poke@EventHandler@@UAEXAAVgzEventBhsPoke@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Bhs_Poke@EventHandler@@UAEXAAVgzEventBhsPoke@@@Z PROC	; EventHandler::Bhs_Poke, COMDAT
; _this$ = ecx

; 98   : 	virtual void Bhs_Poke(gzEventBhsPoke &) { };

	ret	4
?Bhs_Poke@EventHandler@@UAEXAAVgzEventBhsPoke@@@Z ENDP	; EventHandler::Bhs_Poke
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Bhs_Version@EventHandler@@UAEXAAVgzEventBhsVersion@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Bhs_Version@EventHandler@@UAEXAAVgzEventBhsVersion@@@Z PROC ; EventHandler::Bhs_Version, COMDAT
; _this$ = ecx

; 99   : 	virtual void Bhs_Version(gzEventBhsVersion &) { };

	ret	4
?Bhs_Version@EventHandler@@UAEXAAVgzEventBhsVersion@@@Z ENDP ; EventHandler::Bhs_Version
_TEXT	ENDS
PUBLIC	??_C@_0BC@OKMMPIJO@gzTiberiumCrystal?$AA@	; `string'
;	COMDAT ??_C@_0BC@OKMMPIJO@gzTiberiumCrystal?$AA@
; File d:\source code\stgm\sttibcrystal.h
CONST	SEGMENT
??_C@_0BC@OKMMPIJO@gzTiberiumCrystal?$AA@ DB 'gzTiberiumCrystal', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzTiberiumCrystal@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzTiberiumCrystal@@UAEPBDXZ PROC		; gzTiberiumCrystal::GetName, COMDAT
; _this$ = ecx

; 82   : 		return "gzTiberiumCrystal";

	mov	eax, OFFSET ??_C@_0BC@OKMMPIJO@gzTiberiumCrystal?$AA@

; 83   : 	};

	ret	0
?GetName@gzTiberiumCrystal@@UAEPBDXZ ENDP		; gzTiberiumCrystal::GetName
_TEXT	ENDS
PUBLIC	??1gzTiberiumCrystal@@UAE@XZ			; gzTiberiumCrystal::~gzTiberiumCrystal
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1gzTiberiumCrystal@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1gzTiberiumCrystal@@UAE@XZ$0
__ehfuncinfo$??1gzTiberiumCrystal@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1gzTiberiumCrystal@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1gzTiberiumCrystal@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1gzTiberiumCrystal@@UAE@XZ PROC			; gzTiberiumCrystal::~gzTiberiumCrystal, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1gzTiberiumCrystal@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	xor	edi, edi
	cmp	DWORD PTR [esi+88], edi
	mov	DWORD PTR __$EHRec$[esp+32], edi
	mov	DWORD PTR [esi+84], OFFSET ??_7?$aVector@UgzPickerWeaponData@@@@6B@
	je	SHORT $LN7@gzTiberium@2
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+88]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+88], edi
$LN7@gzTiberium@2:
	mov	ecx, esi
	mov	DWORD PTR [esi+92], edi
	mov	DWORD PTR [esi+96], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1gzTiberiumCrystal@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__ehhandler$??1gzTiberiumCrystal@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1gzTiberiumCrystal@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1gzTiberiumCrystal@@UAE@XZ ENDP			; gzTiberiumCrystal::~gzTiberiumCrystal
PUBLIC	??_C@_05IKBANCEK@Earth?$AA@			; `string'
PUBLIC	??_C@_0FL@LGLEBAI@?$FLTibCrystal?$FN?3?5The?5life?5of?5Tiberi@ ; `string'
EXTRN	?gzCommands@@3PAUnc_ScriptCommands@@A:DWORD	; gzCommands
EXTRN	?stRandom@@3VaRandom@@A:QWORD			; stRandom
EXTRN	?Set_Model_By_Name@nc_PhysClass@@QAEXPBD@Z:PROC	; nc_PhysClass::Set_Model_By_Name
EXTRN	?PagePlayer@@YAXHPBDZZ:PROC			; PagePlayer
EXTRN	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ:PROC ; gzPlayer::GetSoldier
EXTRN	?SubFrameTime@@YAXAAM_N@Z:PROC			; SubFrameTime
;	COMDAT ??_C@_05IKBANCEK@Earth?$AA@
; File d:\source code\stgm\stplayer.h
CONST	SEGMENT
??_C@_05IKBANCEK@Earth?$AA@ DB 'Earth', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0FL@LGLEBAI@?$FLTibCrystal?$FN?3?5The?5life?5of?5Tiberi@
CONST	SEGMENT
??_C@_0FL@LGLEBAI@?$FLTibCrystal?$FN?3?5The?5life?5of?5Tiberi@ DB '[TibCr'
	DB	'ystal]: The life of Tiberium Crystal has ended because it has'
	DB	' been exposed too long.', 00H		; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Think@gzTiberiumCrystal@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzTiberiumCrystal@@UAEXXZ$0
__ehfuncinfo$?Think@gzTiberiumCrystal@@UAEXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Think@gzTiberiumCrystal@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
xdata$x	ENDS
;	COMDAT ?Think@gzTiberiumCrystal@@UAEXXZ
_TEXT	SEGMENT
tv482 = -24						; size = 4
$T66846 = -20						; size = 8
__$EHRec$ = -12						; size = 12
?Think@gzTiberiumCrystal@@UAEXXZ PROC			; gzTiberiumCrystal::Think, COMDAT
; _this$ = ecx

; 236  : {

	push	-1
	mov	eax, DWORD PTR fs:0
	push	__ehhandler$?Think@gzTiberiumCrystal@@UAEXXZ
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	ebx
	push	ebp
	push	esi
	mov	esi, ecx

; 237  : 
; 238  : #if VERC(1, 0, 1)
; 239  : 		for (int i = 1; i <= 127; i++)

	mov	ebp, 127				; 0000007fH
	push	edi
	lea	edi, DWORD PTR [esi+108]
	lea	ebx, DWORD PTR [ebp-126]
	npad	7
$LL62@Think:

; 240  : 			SubFrameTime(this->m_pickupBlockCounter[i], this->m_pickupBlockCounter[i] >= 0.0f);

	fldz
	fcomp	DWORD PTR [edi]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $LN22@Think
	mov	al, bl
	jmp	SHORT $LN23@Think
$LN22@Think:
	xor	al, al
$LN23@Think:
	push	eax
	push	edi
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime
	add	esp, 8
	add	edi, 4
	sub	ebp, ebx
	jne	SHORT $LL62@Think

; 241  : #endif
; 242  : 
; 243  : 	SubFrameTime(this->m_liveCounter, (this->m_liveCounter >= 0.0f));

	fldz
	lea	edi, DWORD PTR [esi+64]
	fcomp	DWORD PTR [edi]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $LN24@Think
	mov	al, bl
	jmp	SHORT $LN25@Think
$LN24@Think:
	xor	al, al
$LN25@Think:
	push	eax
	push	edi
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 244  : 	if (this->m_liveCounter < 0.0f)

	fldz
	fcom	DWORD PTR [edi]
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN16@Think

; 245  : 	{
; 246  : 		if (this->GetPicker())

	mov	eax, DWORD PTR [esi+76]
	fstp	ST(0)
	test	eax, eax
	je	SHORT $LN14@Think

; 247  : 		{
; 248  : 			this->m_picker->SetTibCrystal(NULL);

	mov	DWORD PTR [eax+68], 0

; 249  : 			if (this->GetPicker()->GetSoldier())

	mov	ecx, DWORD PTR [esi+76]
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier
	test	eax, eax
	je	SHORT $LN14@Think

; 250  : 				this->RestoreWeapons();

	mov	ecx, esi
	call	?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ ; gzTiberiumCrystal::RestoreWeapons
$LN14@Think:

; 251  : 		}
; 252  : #if VERC(1, 0, 1)
; 253  : 		if (this->m_picker != NULL)

	mov	eax, DWORD PTR [esi+76]
	test	eax, eax
	je	SHORT $LN13@Think

; 254  : 			PagePlayer(this->m_picker->GetPlayerData()->PlayerId, "[TibCrystal]: The life of Tiberium Crystal has ended because it has been exposed too long.");

	mov	eax, DWORD PTR [eax+76]
	mov	ecx, DWORD PTR [eax+1884]
	push	OFFSET ??_C@_0FL@LGLEBAI@?$FLTibCrystal?$FN?3?5The?5life?5of?5Tiberi@
	push	ecx
	call	?PagePlayer@@YAXHPBDZZ			; PagePlayer
	add	esp, 8
$LN13@Think:

; 255  : #endif
; 256  : 		this->NotifyFlagDeletion();

	mov	ecx, esi
	call	?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ ; gzTiberiumCrystal::NotifyFlagDeletion

; 257  : 		this->SetDeletePending();
; 258  : #ifdef TIBMSG
; 259  : 		DebugLog("[TibCrystal] Life for %d has ended.", this->m_crystalId);
; 260  : #endif
; 261  : 	}
; 262  : 	else

	jmp	$LN70@Think
$LN16@Think:

; 263  : 	{
; 264  : 		SubFrameTime(this->m_nextGrowCounter, (this->m_nextGrowCounter >= 0.0f));

	fcomp	DWORD PTR [esi+68]
	lea	ebp, DWORD PTR [esi+68]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $LN26@Think
	mov	al, bl
	jmp	SHORT $LN27@Think
$LN26@Think:
	xor	al, al
$LN27@Think:
	push	eax
	push	ebp
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 265  : 		if (this->m_nextGrowCounter < 0.0f)

	fldz
	fcomp	DWORD PTR [ebp]
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	$LN65@Think

; 266  : 		{
; 267  : 			if (this->m_state < gzTibCrystalMgr->m_settings->m_modelList.Count())

	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx+60]
	mov	eax, DWORD PTR [edx+48]
	cmp	DWORD PTR [esi+48], eax
	jae	$LN65@Think

; 268  : 			{
; 269  : 				nc_PhysicalGameObj *crystalObj = nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalId);

	mov	eax, DWORD PTR [esi+36]
	push	eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj
	mov	edi, eax
	add	esp, 4

; 270  : 				if (crystalObj)

	test	edi, edi
	je	$LN65@Think

; 271  : 				{
; 272  : 					crystalObj->Physics->Set_Model_By_Name(gzTibCrystalMgr->m_settings->m_modelList[this->m_state]);

	mov	ecx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	push	ecx
	mov	ecx, DWORD PTR [eax+60]
	lea	edx, DWORD PTR $T66846[esp+44]
	push	edx
	add	ecx, 36					; 00000024H
	call	??A?$aStringArrayBase@VaString@@@@QAE?AVaString@@I@Z ; aStringArrayBase<aString>::operator[]
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+48], 0
	je	SHORT $LN45@Think
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN46@Think
$LN45@Think:
	xor	eax, eax
$LN46@Think:
	mov	ecx, DWORD PTR [edi+1908]
	push	eax
	call	?Set_Model_By_Name@nc_PhysClass@@QAEXPBD@Z ; nc_PhysClass::Set_Model_By_Name
	lea	ecx, DWORD PTR $T66846[esp+40]
	mov	DWORD PTR __$EHRec$[esp+48], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 273  : 					crystalObj->Set_Object_Dirty_Bit(nc_DB_RARE, true);

	mov	edx, DWORD PTR [edi+8]
	mov	eax, DWORD PTR [edx+56]
	lea	ecx, DWORD PTR [edi+8]
	push	ebx
	push	7
	call	eax

; 274  : 					this->m_nextGrowCounter = (float)stRandom.GetInt(gzTibCrystalMgr->m_settings->m_growMin, gzTibCrystalMgr->m_settings->m_growMax);

	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	eax, DWORD PTR [ecx+60]
	mov	edx, DWORD PTR [eax+64]
	mov	eax, DWORD PTR [eax+60]
	push	edx
	push	eax
	mov	ecx, OFFSET ?stRandom@@3VaRandom@@A	; stRandom
	call	?GetInt@aRandom@@QAEJJJ@Z		; aRandom::GetInt

; 275  : 					this->m_state++;

	add	DWORD PTR [esi+48], ebx
	mov	DWORD PTR tv482[esp+40], eax
	fild	DWORD PTR tv482[esp+40]
	mov	eax, DWORD PTR [esi+48]
	fstp	DWORD PTR [ebp]

; 276  : 					if (this->m_state == gzTibCrystalMgr->m_settings->m_modelList.Count())

	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx+60]
	cmp	eax, DWORD PTR [edx+48]
	jne	SHORT $LN65@Think

; 277  : 						this->m_harvestable = true;

	mov	BYTE PTR [esi+72], bl
$LN65@Think:

; 278  : #ifdef TIBMSG
; 279  : 					DebugLog("[TibCrystal] %d has grown to level: %d/%d [%s]; Harvestable: %d",
; 280  : 						this->m_crystalId,
; 281  : 						this->m_state,
; 282  : 						gzTibCrystalMgr->m_settings->m_modelList.Count(),
; 283  : 						gzTibCrystalMgr->m_settings->m_modelList[this->m_state - 1].GetString(),
; 284  : 						this->m_harvestable
; 285  : 					);
; 286  : #endif
; 287  : 				}
; 288  : 			}
; 289  : 		}
; 290  : 
; 291  : 		if (this->m_picker)

	cmp	DWORD PTR [esi+76], 0
	je	$LN7@Think

; 292  : 		{
; 293  : 			SubFrameTime(this->m_damagePickerCounter, (this->m_damagePickerCounter >= 0.0f));

	fldz
	lea	edi, DWORD PTR [esi+60]
	fcomp	DWORD PTR [edi]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $LN28@Think
	mov	al, bl
	jmp	SHORT $LN29@Think
$LN28@Think:
	xor	al, al
$LN29@Think:
	push	eax
	push	edi
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 294  : 			if (this->m_damagePickerCounter < 0.0f)

	fldz
	fcomp	DWORD PTR [edi]
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN6@Think

; 295  : 			{
; 296  : #ifdef TIBMSG
; 297  : 				DebugLog("[TibCrystal] Applying Tiberium Poison to %ls...", this->m_picker->GetPlayerName().GetString());
; 298  : #endif
; 299  : 				gzCommands->Apply_Damage(this->m_picker->GetPlayerData()->Owner.Reference->obj, gzTibCrystalMgr->m_settings->m_tibPoisonDamage, "Earth", nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalId));

	mov	ecx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [esi+76]
	mov	ebx, DWORD PTR ?gzCommands@@3PAUnc_ScriptCommands@@A ; gzCommands
	mov	ebp, DWORD PTR [eax+76]
	push	ecx
	add	ebx, 616				; 00000268H
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj
	mov	edx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	add	esp, 4
	push	eax
	mov	eax, DWORD PTR [edx+60]
	fld	DWORD PTR [eax+84]
	mov	eax, DWORD PTR [ebx]
	push	OFFSET ??_C@_05IKBANCEK@Earth?$AA@
	push	ecx
	mov	ecx, DWORD PTR [ebp+20]
	fstp	DWORD PTR [esp]
	mov	edx, DWORD PTR [ecx+4]
	push	edx
	call	eax

; 300  : 				this->m_damagePickerCounter = gzTibCrystalMgr->m_settings->m_tibPoisonDamageTime;

	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+80]
	add	esp, 16					; 00000010H
	fstp	DWORD PTR [edi]
$LN6@Think:

; 301  : 			}
; 302  : 
; 303  : 			if (!this->m_picker->GetPlayerData()->Owner.Reference || this->m_picker->GetPlayerData()->Owner.Reference->obj->NetworkID != this->m_pickerSoldierId)

	mov	eax, DWORD PTR [esi+76]
	mov	ecx, DWORD PTR [eax+76]
	mov	eax, DWORD PTR [ecx+20]
	test	eax, eax
	je	SHORT $LN4@Think
	mov	edx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [edx+12]
	cmp	eax, DWORD PTR [esi+80]
	je	SHORT $LN1@Think
$LN4@Think:

; 304  : 			{
; 305  : #ifdef TIBMSG
; 306  : 				DebugLog("[TibCrystal] Soldier of %ls was destroyed without being killed.", this->m_picker->GetPlayerName().GetString());
; 307  : #endif
; 308  : 				this->Drop();

	mov	ecx, esi
	call	?Drop@gzTiberiumCrystal@@QAEXXZ		; gzTiberiumCrystal::Drop
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 330  : 				}
; 331  : 			}
; 332  : 		}
; 333  : 	}
; 334  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	0
$LN7@Think:

; 309  : 			}
; 310  : 
; 311  : 			//SubFrameTime(this->m_clearWeaponsCounter, (this->m_clearWeaponsCounter >= 0.0f));
; 312  : 			//if (this->m_clearWeaponsCounter < 0.0f)
; 313  : 			//{
; 314  : 			//	if (this->m_picker && this->m_picker->GetSoldier())
; 315  : 			//		this->m_picker->GetSoldier()->WeaponBag->Clear_Weapons();
; 316  : 			//	this->m_clearWeaponsCounter = 1.0f;
; 317  : 			//}
; 318  : 		}
; 319  : 		else
; 320  : 		{
; 321  : 			if (this->m_dropSpoilCounter > 1.0f)

	fld1
	lea	edi, DWORD PTR [esi+56]
	fcomp	DWORD PTR [edi]
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN1@Think

; 322  : 			{
; 323  : 				SubFrameTime(this->m_dropSpoilCounter, true);

	push	ebx
	push	edi
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 324  : 				if (this->m_dropSpoilCounter < 0.0f)

	fldz
	fcomp	DWORD PTR [edi]
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN1@Think
$LN70@Think:

; 325  : 				{
; 326  : #ifdef TIBMSG
; 327  : 					DebugLog("[TibCrystal] %d has spoiled.", this->m_crystalId);
; 328  : #endif
; 329  : 					this->SetDeletePending();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+12]
	mov	ecx, esi
	call	eax
$LN1@Think:

; 330  : 				}
; 331  : 			}
; 332  : 		}
; 333  : 	}
; 334  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Think@gzTiberiumCrystal@@UAEXXZ$0:
	lea	ecx, DWORD PTR $T66846[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Think@gzTiberiumCrystal@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Think@gzTiberiumCrystal@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Think@gzTiberiumCrystal@@UAEXXZ ENDP			; gzTiberiumCrystal::Think
; Function compile flags: /Ogtpy
;	COMDAT ?Player_Left@gzTiberiumCrystal@@UAEXAAVgzEventPlayerBase@@@Z
_TEXT	SEGMENT
_evt$ = 8						; size = 4
?Player_Left@gzTiberiumCrystal@@UAEXAAVgzEventPlayerBase@@@Z PROC ; gzTiberiumCrystal::Player_Left, COMDAT
; _this$ = ecx

; 337  : 	if (this->GetPicker() && evt.GetPlayer() == this->GetPicker()->GetPlayerData())

	mov	eax, DWORD PTR [ecx+76]
	test	eax, eax
	je	SHORT $LN1@Player_Lef
	mov	edx, DWORD PTR _evt$[esp-4]
	mov	edx, DWORD PTR [edx+24]
	cmp	edx, DWORD PTR [eax+76]
	jne	SHORT $LN1@Player_Lef

; 338  : 		this->Drop();

	call	?Drop@gzTiberiumCrystal@@QAEXXZ		; gzTiberiumCrystal::Drop
$LN1@Player_Lef:

; 339  : }

	ret	4
?Player_Left@gzTiberiumCrystal@@UAEXAAVgzEventPlayerBase@@@Z ENDP ; gzTiberiumCrystal::Player_Left
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Killed@gzTiberiumCrystal@@UAEXAAVgzEventObjectKill@@@Z
_TEXT	SEGMENT
_evt$ = 8						; size = 4
?Object_Killed@gzTiberiumCrystal@@UAEXAAVgzEventObjectKill@@@Z PROC ; gzTiberiumCrystal::Object_Killed, COMDAT
; _this$ = ecx

; 349  : {

	push	esi
	push	edi

; 350  : 	if (evt.m_attacker && evt.m_attacker->NetworkID == this->m_crystalId && evt.m_defender->As_SoldierGameObj())

	mov	edi, DWORD PTR _evt$[esp+4]
	mov	eax, DWORD PTR [edi+24]
	test	eax, eax
	mov	esi, ecx
	je	SHORT $LN1@Object_Kil
	mov	eax, DWORD PTR [eax+12]
	cmp	eax, DWORD PTR [esi+36]
	jne	SHORT $LN1@Object_Kil
	mov	ecx, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Object_Kil

; 351  : 	{
; 352  : 		if (evt.m_defender->NetworkID == this->m_pickerSoldierId)

	mov	ecx, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [ecx+12]
	cmp	edx, DWORD PTR [esi+80]
	jne	SHORT $LN1@Object_Kil

; 353  : 		{
; 354  : #ifdef TIBMSG
; 355  : 			DebugLog("[TibCrystal] Carrier %ls was killed. (Crystal: %d)", this->m_picker->GetPlayerName().GetString(), this->m_crystalId);
; 356  : #endif
; 357  : 			this->Drop();

	mov	ecx, esi
	call	?Drop@gzTiberiumCrystal@@QAEXXZ		; gzTiberiumCrystal::Drop
$LN1@Object_Kil:
	pop	edi
	pop	esi

; 358  : 		}
; 359  : 	}
; 360  : }

	ret	4
?Object_Killed@gzTiberiumCrystal@@UAEXAAVgzEventObjectKill@@@Z ENDP ; gzTiberiumCrystal::Object_Killed
_TEXT	ENDS
PUBLIC	??_C@_0GK@KOCOFNEG@Apperantly?5the?5vehicle?5you?5tried@ ; `string'
;	COMDAT ??_C@_0GK@KOCOFNEG@Apperantly?5the?5vehicle?5you?5tried@
CONST	SEGMENT
??_C@_0GK@KOCOFNEG@Apperantly?5the?5vehicle?5you?5tried@ DB 'Apperantly t'
	DB	'he vehicle you tried to enter is not big enough for Tiberium '
	DB	'Crystal and it has been dropped.', 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Object_Transition@gzTiberiumCrystal@@UAEXAAVgzEventObjectTransition@@@Z
_TEXT	SEGMENT
_evt$ = 8						; size = 4
?Object_Transition@gzTiberiumCrystal@@UAEXAAVgzEventObjectTransition@@@Z PROC ; gzTiberiumCrystal::Object_Transition, COMDAT
; _this$ = ecx

; 362  : {

	push	esi
	mov	esi, ecx

; 363  : 	if (this->m_picker && this->m_picker->GetPlayerData() == evt.m_soldier->Player)

	mov	eax, DWORD PTR [esi+76]
	test	eax, eax
	je	SHORT $LN1@Object_Tra
	mov	ecx, DWORD PTR _evt$[esp]
	mov	eax, DWORD PTR [eax+76]
	mov	edx, DWORD PTR [ecx+24]
	cmp	eax, DWORD PTR [edx+2400]
	jne	SHORT $LN1@Object_Tra
	push	edi

; 364  : 	{
; 365  : #if VERC(1, 0, 1)
; 366  : 		int pId = this->m_picker->GetPlayerData()->PlayerId;

	mov	edi, DWORD PTR [eax+1884]

; 367  : 		nc_GameObjManager::Find_PhysicalGameObj(this->GetCrystalId())->Attach_To_Object_Bone(NULL, "neck");

	mov	eax, DWORD PTR [esi+36]
	push	OFFSET ??_C@_04NPLPABOK@neck?$AA@
	push	0
	push	eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj
	add	esp, 4
	mov	ecx, eax
	call	?Attach_To_Object_Bone@nc_PhysicalGameObj@@QAEXPAV1@PBD@Z ; nc_PhysicalGameObj::Attach_To_Object_Bone

; 368  : 		this->RestoreWeapons();

	mov	ecx, esi
	call	?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ ; gzTiberiumCrystal::RestoreWeapons

; 369  : 		this->Drop();

	mov	ecx, esi
	call	?Drop@gzTiberiumCrystal@@QAEXXZ		; gzTiberiumCrystal::Drop

; 370  : 		PagePlayer(pId, "Apperantly the vehicle you tried to enter is not big enough for Tiberium Crystal and it has been dropped.");

	push	OFFSET ??_C@_0GK@KOCOFNEG@Apperantly?5the?5vehicle?5you?5tried@
	push	edi
	call	?PagePlayer@@YAXHPBDZZ			; PagePlayer
	add	esp, 8
	pop	edi
$LN1@Object_Tra:
	pop	esi

; 371  : #else
; 372  : 		PagePlayer(this->m_picker->GetPlayerData()->PlayerId, "You can not enter any vehicle while carrying Tiberium Crystal.");
; 373  : #ifdef TIBMSG
; 374  : 		DebugLog("[TibCrystal] %ls attempted to enter a vehicle while carrying Tiberium Crystal.", this->m_picker->GetPlayerName().GetString());
; 375  : #endif
; 376  : 		evt.Skip();
; 377  : #endif
; 378  : 	}
; 379  : }

	ret	4
?Object_Transition@gzTiberiumCrystal@@UAEXAAVgzEventObjectTransition@@@Z ENDP ; gzTiberiumCrystal::Object_Transition
_TEXT	ENDS
PUBLIC	??_C@_0EH@FLJEDICP@?$CFls?5successfully?5returned?5Tiberi@ ; `string'
PUBLIC	??_C@_0LG@NPENFELA@You?8ve?5successfully?5carried?5Tibe@ ; `string'
PUBLIC	??_C@_0GB@EHHNBFAJ@You?8ve?5received?5?$CF?40f?5credits?5bec@ ; `string'
PUBLIC	__real@4f800000
PUBLIC	??_C@_0M@LOPIPLBP@_TIBCRYSTAL?$AA@		; `string'
PUBLIC	??_C@_0CE@JHAJOCCO@?$CFls?5picked?5up?5the?5Tiberium?5Cryst@ ; `string'
PUBLIC	??_C@_0HI@BDIHBGNB@You?8re?5now?5the?5carrier?5of?5Tiberi@ ; `string'
PUBLIC	??_C@_0N@GNKIKALJ@bone?5for?5bag?$AA@		; `string'
EXTRN	?PlayerList@nc_cPlayerManager@@2PAV?$nc_SList@Vnc_cPlayer@@@@A:DWORD ; nc_cPlayerManager::PlayerList
EXTRN	?gzLogger@@YAXPBD0ZZ:PROC			; gzLogger
EXTRN	?Clear_Weapons@nc_WeaponBagClass@@QAEXXZ:PROC	; nc_WeaponBagClass::Clear_Weapons
EXTRN	?Get@nc_IntDataSafeClass@@QAEHXZ:PROC		; nc_IntDataSafeClass::Get
EXTRN	?Find@gzPlayerManager@@SAPAVgzPlayer@@PAVnc_cPlayer@@@Z:PROC ; gzPlayerManager::Find
;	COMDAT ??_C@_0EH@FLJEDICP@?$CFls?5successfully?5returned?5Tiberi@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0EH@FLJEDICP@?$CFls?5successfully?5returned?5Tiberi@ DB '%ls succes'
	DB	'sfully returned Tiberium Crystal to their Tiberium Refinery.', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0LG@NPENFELA@You?8ve?5successfully?5carried?5Tibe@
CONST	SEGMENT
??_C@_0LG@NPENFELA@You?8ve?5successfully?5carried?5Tibe@ DB 'You''ve succ'
	DB	'essfully carried Tiberium Crystal to the Refinery of your tea'
	DB	'm. Your team has received %.0f credits and you''ve received a'
	DB	'n addition of %.0f for carrying Tiberium Crystal.', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0GB@EHHNBFAJ@You?8ve?5received?5?$CF?40f?5credits?5bec@
CONST	SEGMENT
??_C@_0GB@EHHNBFAJ@You?8ve?5received?5?$CF?40f?5credits?5bec@ DB 'You''ve'
	DB	' received %.0f credits because %ls successfully returned the '
	DB	'Tiberium Crystal to Refinery.', 00H		; `string'
CONST	ENDS
;	COMDAT __real@4f800000
CONST	SEGMENT
__real@4f800000 DD 04f800000r			; 4.29497e+009
CONST	ENDS
;	COMDAT ??_C@_0M@LOPIPLBP@_TIBCRYSTAL?$AA@
CONST	SEGMENT
??_C@_0M@LOPIPLBP@_TIBCRYSTAL?$AA@ DB '_TIBCRYSTAL', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0CE@JHAJOCCO@?$CFls?5picked?5up?5the?5Tiberium?5Cryst@
CONST	SEGMENT
??_C@_0CE@JHAJOCCO@?$CFls?5picked?5up?5the?5Tiberium?5Cryst@ DB '%ls pick'
	DB	'ed up the Tiberium Crystal.', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0HI@BDIHBGNB@You?8re?5now?5the?5carrier?5of?5Tiberi@
CONST	SEGMENT
??_C@_0HI@BDIHBGNB@You?8re?5now?5the?5carrier?5of?5Tiberi@ DB 'You''re no'
	DB	'w the carrier of Tiberium Crystal. Please return to the "disc'
	DB	'" in Refinery of your team on foot for credits!!!', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@GNKIKALJ@bone?5for?5bag?$AA@
CONST	SEGMENT
??_C@_0N@GNKIKALJ@bone?5for?5bag?$AA@ DB 'bone for bag', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z$2
__ehfuncinfo$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
xdata$x	ENDS
;	COMDAT ?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z
_TEXT	SEGMENT
$T66971 = -100						; size = 8
_i$58662 = -100						; size = 4
_crystalBoneObj$58655 = -100				; size = 4
tv824 = -92						; size = 4
tv816 = -92						; size = 4
tv807 = -92						; size = 4
tv786 = -92						; size = 4
$T66970 = -92						; size = 8
_gzData$58657 = -92					; size = 4
$T66972 = -84						; size = 8
_weapon$58666 = -76					; size = 12
__$EHRec$ = -12						; size = 12
_evt$ = 8						; size = 4
?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z PROC ; gzTiberiumCrystal::Object_PowerupGrant, COMDAT
; _this$ = ecx

; 381  : {

	push	ebp
	mov	ebp, esp
	and	esp, -64				; ffffffc0H
	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 104				; 00000068H
	push	ebx

; 382  : 	if (evt.m_powerup->NetworkID == this->m_crystalId)

	mov	ebx, DWORD PTR _evt$[ebp]
	mov	eax, DWORD PTR [ebx+24]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax+12]
	mov	edx, DWORD PTR [esi+36]
	cmp	ecx, edx
	push	edi
	jne	$LN20@Object_Pow@2

; 383  : 	{
; 384  : 		if (!this->m_picker)

	cmp	DWORD PTR [esi+76], 0
	jne	$LN7@Object_Pow@2

; 385  : 		{
; 386  : 			if (!this->m_harvestable) // Not ready for harvest

	cmp	BYTE PTR [esi+72], 0
	jne	SHORT $LN18@Object_Pow@2
$LN107@Object_Pow@2:

; 387  : 			{
; 388  : 				evt.Skip();

	mov	BYTE PTR [ebx+32], 0

; 483  : 		}
; 484  : 	}
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$LN18@Object_Pow@2:

; 389  : 				return;
; 390  : 			}
; 391  : 
; 392  : 			if (evt.m_soldier->Vehicle) // Can not pick Tiberium Crystal while in vehicle

	mov	eax, DWORD PTR [ebx+28]
	cmp	DWORD PTR [eax+2444], 0

; 393  : 			{
; 394  : 				evt.Skip();
; 395  : 				return;

	jne	SHORT $LN107@Object_Pow@2

; 396  : 			}
; 397  : 
; 398  : #if VERC(1, 0, 1)
; 399  : 			if (evt.m_soldier->Player && this->m_pickupBlockCounter[evt.m_soldier->Player->PlayerId] > 0.0f)

	mov	eax, DWORD PTR [eax+2400]
	test	eax, eax
	je	SHORT $LN16@Object_Pow@2
	mov	ecx, DWORD PTR [eax+1884]
	fldz
	fcomp	DWORD PTR [esi+ecx*4+104]
	fnstsw	ax
	test	ah, 5

; 400  : 			{
; 401  : 				evt.Skip();
; 402  : 				return;

	jnp	SHORT $LN107@Object_Pow@2
$LN16@Object_Pow@2:

; 403  : 			}
; 404  : #endif
; 405  : 
; 406  : 			nc_PhysicalGameObj	*crystalObj = nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalId),

	push	edx
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj

; 407  : 						*crystalBoneObj = nc_GameObjManager::Find_PhysicalGameObj(this->m_crystalBoneId);

	mov	edx, DWORD PTR [esi+40]
	push	edx
	mov	edi, eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj
	add	esp, 8

; 408  : 
; 409  : 			if (crystalObj)

	test	edi, edi
	mov	DWORD PTR _crystalBoneObj$58655[esp+128], eax
	je	$LN7@Object_Pow@2

; 410  : 			{
; 411  : 				gzPlayer *gzData = gzPlayerManager::Find(evt.m_soldier->Player);

	mov	eax, DWORD PTR [ebx+28]
	mov	ecx, DWORD PTR [eax+2400]
	push	ecx
	call	?Find@gzPlayerManager@@SAPAVgzPlayer@@PAVnc_cPlayer@@@Z ; gzPlayerManager::Find
	add	esp, 4

; 412  : 				if (gzData) // Must be pick up by player

	test	eax, eax
	mov	DWORD PTR _gzData$58657[esp+128], eax
	je	$LN7@Object_Pow@2

; 413  : 				{
; 414  : 					if (crystalBoneObj)

	mov	ecx, DWORD PTR _crystalBoneObj$58655[esp+128]
	test	ecx, ecx
	je	SHORT $LN13@Object_Pow@2

; 415  : 					{
; 416  : 						crystalBoneObj->Set_Delete_Pending();

	mov	edx, DWORD PTR [ecx+8]
	mov	eax, DWORD PTR [edx+44]
	add	ecx, 8
	call	eax

; 417  : 						this->m_crystalBoneId = 0;

	mov	DWORD PTR [esi+40], 0
$LN13@Object_Pow@2:

; 418  : 					}
; 419  : 					crystalObj->Attach_To_Object_Bone(evt.m_soldier, "bone for bag");

	mov	ecx, DWORD PTR [ebx+28]
	push	OFFSET ??_C@_0N@GNKIKALJ@bone?5for?5bag?$AA@
	push	ecx
	mov	ecx, edi
	call	?Attach_To_Object_Bone@nc_PhysicalGameObj@@QAEXPAV1@PBD@Z ; nc_PhysicalGameObj::Attach_To_Object_Bone

; 420  : 
; 421  : 					// Remove weapons of picker
; 422  : 					nc_WeaponBagClass *wBag = evt.m_soldier->WeaponBag;

	mov	edx, DWORD PTR [ebx+28]
	mov	edi, DWORD PTR [edx+1968]

; 423  : 					for (int i = 1; i < wBag->Vector.Count(); i++)

	mov	eax, 1
	cmp	DWORD PTR [edi+20], eax
	mov	DWORD PTR _i$58662[esp+128], eax
	jle	SHORT $LN10@Object_Pow@2
$LN12@Object_Pow@2:
	mov	ebx, DWORD PTR _i$58662[esp+128]
	mov	eax, DWORD PTR [edi+8]
	add	ebx, ebx
	add	ebx, ebx

; 424  : 					{
; 425  : 						gzPickerWeaponData weapon;
; 426  : 						weapon.Inventory = wBag->Vector[i]->InventoryBullets.Get();

	mov	ecx, DWORD PTR [eax+ebx]
	add	eax, ebx
	add	ecx, 40					; 00000028H
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	DWORD PTR _weapon$58666[esp+132], eax
	mov	eax, DWORD PTR [edi+8]

; 427  : 						weapon.Loaded = wBag->Vector[i]->LoadedBullets.Get();

	mov	ecx, DWORD PTR [eax+ebx]
	add	eax, ebx
	add	ecx, 36					; 00000024H
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	DWORD PTR _weapon$58666[esp+136], eax

; 428  : 						weapon.WeaponDef = wBag->Vector[i]->WeaponDef;

	mov	eax, DWORD PTR [edi+8]
	mov	ecx, DWORD PTR [ebx+eax]
	mov	edx, DWORD PTR [ecx]

; 429  : 						this->m_pickerWeapons.Add(weapon);

	mov	eax, DWORD PTR [esi+84]
	mov	eax, DWORD PTR [eax+12]
	lea	ecx, DWORD PTR [esi+84]
	mov	DWORD PTR _weapon$58666[esp+128], edx
	lea	edx, DWORD PTR _weapon$58666[esp+128]
	push	edx
	call	eax
	mov	eax, DWORD PTR _i$58662[esp+128]
	add	eax, 1
	cmp	eax, DWORD PTR [edi+20]
	mov	DWORD PTR _i$58662[esp+128], eax
	jl	SHORT $LN12@Object_Pow@2

; 423  : 					for (int i = 1; i < wBag->Vector.Count(); i++)

	mov	ebx, DWORD PTR _evt$[ebp]
$LN10@Object_Pow@2:

; 430  : 					}
; 431  : 					wBag->Clear_Weapons();

	mov	ecx, edi
	call	?Clear_Weapons@nc_WeaponBagClass@@QAEXXZ ; nc_WeaponBagClass::Clear_Weapons

; 432  : 
; 433  : 					this->m_picker = gzData;
; 434  : 					this->m_picker->SetTibCrystal(this);
; 435  : 					this->m_dropSpoilCounter = -1.0f;

	fld	DWORD PTR __real@bf800000
	mov	eax, DWORD PTR _gzData$58657[esp+128]
	mov	DWORD PTR [esi+76], eax
	mov	DWORD PTR [eax+68], esi
	fstp	DWORD PTR [esi+56]

; 436  : 					this->m_damagePickerCounter = gzTibCrystalMgr->m_settings->m_tibPoisonDamageTime;

	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+80]

; 437  : 					this->m_pickerSoldierId = evt.m_soldier->NetworkID;
; 438  : 					this->m_flag = gzTibCrystalMgr->GetFlag(this->m_picker->GetPlayerData()->PlayerType.Get());

	mov	edx, DWORD PTR [esi+76]
	fstp	DWORD PTR [esi+60]
	mov	eax, DWORD PTR [ebx+28]
	mov	ecx, DWORD PTR [eax+12]
	mov	DWORD PTR [esi+80], ecx
	mov	eax, DWORD PTR [edx+76]
	lea	ecx, DWORD PTR [eax+1900]
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	cmp	eax, 1
	ja	SHORT $LN50@Object_Pow@2
	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	eax, DWORD PTR [ecx+eax*4+52]
	jmp	SHORT $LN52@Object_Pow@2
$LN50@Object_Pow@2:
	xor	eax, eax
$LN52@Object_Pow@2:

; 439  : 					this->m_flag->Set_Object_Dirty_Bit(this->m_picker->GetPlayerData()->PlayerId, nc_DB_CREATION, true);

	mov	edx, DWORD PTR [esi+76]
	mov	DWORD PTR [esi+100], eax
	mov	edx, DWORD PTR [edx+76]
	mov	edx, DWORD PTR [edx+1884]
	lea	ecx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+52]
	push	1
	push	15					; 0000000fH
	push	edx
	call	eax

; 440  : 					PagePlayer(this->m_picker->GetPlayerData()->PlayerId, "You're now the carrier of Tiberium Crystal. Please return to the \"disc\" in Refinery of your team on foot for credits!!!");

	mov	ecx, DWORD PTR [esi+76]
	mov	eax, DWORD PTR [ecx+76]
	mov	edx, DWORD PTR [eax+1884]
	push	OFFSET ??_C@_0HI@BDIHBGNB@You?8re?5now?5the?5carrier?5of?5Tiberi@
	push	edx
	call	?PagePlayer@@YAXHPBDZZ			; PagePlayer

; 441  : 					gzLogger("_TIBCRYSTAL", "%ls picked up the Tiberium Crystal.", this->m_picker->GetPlayerName().GetString());

	mov	ecx, DWORD PTR [esi+76]
	add	esp, 8
	lea	eax, DWORD PTR $T66970[esp+128]
	push	eax
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+136], 0
	je	SHORT $LN60@Object_Pow@2
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN61@Object_Pow@2
$LN60@Object_Pow@2:
	xor	eax, eax
$LN61@Object_Pow@2:
	push	eax
	push	OFFSET ??_C@_0CE@JHAJOCCO@?$CFls?5picked?5up?5the?5Tiberium?5Cryst@
	push	OFFSET ??_C@_0M@LOPIPLBP@_TIBCRYSTAL?$AA@
	call	?gzLogger@@YAXPBD0ZZ			; gzLogger
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T66970[esp+128]
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 483  : 		}
; 484  : 	}
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$LN20@Object_Pow@2:

; 442  : #ifdef TIBMSG
; 443  : 					DebugLog("[TibCrystal] %ls picked up.", this->m_picker->GetPlayerName().GetString());
; 444  : #endif
; 445  : 				}
; 446  : 			}
; 447  : 		}
; 448  : 	}
; 449  : 	else if (this->m_picker && this->m_flag && evt.m_powerup->NetworkID == this->m_flag->NetworkID)

	mov	edx, DWORD PTR [esi+76]
	test	edx, edx
	je	$LN7@Object_Pow@2
	mov	eax, DWORD PTR [esi+100]
	test	eax, eax
	je	$LN7@Object_Pow@2
	cmp	ecx, DWORD PTR [eax+12]
	jne	$LN7@Object_Pow@2

; 450  : 	{
; 451  : 		if (evt.m_soldier->Player == this->m_picker->GetPlayerData())

	mov	edx, DWORD PTR [edx+76]
	mov	ecx, DWORD PTR [ebx+28]
	cmp	DWORD PTR [ecx+2400], edx
	jne	$LN7@Object_Pow@2

; 452  : 		{
; 453  : #ifdef TIBMSG
; 454  : 			DebugLog("[TibCrystal] %ls returned %d.", this->m_picker->GetPlayerName().GetString(), this->m_crystalId);
; 455  : #endif
; 456  : 			for (nc_GenericSLNode<nc_cPlayer> *pList = nc_cPlayerManager::PlayerList->HeadNode; pList; pList = pList->NodeNext)

	mov	edx, DWORD PTR ?PlayerList@nc_cPlayerManager@@2PAV?$nc_SList@Vnc_cPlayer@@@@A ; nc_cPlayerManager::PlayerList
	mov	edi, DWORD PTR [edx+4]
	test	edi, edi
	je	$LN4@Object_Pow@2
$LN106@Object_Pow@2:

; 457  : 			{
; 458  : 				if (pList && pList->NodeData->IsActive && pList->NodeData->PlayerType.Get() == this->m_picker->GetPlayerData()->PlayerType.Get())

	mov	eax, DWORD PTR [edi+4]
	cmp	BYTE PTR [eax+1981], 0
	je	$LN5@Object_Pow@2
	mov	ecx, DWORD PTR [esi+76]
	mov	ebx, DWORD PTR [ecx+76]
	lea	ecx, DWORD PTR [eax+1900]
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	lea	ecx, DWORD PTR [ebx+1900]
	mov	DWORD PTR tv786[esp+128], eax
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	ecx, DWORD PTR tv786[esp+128]
	cmp	ecx, eax
	jne	$LN5@Object_Pow@2

; 459  : 				{
; 460  : 					pList->NodeData->Increment_Money(gzTibCrystalMgr->m_settings->m_successAmount / (float)(this->m_dropCount + 1));

	mov	ebx, DWORD PTR [esi+52]
	mov	ecx, DWORD PTR [edi+4]
	mov	eax, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+60]
	add	ebx, 1
	test	ebx, ebx
	mov	DWORD PTR tv824[esp+128], ebx
	fild	DWORD PTR tv824[esp+128]
	jge	SHORT $LN102@Object_Pow@2
	fadd	DWORD PTR __real@4f800000
$LN102@Object_Pow@2:
	fdivr	DWORD PTR [eax+28]
	mov	edx, DWORD PTR [edx+16]
	push	ecx
	fstp	DWORD PTR [esp]
	call	edx

; 461  : 					if (pList->NodeData->PlayerId != this->m_picker->GetPlayerData()->PlayerId)

	mov	ecx, DWORD PTR [esi+76]
	mov	edx, DWORD PTR [edi+4]
	mov	eax, DWORD PTR [ecx+76]
	mov	edx, DWORD PTR [edx+1884]
	cmp	edx, DWORD PTR [eax+1884]
	je	SHORT $LN2@Object_Pow@2

; 462  : 					{
; 463  : 						PagePlayer(pList->NodeData->PlayerId, "You've received %.0f credits because %ls successfully returned the Tiberium Crystal to Refinery.",
; 464  : 							gzTibCrystalMgr->m_settings->m_successAmount / (float)(this->m_dropCount + 1),
; 465  : 							this->m_picker->GetPlayerName().GetString()
; 466  : 						);

	lea	eax, DWORD PTR $T66971[esp+128]
	push	eax
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+136], 1
	je	SHORT $LN75@Object_Pow@2
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN76@Object_Pow@2
$LN75@Object_Pow@2:
	xor	eax, eax
$LN76@Object_Pow@2:
	mov	ecx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [ecx+60]
	push	eax
	mov	eax, DWORD PTR [esi+52]
	add	eax, 1
	test	eax, eax
	mov	DWORD PTR tv816[esp+132], eax
	fild	DWORD PTR tv816[esp+132]
	jge	SHORT $LN103@Object_Pow@2
	fadd	DWORD PTR __real@4f800000
$LN103@Object_Pow@2:
	fdivr	DWORD PTR [edx+28]
	mov	ecx, DWORD PTR [edi+4]
	mov	edx, DWORD PTR [ecx+1884]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0GB@EHHNBFAJ@You?8ve?5received?5?$CF?40f?5credits?5bec@
	push	edx
	call	?PagePlayer@@YAXHPBDZZ			; PagePlayer
	add	esp, 20					; 00000014H
	lea	ecx, DWORD PTR $T66971[esp+128]
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 467  : 					}
; 468  : 					else

	jmp	SHORT $LN5@Object_Pow@2
$LN2@Object_Pow@2:

; 469  : 					{
; 470  : 						pList->NodeData->Increment_Money(gzTibCrystalMgr->m_settings->m_successCarrierAmount);

	mov	ecx, DWORD PTR [edi+4]
	mov	edx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	edx, DWORD PTR [edx+60]
	mov	eax, DWORD PTR [ecx]
	fld	DWORD PTR [edx+32]
	mov	eax, DWORD PTR [eax+16]
	push	ecx
	fstp	DWORD PTR [esp]
	call	eax

; 471  : 						PagePlayer(this->m_picker->GetPlayerData()->PlayerId, "You've successfully carried Tiberium Crystal to the Refinery of your team. Your team has received %.0f credits and you've received an addition of %.0f for carrying Tiberium Crystal.",
; 472  : 							gzTibCrystalMgr->m_settings->m_successAmount / (float)(this->m_dropCount + 1),
; 473  : 							gzTibCrystalMgr->m_settings->m_successCarrierAmount
; 474  : 						);

	mov	edx, DWORD PTR ?gzTibCrystalMgr@@3PAVgzTibCrystalManager@@A ; gzTibCrystalMgr
	mov	eax, DWORD PTR [edx+60]
	mov	edx, DWORD PTR [esi+52]
	fld	DWORD PTR [eax+32]
	mov	ecx, DWORD PTR [esi+76]
	mov	ecx, DWORD PTR [ecx+76]
	sub	esp, 16					; 00000010H
	add	edx, 1
	fstp	QWORD PTR [esp+8]
	test	edx, edx
	mov	DWORD PTR tv807[esp+144], edx
	fild	DWORD PTR tv807[esp+144]
	jge	SHORT $LN104@Object_Pow@2
	fadd	DWORD PTR __real@4f800000
$LN104@Object_Pow@2:
	fdivr	DWORD PTR [eax+28]
	mov	eax, DWORD PTR [ecx+1884]
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0LG@NPENFELA@You?8ve?5successfully?5carried?5Tibe@
	push	eax
	call	?PagePlayer@@YAXHPBDZZ			; PagePlayer
	add	esp, 24					; 00000018H
$LN5@Object_Pow@2:
	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LN106@Object_Pow@2
$LN4@Object_Pow@2:

; 475  : 					}
; 476  : 				}
; 477  : 			}
; 478  : 			this->m_picker->SetTibCrystal(NULL);

	mov	eax, DWORD PTR [esi+76]

; 479  : 			this->RestoreWeapons();

	mov	ecx, esi
	mov	DWORD PTR [eax+68], 0
	call	?RestoreWeapons@gzTiberiumCrystal@@QAEXXZ ; gzTiberiumCrystal::RestoreWeapons

; 480  : 			this->NotifyFlagDeletion();

	mov	ecx, esi
	call	?NotifyFlagDeletion@gzTiberiumCrystal@@QAEXXZ ; gzTiberiumCrystal::NotifyFlagDeletion

; 481  : 			gzLogger("_TIBCRYSTAL", "%ls successfully returned Tiberium Crystal to their Tiberium Refinery.", this->m_picker->GetPlayerName().GetString());

	lea	ecx, DWORD PTR $T66972[esp+128]
	push	ecx
	mov	ecx, DWORD PTR [esi+76]
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+136], 2
	je	SHORT $LN88@Object_Pow@2
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN89@Object_Pow@2
$LN88@Object_Pow@2:
	xor	eax, eax
$LN89@Object_Pow@2:
	push	eax
	push	OFFSET ??_C@_0EH@FLJEDICP@?$CFls?5successfully?5returned?5Tiberi@
	push	OFFSET ??_C@_0M@LOPIPLBP@_TIBCRYSTAL?$AA@
	call	?gzLogger@@YAXPBD0ZZ			; gzLogger
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T66972[esp+128]
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 482  : 			this->SetDeletePending();

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+12]
	mov	ecx, esi
	call	eax
$LN7@Object_Pow@2:

; 483  : 		}
; 484  : 	}
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z$0:
	lea	ecx, DWORD PTR $T66970[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z$1:
	lea	ecx, DWORD PTR $T66971[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z$2:
	lea	ecx, DWORD PTR $T66972[ebp]
	jmp	??1aWideString@@UAE@XZ
__ehhandler$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z:
	mov	eax, OFFSET __ehfuncinfo$?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Object_PowerupGrant@gzTiberiumCrystal@@UAEXAAVgzEventObjectPowerupGrant@@@Z ENDP ; gzTiberiumCrystal::Object_PowerupGrant
PUBLIC	??_7aStringArray@@6B@				; aStringArray::`vftable'
PUBLIC	??0aStringArray@@QAE@XZ				; aStringArray::aStringArray
PUBLIC	??_R4aStringArray@@6B@				; aStringArray::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVaStringArray@@@8			; aStringArray `RTTI Type Descriptor'
PUBLIC	??_R3aStringArray@@8				; aStringArray::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aStringArray@@8				; aStringArray::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@aStringArray@@8			; aStringArray::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_EaStringArray@@UAEPAXI@Z:PROC		; aStringArray::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@aStringArray@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aStringArray@@8 DD FLAT:??_R0?AVaStringArray@@@8 ; aStringArray::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aStringArray@@8
rdata$r	ENDS
;	COMDAT ??_R2aStringArray@@8
rdata$r	SEGMENT
??_R2aStringArray@@8 DD FLAT:??_R1A@?0A@EA@aStringArray@@8 ; aStringArray::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$aStringArrayBase@VaString@@@@8
	DD	FLAT:??_R1A@?0A@EA@?$aVector@PAVaStringData@@@@8
rdata$r	ENDS
;	COMDAT ??_R3aStringArray@@8
rdata$r	SEGMENT
??_R3aStringArray@@8 DD 00H				; aStringArray::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2aStringArray@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaStringArray@@@8
_DATA	SEGMENT
??_R0?AVaStringArray@@@8 DD FLAT:??_7type_info@@6B@	; aStringArray `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaStringArray@@', 00H
_DATA	ENDS
;	COMDAT ??_R4aStringArray@@6B@
rdata$r	SEGMENT
??_R4aStringArray@@6B@ DD 00H				; aStringArray::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVaStringArray@@@8
	DD	FLAT:??_R3aStringArray@@8
rdata$r	ENDS
;	COMDAT ??_7aStringArray@@6B@
CONST	SEGMENT
??_7aStringArray@@6B@ DD FLAT:??_R4aStringArray@@6B@	; aStringArray::`vftable'
	DD	FLAT:??_EaStringArray@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aStringArrayBase@VaString@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@PAVaStringData@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@PAVaStringData@@@@UAEXABQAVaStringData@@@Z
	DD	FLAT:?Insert@?$aVector@PAVaStringData@@@@UAEXIABQAVaStringData@@@Z
	DD	FLAT:?Delete@?$aStringArrayBase@VaString@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0aStringArray@@QAE@XZ
_TEXT	SEGMENT
??0aStringArray@@QAE@XZ PROC				; aStringArray::aStringArray, COMDAT
; _this$ = ecx
	mov	eax, ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax], OFFSET ??_7aStringArray@@6B@
	ret	0
??0aStringArray@@QAE@XZ ENDP				; aStringArray::aStringArray
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaStringArray@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaStringArray@@UAEPAXI@Z PROC			; aStringArray::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$aStringArrayBase@VaString@@@@UAE@XZ ; aStringArrayBase<aString>::~aStringArrayBase<aString>
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@8
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@8:
	mov	eax, esi
	pop	esi
	ret	4
??_GaStringArray@@UAEPAXI@Z ENDP			; aStringArray::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_0P@PDHEJNHK@POW_Neuro_Link?$AA@		; `string'
PUBLIC	?Think@gzTibCrystalManager@@UAEXXZ		; gzTibCrystalManager::Think
EXTRN	?Set_Position@nc_PhysicalGameObj@@QAEXABUnc_Vector3@@@Z:PROC ; nc_PhysicalGameObj::Set_Position
;	COMDAT ??_C@_0P@PDHEJNHK@POW_Neuro_Link?$AA@
CONST	SEGMENT
??_C@_0P@PDHEJNHK@POW_Neuro_Link?$AA@ DB 'POW_Neuro_Link', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Think@gzTibCrystalManager@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzTibCrystalManager@@UAEXXZ$0
__ehfuncinfo$?Think@gzTibCrystalManager@@UAEXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Think@gzTibCrystalManager@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ?Think@gzTibCrystalManager@@UAEXXZ
_TEXT	SEGMENT
tv327 = -20						; size = 4
tv243 = -20						; size = 4
$T67158 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Think@gzTibCrystalManager@@UAEXXZ PROC			; gzTibCrystalManager::Think, COMDAT
; _this$ = ecx

; 107  : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Think@gzTibCrystalManager@@UAEXXZ
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	edi
	mov	edi, ecx

; 108  : 	if (this->m_settings->m_enable && this->m_settings->m_posList.Count() > 0 && cGame->Is_Gameplay_Permitted())

	mov	eax, DWORD PTR [edi+60]
	cmp	BYTE PTR [eax+24], 0
	je	$LN2@Think@2
	cmp	DWORD PTR [eax+100], 0
	jbe	$LN2@Think@2
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+132]
	call	eax
	test	al, al
	je	$LN2@Think@2
	push	esi

; 109  : 	{
; 110  : 		SubFrameTime(this->m_nextSpawnCheck, true);

	lea	esi, DWORD PTR [edi+44]
	push	1
	push	esi
	mov	DWORD PTR tv243[esp+36], esi
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 111  : 		if (this->m_nextSpawnCheck < 0.0f)

	fldz
	fcomp	DWORD PTR [esi]
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	$LN28@Think@2

; 112  : 		{
; 113  : 			if (this->m_crystal == NULL)

	cmp	DWORD PTR [edi+48], 0
	jne	$LN1@Think@2

; 114  : 			{
; 115  : 				gzTiberiumCrystal *newCrystal = new gzTiberiumCrystal;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	115					; 00000073H
	push	OFFSET ??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	616					; 00000268H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T67158[esp+28], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+36], 0
	je	SHORT $LN6@Think@2
	mov	ecx, eax
	call	??0gzTiberiumCrystal@@QAE@XZ		; gzTiberiumCrystal::gzTiberiumCrystal
	mov	esi, eax
	jmp	SHORT $LN7@Think@2
$LN6@Think@2:
	xor	esi, esi
$LN7@Think@2:

; 116  : 				newCrystal->SetPosId(stRandom.Get_Int(0, this->m_settings->m_posList.Count() - 1));

	mov	ecx, DWORD PTR [edi+60]
	mov	eax, DWORD PTR [ecx+100]
	push	ebx
	push	ebp
	add	eax, -1
	push	eax
	push	0
	mov	ecx, OFFSET ?stRandom@@3VaRandom@@A	; stRandom
	mov	DWORD PTR __$EHRec$[esp+52], -1
	call	?Get_Int@aRandom@@QAEJJJ@Z		; aRandom::Get_Int

; 117  : 				nc_PhysicalGameObj	*boneObj = nc_ObjectLibraryManager::Create_Object("Invisible_Object")->As_PhysicalGameObj(),

	push	OFFSET ??_C@_0BB@NHJNEILC@Invisible_Object?$AA@
	mov	DWORD PTR [esi+44], eax
	call	?Create_Object@nc_ObjectLibraryManager@@SAPAVnc_ScriptableGameObj@@PBD@Z ; nc_ObjectLibraryManager::Create_Object
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+36]
	add	esp, 4
	call	eax

; 118  : 									*crystalObj = nc_ObjectLibraryManager::Create_Object("POW_Neuro_Link")->As_PhysicalGameObj();

	push	OFFSET ??_C@_0P@PDHEJNHK@POW_Neuro_Link?$AA@
	mov	ebx, eax
	call	?Create_Object@nc_ObjectLibraryManager@@SAPAVnc_ScriptableGameObj@@PBD@Z ; nc_ObjectLibraryManager::Create_Object
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+36]
	add	esp, 4
	call	eax

; 119  : 				boneObj->Set_Position(this->m_settings->m_posList[newCrystal->GetPosId()]);

	mov	edx, DWORD PTR [edi+60]
	mov	ebp, eax
	mov	eax, DWORD PTR [esi+44]
	lea	ecx, DWORD PTR [eax+eax*2]
	mov	eax, DWORD PTR [edx+92]
	lea	ecx, DWORD PTR [eax+ecx*4]
	push	ecx
	mov	ecx, ebx
	call	?Set_Position@nc_PhysicalGameObj@@QAEXABUnc_Vector3@@@Z ; nc_PhysicalGameObj::Set_Position

; 120  : 				crystalObj->Attach_To_Object_Bone(boneObj, "neck");

	push	OFFSET ??_C@_04NPLPABOK@neck?$AA@
	push	ebx
	mov	ecx, ebp
	call	?Attach_To_Object_Bone@nc_PhysicalGameObj@@QAEXPAV1@PBD@Z ; nc_PhysicalGameObj::Attach_To_Object_Bone

; 121  : 				newCrystal->SetCrystalBoneId(boneObj->NetworkID);

	mov	edx, DWORD PTR [ebx+12]
	mov	DWORD PTR [esi+40], edx

; 122  : 				newCrystal->SetCrystalId(crystalObj->NetworkID);

	mov	eax, DWORD PTR [ebp+12]
	mov	DWORD PTR [esi+36], eax

; 123  : 				newCrystal->SetLiveTime(this->m_settings->m_liveTime);

	mov	ecx, DWORD PTR [edi+60]
	fld	DWORD PTR [ecx+68]
	pop	ebp
	fstp	DWORD PTR [esi+64]

; 124  : 				this->m_crystal = newCrystal;

	mov	DWORD PTR [edi+48], esi
	mov	esi, DWORD PTR tv243[esp+32]
	pop	ebx
$LN1@Think@2:

; 125  : #ifdef TIBMSG
; 126  : 				DebugLog("[TibCrystal] created at position #%d; ID: %d",
; 127  : 					this->m_crystal->GetPosId(),
; 128  : 					this->m_crystal->GetCrystalId()
; 129  : 				);
; 130  : #endif
; 131  : 			}
; 132  : 			this->m_nextSpawnCheck = (float)stRandom.Get_Int(this->m_settings->m_spawnMin, this->m_settings->m_spawnMax);

	mov	edi, DWORD PTR [edi+60]
	mov	edx, DWORD PTR [edi+56]
	mov	eax, DWORD PTR [edi+52]
	push	edx
	push	eax
	mov	ecx, OFFSET ?stRandom@@3VaRandom@@A	; stRandom
	call	?Get_Int@aRandom@@QAEJJJ@Z		; aRandom::Get_Int
	mov	DWORD PTR tv327[esp+28], eax
	fild	DWORD PTR tv327[esp+28]
	fstp	DWORD PTR [esi]
$LN28@Think@2:
	pop	esi
$LN2@Think@2:

; 133  : #ifdef TIBMSG
; 134  : 			DebugLog("[TibCrystal] Next spawn check in %.0f second(s)", this->m_nextSpawnCheck);
; 135  : #endif
; 136  : 		}
; 137  : 	}
; 138  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Think@gzTibCrystalManager@@UAEXXZ$0:
	mov	eax, DWORD PTR $T67158[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Think@gzTibCrystalManager@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Think@gzTibCrystalManager@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Think@gzTibCrystalManager@@UAEXXZ ENDP			; gzTibCrystalManager::Think
; Function compile flags: /Ogtpy
;	COMDAT ??_GgzTiberiumCrystal@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzTiberiumCrystal@@UAEPAXI@Z PROC			; gzTiberiumCrystal::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1gzTiberiumCrystal@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@9
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@9:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzTiberiumCrystal@@UAEPAXI@Z ENDP			; gzTiberiumCrystal::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_7gzSettingsTibCrystal@@6B@			; gzSettingsTibCrystal::`vftable'
PUBLIC	??0gzSettingsTibCrystal@@QAE@XZ			; gzSettingsTibCrystal::gzSettingsTibCrystal
PUBLIC	??_R4gzSettingsTibCrystal@@6B@			; gzSettingsTibCrystal::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzSettingsTibCrystal@@@8		; gzSettingsTibCrystal `RTTI Type Descriptor'
PUBLIC	??_R3gzSettingsTibCrystal@@8			; gzSettingsTibCrystal::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzSettingsTibCrystal@@8			; gzSettingsTibCrystal::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzSettingsTibCrystal@@8		; gzSettingsTibCrystal::`RTTI Base Class Descriptor at (0,-1,0,64)'
;	COMDAT ??_R1A@?0A@EA@gzSettingsTibCrystal@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzSettingsTibCrystal@@8 DD FLAT:??_R0?AVgzSettingsTibCrystal@@@8 ; gzSettingsTibCrystal::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzSettingsTibCrystal@@8
rdata$r	ENDS
;	COMDAT ??_R2gzSettingsTibCrystal@@8
rdata$r	SEGMENT
??_R2gzSettingsTibCrystal@@8 DD FLAT:??_R1A@?0A@EA@gzSettingsTibCrystal@@8 ; gzSettingsTibCrystal::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@stSettingsBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzSettingsTibCrystal@@8
rdata$r	SEGMENT
??_R3gzSettingsTibCrystal@@8 DD 00H			; gzSettingsTibCrystal::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2gzSettingsTibCrystal@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzSettingsTibCrystal@@@8
_DATA	SEGMENT
??_R0?AVgzSettingsTibCrystal@@@8 DD FLAT:??_7type_info@@6B@ ; gzSettingsTibCrystal `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzSettingsTibCrystal@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzSettingsTibCrystal@@6B@
rdata$r	SEGMENT
??_R4gzSettingsTibCrystal@@6B@ DD 00H			; gzSettingsTibCrystal::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzSettingsTibCrystal@@@8
	DD	FLAT:??_R3gzSettingsTibCrystal@@8
rdata$r	ENDS
;	COMDAT ??_7gzSettingsTibCrystal@@6B@
CONST	SEGMENT
??_7gzSettingsTibCrystal@@6B@ DD FLAT:??_R4gzSettingsTibCrystal@@6B@ ; gzSettingsTibCrystal::`vftable'
	DD	FLAT:?Delete@gzSettingsTibCrystal@@UAEXXZ
	DD	FLAT:?Load@gzSettingsTibCrystal@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzSettingsTibCrystal@@QAE@XZ
_TEXT	SEGMENT
$T67215 = -4						; size = 4
??0gzSettingsTibCrystal@@QAE@XZ PROC			; gzSettingsTibCrystal::gzSettingsTibCrystal, COMDAT
; _this$ = ecx
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	xor	edi, edi
	mov	DWORD PTR [esi], OFFSET ??_7stSettingsBase@@6B@
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+16], edi
	mov	DWORD PTR [esi+20], edi
	mov	DWORD PTR [esi+8], edi
	mov	ecx, DWORD PTR ?gzSettingsMgr@@3PAVgzSettingsManager@@A ; gzSettingsMgr
	add	ecx, 36					; 00000024H
	mov	DWORD PTR $T67215[esp+12], esi
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+12]
	lea	edx, DWORD PTR $T67215[esp+12]
	push	edx
	call	eax
	mov	DWORD PTR [esi], OFFSET ??_7gzSettingsTibCrystal@@6B@
	mov	DWORD PTR [esi+40], edi
	mov	DWORD PTR [esi+44], edi
	mov	DWORD PTR [esi+48], edi
	mov	DWORD PTR [esi+36], OFFSET ??_7aStringArray@@6B@
	mov	DWORD PTR [esi+92], edi
	mov	DWORD PTR [esi+96], edi
	mov	DWORD PTR [esi+100], edi
	pop	edi
	mov	DWORD PTR [esi+88], OFFSET ??_7?$aVector@Unc_Vector3@@@@6B@
	mov	eax, esi
	pop	esi
	pop	ecx
	ret	0
??0gzSettingsTibCrystal@@QAE@XZ ENDP			; gzSettingsTibCrystal::gzSettingsTibCrystal
_TEXT	ENDS
PUBLIC	??_7gzTibCrystalManager@@6BgzSettingsEvent@@@	; gzTibCrystalManager::`vftable'
PUBLIC	??_7gzTibCrystalManager@@6BgzManagerEvent@@@	; gzTibCrystalManager::`vftable'
PUBLIC	??_7gzTibCrystalManager@@6BEventHandler@@@	; gzTibCrystalManager::`vftable'
PUBLIC	??0gzTibCrystalManager@@QAE@XZ			; gzTibCrystalManager::gzTibCrystalManager
PUBLIC	??_R4gzTibCrystalManager@@6BEventHandler@@@	; gzTibCrystalManager::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzTibCrystalManager@@@8			; gzTibCrystalManager `RTTI Type Descriptor'
PUBLIC	??_R3gzTibCrystalManager@@8			; gzTibCrystalManager::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzTibCrystalManager@@8			; gzTibCrystalManager::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzTibCrystalManager@@8		; gzTibCrystalManager::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1CE@?0A@EA@gzManagerEvent@@8		; gzManagerEvent::`RTTI Base Class Descriptor at (36,-1,0,64)'
PUBLIC	??_R1CI@?0A@EA@gzSettingsEvent@@8		; gzSettingsEvent::`RTTI Base Class Descriptor at (40,-1,0,64)'
PUBLIC	?GetName@gzTibCrystalManager@@UAEPBDXZ		; gzTibCrystalManager::GetName
PUBLIC	?Delete@gzTibCrystalManager@@UAEXXZ		; gzTibCrystalManager::Delete
PUBLIC	?Level_Ended@EventHandler@@UAEXXZ		; EventHandler::Level_Ended
PUBLIC	?Player_Left@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ; EventHandler::Player_Left
PUBLIC	?Player_Purchase@EventHandler@@UAEXAAVgzEventPlayerPurchase@@@Z ; EventHandler::Player_Purchase
PUBLIC	?Object_Killed@EventHandler@@UAEXAAVgzEventObjectKill@@@Z ; EventHandler::Object_Killed
PUBLIC	?Object_Transition@EventHandler@@UAEXAAVgzEventObjectTransition@@@Z ; EventHandler::Object_Transition
PUBLIC	??_R4gzTibCrystalManager@@6BgzManagerEvent@@@	; gzTibCrystalManager::`RTTI Complete Object Locator'
PUBLIC	?GetName@gzTibCrystalManager@@WCE@AEPBDXZ	; [thunk]:gzTibCrystalManager::GetName`adjustor{36}'
PUBLIC	??_R4gzTibCrystalManager@@6BgzSettingsEvent@@@	; gzTibCrystalManager::`RTTI Complete Object Locator'
EXTRN	??_EgzTibCrystalManager@@UAEPAXI@Z:PROC		; gzTibCrystalManager::`vector deleting destructor'
;	COMDAT ??_R4gzTibCrystalManager@@6BgzSettingsEvent@@@
; File d:\source code\stgm\stsetting.h
rdata$r	SEGMENT
??_R4gzTibCrystalManager@@6BgzSettingsEvent@@@ DD 00H	; gzTibCrystalManager::`RTTI Complete Object Locator'
	DD	028H
	DD	00H
	DD	FLAT:??_R0?AVgzTibCrystalManager@@@8
	DD	FLAT:??_R3gzTibCrystalManager@@8
rdata$r	ENDS
;	COMDAT ??_R4gzTibCrystalManager@@6BgzManagerEvent@@@
rdata$r	SEGMENT
??_R4gzTibCrystalManager@@6BgzManagerEvent@@@ DD 00H	; gzTibCrystalManager::`RTTI Complete Object Locator'
	DD	024H
	DD	00H
	DD	FLAT:??_R0?AVgzTibCrystalManager@@@8
	DD	FLAT:??_R3gzTibCrystalManager@@8
rdata$r	ENDS
;	COMDAT ??_R1CI@?0A@EA@gzSettingsEvent@@8
rdata$r	SEGMENT
??_R1CI@?0A@EA@gzSettingsEvent@@8 DD FLAT:??_R0?AVgzSettingsEvent@@@8 ; gzSettingsEvent::`RTTI Base Class Descriptor at (40,-1,0,64)'
	DD	00H
	DD	028H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R1CE@?0A@EA@gzManagerEvent@@8
rdata$r	SEGMENT
??_R1CE@?0A@EA@gzManagerEvent@@8 DD FLAT:??_R0?AVgzManagerEvent@@@8 ; gzManagerEvent::`RTTI Base Class Descriptor at (36,-1,0,64)'
	DD	00H
	DD	024H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzManagerEvent@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@gzTibCrystalManager@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzTibCrystalManager@@8 DD FLAT:??_R0?AVgzTibCrystalManager@@@8 ; gzTibCrystalManager::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	04H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzTibCrystalManager@@8
rdata$r	ENDS
;	COMDAT ??_R2gzTibCrystalManager@@8
rdata$r	SEGMENT
??_R2gzTibCrystalManager@@8 DD FLAT:??_R1A@?0A@EA@gzTibCrystalManager@@8 ; gzTibCrystalManager::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
	DD	FLAT:??_R1CE@?0A@EA@gzManagerEvent@@8
	DD	FLAT:??_R1CI@?0A@EA@gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R3gzTibCrystalManager@@8
rdata$r	SEGMENT
??_R3gzTibCrystalManager@@8 DD 00H			; gzTibCrystalManager::`RTTI Class Hierarchy Descriptor'
	DD	01H
	DD	05H
	DD	FLAT:??_R2gzTibCrystalManager@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzTibCrystalManager@@@8
_DATA	SEGMENT
??_R0?AVgzTibCrystalManager@@@8 DD FLAT:??_7type_info@@6B@ ; gzTibCrystalManager `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzTibCrystalManager@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzTibCrystalManager@@6BEventHandler@@@
rdata$r	SEGMENT
??_R4gzTibCrystalManager@@6BEventHandler@@@ DD 00H	; gzTibCrystalManager::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzTibCrystalManager@@@8
	DD	FLAT:??_R3gzTibCrystalManager@@8
rdata$r	ENDS
;	COMDAT ??_7gzTibCrystalManager@@6BgzSettingsEvent@@@
CONST	SEGMENT
??_7gzTibCrystalManager@@6BgzSettingsEvent@@@ DD FLAT:??_R4gzTibCrystalManager@@6BgzSettingsEvent@@@ ; gzTibCrystalManager::`vftable'
	DD	FLAT:?Settings_Loaded@gzTibCrystalManager@@UAEXXZ
CONST	ENDS
;	COMDAT ??_7gzTibCrystalManager@@6BgzManagerEvent@@@
CONST	SEGMENT
??_7gzTibCrystalManager@@6BgzManagerEvent@@@ DD FLAT:??_R4gzTibCrystalManager@@6BgzManagerEvent@@@ ; gzTibCrystalManager::`vftable'
	DD	FLAT:?GetName@gzTibCrystalManager@@WCE@AEPBDXZ
	DD	FLAT:?ChildObjCreation@gzManagerEvent@@UAEXPAVgzBase@@@Z
	DD	FLAT:?ChildObjDeletion@gzTibCrystalManager@@UAEXPAVgzBase@@@Z
CONST	ENDS
;	COMDAT ??_7gzTibCrystalManager@@6BEventHandler@@@
CONST	SEGMENT
??_7gzTibCrystalManager@@6BEventHandler@@@ DD FLAT:??_R4gzTibCrystalManager@@6BEventHandler@@@ ; gzTibCrystalManager::`vftable'
	DD	FLAT:??_EgzTibCrystalManager@@UAEPAXI@Z
	DD	FLAT:?GetName@gzTibCrystalManager@@UAEPBDXZ
	DD	FLAT:?Delete@gzTibCrystalManager@@UAEXXZ
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@EventHandler@@UAEXXZ
	DD	FLAT:?Level_Ended@EventHandler@@UAEXXZ
	DD	FLAT:?Think@gzTibCrystalManager@@UAEXXZ
	DD	FLAT:?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_Left@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_Purchase@EventHandler@@UAEXAAVgzEventPlayerPurchase@@@Z
	DD	FLAT:?Player_BandwidthChange@EventHandler@@UAEXAAVgzEventPlayerBandwidth@@@Z
	DD	FLAT:?Player_Suicide@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_TeamChange@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
	DD	FLAT:?Player_Chat@EventHandler@@UAEXAAVgzEventPlayerChat@@@Z
	DD	FLAT:?Player_Radio@EventHandler@@UAEXAAVgzEventPlayerRadio@@@Z
	DD	FLAT:?Player_SerialHash@EventHandler@@UAEXAAVgzEventPlayerSerialHash@@@Z
	DD	FLAT:?Player_RawDamage@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z
	DD	FLAT:?Object_Created@EventHandler@@UAEXAAVgzEventObjectCreate@@@Z
	DD	FLAT:?Object_Init@EventHandler@@UAEXAAVgzEventObjectInit@@@Z
	DD	FLAT:?Object_Damaged@EventHandler@@UAEXAAVgzEventObjectDamage@@@Z
	DD	FLAT:?Object_Killed@EventHandler@@UAEXAAVgzEventObjectKill@@@Z
	DD	FLAT:?Object_Transition@EventHandler@@UAEXAAVgzEventObjectTransition@@@Z
	DD	FLAT:?Object_JumpStart@EventHandler@@UAEXAAVgzEventObjectJump@@@Z
	DD	FLAT:?Object_JumpComplete@EventHandler@@UAEXAAVgzEventObjectJump@@@Z
	DD	FLAT:?Object_SoldierSquished@EventHandler@@UAEXAAVgzEventObjectKill@@@Z
	DD	FLAT:?Object_C4Creation@EventHandler@@UAEXAAVgzEventObjectC4Creation@@@Z
	DD	FLAT:?Object_C4Detonate@EventHandler@@UAEXAAVgzEventObjectC4Detonation@@@Z
	DD	FLAT:?Object_PowerupGrant@gzTibCrystalManager@@UAEXAAVgzEventObjectPowerupGrant@@@Z
	DD	FLAT:?Object_Fire@EventHandler@@UAEXAAVgzEventObjectFire@@@Z
	DD	FLAT:?Object_FlipKill@EventHandler@@UAEXAAVgzEventObjectFlipKill@@@Z
	DD	FLAT:?Net_WolPage@EventHandler@@UAEXAAVgzEventNetWolPage@@@Z
	DD	FLAT:?Net_SerialAuth@EventHandler@@UAEXAAVgzEventNetSerialAuth@@@Z
	DD	FLAT:?Bhs_Poke@EventHandler@@UAEXAAVgzEventBhsPoke@@@Z
	DD	FLAT:?Bhs_Version@EventHandler@@UAEXAAVgzEventBhsVersion@@@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0gzTibCrystalManager@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzTibCrystalManager@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzTibCrystalManager@@QAE@XZ$1
__ehfuncinfo$??0gzTibCrystalManager@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0gzTibCrystalManager@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\sttibcrystal.cpp
xdata$x	ENDS
;	COMDAT ??0gzTibCrystalManager@@QAE@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T67240 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0gzTibCrystalManager@@QAE@XZ PROC			; gzTibCrystalManager::gzTibCrystalManager, COMDAT
; _this$ = ecx

; 98   : {

	push	-1
	push	__ehhandler$??0gzTibCrystalManager@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+28], esi
	call	??0EventHandler@@QAE@XZ			; EventHandler::EventHandler
	mov	DWORD PTR [esi+36], OFFSET ??_7gzManagerEvent@@6B@
	lea	edi, DWORD PTR [esi+40]
	mov	DWORD PTR [edi], OFFSET ??_7gzSettingsEvent@@6B@

; 99   : 	this->RegisterEvent(EVT_GAME_THINK);

	push	0
	push	4098					; 00001002H
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+44], 0
	mov	DWORD PTR [esi], OFFSET ??_7gzTibCrystalManager@@6BEventHandler@@@
	mov	DWORD PTR [esi+36], OFFSET ??_7gzTibCrystalManager@@6BgzManagerEvent@@@
	mov	DWORD PTR [edi], OFFSET ??_7gzTibCrystalManager@@6BgzSettingsEvent@@@
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 100  : 	this->RegisterEvent(EVT_OBJECT_POWERUP_GRANT, -1);

	push	-1
	push	12304					; 00003010H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 101  : 
; 102  : 	this->m_crystal		= NULL;
; 103  : 	this->m_settings	= new gzSettingsTibCrystal;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	103					; 00000067H
	push	OFFSET ??_C@_0BD@IPBFACAG@?4?2sttibcrystal?4cpp?$AA@
	mov	DWORD PTR [esi+48], 0
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	104					; 00000068H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T67240[esp+28], eax
	test	eax, eax
	mov	BYTE PTR __$EHRec$[esp+36], 1
	je	SHORT $LN3@gzTibCryst
	mov	ecx, eax
	call	??0gzSettingsTibCrystal@@QAE@XZ
	jmp	SHORT $LN4@gzTibCryst
$LN3@gzTibCryst:
	xor	eax, eax
$LN4@gzTibCryst:

; 104  : 	this->m_settings->SetOwner(this);
; 105  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	DWORD PTR [esi+60], eax
	mov	DWORD PTR [eax+8], edi
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzTibCrystalManager@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__unwindfunclet$??0gzTibCrystalManager@@QAE@XZ$1:
	mov	eax, DWORD PTR $T67240[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$??0gzTibCrystalManager@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0gzTibCrystalManager@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzTibCrystalManager@@QAE@XZ ENDP			; gzTibCrystalManager::gzTibCrystalManager
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.h
;	COMDAT ?Level_Ended@EventHandler@@UAEXXZ
_TEXT	SEGMENT
?Level_Ended@EventHandler@@UAEXXZ PROC			; EventHandler::Level_Ended, COMDAT
; _this$ = ecx

; 63   : 	virtual void Level_Ended() { };

	ret	0
?Level_Ended@EventHandler@@UAEXXZ ENDP			; EventHandler::Level_Ended
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_Left@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_Left@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z PROC ; EventHandler::Player_Left, COMDAT
; _this$ = ecx

; 68   : 	virtual void Player_Left(gzEventPlayerBase &) { };

	ret	4
?Player_Left@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ENDP ; EventHandler::Player_Left
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Player_Purchase@EventHandler@@UAEXAAVgzEventPlayerPurchase@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Player_Purchase@EventHandler@@UAEXAAVgzEventPlayerPurchase@@@Z PROC ; EventHandler::Player_Purchase, COMDAT
; _this$ = ecx

; 69   : 	virtual void Player_Purchase(gzEventPlayerPurchase &) { };

	ret	4
?Player_Purchase@EventHandler@@UAEXAAVgzEventPlayerPurchase@@@Z ENDP ; EventHandler::Player_Purchase
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Killed@EventHandler@@UAEXAAVgzEventObjectKill@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_Killed@EventHandler@@UAEXAAVgzEventObjectKill@@@Z PROC ; EventHandler::Object_Killed, COMDAT
; _this$ = ecx

; 82   : 	virtual void Object_Killed(gzEventObjectKill &) { };

	ret	4
?Object_Killed@EventHandler@@UAEXAAVgzEventObjectKill@@@Z ENDP ; EventHandler::Object_Killed
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Object_Transition@EventHandler@@UAEXAAVgzEventObjectTransition@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_Transition@EventHandler@@UAEXAAVgzEventObjectTransition@@@Z PROC ; EventHandler::Object_Transition, COMDAT
; _this$ = ecx

; 83   : 	virtual void Object_Transition(gzEventObjectTransition &) { };

	ret	4
?Object_Transition@EventHandler@@UAEXAAVgzEventObjectTransition@@@Z ENDP ; EventHandler::Object_Transition
_TEXT	ENDS
PUBLIC	??_C@_0BE@IACPAKED@gzTibCrystalManager?$AA@	; `string'
;	COMDAT ??_C@_0BE@IACPAKED@gzTibCrystalManager?$AA@
; File d:\source code\stgm\sttibcrystal.h
CONST	SEGMENT
??_C@_0BE@IACPAKED@gzTibCrystalManager?$AA@ DB 'gzTibCrystalManager', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzTibCrystalManager@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzTibCrystalManager@@UAEPBDXZ PROC		; gzTibCrystalManager::GetName, COMDAT
; _this$ = ecx

; 40   : 		return "gzTibCrystalManager";

	mov	eax, OFFSET ??_C@_0BE@IACPAKED@gzTibCrystalManager?$AA@

; 41   : 	};

	ret	0
?GetName@gzTibCrystalManager@@UAEPBDXZ ENDP		; gzTibCrystalManager::GetName
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@gzTibCrystalManager@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzTibCrystalManager@@UAEXXZ PROC		; gzTibCrystalManager::Delete, COMDAT
; _this$ = ecx

; 42   : 	void Delete() { };

	ret	0
?Delete@gzTibCrystalManager@@UAEXXZ ENDP		; gzTibCrystalManager::Delete
_TEXT	ENDS
PUBLIC	??1gzTibCrystalManager@@UAE@XZ			; gzTibCrystalManager::~gzTibCrystalManager
; Function compile flags: /Ogtpy
;	COMDAT ??1gzTibCrystalManager@@UAE@XZ
_TEXT	SEGMENT
??1gzTibCrystalManager@@UAE@XZ PROC			; gzTibCrystalManager::~gzTibCrystalManager, COMDAT
; _this$ = ecx
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
??1gzTibCrystalManager@@UAE@XZ ENDP			; gzTibCrystalManager::~gzTibCrystalManager
; Function compile flags: /Odtpy
_TEXT	ENDS
;	COMDAT ?GetName@gzTibCrystalManager@@WCE@AEPBDXZ
_TEXT	SEGMENT
?GetName@gzTibCrystalManager@@WCE@AEPBDXZ PROC		; [thunk]:gzTibCrystalManager::GetName`adjustor{36}', COMDAT
	sub	ecx, 36					; 00000024H
	jmp	?GetName@gzTibCrystalManager@@UAEPBDXZ	; gzTibCrystalManager::GetName
?GetName@gzTibCrystalManager@@WCE@AEPBDXZ ENDP		; [thunk]:gzTibCrystalManager::GetName`adjustor{36}'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GgzTibCrystalManager@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzTibCrystalManager@@UAEPAXI@Z PROC			; gzTibCrystalManager::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@10
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@10:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzTibCrystalManager@@UAEPAXI@Z ENDP			; gzTibCrystalManager::`scalar deleting destructor'
_TEXT	ENDS
EXTRN	_atexit:PROC
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stinc.h
;	COMDAT ??__EgzCritical@@YAXXZ
text$yc	SEGMENT
??__EgzCritical@@YAXXZ PROC				; `dynamic initializer for 'gzCritical'', COMDAT

; 67   : static aCriticalSection gzCritical;

	push	OFFSET _gzCritical
	call	DWORD PTR __imp__InitializeCriticalSection@4
	push	OFFSET ??__FgzCritical@@YAXXZ		; `dynamic atexit destructor for 'gzCritical''
	call	_atexit
	pop	ecx
	ret	0
??__EgzCritical@@YAXXZ ENDP				; `dynamic initializer for 'gzCritical''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FgzCritical@@YAXXZ
text$yd	SEGMENT
??__FgzCritical@@YAXXZ PROC				; `dynamic atexit destructor for 'gzCritical'', COMDAT
	push	OFFSET _gzCritical
	call	DWORD PTR __imp__DeleteCriticalSection@4
	ret	0
??__FgzCritical@@YAXXZ ENDP				; `dynamic atexit destructor for 'gzCritical''
text$yd	ENDS
_BSS	SEGMENT
_gzCritical DB	018H DUP (?)
_BSS	ENDS
CRT$XCU	SEGMENT
_gzCritical$initializer$ DD FLAT:??__EgzCritical@@YAXXZ
CRT$XCU	ENDS
END
