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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?m_eventTypeSort@EventManager@@2PAY0M@_NA	; EventManager::m_eventTypeSort
PUBLIC	?collate@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::collate
PUBLIC	?ctype@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::ctype
PUBLIC	?monetary@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::monetary
PUBLIC	?numeric@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::numeric
PUBLIC	?time@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::time
PUBLIC	?messages@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::messages
PUBLIC	?all@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::all
PUBLIC	?none@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::none
PUBLIC	?table_size@?$ctype@D@std@@2IB			; std::ctype<char>::table_size
PUBLIC	?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::skipws
PUBLIC	?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::unitbuf
PUBLIC	?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::uppercase
PUBLIC	?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showbase
PUBLIC	?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpoint
PUBLIC	?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpos
PUBLIC	?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::left
PUBLIC	?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::right
PUBLIC	?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::internal
PUBLIC	?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::dec
PUBLIC	?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::oct
PUBLIC	?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::hex
PUBLIC	?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::scientific
PUBLIC	?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::fixed
PUBLIC	?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::boolalpha
PUBLIC	?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::_Stdio
PUBLIC	?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::adjustfield
PUBLIC	?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::basefield
PUBLIC	?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::floatfield
PUBLIC	?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::goodbit
PUBLIC	?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::eofbit
PUBLIC	?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::failbit
PUBLIC	?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::badbit
PUBLIC	?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::_Hardfail
PUBLIC	?in@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::in
PUBLIC	?out@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::out
PUBLIC	?ate@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::ate
PUBLIC	?app@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::app
PUBLIC	?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::trunc
PUBLIC	?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Nocreate
PUBLIC	?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Noreplace
PUBLIC	?binary@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::binary
PUBLIC	?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::beg
PUBLIC	?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::cur
PUBLIC	?end@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::end
_BSS	SEGMENT
?m_eventTypeSort@EventManager@@2PAY0M@_NA DB 03cH DUP (?) ; EventManager::m_eventTypeSort
_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	?GetEventType@gzEventBase@@QAEHXZ		; gzEventBase::GetEventType
; Function compile flags: /Ogtpy
; File d:\source code\stgm\steventbase.h
;	COMDAT ?GetEventType@gzEventBase@@QAEHXZ
_TEXT	SEGMENT
?GetEventType@gzEventBase@@QAEHXZ PROC			; gzEventBase::GetEventType, COMDAT
; _this$ = ecx

; 109  : 		return this->m_eventType;

	mov	eax, DWORD PTR [ecx+20]

; 110  : 	};

	ret	0
?GetEventType@gzEventBase@@QAEHXZ ENDP			; gzEventBase::GetEventType
_TEXT	ENDS
PUBLIC	?GetPriority@EventNotifier@@QAEHXZ		; EventNotifier::GetPriority
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.h
;	COMDAT ?GetPriority@EventNotifier@@QAEHXZ
_TEXT	SEGMENT
?GetPriority@EventNotifier@@QAEHXZ PROC			; EventNotifier::GetPriority, COMDAT
; _this$ = ecx

; 45   : 	int GetPriority() { return this->m_priority; };

	mov	eax, DWORD PTR [ecx]
	ret	0
?GetPriority@EventNotifier@@QAEHXZ ENDP			; EventNotifier::GetPriority
_TEXT	ENDS
PUBLIC	?SetPriority@EventNotifier@@QAEXH@Z		; EventNotifier::SetPriority
; Function compile flags: /Ogtpy
;	COMDAT ?SetPriority@EventNotifier@@QAEXH@Z
_TEXT	SEGMENT
_priority$ = 8						; size = 4
?SetPriority@EventNotifier@@QAEXH@Z PROC		; EventNotifier::SetPriority, COMDAT
; _this$ = ecx

; 46   : 	void SetPriority(int priority) { this->m_priority = priority; };

	mov	eax, DWORD PTR _priority$[esp-4]
	mov	DWORD PTR [ecx], eax
	ret	4
?SetPriority@EventNotifier@@QAEXH@Z ENDP		; EventNotifier::SetPriority
_TEXT	ENDS
PUBLIC	?GetEventType@EventNotifier@@QAEHXZ		; EventNotifier::GetEventType
; Function compile flags: /Ogtpy
;	COMDAT ?GetEventType@EventNotifier@@QAEHXZ
_TEXT	SEGMENT
?GetEventType@EventNotifier@@QAEHXZ PROC		; EventNotifier::GetEventType, COMDAT
; _this$ = ecx

; 47   : 	int GetEventType() { return this->m_type; };

	mov	eax, DWORD PTR [ecx+4]
	ret	0
?GetEventType@EventNotifier@@QAEHXZ ENDP		; EventNotifier::GetEventType
_TEXT	ENDS
PUBLIC	?SetEventType@EventNotifier@@QAEXH@Z		; EventNotifier::SetEventType
; Function compile flags: /Ogtpy
;	COMDAT ?SetEventType@EventNotifier@@QAEXH@Z
_TEXT	SEGMENT
_type$ = 8						; size = 4
?SetEventType@EventNotifier@@QAEXH@Z PROC		; EventNotifier::SetEventType, COMDAT
; _this$ = ecx

; 48   : 	void SetEventType(int type) { this->m_type = type; };

	mov	eax, DWORD PTR _type$[esp-4]
	mov	DWORD PTR [ecx+4], eax
	ret	4
?SetEventType@EventNotifier@@QAEXH@Z ENDP		; EventNotifier::SetEventType
_TEXT	ENDS
PUBLIC	?GetOwner@EventNotifier@@QAEPAVEventHandler@@XZ	; EventNotifier::GetOwner
; Function compile flags: /Ogtpy
;	COMDAT ?GetOwner@EventNotifier@@QAEPAVEventHandler@@XZ
_TEXT	SEGMENT
?GetOwner@EventNotifier@@QAEPAVEventHandler@@XZ PROC	; EventNotifier::GetOwner, COMDAT
; _this$ = ecx

; 49   : 	EventHandler *GetOwner() { return this->m_owner; };

	mov	eax, DWORD PTR [ecx+8]
	ret	0
?GetOwner@EventNotifier@@QAEPAVEventHandler@@XZ ENDP	; EventNotifier::GetOwner
_TEXT	ENDS
PUBLIC	?SetOwner@EventNotifier@@QAEXPAVEventHandler@@@Z ; EventNotifier::SetOwner
; Function compile flags: /Ogtpy
;	COMDAT ?SetOwner@EventNotifier@@QAEXPAVEventHandler@@@Z
_TEXT	SEGMENT
_owner$ = 8						; size = 4
?SetOwner@EventNotifier@@QAEXPAVEventHandler@@@Z PROC	; EventNotifier::SetOwner, COMDAT
; _this$ = ecx

; 50   : 	void SetOwner(EventHandler *owner) { this->m_owner = owner; };

	mov	eax, DWORD PTR _owner$[esp-4]
	mov	DWORD PTR [ecx+8], eax
	ret	4
?SetOwner@EventNotifier@@QAEXPAVEventHandler@@@Z ENDP	; EventNotifier::SetOwner
_TEXT	ENDS
PUBLIC	??0EventNotifier@@QAE@XZ			; EventNotifier::EventNotifier
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
;	COMDAT ??0EventNotifier@@QAE@XZ
_TEXT	SEGMENT
??0EventNotifier@@QAE@XZ PROC				; EventNotifier::EventNotifier, COMDAT
; _this$ = ecx

; 160  : {

	mov	eax, ecx

; 161  : 	this->m_priority = EVT_PRIORITY_DEFAULT;

	xor	ecx, ecx
	mov	DWORD PTR [eax], ecx

; 162  : 	this->m_type     = 0;

	mov	DWORD PTR [eax+4], ecx

; 163  : 	this->m_owner    = NULL;

	mov	DWORD PTR [eax+8], ecx

; 164  : }

	ret	0
??0EventNotifier@@QAE@XZ ENDP				; EventNotifier::EventNotifier
_TEXT	ENDS
PUBLIC	??_C@_0O@ONEOCMGK@?4?2stevent?4cpp?$AA@		; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	?RegisterEvent@EventHandler@@QAEXHH@Z		; EventHandler::RegisterEvent
EXTRN	??2@YAPAXI@Z:PROC				; operator new
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
;	COMDAT ??_C@_0O@ONEOCMGK@?4?2stevent?4cpp?$AA@
; File d:\source code\stgm\stevent.h
CONST	SEGMENT
??_C@_0O@ONEOCMGK@?4?2stevent?4cpp?$AA@ DB '.\stevent.cpp', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
CONST	ENDS
;	COMDAT ?RegisterEvent@EventHandler@@QAEXHH@Z
_TEXT	SEGMENT
_notifier$ = -4						; size = 4
_type$ = 8						; size = 4
_priority$ = 12						; size = 4
?RegisterEvent@EventHandler@@QAEXHH@Z PROC		; EventHandler::RegisterEvent, COMDAT
; _this$ = ecx

; 190  : {

	push	ecx
	push	ebx
	push	esi
	push	edi

; 191  : 	EventNotifier *notifier = new EventNotifier;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	191					; 000000bfH
	push	OFFSET ??_C@_0O@ONEOCMGK@?4?2stevent?4cpp?$AA@
	mov	esi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	12					; 0000000cH
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	test	eax, eax
	je	SHORT $LN4@RegisterEv
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+4], 0
	mov	DWORD PTR [eax+8], 0
	jmp	SHORT $LN5@RegisterEv
$LN4@RegisterEv:
	xor	eax, eax
$LN5@RegisterEv:

; 192  : 	notifier->SetEventType(type);

	mov	ebx, DWORD PTR _type$[esp+12]

; 193  : 	notifier->SetPriority(priority);

	mov	edi, DWORD PTR _priority$[esp+12]
	mov	DWORD PTR _notifier$[esp+16], eax
	mov	DWORD PTR [eax+4], ebx
	mov	eax, DWORD PTR _notifier$[esp+16]
	mov	DWORD PTR [eax], edi

; 194  : 	notifier->SetOwner(this);

	mov	ecx, DWORD PTR _notifier$[esp+16]
	mov	DWORD PTR [ecx+8], esi

; 195  : 	this->m_eventList.Add(notifier);

	mov	edx, DWORD PTR [esi+20]
	mov	edx, DWORD PTR [edx+12]
	lea	ecx, DWORD PTR [esi+20]
	lea	eax, DWORD PTR _notifier$[esp+16]
	push	eax
	call	edx

; 196  : 
; 197  : 	// Priority is not default, event need to be sorted
; 198  : 	if (priority != EVT_PRIORITY_DEFAULT)

	test	edi, edi
	je	SHORT $LN1@RegisterEv

; 199  : 		EventManager::m_eventTypeSort[type / 4096 - 1][type % 4096] = true;

	mov	eax, ebx
	cdq
	and	edx, 4095				; 00000fffH
	add	eax, edx
	sar	eax, 12					; 0000000cH
	and	ebx, -2147479553			; 80000fffH
	lea	eax, DWORD PTR [eax+eax*2]
	jns	SHORT $LN17@RegisterEv
	dec	ebx
	or	ebx, -4096				; fffff000H
	inc	ebx
$LN17@RegisterEv:
	mov	BYTE PTR ?m_eventTypeSort@EventManager@@2PAY0M@_NA[ebx+eax*4-12], 1
$LN1@RegisterEv:
	pop	edi
	pop	esi
	pop	ebx

; 200  : }

	pop	ecx
	ret	8
?RegisterEvent@EventHandler@@QAEXHH@Z ENDP		; EventHandler::RegisterEvent
_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
$T62792 = -12						; size = 12
_this$ = 8						; size = 4
$T62798 = 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 $T62798[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T62792[esp+20]
	mov	DWORD PTR $T62798[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T62792[esp+20]
	push	ecx
	mov	DWORD PTR $T62792[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
$T62804 = -12						; size = 12
$T62809 = 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 $T62809[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T62804[esp+20]
	mov	DWORD PTR $T62809[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T62804[esp+20]
	push	ecx
	mov	DWORD PTR $T62804[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@PAVEventHandler@@@@6B@		; aVector<EventHandler *>::`vftable'
PUBLIC	??0?$aVector@PAVEventHandler@@@@QAE@XZ		; aVector<EventHandler *>::aVector<EventHandler *>
PUBLIC	??_R4?$aVector@PAVEventHandler@@@@6B@		; aVector<EventHandler *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@PAVEventHandler@@@@@8		; aVector<EventHandler *> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@PAVEventHandler@@@@8		; aVector<EventHandler *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@PAVEventHandler@@@@8		; aVector<EventHandler *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@PAVEventHandler@@@@8	; aVector<EventHandler *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$aVector@PAVEventHandler@@@@UAEXXZ	; aVector<EventHandler *>::Clear
PUBLIC	?Resize@?$aVector@PAVEventHandler@@@@UAE_NI@Z	; aVector<EventHandler *>::Resize
PUBLIC	?Add@?$aVector@PAVEventHandler@@@@UAEXABQAVEventHandler@@@Z ; aVector<EventHandler *>::Add
PUBLIC	?Insert@?$aVector@PAVEventHandler@@@@UAEXIABQAVEventHandler@@@Z ; aVector<EventHandler *>::Insert
PUBLIC	?Delete@?$aVector@PAVEventHandler@@@@UAEXI@Z	; aVector<EventHandler *>::Delete
EXTRN	??_E?$aVector@PAVEventHandler@@@@UAEPAXI@Z:PROC	; aVector<EventHandler *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@PAVEventHandler@@@@8
; File d:\source code\alib\include\avector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@PAVEventHandler@@@@8 DD FLAT:??_R0?AV?$aVector@PAVEventHandler@@@@@8 ; aVector<EventHandler *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@PAVEventHandler@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@PAVEventHandler@@@@8
rdata$r	SEGMENT
??_R2?$aVector@PAVEventHandler@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@PAVEventHandler@@@@8 ; aVector<EventHandler *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@PAVEventHandler@@@@8
rdata$r	SEGMENT
??_R3?$aVector@PAVEventHandler@@@@8 DD 00H		; aVector<EventHandler *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@PAVEventHandler@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@PAVEventHandler@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@PAVEventHandler@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<EventHandler *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@PAVEventHandler@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@PAVEventHandler@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@PAVEventHandler@@@@6B@ DD 00H		; aVector<EventHandler *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@PAVEventHandler@@@@@8
	DD	FLAT:??_R3?$aVector@PAVEventHandler@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@PAVEventHandler@@@@6B@
CONST	SEGMENT
??_7?$aVector@PAVEventHandler@@@@6B@ DD FLAT:??_R4?$aVector@PAVEventHandler@@@@6B@ ; aVector<EventHandler *>::`vftable'
	DD	FLAT:??_E?$aVector@PAVEventHandler@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@PAVEventHandler@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@PAVEventHandler@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@PAVEventHandler@@@@UAEXABQAVEventHandler@@@Z
	DD	FLAT:?Insert@?$aVector@PAVEventHandler@@@@UAEXIABQAVEventHandler@@@Z
	DD	FLAT:?Delete@?$aVector@PAVEventHandler@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aVector@PAVEventHandler@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aVector@PAVEventHandler@@@@QAE@XZ PROC		; aVector<EventHandler *>::aVector<EventHandler *>, COMDAT
; _this$ = ecx

; 27   : 	aVector()

	mov	eax, ecx

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

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@PAVEventHandler@@@@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@PAVEventHandler@@@@QAE@XZ ENDP		; aVector<EventHandler *>::aVector<EventHandler *>
_TEXT	ENDS
PUBLIC	??A?$aVector@PAVEventHandler@@@@QAEAAPAVEventHandler@@I@Z ; aVector<EventHandler *>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$aVector@PAVEventHandler@@@@QAEAAPAVEventHandler@@I@Z
_TEXT	SEGMENT
_nPos$ = 8						; size = 4
??A?$aVector@PAVEventHandler@@@@QAEAAPAVEventHandler@@I@Z PROC ; aVector<EventHandler *>::operator[], COMDAT
; _this$ = ecx

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

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

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

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@PAVEventHandler@@@@QBEIXZ ENDP		; aVector<EventHandler *>::Count
_TEXT	ENDS
PUBLIC	??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@ ; `string'
EXTRN	??_V@YAXPAX@Z:PROC				; operator delete[]
;	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'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Clear@?$aVector@PAVEventHandler@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@PAVEventHandler@@@@UAEXXZ PROC		; aVector<EventHandler *>::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@PAVEventHandler@@@@UAEXXZ ENDP		; aVector<EventHandler *>::Clear
_TEXT	ENDS
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	_memcpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@?$aVector@PAVEventHandler@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@PAVEventHandler@@@@UAE_NI@Z PROC	; aVector<EventHandler *>::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@PAVEventHandler@@@@UAE_NI@Z ENDP	; aVector<EventHandler *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@PAVEventHandler@@@@UAEXABQAVEventHandler@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@PAVEventHandler@@@@UAEXABQAVEventHandler@@@Z PROC ; aVector<EventHandler *>::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@PAVEventHandler@@@@UAEXABQAVEventHandler@@@Z ENDP ; aVector<EventHandler *>::Add
_TEXT	ENDS
EXTRN	_memmove:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Insert@?$aVector@PAVEventHandler@@@@UAEXIABQAVEventHandler@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@PAVEventHandler@@@@UAEXIABQAVEventHandler@@@Z PROC ; aVector<EventHandler *>::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@PAVEventHandler@@@@UAEXIABQAVEventHandler@@@Z ENDP ; aVector<EventHandler *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@PAVEventHandler@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@PAVEventHandler@@@@UAEXI@Z PROC	; aVector<EventHandler *>::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

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

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

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete:

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

	cmp	edx, eax
	jae	SHORT $LN1@Delete

; 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:

; 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:
	pop	esi

; 132  : 		}
; 133  : 	}

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

; 27   : 	aVector()

	mov	eax, ecx

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

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@PAVEventNotifier@@@@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@PAVEventNotifier@@@@QAE@XZ ENDP		; aVector<EventNotifier *>::aVector<EventNotifier *>
_TEXT	ENDS
PUBLIC	??A?$aVector@PAVEventNotifier@@@@QAEAAPAVEventNotifier@@I@Z ; aVector<EventNotifier *>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$aVector@PAVEventNotifier@@@@QAEAAPAVEventNotifier@@I@Z
_TEXT	SEGMENT
_nPos$ = 8						; size = 4
??A?$aVector@PAVEventNotifier@@@@QAEAAPAVEventNotifier@@I@Z PROC ; aVector<EventNotifier *>::operator[], COMDAT
; _this$ = ecx

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

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

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

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@PAVEventNotifier@@@@QBEIXZ ENDP	; aVector<EventNotifier *>::Count
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Clear@?$aVector@PAVEventNotifier@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@PAVEventNotifier@@@@UAEXXZ PROC	; aVector<EventNotifier *>::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@2

; 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@2:

; 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@PAVEventNotifier@@@@UAEXXZ ENDP	; aVector<EventNotifier *>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Resize@?$aVector@PAVEventNotifier@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@PAVEventNotifier@@@@UAE_NI@Z PROC	; aVector<EventNotifier *>::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@2

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

	test	edi, edi
	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, 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@2

; 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@2:

; 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@2:

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

	mov	eax, DWORD PTR [esi]
	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@PAVEventNotifier@@@@UAE_NI@Z ENDP	; aVector<EventNotifier *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@PAVEventNotifier@@@@UAEXABQAVEventNotifier@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@PAVEventNotifier@@@@UAEXABQAVEventNotifier@@@Z PROC ; aVector<EventNotifier *>::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@2

; 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@2:
	pop	esi

; 110  : 	}

	ret	4
?Add@?$aVector@PAVEventNotifier@@@@UAEXABQAVEventNotifier@@@Z ENDP ; aVector<EventNotifier *>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@PAVEventNotifier@@@@UAEXIABQAVEventNotifier@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@PAVEventNotifier@@@@UAEXIABQAVEventNotifier@@@Z PROC ; aVector<EventNotifier *>::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
	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@2:
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@PAVEventNotifier@@@@UAEXIABQAVEventNotifier@@@Z ENDP ; aVector<EventNotifier *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@PAVEventNotifier@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@PAVEventNotifier@@@@UAEXI@Z PROC	; aVector<EventNotifier *>::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@PAVEventNotifier@@@@UAEXI@Z ENDP	; aVector<EventNotifier *>::Delete
_TEXT	ENDS
PUBLIC	??_7?$aList@VEventNotifier@@@@6B@		; aList<EventNotifier>::`vftable'
PUBLIC	??0?$aList@VEventNotifier@@@@QAE@XZ		; aList<EventNotifier>::aList<EventNotifier>
PUBLIC	??_R4?$aList@VEventNotifier@@@@6B@		; aList<EventNotifier>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aList@VEventNotifier@@@@@8		; aList<EventNotifier> `RTTI Type Descriptor'
PUBLIC	??_R3?$aList@VEventNotifier@@@@8		; aList<EventNotifier>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aList@VEventNotifier@@@@8		; aList<EventNotifier>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aList@VEventNotifier@@@@8	; aList<EventNotifier>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?GetHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ; aList<EventNotifier>::GetHead
PUBLIC	?GetTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ; aList<EventNotifier>::GetTail
PUBLIC	?AddHead@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z	; aList<EventNotifier>::AddHead
PUBLIC	?AddHead@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z ; aList<EventNotifier>::AddHead
PUBLIC	?AddTail@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z	; aList<EventNotifier>::AddTail
PUBLIC	?AddTail@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z ; aList<EventNotifier>::AddTail
PUBLIC	?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z ; aList<EventNotifier>::InsertBefore
PUBLIC	?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z ; aList<EventNotifier>::InsertBefore
PUBLIC	?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z ; aList<EventNotifier>::InsertAfter
PUBLIC	?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z ; aList<EventNotifier>::InsertAfter
PUBLIC	?RemoveHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ; aList<EventNotifier>::RemoveHead
PUBLIC	?RemoveTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ; aList<EventNotifier>::RemoveTail
PUBLIC	?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@ABV2@@Z ; aList<EventNotifier>::Remove
PUBLIC	?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@PAVEventNotifier@@@Z ; aList<EventNotifier>::Remove
PUBLIC	?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ	; aList<EventNotifier>::RemoveAll
EXTRN	??_E?$aList@VEventNotifier@@@@UAEPAXI@Z:PROC	; aList<EventNotifier>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aList@VEventNotifier@@@@8
; File d:\source code\alib\include\alist.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aList@VEventNotifier@@@@8 DD FLAT:??_R0?AV?$aList@VEventNotifier@@@@@8 ; aList<EventNotifier>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aList@VEventNotifier@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aList@VEventNotifier@@@@8
rdata$r	SEGMENT
??_R2?$aList@VEventNotifier@@@@8 DD FLAT:??_R1A@?0A@EA@?$aList@VEventNotifier@@@@8 ; aList<EventNotifier>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aList@VEventNotifier@@@@8
rdata$r	SEGMENT
??_R3?$aList@VEventNotifier@@@@8 DD 00H			; aList<EventNotifier>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aList@VEventNotifier@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aList@VEventNotifier@@@@@8
_DATA	SEGMENT
??_R0?AV?$aList@VEventNotifier@@@@@8 DD FLAT:??_7type_info@@6B@ ; aList<EventNotifier> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aList@VEventNotifier@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aList@VEventNotifier@@@@6B@
rdata$r	SEGMENT
??_R4?$aList@VEventNotifier@@@@6B@ DD 00H		; aList<EventNotifier>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aList@VEventNotifier@@@@@8
	DD	FLAT:??_R3?$aList@VEventNotifier@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aList@VEventNotifier@@@@6B@
CONST	SEGMENT
??_7?$aList@VEventNotifier@@@@6B@ DD FLAT:??_R4?$aList@VEventNotifier@@@@6B@ ; aList<EventNotifier>::`vftable'
	DD	FLAT:??_E?$aList@VEventNotifier@@@@UAEPAXI@Z
	DD	FLAT:?GetHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
	DD	FLAT:?GetTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
	DD	FLAT:?AddHead@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z
	DD	FLAT:?AddHead@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z
	DD	FLAT:?AddTail@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z
	DD	FLAT:?AddTail@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z
	DD	FLAT:?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z
	DD	FLAT:?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z
	DD	FLAT:?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z
	DD	FLAT:?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z
	DD	FLAT:?RemoveHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
	DD	FLAT:?RemoveTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
	DD	FLAT:?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@ABV2@@Z
	DD	FLAT:?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@PAVEventNotifier@@@Z
	DD	FLAT:?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aList@VEventNotifier@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aList@VEventNotifier@@@@QAE@XZ PROC		; aList<EventNotifier>::aList<EventNotifier>, COMDAT
; _this$ = ecx

; 24   : 	aList()

	mov	eax, ecx

; 25   : 	{
; 26   : 		this->m_Head = NULL;

	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aList@VEventNotifier@@@@6B@
	mov	DWORD PTR [eax+8], ecx

; 27   : 		this->m_Tail = NULL;

	mov	DWORD PTR [eax+12], ecx

; 28   : 		this->m_count = 0;

	mov	DWORD PTR [eax+4], ecx

; 29   : 	};

	ret	0
??0?$aList@VEventNotifier@@@@QAE@XZ ENDP		; aList<EventNotifier>::aList<EventNotifier>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?GetHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
_TEXT	SEGMENT
?GetHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ PROC ; aList<EventNotifier>::GetHead, COMDAT
; _this$ = ecx

; 55   : 		return this->m_Head;

	mov	eax, DWORD PTR [ecx+8]

; 56   : 	};

	ret	0
?GetHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ENDP ; aList<EventNotifier>::GetHead
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?GetTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
_TEXT	SEGMENT
?GetTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ PROC ; aList<EventNotifier>::GetTail, COMDAT
; _this$ = ecx

; 59   : 		return this->m_Tail;

	mov	eax, DWORD PTR [ecx+12]

; 60   : 	};

	ret	0
?GetTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ENDP ; aList<EventNotifier>::GetTail
_TEXT	ENDS
PUBLIC	??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@ ; `string'
;	COMDAT ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
CONST	SEGMENT
??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@ DB 'D:\Source '
	DB	'Code\aLib\include\aList.h', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?AddHead@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
?AddHead@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z PROC ; aList<EventNotifier>::AddHead, COMDAT
; _this$ = ecx

; 62   : 	{

	push	esi

; 63   : 		aListNode<T>* newNode = new aListNode<T>;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	63					; 0000003fH
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	mov	esi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	8
	call	??2@YAPAXI@Z				; operator new

; 64   : 		newNode->m_nextNode = this->m_Head;

	mov	ecx, DWORD PTR [esi+8]

; 65   : 		newNode->data = data;

	mov	edx, DWORD PTR _data$[esp+16]
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [eax+4], edx
	add	esp, 16					; 00000010H

; 66   : 		this->m_Head = newNode;
; 67   : 		if (this->m_Tail == NULL)

	cmp	DWORD PTR [esi+12], 0
	mov	DWORD PTR [esi+8], eax
	jne	SHORT $LN1@AddHead

; 68   : 			this->m_Tail = newNode;

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

; 69   : 		this->m_count++;

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

; 70   : 		return true;
; 71   : 	};

	ret	4
?AddHead@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z ENDP ; aList<EventNotifier>::AddHead
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?AddHead@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z
_TEXT	SEGMENT
_nodes$ = 8						; size = 4
?AddHead@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z PROC	; aList<EventNotifier>::AddHead, COMDAT
; _this$ = ecx

; 73   : 	{

	push	esi
	push	edi
	mov	edi, ecx

; 74   : 		for (aListNode<T>* list = nodes.GetHead(); list != NULL; list = list->m_nextNode)

	mov	ecx, DWORD PTR _nodes$[esp+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	call	edx
	mov	esi, eax
	test	esi, esi
	je	SHORT $LN8@AddHead@2
$LL3@AddHead@2:

; 75   : 			this->AddHead(list->data);

	mov	ecx, DWORD PTR [esi+4]
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+16]
	push	ecx
	mov	ecx, edi
	call	edx
	mov	esi, DWORD PTR [esi]
	test	esi, esi
	jne	SHORT $LL3@AddHead@2
$LN8@AddHead@2:
	pop	edi

; 76   : 		return true;

	mov	al, 1
	pop	esi

; 77   : 	};

	ret	4
?AddHead@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z ENDP	; aList<EventNotifier>::AddHead
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?AddTail@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
?AddTail@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z PROC ; aList<EventNotifier>::AddTail, COMDAT
; _this$ = ecx

; 79   : 	{

	push	esi

; 80   : 		aListNode<T> *newNode = new aListNode<T>;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	80					; 00000050H
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	mov	esi, ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	8
	call	??2@YAPAXI@Z				; operator new

; 81   : 		newNode->m_nextNode = NULL;
; 82   : 		newNode->data = data;

	mov	ecx, DWORD PTR _data$[esp+16]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+4], ecx

; 83   : 		if (this->m_Head == NULL)

	cmp	DWORD PTR [esi+8], 0
	jne	SHORT $LN2@AddTail

; 84   : 			this->m_Head = newNode;

	mov	DWORD PTR [esi+8], eax
$LN2@AddTail:

; 85   : 		if (this->m_Tail != NULL)

	mov	ecx, DWORD PTR [esi+12]
	test	ecx, ecx
	je	SHORT $LN1@AddTail

; 86   : 			this->m_Tail->m_nextNode = newNode;

	mov	DWORD PTR [ecx], eax
$LN1@AddTail:

; 87   : 		this->m_Tail = newNode;

	mov	DWORD PTR [esi+12], eax

; 88   : 		this->m_count++;

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

; 89   : 		return true;
; 90   : 	};

	ret	4
?AddTail@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@@Z ENDP ; aList<EventNotifier>::AddTail
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?AddTail@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z
_TEXT	SEGMENT
_nodes$ = 8						; size = 4
?AddTail@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z PROC	; aList<EventNotifier>::AddTail, COMDAT
; _this$ = ecx

; 92   : 	{

	push	esi
	push	edi
	mov	edi, ecx

; 93   : 		for (aListNode<T>* list = nodes.GetHead(); list != NULL; list = list->m_nextNode)

	mov	ecx, DWORD PTR _nodes$[esp+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	call	edx
	mov	esi, eax
	test	esi, esi
	je	SHORT $LN8@AddTail@2
$LL3@AddTail@2:

; 94   : 			this->AddTail(list->data);

	mov	ecx, DWORD PTR [esi+4]
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+24]
	push	ecx
	mov	ecx, edi
	call	edx
	mov	esi, DWORD PTR [esi]
	test	esi, esi
	jne	SHORT $LL3@AddTail@2
$LN8@AddTail@2:
	pop	edi

; 95   : 		return true;

	mov	al, 1
	pop	esi

; 96   : 	};

	ret	4
?AddTail@?$aList@VEventNotifier@@@@UAE_NAAV1@@Z ENDP	; aList<EventNotifier>::AddTail
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_beforeData$ = 12					; size = 4
?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z PROC ; aList<EventNotifier>::InsertBefore, COMDAT
; _this$ = ecx

; 98   : 	{

	push	ebx
	push	esi
	mov	ebx, ecx

; 99   : 		for (aListNode<T> *list = this->m_Head, *prev = NULL; list != NULL; list = list->m_nextNode)

	mov	esi, DWORD PTR [ebx+8]
	push	edi
	xor	edi, edi
	test	esi, esi
	je	SHORT $LN4@InsertBefo
	mov	eax, DWORD PTR _beforeData$[esp+8]
$LL6@InsertBefo:

; 100  : 		{
; 101  : 			if (list->data == beforeData)

	cmp	DWORD PTR [esi+4], eax
	je	SHORT $LN12@InsertBefo

; 111  : 				return true;
; 112  : 			}
; 113  : 			prev = list;

	mov	edi, esi
	mov	esi, DWORD PTR [esi]
	test	esi, esi
	jne	SHORT $LL6@InsertBefo
$LN4@InsertBefo:
	pop	edi
	pop	esi

; 114  : 		}
; 115  : 		return false;

	xor	al, al
	pop	ebx

; 116  : 	};

	ret	8
$LN12@InsertBefo:

; 102  : 			{
; 103  : 				aListNode<T> *newNode = new aListNode<T>;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	103					; 00000067H
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	8
	call	??2@YAPAXI@Z				; operator new

; 104  : 				newNode->m_nextNode = list;
; 105  : 				newNode->data = data;

	mov	ecx, DWORD PTR _data$[esp+24]
	add	esp, 16					; 00000010H

; 106  : 				if (prev)

	test	edi, edi
	mov	DWORD PTR [eax], esi
	mov	DWORD PTR [eax+4], ecx
	je	SHORT $LN2@InsertBefo

; 107  : 					prev->m_nextNode = newNode;

	mov	DWORD PTR [edi], eax
	pop	edi

; 110  : 				this->m_count++;

	mov	eax, 1
	add	DWORD PTR [ebx+4], eax
	pop	esi
	pop	ebx

; 116  : 	};

	ret	8
$LN2@InsertBefo:

; 108  : 				else
; 109  : 					this->m_Head = newNode;

	mov	DWORD PTR [ebx+8], eax
	pop	edi

; 110  : 				this->m_count++;

	mov	eax, 1
	add	DWORD PTR [ebx+4], eax
	pop	esi
	pop	ebx

; 116  : 	};

	ret	8
?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z ENDP ; aList<EventNotifier>::InsertBefore
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_beforeNode$ = 12					; size = 4
?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z PROC ; aList<EventNotifier>::InsertBefore, COMDAT
; _this$ = ecx

; 119  : 		return this->InsertBefore(data, beforeNode->data);

	mov	edx, DWORD PTR _beforeNode$[esp-4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+4]
	mov	DWORD PTR _beforeNode$[esp-4], edx
	mov	eax, DWORD PTR [eax+32]
	jmp	eax
?InsertBefore@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z ENDP ; aList<EventNotifier>::InsertBefore
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_afterNode$ = 12					; size = 4
?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z PROC ; aList<EventNotifier>::InsertAfter, COMDAT
; _this$ = ecx

; 144  : 		return this->InsertAfter(data, afterNode->data);

	mov	edx, DWORD PTR _afterNode$[esp-4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+4]
	mov	DWORD PTR _afterNode$[esp-4], edx
	mov	eax, DWORD PTR [eax+40]
	jmp	eax
?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@PAV?$aListNode@VEventNotifier@@@@@Z ENDP ; aList<EventNotifier>::InsertAfter
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?RemoveHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
_TEXT	SEGMENT
?RemoveHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ PROC ; aList<EventNotifier>::RemoveHead, COMDAT
; _this$ = ecx

; 147  : 	{

	push	esi
	mov	esi, ecx
	push	edi

; 148  : 		if (this->m_Head)

	mov	edi, DWORD PTR [esi+8]
	test	edi, edi
	je	SHORT $LN3@RemoveHead

; 149  : 		{
; 150  : 			aListNode<T> *node = this->m_Head;
; 151  : 			if (node->m_nextNode)

	mov	eax, DWORD PTR [edi]

; 152  : 				this->m_Head = node->m_nextNode;
; 153  : 			else
; 154  : 				this->m_Head = NULL;
; 155  : 			delete node;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	155					; 0000009bH
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	mov	DWORD PTR [esi+8], eax
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	edi
	call	??3@YAXPAX@Z				; operator delete

; 156  : 			this->m_count--;
; 157  : 			return this->m_Head;

	mov	eax, DWORD PTR [esi+8]
	add	esp, 16					; 00000010H
	add	DWORD PTR [esi+4], -1
	pop	edi
	pop	esi

; 160  : 	};

	ret	0
$LN3@RemoveHead:
	pop	edi

; 158  : 		}
; 159  : 		return NULL;

	xor	eax, eax
	pop	esi

; 160  : 	};

	ret	0
?RemoveHead@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ENDP ; aList<EventNotifier>::RemoveHead
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?RemoveTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ
_TEXT	SEGMENT
?RemoveTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ PROC ; aList<EventNotifier>::RemoveTail, COMDAT
; _this$ = ecx

; 162  : 	{

	push	edi
	mov	edi, ecx

; 163  : 		if (this->m_Tail)

	cmp	DWORD PTR [edi+12], 0
	je	SHORT $LN6@RemoveTail

; 164  : 		{
; 165  : 			aListNode<T> *prev = NULL;
; 166  : 			for (aListNode<T> *list = this->m_Head; list != NULL; list = list->m_nextNode)

	mov	eax, DWORD PTR [edi+8]
	push	esi
	xor	esi, esi
	test	eax, eax
	je	SHORT $LN1@RemoveTail
$LL5@RemoveTail:

; 167  : 			{
; 168  : 				if (list->m_nextNode != NULL)

	mov	ecx, DWORD PTR [eax]
	test	ecx, ecx
	je	SHORT $LN4@RemoveTail

; 169  : 					prev = list;

	mov	esi, eax
$LN4@RemoveTail:

; 164  : 		{
; 165  : 			aListNode<T> *prev = NULL;
; 166  : 			for (aListNode<T> *list = this->m_Head; list != NULL; list = list->m_nextNode)

	mov	eax, ecx
	test	eax, eax
	jne	SHORT $LL5@RemoveTail

; 170  : 			}
; 171  : 			if (prev != NULL)

	test	esi, esi
	je	SHORT $LN1@RemoveTail

; 172  : 				prev->m_nextNode = NULL;

	mov	DWORD PTR [esi], ecx
$LN1@RemoveTail:

; 173  : 			delete this->m_Tail;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	173					; 000000adH
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [edi+12]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 16					; 00000010H

; 174  : 			this->m_Tail = prev;
; 175  : 			this->m_count--;

	add	DWORD PTR [edi+4], -1
	mov	DWORD PTR [edi+12], esi

; 176  : 			return prev;

	mov	eax, esi
	pop	esi
	pop	edi

; 179  : 	};

	ret	0
$LN6@RemoveTail:

; 177  : 		}
; 178  : 		return NULL;

	xor	eax, eax
	pop	edi

; 179  : 	};

	ret	0
?RemoveTail@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@XZ ENDP ; aList<EventNotifier>::RemoveTail
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@PAVEventNotifier@@@Z
_TEXT	SEGMENT
_element$ = 8						; size = 4
?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@PAVEventNotifier@@@Z PROC ; aList<EventNotifier>::Remove, COMDAT
; _this$ = ecx

; 181  : 	{

	push	ebx
	mov	ebx, ecx

; 182  : 		if (this->m_Head && this->m_Head->data == element)

	mov	ecx, DWORD PTR _element$[esp]
	push	esi
	mov	esi, DWORD PTR [ebx+8]
	test	esi, esi
	je	SHORT $LN8@Remove
	cmp	DWORD PTR [esi+4], ecx
	jne	SHORT $LN8@Remove

; 183  : 			return this->RemoveHead();

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

; 202  : 	};

	ret	4
$LN8@Remove:

; 184  : 		else if (this->m_Tail && this->m_Tail->data == element)

	mov	eax, DWORD PTR [ebx+12]
	test	eax, eax
	je	SHORT $LN6@Remove
	cmp	DWORD PTR [eax+4], ecx
	jne	SHORT $LN6@Remove

; 185  : 			return this->RemoveTail();

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

; 202  : 	};

	ret	4
$LN6@Remove:
	push	edi

; 186  : 		else
; 187  : 		{
; 188  : 			for (aListNode<T>* list = this->m_Head, *prev = NULL; list != NULL; list = list->m_nextNode)

	xor	edi, edi
	test	esi, esi
	je	SHORT $LN2@Remove
$LL4@Remove:

; 189  : 			{
; 190  : 				if (list->data == element)

	cmp	DWORD PTR [esi+4], ecx
	je	SHORT $LN14@Remove

; 197  : 				}
; 198  : 				prev = list;

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

; 199  : 			}
; 200  : 		}
; 201  : 		return NULL;

	xor	eax, eax
	pop	ebx

; 202  : 	};

	ret	4
$LN14@Remove:

; 191  : 				{
; 192  : 					prev->m_nextNode = list->m_nextNode;

	mov	eax, DWORD PTR [esi]

; 193  : 					list->m_nextNode = NULL;
; 194  : 					delete list;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	194					; 000000c2H
	mov	DWORD PTR [edi], eax
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	mov	DWORD PTR [esi], 0
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??3@YAXPAX@Z				; operator delete

; 195  : 					this->m_count--;

	add	DWORD PTR [ebx+4], -1
	add	esp, 16					; 00000010H

; 196  : 					return prev;

	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebx

; 202  : 	};

	ret	4
?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@PAVEventNotifier@@@Z ENDP ; aList<EventNotifier>::Remove
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@ABV2@@Z
_TEXT	SEGMENT
_node$ = 8						; size = 4
?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@ABV2@@Z PROC ; aList<EventNotifier>::Remove, COMDAT
; _this$ = ecx

; 205  : 		return this->Remove(node.data);

	mov	edx, DWORD PTR _node$[esp-4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+4]
	mov	DWORD PTR _node$[esp-4], edx
	mov	eax, DWORD PTR [eax+56]
	jmp	eax
?Remove@?$aList@VEventNotifier@@@@UAEPAV?$aListNode@VEventNotifier@@@@ABV2@@Z ENDP ; aList<EventNotifier>::Remove
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ
_TEXT	SEGMENT
?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ PROC	; aList<EventNotifier>::RemoveAll, COMDAT
; _this$ = ecx

; 208  : 	{

	push	ebx
	mov	ebx, ecx
	push	esi

; 209  : 		aListNode<T> *list = this->m_Head;

	mov	esi, DWORD PTR [ebx+8]

; 210  : 		while (list)

	test	esi, esi
	je	SHORT $LN1@RemoveAll
	push	edi
	npad	4
$LL2@RemoveAll:

; 211  : 		{
; 212  : 			aListNode<T> *next = list->m_nextNode;

	mov	edi, DWORD PTR [esi]

; 213  : 			delete list;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	213					; 000000d5H
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 16					; 00000010H
	test	edi, edi

; 214  : 			list = next;

	mov	esi, edi
	jne	SHORT $LL2@RemoveAll
	pop	edi
$LN1@RemoveAll:
	pop	esi

; 215  : 		}
; 216  : 		this->m_Head = NULL;

	mov	DWORD PTR [ebx+8], 0

; 217  : 		this->m_Tail = NULL;

	mov	DWORD PTR [ebx+12], 0

; 218  : 		this->m_count = 0;

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

; 219  : 	};

	ret	0
?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ ENDP	; aList<EventNotifier>::RemoveAll
_TEXT	ENDS
PUBLIC	?Count@?$aList@VEventNotifier@@@@QBEIXZ		; aList<EventNotifier>::Count
; Function compile flags: /Ogtpy
;	COMDAT ?Count@?$aList@VEventNotifier@@@@QBEIXZ
_TEXT	SEGMENT
?Count@?$aList@VEventNotifier@@@@QBEIXZ PROC		; aList<EventNotifier>::Count, COMDAT
; _this$ = ecx

; 226  : 		return this->m_count;

	mov	eax, DWORD PTR [ecx+4]

; 227  : 	};

	ret	0
?Count@?$aList@VEventNotifier@@@@QBEIXZ ENDP		; aList<EventNotifier>::Count
_TEXT	ENDS
PUBLIC	?GetNext@?$aListNode@VEventNotifier@@@@QAEPAV1@XZ ; aListNode<EventNotifier>::GetNext
; Function compile flags: /Ogtpy
;	COMDAT ?GetNext@?$aListNode@VEventNotifier@@@@QAEPAV1@XZ
_TEXT	SEGMENT
?GetNext@?$aListNode@VEventNotifier@@@@QAEPAV1@XZ PROC	; aListNode<EventNotifier>::GetNext, COMDAT
; _this$ = ecx

; 14   : 	aListNode<T>* GetNext() { return this->m_nextNode; };

	mov	eax, DWORD PTR [ecx]
	ret	0
?GetNext@?$aListNode@VEventNotifier@@@@QAEPAV1@XZ ENDP	; aListNode<EventNotifier>::GetNext
_TEXT	ENDS
PUBLIC	?GetData@?$aListNode@VEventNotifier@@@@QAEPAVEventNotifier@@XZ ; aListNode<EventNotifier>::GetData
; Function compile flags: /Ogtpy
;	COMDAT ?GetData@?$aListNode@VEventNotifier@@@@QAEPAVEventNotifier@@XZ
_TEXT	SEGMENT
?GetData@?$aListNode@VEventNotifier@@@@QAEPAVEventNotifier@@XZ PROC ; aListNode<EventNotifier>::GetData, COMDAT
; _this$ = ecx

; 15   : 	T* GetData() { return this->data; };

	mov	eax, DWORD PTR [ecx+4]
	ret	0
?GetData@?$aListNode@VEventNotifier@@@@QAEPAVEventNotifier@@XZ ENDP ; aListNode<EventNotifier>::GetData
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files (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>
_TEXT	ENDS
PUBLIC	?GetEventList@EventHandler@@QAEXAAV?$aList@VEventNotifier@@@@H@Z ; EventHandler::GetEventList
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
;	COMDAT ?GetEventList@EventHandler@@QAEXAAV?$aList@VEventNotifier@@@@H@Z
_TEXT	SEGMENT
_ref$ = 8						; size = 4
_type$ = 12						; size = 4
?GetEventList@EventHandler@@QAEXAAV?$aList@VEventNotifier@@@@H@Z PROC ; EventHandler::GetEventList, COMDAT
; _this$ = ecx

; 202  : {

	push	ebx
	push	ebp
	mov	ebp, ecx

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

	xor	ebx, ebx
	cmp	DWORD PTR [ebp+32], ebx
	jbe	$LN13@GetEventLi
	push	esi
	mov	esi, DWORD PTR _ref$[esp+8]
	push	edi
$LL15@GetEventLi:

; 204  : 	{
; 205  : 		if (this->m_eventList[i]->GetEventType() == type)

	mov	eax, DWORD PTR [ebp+24]
	mov	ecx, DWORD PTR [eax+ebx*4]
	mov	edi, DWORD PTR _type$[esp+12]
	cmp	DWORD PTR [ecx+4], edi
	jne	$nextEvent$56794

; 206  : 		{
; 207  : 			if (EventManager::m_eventTypeSort[type / 4096 - 1][type % 4096]) // Need to sort

	mov	eax, edi
	cdq
	and	edx, 4095				; 00000fffH
	add	eax, edx
	sar	eax, 12					; 0000000cH
	and	edi, -2147479553			; 80000fffH
	lea	edx, DWORD PTR [eax+eax*2]
	jns	SHORT $LN64@GetEventLi
	dec	edi
	or	edi, -4096				; fffff000H
	inc	edi
$LN64@GetEventLi:
	cmp	BYTE PTR ?m_eventTypeSort@EventManager@@2PAY0M@_NA[edi+edx*4-12], 0
	je	SHORT $LN11@GetEventLi

; 208  : 			{
; 209  : 				// Empty list
; 210  : 				if (ref.Count() == 0)

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jne	SHORT $LN65@GetEventLi

; 211  : 					ref.AddTail(this->m_eventList[i]);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+24]
	push	ecx
	mov	ecx, esi
	call	edx
	jmp	SHORT $nextEvent$56794
$LN65@GetEventLi:

; 212  : 
; 213  : 				// List have items and the current event priority is higher than the top data already
; 214  : 				else if (ref.Count() > 0 && this->m_eventList[i]->GetPriority() > ref.GetHead()->GetData()->GetPriority())

	jbe	SHORT $LN63@GetEventLi
	mov	eax, DWORD PTR [esi]
	mov	edi, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	mov	eax, DWORD PTR [eax+4]
	cmp	edi, DWORD PTR [eax]
	jle	SHORT $LN63@GetEventLi

; 215  : 					ref.AddHead(this->m_eventList[i]);

	mov	eax, DWORD PTR [ebp+24]
	mov	ecx, DWORD PTR [eax+ebx*4]
	mov	edx, DWORD PTR [esi]
	mov	edx, DWORD PTR [edx+16]
	push	ecx
	mov	ecx, esi
	call	edx

; 216  : 
; 217  : 				else

	jmp	SHORT $nextEvent$56794
$LN63@GetEventLi:

; 218  : 				{
; 219  : 					for (aListNode<EventNotifier> *refData = ref.GetHead(); refData != NULL; refData = refData->GetNext())

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN4@GetEventLi

; 220  : 					{
; 221  : 						if (refData->GetData()->GetPriority() < this->m_eventList[i]->GetPriority())

	mov	ecx, DWORD PTR [ebp+24]
	mov	ecx, DWORD PTR [ecx+ebx*4]
	mov	edx, DWORD PTR [ecx]
$LL40@GetEventLi:
	mov	edi, DWORD PTR [eax+4]
	cmp	DWORD PTR [edi], edx
	jl	SHORT $LN60@GetEventLi
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	jne	SHORT $LL40@GetEventLi
$LN4@GetEventLi:

; 224  : 							goto nextEvent;
; 225  : 						}
; 226  : 					}
; 227  : 					ref.AddTail(this->m_eventList[i]);

	mov	ecx, DWORD PTR [ebp+24]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+ebx*4]
	mov	eax, DWORD PTR [eax+24]
	push	edx

; 228  : 				}
; 229  : 			}
; 230  : 			else

	jmp	SHORT $LN66@GetEventLi
$LN60@GetEventLi:

; 222  : 						{
; 223  : 							ref.InsertBefore(this->m_eventList[i], refData->GetData());

	mov	edx, DWORD PTR [esi]
	mov	edx, DWORD PTR [edx+32]
	mov	eax, edi
	push	eax
	push	ecx
	mov	ecx, esi
	call	edx
	jmp	SHORT $nextEvent$56794
$LN11@GetEventLi:

; 231  : 				ref.AddTail(this->m_eventList[i]);

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+24]
	push	ecx
$LN66@GetEventLi:
	mov	ecx, esi
	call	eax
$nextEvent$56794:
	add	ebx, 1
	cmp	ebx, DWORD PTR [ebp+32]
	jb	$LL15@GetEventLi
	pop	edi
	pop	esi
$LN13@GetEventLi:
	pop	ebp
	pop	ebx

; 232  : 		}
; 233  : nextEvent:;
; 234  : 	}
; 235  : }

	ret	8
?GetEventList@EventHandler@@QAEXAAV?$aList@VEventNotifier@@@@H@Z ENDP ; EventHandler::GetEventList
_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@PAVEventHandler@@@@UAE@XZ		; aVector<EventHandler *>::~aVector<EventHandler *>
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\avector.h
;	COMDAT ??1?$aVector@PAVEventHandler@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@PAVEventHandler@@@@UAE@XZ PROC		; aVector<EventHandler *>::~aVector<EventHandler *>, 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@PAVEventHandler@@@@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@PAVEventHandler@@@@UAE@XZ ENDP		; aVector<EventHandler *>::~aVector<EventHandler *>
_TEXT	ENDS
PUBLIC	??1?$aVector@PAVEventNotifier@@@@UAE@XZ		; aVector<EventNotifier *>::~aVector<EventNotifier *>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$aVector@PAVEventNotifier@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@PAVEventNotifier@@@@UAE@XZ PROC		; aVector<EventNotifier *>::~aVector<EventNotifier *>, 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@PAVEventNotifier@@@@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@PAVEventNotifier@@@@UAE@XZ ENDP		; aVector<EventNotifier *>::~aVector<EventNotifier *>
_TEXT	ENDS
PUBLIC	??1?$aList@VEventNotifier@@@@UAE@XZ		; aList<EventNotifier>::~aList<EventNotifier>
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\alist.h
;	COMDAT ??1?$aList@VEventNotifier@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aList@VEventNotifier@@@@UAE@XZ PROC		; aList<EventNotifier>::~aList<EventNotifier>, COMDAT
; _this$ = ecx

; 39   : 	{

	mov	DWORD PTR [ecx], OFFSET ??_7?$aList@VEventNotifier@@@@6B@

; 40   : 		this->RemoveAll();

	jmp	?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ ; aList<EventNotifier>::RemoveAll
??1?$aList@VEventNotifier@@@@UAE@XZ ENDP		; aList<EventNotifier>::~aList<EventNotifier>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z
_TEXT	SEGMENT
_data$ = 8						; size = 4
_afterData$ = 12					; size = 4
?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z PROC ; aList<EventNotifier>::InsertAfter, COMDAT
; _this$ = ecx

; 122  : 	{

	push	ebx

; 123  : 		if (afterData != NULL)

	mov	ebx, DWORD PTR _afterData$[esp]
	test	ebx, ebx
	push	edi
	mov	edi, ecx
	je	SHORT $LN17@InsertAfte
	push	esi

; 124  : 		{
; 125  : 			for (aListNode<T>* list = this->m_Head; list != NULL; list = list->m_nextNode)

	mov	esi, DWORD PTR [edi+8]
	test	esi, esi
	je	SHORT $LN16@InsertAfte
$LL5@InsertAfte:

; 126  : 			{
; 127  : 				if (list->data == afterData)

	cmp	DWORD PTR [esi+4], ebx
	je	SHORT $LN14@InsertAfte
	mov	esi, DWORD PTR [esi]
	test	esi, esi
	jne	SHORT $LL5@InsertAfte
	pop	esi
	pop	edi

; 136  : 					break;
; 137  : 				}
; 138  : 			}
; 139  : 		}
; 140  : 		return false;

	xor	al, al
	pop	ebx

; 141  : 	};

	ret	8
$LN14@InsertAfte:

; 128  : 				{
; 129  : 					aListNode<T>* newNode = new aListNode<T>;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	129					; 00000081H
	push	OFFSET ??_C@_0CE@NNGLCFLD@D?3?2Source?5Code?2aLib?2include?2aLis@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	8
	call	??2@YAPAXI@Z				; operator new

; 130  : 					newNode->m_nextNode = list->m_nextNode;

	mov	ecx, DWORD PTR [esi]

; 131  : 					newNode->data = data;

	mov	edx, DWORD PTR _data$[esp+24]
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [eax+4], edx

; 132  : 					list->m_nextNode = newNode;

	mov	DWORD PTR [esi], eax

; 133  : 					if (this->m_Tail && afterData == this->m_Tail->GetData())

	mov	ecx, DWORD PTR [edi+12]
	add	esp, 16					; 00000010H
	test	ecx, ecx
	je	SHORT $LN1@InsertAfte
	cmp	ebx, DWORD PTR [ecx+4]
	jne	SHORT $LN1@InsertAfte

; 134  : 						this->m_Tail = newNode;

	mov	DWORD PTR [edi+12], eax
$LN1@InsertAfte:

; 135  : 					this->m_count++;

	add	DWORD PTR [edi+4], 1
$LN16@InsertAfte:
	pop	esi
$LN17@InsertAfte:
	pop	edi

; 136  : 					break;
; 137  : 				}
; 138  : 			}
; 139  : 		}
; 140  : 		return false;

	xor	al, al
	pop	ebx

; 141  : 	};

	ret	8
?InsertAfter@?$aList@VEventNotifier@@@@UAE_NPAVEventNotifier@@0@Z ENDP ; aList<EventNotifier>::InsertAfter
_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@PAVEventHandler@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@PAVEventHandler@@@@UAEPAXI@Z PROC		; aVector<EventHandler *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAVEventHandler@@@@6B@
	je	SHORT $LN6@scalar@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], 0
$LN6@scalar@2:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@PAVEventHandler@@@@UAEPAXI@Z ENDP		; aVector<EventHandler *>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@PAVEventNotifier@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@PAVEventNotifier@@@@UAEPAXI@Z PROC	; aVector<EventNotifier *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAVEventNotifier@@@@6B@
	je	SHORT $LN6@scalar@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], 0
$LN6@scalar@3:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@PAVEventNotifier@@@@UAEPAXI@Z ENDP	; aVector<EventNotifier *>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aList@VEventNotifier@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aList@VEventNotifier@@@@UAEPAXI@Z PROC		; aList<EventNotifier>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7?$aList@VEventNotifier@@@@6B@
	call	?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ ; aList<EventNotifier>::RemoveAll
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN6@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aList@VEventNotifier@@@@UAEPAXI@Z ENDP		; aList<EventNotifier>::`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	?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z ; EventManager::ProcessEvent
EXTRN	?IsDeletePending@gzBase@@QAE_NXZ:PROC		; gzBase::IsDeletePending
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z$0
__ehfuncinfo$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
xdata$x	ENDS
;	COMDAT ?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z
_TEXT	SEGMENT
_evtList$ = -28						; size = 16
__$EHRec$ = -12						; size = 12
_evt$ = 8						; size = 4
?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z PROC ; EventManager::ProcessEvent, COMDAT

; 6    : {

	push	-1
	push	__ehhandler$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 16					; 00000010H
	push	ebx

; 7    : 	aList<EventNotifier> evtList;

	xor	eax, eax
	push	esi
	push	edi
	mov	DWORD PTR _evtList$[esp+40], OFFSET ??_7?$aList@VEventNotifier@@@@6B@
	mov	DWORD PTR _evtList$[esp+48], eax
	mov	DWORD PTR _evtList$[esp+52], eax
	mov	DWORD PTR _evtList$[esp+44], eax

; 8    : 	for (unsigned int i = 0; i < EventManager::m_list.Count(); i++)

	mov	edi, DWORD PTR _evt$[esp+36]
	xor	esi, esi
	cmp	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12, esi
	mov	DWORD PTR __$EHRec$[esp+48], eax
	jbe	SHORT $LN38@ProcessEve
$LL40@ProcessEve:

; 9    : 	{
; 10   : 		if (!EventManager::m_list[i]->IsDeletePending())

	mov	eax, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4
	mov	ecx, DWORD PTR [eax+esi*4]
	call	?IsDeletePending@gzBase@@QAE_NXZ	; gzBase::IsDeletePending
	test	al, al
	jne	SHORT $LN39@ProcessEve

; 11   : 			EventManager::m_list[i]->GetEventList(evtList, evt.GetEventType());

	mov	eax, DWORD PTR [edi+20]
	mov	edx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4
	push	eax
	lea	ecx, DWORD PTR _evtList$[esp+44]
	push	ecx
	mov	ecx, DWORD PTR [edx+esi*4]
	call	?GetEventList@EventHandler@@QAEXAAV?$aList@VEventNotifier@@@@H@Z ; EventHandler::GetEventList
$LN39@ProcessEve:
	add	esi, 1
	cmp	esi, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12
	jb	SHORT $LL40@ProcessEve

; 8    : 	for (unsigned int i = 0; i < EventManager::m_list.Count(); i++)

	mov	eax, DWORD PTR _evtList$[esp+48]
$LN38@ProcessEve:

; 12   : 	}
; 13   : 
; 14   : 	for (aListNode<EventNotifier> *objList = evtList.GetHead(); objList != NULL; objList = objList->GetNext())

	test	eax, eax
	mov	ebx, eax
	je	$LN34@ProcessEve
$LL59@ProcessEve:

; 15   : 	{
; 16   : 		EventHandler *obj = objList->GetData()->GetOwner();

	mov	eax, DWORD PTR [ebx+4]
	mov	esi, DWORD PTR [eax+8]

; 17   : 
; 18   : 		if (obj == NULL)

	test	esi, esi
	je	$LN35@ProcessEve

; 19   : 			continue;
; 20   : 
; 21   : 		switch (evt.GetEventType())

	mov	eax, DWORD PTR [edi+20]
	cmp	eax, 12288				; 00003000H
	jg	$LN43@ProcessEve
	je	$LN17@ProcessEve
	cmp	eax, 8192				; 00002000H
	jg	SHORT $LN44@ProcessEve
	je	SHORT $LN27@ProcessEve
	sub	eax, 4096				; 00001000H
	je	SHORT $LN30@ProcessEve
	sub	eax, 1
	je	SHORT $LN29@ProcessEve
	sub	eax, 1
	jne	$LN31@ProcessEve

; 31   : 
; 32   : 			case EVT_GAME_THINK:
; 33   : 				obj->Think();

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

; 34   : 				break;

	jmp	$LN31@ProcessEve
$LN29@ProcessEve:

; 27   : 
; 28   : 			case EVT_GAME_LEVEL_ENDED:
; 29   : 				obj->Level_Ended();

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

; 30   : 				break;

	jmp	$LN31@ProcessEve
$LN30@ProcessEve:

; 22   : 		{
; 23   : 			// Game events
; 24   : 			case EVT_GAME_LEVEL_LOADED:
; 25   : 				obj->Level_Loaded();

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

; 26   : 				break;

	jmp	$LN31@ProcessEve
$LN27@ProcessEve:

; 35   : 
; 36   : 
; 37   : 			// Player events
; 38   : 			case EVT_PLAYER_JOIN:
; 39   : 				obj->Player_Joined(*(gzEventPlayerBase *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+28]

; 40   : 				break;

	jmp	$LN78@ProcessEve
$LN44@ProcessEve:

; 19   : 			continue;
; 20   : 
; 21   : 		switch (evt.GetEventType())

	sub	eax, 8193				; 00002001H
	cmp	eax, 8
	ja	$LN31@ProcessEve
	jmp	DWORD PTR $LN79@ProcessEve[eax*4]
$LN26@ProcessEve:

; 41   : 
; 42   : 			case EVT_PLAYER_LEFT:
; 43   : 				obj->Player_Left(*(gzEventPlayerBase *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+32]

; 44   : 				break;

	jmp	$LN78@ProcessEve
$LN25@ProcessEve:

; 45   : 
; 46   : 			case EVT_PLAYER_BANDWIDTH:
; 47   : 				obj->Player_BandwidthChange(*(gzEventPlayerBandwidth *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+40]

; 48   : 				break;

	jmp	$LN78@ProcessEve
$LN24@ProcessEve:

; 49   : 
; 50   : 			case EVT_PLAYER_SUICIDE:
; 51   : 				obj->Player_Suicide(*(gzEventPlayerBase *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+44]

; 52   : 				break;

	jmp	$LN78@ProcessEve
$LN23@ProcessEve:

; 53   : 
; 54   : 			case EVT_PLAYER_CHAT:
; 55   : 				obj->Player_Chat(*(gzEventPlayerChat *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+52]

; 56   : 				break;

	jmp	$LN78@ProcessEve
$LN22@ProcessEve:

; 57   : 
; 58   : 			case EVT_PLAYER_RADIO:
; 59   : 				obj->Player_Radio(*(gzEventPlayerRadio *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+56]

; 60   : 				break;

	jmp	$LN78@ProcessEve
$LN21@ProcessEve:

; 61   : 
; 62   : 			case EVT_PLAYER_TEAMCHANGE:
; 63   : 				obj->Player_TeamChange(*(gzEventPlayerBase *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]

; 64   : 				break;

	jmp	$LN78@ProcessEve
$LN20@ProcessEve:

; 65   : 
; 66   : 			case EVT_PLAYER_SERIALHASH:
; 67   : 				obj->Player_SerialHash(*(gzEventPlayerSerialHash *)&evt);

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

; 68   : 				break;

	jmp	$LN78@ProcessEve
$LN19@ProcessEve:

; 69   : 
; 70   : 			case EVT_PLAYER_RAWDAMAGE:
; 71   : 				obj->Player_RawDamage(*(gzEventObjectDamage *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+64]

; 72   : 				break;

	jmp	$LN78@ProcessEve
$LN18@ProcessEve:

; 73   : 
; 74   : 			case EVT_PLAYER_PURCHASE:
; 75   : 				obj->Player_Purchase(*(gzEventPlayerPurchase *)&evt);

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

; 76   : 				break;

	jmp	$LN78@ProcessEve
$LN17@ProcessEve:

; 77   : 
; 78   : 
; 79   : 			// Object events
; 80   : 			case EVT_OBJECT_CREATE:
; 81   : 				obj->Object_Created(*(gzEventObjectCreate *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+68]

; 82   : 				break;

	jmp	$LN78@ProcessEve
$LN43@ProcessEve:

; 19   : 			continue;
; 20   : 
; 21   : 		switch (evt.GetEventType())

	cmp	eax, 16384				; 00004000H
	jg	SHORT $LN45@ProcessEve
	je	SHORT $LN5@ProcessEve
	sub	eax, 12289				; 00003001H
	cmp	eax, 16					; 00000010H
	ja	$LN31@ProcessEve
	jmp	DWORD PTR $LN80@ProcessEve[eax*4]
$LN16@ProcessEve:

; 83   : 
; 84   : 			case EVT_OBJECT_INIT:
; 85   : 				obj->Object_Init(*(gzEventObjectInit *)&evt);

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

; 86   : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN15@ProcessEve:

; 87   : 
; 88   : 			case EVT_OBJECT_DAMAGE:
; 89   : 				obj->Object_Damaged(*(gzEventObjectDamage *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+76]

; 90   : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN14@ProcessEve:

; 91   : 
; 92   : 			case EVT_OBJECT_KILL:
; 93   : 				obj->Object_Killed(*(gzEventObjectKill *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+80]

; 94   : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN13@ProcessEve:

; 95   : 
; 96   : 			case EVT_OBJECT_SQUISH:
; 97   : 				obj->Object_SoldierSquished(*(gzEventObjectKill *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+96]

; 98   : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN12@ProcessEve:

; 99   : 
; 100  : 			case EVT_OBJECT_TRANSITION:
; 101  : 				obj->Object_Transition(*(gzEventObjectTransition *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+84]

; 102  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN11@ProcessEve:

; 103  : 
; 104  : 			case EVT_OBJECT_JUMP_START:
; 105  : 				obj->Object_JumpStart(*(gzEventObjectJump *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+88]

; 106  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN10@ProcessEve:

; 107  : 
; 108  : 			case EVT_OBJECT_JUMP_COMPLETE:
; 109  : 				obj->Object_JumpComplete(*(gzEventObjectJump *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+92]

; 110  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN9@ProcessEve:

; 111  : 
; 112  : 			case EVT_OBJECT_C4_CREATE:
; 113  : 				obj->Object_C4Creation(*(gzEventObjectC4Creation *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+100]

; 114  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN8@ProcessEve:

; 115  : 
; 116  : 			case EVT_OBJECT_C4_DETONATE:
; 117  : 				obj->Object_C4Detonate(*(gzEventObjectC4Detonation *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+104]

; 118  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN7@ProcessEve:

; 119  : 
; 120  : 			case EVT_OBJECT_POWERUP_GRANT:
; 121  : 				obj->Object_PowerupGrant(*(gzEventObjectPowerupGrant *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+108]

; 122  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN6@ProcessEve:

; 123  : 
; 124  : 			case EVT_OBJECT_FIRE:
; 125  : 				obj->Object_Fire(*(gzEventObjectFire *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+112]

; 126  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN5@ProcessEve:

; 127  : 
; 128  : 
; 129  : 			// Network events
; 130  : 			case EVT_NET_WOLPAGE:
; 131  : 				obj->Net_WolPage(*(gzEventNetWolPage *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+120]

; 132  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN45@ProcessEve:

; 19   : 			continue;
; 20   : 
; 21   : 		switch (evt.GetEventType())

	sub	eax, 16385				; 00004001H
	je	SHORT $LN4@ProcessEve
	sub	eax, 4095				; 00000fffH
	je	SHORT $LN3@ProcessEve
	sub	eax, 1
	jne	SHORT $LN31@ProcessEve

; 143  : 
; 144  : 			case EVT_BHS_VERSION:
; 145  : 				obj->Bhs_Version(*(gzEventBhsVersion *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+132]

; 146  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN3@ProcessEve:

; 136  : 				break;
; 137  : 
; 138  : 
; 139  : 			// BHS.dll events
; 140  : 			case EVT_BHS_POKE:
; 141  : 				obj->Bhs_Poke(*(gzEventBhsPoke *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+128]

; 142  : 				break;

	jmp	SHORT $LN78@ProcessEve
$LN4@ProcessEve:

; 133  : 
; 134  : 			case EVT_NET_SERIAL_AUTH:
; 135  : 				obj->Net_SerialAuth(*(gzEventNetSerialAuth *)&evt);

	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+124]
$LN78@ProcessEve:
	push	edi
	mov	ecx, esi
	call	edx
$LN31@ProcessEve:

; 147  : 		}
; 148  : 
; 149  : 		if (evt.Skippable() && !evt.CanContinue())

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, edi
	call	edx
	test	al, al
	je	SHORT $LN35@ProcessEve
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax]
	mov	ecx, edi
	call	edx
	test	al, al
	je	SHORT $LN73@ProcessEve
$LN35@ProcessEve:

; 12   : 	}
; 13   : 
; 14   : 	for (aListNode<EventNotifier> *objList = evtList.GetHead(); objList != NULL; objList = objList->GetNext())

	mov	ebx, DWORD PTR [ebx]
	test	ebx, ebx
	jne	$LL59@ProcessEve
$LN34@ProcessEve:

; 151  : 	}
; 152  : 	return NULL;

	lea	ecx, DWORD PTR _evtList$[esp+40]
	mov	DWORD PTR __$EHRec$[esp+48], -1
	mov	DWORD PTR _evtList$[esp+40], OFFSET ??_7?$aList@VEventNotifier@@@@6B@
	call	?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ ; aList<EventNotifier>::RemoveAll
	pop	edi
	pop	esi
	xor	eax, eax
	pop	ebx

; 153  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	0
$LN73@ProcessEve:

; 150  : 			return obj;

	lea	ecx, DWORD PTR _evtList$[esp+40]
	mov	DWORD PTR __$EHRec$[esp+48], -1
	mov	DWORD PTR _evtList$[esp+40], OFFSET ??_7?$aList@VEventNotifier@@@@6B@
	call	?RemoveAll@?$aList@VEventNotifier@@@@UAEXXZ ; aList<EventNotifier>::RemoveAll

; 153  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 28					; 0000001cH
	ret	0
	npad	3
$LN79@ProcessEve:
	DD	$LN26@ProcessEve
	DD	$LN25@ProcessEve
	DD	$LN23@ProcessEve
	DD	$LN22@ProcessEve
	DD	$LN24@ProcessEve
	DD	$LN21@ProcessEve
	DD	$LN20@ProcessEve
	DD	$LN19@ProcessEve
	DD	$LN18@ProcessEve
$LN80@ProcessEve:
	DD	$LN16@ProcessEve
	DD	$LN15@ProcessEve
	DD	$LN14@ProcessEve
	DD	$LN13@ProcessEve
	DD	$LN12@ProcessEve
	DD	$LN11@ProcessEve
	DD	$LN10@ProcessEve
	DD	$LN9@ProcessEve
	DD	$LN8@ProcessEve
	DD	$LN31@ProcessEve
	DD	$LN31@ProcessEve
	DD	$LN31@ProcessEve
	DD	$LN31@ProcessEve
	DD	$LN31@ProcessEve
	DD	$LN31@ProcessEve
	DD	$LN7@ProcessEve
	DD	$LN6@ProcessEve
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z$0:
	lea	ecx, DWORD PTR _evtList$[ebp]
	jmp	??1?$aList@VEventNotifier@@@@UAE@XZ	; aList<EventNotifier>::~aList<EventNotifier>
__ehhandler$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z:
	mov	eax, OFFSET __ehfuncinfo$?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?ProcessEvent@EventManager@@SAPAVEventHandler@@AAVgzEventBase@@@Z ENDP ; EventManager::ProcessEvent
PUBLIC	??_7EventHandler@@6B@				; EventHandler::`vftable'
PUBLIC	??0EventHandler@@QAE@XZ				; EventHandler::EventHandler
PUBLIC	??_R4EventHandler@@6B@				; EventHandler::`RTTI Complete Object Locator'
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@EventHandler@@8			; EventHandler::`RTTI Base Class Descriptor at (0,-1,0,64)'
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	?Level_Loaded@EventHandler@@UAEXXZ		; EventHandler::Level_Loaded
PUBLIC	?Level_Ended@EventHandler@@UAEXXZ		; EventHandler::Level_Ended
PUBLIC	?Think@EventHandler@@UAEXXZ			; EventHandler::Think
PUBLIC	?Player_Joined@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ; EventHandler::Player_Joined
PUBLIC	?Player_Left@EventHandler@@UAEXAAVgzEventPlayerBase@@@Z ; EventHandler::Player_Left
PUBLIC	?Player_Purchase@EventHandler@@UAEXAAVgzEventPlayerPurchase@@@Z ; EventHandler::Player_Purchase
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@EventHandler@@UAEXAAVgzEventObjectKill@@@Z ; EventHandler::Object_Killed
PUBLIC	?Object_Transition@EventHandler@@UAEXAAVgzEventObjectTransition@@@Z ; EventHandler::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@EventHandler@@UAEXAAVgzEventObjectPowerupGrant@@@Z ; EventHandler::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	??1gzBase@@UAE@XZ:PROC				; gzBase::~gzBase
EXTRN	??0gzBase@@QAE@XZ:PROC				; gzBase::gzBase
EXTRN	??_EEventHandler@@UAEPAXI@Z:PROC		; EventHandler::`vector deleting destructor'
EXTRN	__purecall:PROC
EXTRN	?SetDeletePending@gzBase@@UAEXXZ:PROC		; gzBase::SetDeletePending
;	COMDAT ??_R2gzBase@@8
; File d:\source code\alib\include\avector.h
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 ??_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 ??_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 ??_R4EventHandler@@6B@
rdata$r	SEGMENT
??_R4EventHandler@@6B@ DD 00H				; EventHandler::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVEventHandler@@@8
	DD	FLAT:??_R3EventHandler@@8
rdata$r	ENDS
;	COMDAT ??_7EventHandler@@6B@
CONST	SEGMENT
??_7EventHandler@@6B@ DD FLAT:??_R4EventHandler@@6B@	; EventHandler::`vftable'
	DD	FLAT:??_EEventHandler@@UAEPAXI@Z
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@EventHandler@@UAEXXZ
	DD	FLAT:?Level_Ended@EventHandler@@UAEXXZ
	DD	FLAT:?Think@EventHandler@@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@EventHandler@@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$??0EventHandler@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0EventHandler@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0EventHandler@@QAE@XZ$1
__ehfuncinfo$??0EventHandler@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0EventHandler@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
xdata$x	ENDS
;	COMDAT ??0EventHandler@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0EventHandler@@QAE@XZ PROC				; EventHandler::EventHandler, COMDAT
; _this$ = ecx

; 171  : {

	push	-1
	push	__ehhandler$??0EventHandler@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	call	??0gzBase@@QAE@XZ			; gzBase::gzBase
	xor	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7EventHandler@@6B@
	mov	DWORD PTR __$EHRec$[esp+28], eax
	mov	DWORD PTR [esi+20], OFFSET ??_7?$aVector@PAVEventNotifier@@@@6B@
	mov	DWORD PTR [esi+24], eax
	mov	DWORD PTR [esi+28], eax
	mov	DWORD PTR [esi+32], eax

; 172  : 	EventManager::m_list.Add(this);

	mov	eax, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12
	mov	edx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A
	add	eax, 1
	push	eax
	mov	eax, DWORD PTR [edx+8]
	mov	ecx, OFFSET ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A ; EventManager::m_list
	mov	BYTE PTR __$EHRec$[esp+32], 1
	call	eax
	test	al, al

; 173  : }

	mov	eax, esi
	je	SHORT $LN7@EventHandl
	mov	ecx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12
	mov	edx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4
	mov	DWORD PTR [edx+ecx*4], esi
	add	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12, 1
$LN7@EventHandl:
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0EventHandler@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzBase@@UAE@XZ			; gzBase::~gzBase
__unwindfunclet$??0EventHandler@@QAE@XZ$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 20					; 00000014H
	jmp	??1?$aVector@PAVEventNotifier@@@@UAE@XZ	; aVector<EventNotifier *>::~aVector<EventNotifier *>
__ehhandler$??0EventHandler@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0EventHandler@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0EventHandler@@QAE@XZ ENDP				; EventHandler::EventHandler
; 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 ?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 ?Think@EventHandler@@UAEXXZ
_TEXT	SEGMENT
?Think@EventHandler@@UAEXXZ PROC			; EventHandler::Think, COMDAT
; _this$ = ecx

; 64   : 	virtual void Think() { };

	ret	0
?Think@EventHandler@@UAEXXZ ENDP			; EventHandler::Think
; 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_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 ?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_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
; 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_PowerupGrant@EventHandler@@UAEXAAVgzEventObjectPowerupGrant@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?Object_PowerupGrant@EventHandler@@UAEXAAVgzEventObjectPowerupGrant@@@Z PROC ; EventHandler::Object_PowerupGrant, COMDAT
; _this$ = ecx

; 89   : 	virtual void Object_PowerupGrant(gzEventObjectPowerupGrant &) { };

	ret	4
?Object_PowerupGrant@EventHandler@@UAEXAAVgzEventObjectPowerupGrant@@@Z ENDP ; EventHandler::Object_PowerupGrant
; 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	??1EventHandler@@UAE@XZ				; EventHandler::~EventHandler
;	COMDAT xdata$x
; File d:\source code\alib\include\avector.h
xdata$x	SEGMENT
__unwindtable$??1EventHandler@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1EventHandler@@UAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1EventHandler@@UAE@XZ$1
__ehfuncinfo$??1EventHandler@@UAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??1EventHandler@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
xdata$x	ENDS
;	COMDAT ??1EventHandler@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1EventHandler@@UAE@XZ PROC				; EventHandler::~EventHandler, COMDAT
; _this$ = ecx

; 175  : {

	push	-1
	push	__ehhandler$??1EventHandler@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	ebx
	push	esi
	push	edi
	mov	edi, ecx
	mov	DWORD PTR _this$[esp+28], edi
	mov	DWORD PTR [edi], OFFSET ??_7EventHandler@@6B@

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

	mov	eax, DWORD PTR [edi+32]
	xor	ebx, ebx
	xor	esi, esi
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+36], 1
	jbe	SHORT $LN5@EventHandl@2
	npad	8
$LL7@EventHandl@2:

; 177  : 		delete this->m_eventList[i];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	177					; 000000b1H
	push	OFFSET ??_C@_0O@ONEOCMGK@?4?2stevent?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [edi+24]
	mov	eax, DWORD PTR [eax+esi*4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esi, 1
	add	esp, 16					; 00000010H
	cmp	esi, DWORD PTR [edi+32]
	jb	SHORT $LL7@EventHandl@2
$LN5@EventHandl@2:

; 178  : 	this->m_eventList.Clear();

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

; 179  : 
; 180  : 	for (unsigned int i = 0; i < EventManager::m_list.Count(); i++)

	mov	ecx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12
	xor	eax, eax
	cmp	ecx, ebx
	jbe	SHORT $LN23@EventHandl@2
	mov	edx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4
	npad	6
$LL4@EventHandl@2:

; 181  : 	{
; 182  : 		if (EventManager::m_list[i] == this)

	cmp	DWORD PTR [edx+eax*4], edi
	je	SHORT $LN37@EventHandl@2
	add	eax, 1
	cmp	eax, ecx
	jb	SHORT $LL4@EventHandl@2
	jmp	SHORT $LN23@EventHandl@2
$LN37@EventHandl@2:

; 183  : 		{
; 184  : 			EventManager::m_list.Delete(i);

	cmp	eax, ecx
	jae	SHORT $LN23@EventHandl@2
	sub	ecx, 1
	mov	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12, ecx
	jne	SHORT $LN24@EventHandl@2
	mov	edx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, OFFSET ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A ; EventManager::m_list
	call	eax
	jmp	SHORT $LN23@EventHandl@2
$LN24@EventHandl@2:
	cmp	eax, ecx
	jae	SHORT $LN22@EventHandl@2
	sub	ecx, eax
	add	ecx, ecx
	add	ecx, ecx
	lea	edx, DWORD PTR [edx+eax*4]
	push	ecx
	lea	ecx, DWORD PTR [edx+4]
	push	ecx
	push	edx
	call	_memmove
	mov	ecx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12
	add	esp, 12					; 0000000cH
$LN22@EventHandl@2:
	mov	edx, DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A
	mov	eax, DWORD PTR [edx+8]
	push	ecx
	mov	ecx, OFFSET ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A ; EventManager::m_list
	call	eax
$LN23@EventHandl@2:

; 185  : 			break;
; 186  : 		}
; 187  : 	}
; 188  : }

	cmp	DWORD PTR [esi+4], ebx
	mov	BYTE PTR __$EHRec$[esp+36], bl
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAVEventNotifier@@@@6B@
	je	SHORT $LN30@EventHandl@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], ebx
$LN30@EventHandl@2:
	mov	ecx, edi
	mov	DWORD PTR [esi+8], ebx
	mov	DWORD PTR [esi+12], ebx
	mov	DWORD PTR __$EHRec$[esp+36], -1
	call	??1gzBase@@UAE@XZ			; gzBase::~gzBase
	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	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$??1EventHandler@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzBase@@UAE@XZ			; gzBase::~gzBase
__unwindfunclet$??1EventHandler@@UAE@XZ$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 20					; 00000014H
	jmp	??1?$aVector@PAVEventNotifier@@@@UAE@XZ	; aVector<EventNotifier *>::~aVector<EventNotifier *>
__ehhandler$??1EventHandler@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1EventHandler@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1EventHandler@@UAE@XZ ENDP				; EventHandler::~EventHandler
; Function compile flags: /Ogtpy
;	COMDAT ??_GEventHandler@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GEventHandler@@UAEPAXI@Z PROC			; EventHandler::`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 $LN4@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_GEventHandler@@UAEPAXI@Z ENDP			; EventHandler::`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''
text$yc	ENDS
PUBLIC	?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A ; EventManager::m_list
_DATA	SEGMENT
?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A DD FLAT:??_7?$aVector@PAVEventHandler@@@@6B@ ; EventManager::m_list
	DD	00H
	DD	00H
	DD	00H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stevent.cpp
_DATA	ENDS
;	COMDAT ??__E?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ
text$yc	SEGMENT
??__E?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ PROC ; `dynamic initializer for 'EventManager::m_list'', COMDAT

; 4    : aVector<EventHandler *> EventManager::m_list;

	push	OFFSET ??__F?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ ; `dynamic atexit destructor for 'EventManager::m_list''
	call	_atexit
	pop	ecx
	ret	0
??__E?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ ENDP ; `dynamic initializer for 'EventManager::m_list''
; 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''
; Function compile flags: /Ogtpy
text$yd	ENDS
;	COMDAT ??__F?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ
text$yd	SEGMENT
??__F?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ PROC ; `dynamic atexit destructor for 'EventManager::m_list'', COMDAT
	push	esi
	xor	esi, esi
	cmp	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4, esi
	mov	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A, OFFSET ??_7?$aVector@PAVEventHandler@@@@6B@
	je	SHORT $LN10@m_list
	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 ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+4, esi
$LN10@m_list:
	mov	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+12, esi
	mov	DWORD PTR ?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A+8, esi
	pop	esi
	ret	0
??__F?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ ENDP ; `dynamic atexit destructor for 'EventManager::m_list''
text$yd	ENDS
_BSS	SEGMENT
_gzCritical DB	018H DUP (?)
_BSS	ENDS
CRT$XCU	SEGMENT
_gzCritical$initializer$ DD FLAT:??__EgzCritical@@YAXXZ
?m_list$initializer$@EventManager@@2P6AXXZA DD FLAT:??__E?m_list@EventManager@@2V?$aVector@PAVEventHandler@@@@A@@YAXXZ ; EventManager::m_list$initializer$
CRT$XCU	ENDS
END
